diff --git a/Common/FeatureFlags.swift b/Common/FeatureFlags.swift
index e9652b4404..3ed4b4a4eb 100644
--- a/Common/FeatureFlags.swift
+++ b/Common/FeatureFlags.swift
@@ -30,12 +30,15 @@ struct FeatureFlagConfiguration: Decodable {
let predictedGlucoseChartClampEnabled: Bool
let scenariosEnabled: Bool
let sensitivityOverridesEnabled: Bool
+ let showEventualBloodGlucoseOnWatchEnabled: Bool
let simulatedCoreDataEnabled: Bool
let siriEnabled: Bool
let simpleBolusCalculatorEnabled: Bool
let usePositiveMomentumAndRCForManualBoluses: Bool
let dynamicCarbAbsorptionEnabled: Bool
let adultChildInsulinModelSelectionEnabled: Bool
+ let profileExpirationSettingsViewEnabled: Bool
+ let missedMealNotifications: Bool
fileprivate init() {
@@ -159,7 +162,7 @@ struct FeatureFlagConfiguration: Decodable {
#endif
// Swift compiler config is inverse, since the default state is enabled.
- #if REMOTE_COMMANDS_DISABLED
+ #if REMOTE_COMMANDS_DISABLED || REMOTE_OVERRIDES_DISABLED //REMOTE_OVERRIDES_DISABLED: backwards compatibility of Loop 3 & prior
self.remoteCommandsEnabled = false
#else
self.remoteCommandsEnabled = true
@@ -171,6 +174,13 @@ struct FeatureFlagConfiguration: Decodable {
self.scenariosEnabled = false
#endif
+ // Swift compiler config is inverse, since the default state is enabled.
+ #if SHOW_EVENTUAL_BLOOD_GLUCOSE_ON_WATCH_DISABLED
+ self.showEventualBloodGlucoseOnWatchEnabled = false
+ #else
+ self.showEventualBloodGlucoseOnWatchEnabled = true
+ #endif
+
#if SIMULATED_CORE_DATA_ENABLED
self.simulatedCoreDataEnabled = true
#else
@@ -204,6 +214,21 @@ struct FeatureFlagConfiguration: Decodable {
#endif
self.dynamicCarbAbsorptionEnabled = true
+
+ // ProfileExpirationSettingsView is inverse, since the default state is enabled.
+ #if PROFILE_EXPIRATION_SETTINGS_VIEW_DISABLED
+ self.profileExpirationSettingsViewEnabled = false
+ #else
+ self.profileExpirationSettingsViewEnabled = true
+ #endif
+
+ // Missed meal notifications compiler flag is inverse, since the default state is enabled.
+ #if MISSED_MEAL_NOTIFICATIONS_DISABLED
+ self.missedMealNotifications = false
+ #else
+ self.missedMealNotifications = true
+ #endif
+
}
}
@@ -227,6 +252,7 @@ extension FeatureFlagConfiguration : CustomDebugStringConvertible {
"* remoteCommandsEnabled: \(remoteCommandsEnabled)",
"* scenariosEnabled: \(scenariosEnabled)",
"* sensitivityOverridesEnabled: \(sensitivityOverridesEnabled)",
+ "* showEventualBloodGlucoseOnWatchEnabled: \(showEventualBloodGlucoseOnWatchEnabled)",
"* simulatedCoreDataEnabled: \(simulatedCoreDataEnabled)",
"* siriEnabled: \(siriEnabled)",
"* automaticBolusEnabled: \(automaticBolusEnabled)",
@@ -235,7 +261,9 @@ extension FeatureFlagConfiguration : CustomDebugStringConvertible {
"* simpleBolusCalculatorEnabled: \(simpleBolusCalculatorEnabled)",
"* usePositiveMomentumAndRCForManualBoluses: \(usePositiveMomentumAndRCForManualBoluses)",
"* dynamicCarbAbsorptionEnabled: \(dynamicCarbAbsorptionEnabled)",
- "* adultChildInsulinModelSelectionEnabled: \(adultChildInsulinModelSelectionEnabled)"
+ "* adultChildInsulinModelSelectionEnabled: \(adultChildInsulinModelSelectionEnabled)",
+ "* profileExpirationSettingsViewEnabled: \(profileExpirationSettingsViewEnabled)",
+ "* missedMealNotifications: \(missedMealNotifications)"
].joined(separator: "\n")
}
}
diff --git a/Common/ar.lproj/Intents.strings b/Common/ar.lproj/Intents.strings
new file mode 100644
index 0000000000..69202aa99c
--- /dev/null
+++ b/Common/ar.lproj/Intents.strings
@@ -0,0 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "I've set the preset";
+
+/* (No Comment) */
+"80eo5o" = "Add Carb Entry";
+
+/* (No Comment) */
+"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
+"I4OZy8" = "Enable Override Preset";
+
+/* (No Comment) */
+"lYMuWV" = "Override Name";
+
+/* (No Comment) */
+"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Add Carb Entry";
+
+/* (No Comment) */
+"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Add a carb entry to Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/ar.lproj/Localizable.strings b/Common/ar.lproj/Localizable.strings
new file mode 100644
index 0000000000..e0fb9dff1b
--- /dev/null
+++ b/Common/ar.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Title of the user activity for adding carbs */
+"Add Carb Entry" = "Add Carb Entry";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
+/* The short unit display string for grams */
+"g" = "g";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Common/cs.lproj/Intents.strings b/Common/cs.lproj/Intents.strings
new file mode 100644
index 0000000000..69202aa99c
--- /dev/null
+++ b/Common/cs.lproj/Intents.strings
@@ -0,0 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "I've set the preset";
+
+/* (No Comment) */
+"80eo5o" = "Add Carb Entry";
+
+/* (No Comment) */
+"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
+"I4OZy8" = "Enable Override Preset";
+
+/* (No Comment) */
+"lYMuWV" = "Override Name";
+
+/* (No Comment) */
+"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Add Carb Entry";
+
+/* (No Comment) */
+"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Add a carb entry to Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/da.lproj/Intents.strings b/Common/da.lproj/Intents.strings
index a901bd953b..7fdba3c551 100644
--- a/Common/da.lproj/Intents.strings
+++ b/Common/da.lproj/Intents.strings
@@ -1,18 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "Jeg har indstillet forudindstillingen";
+
/* (No Comment) */
"80eo5o" = "Tilføj kulhydrater";
+/* (No Comment) */
+"b085BW" = "Jeg var ikke i stand til at indstille forudindstillingen.";
+
+/* (No Comment) */
+"I4OZy8" = "Aktiver forudindstilling for Override";
+
+/* (No Comment) */
+"lYMuWV" = "Override navn";
+
+/* (No Comment) */
+"nDKAmn" = "Hvad er navnet på den Override, du vil angive?";
+
/* (No Comment) */
"OcNxIj" = "Tilføj kulhydrater";
/* (No Comment) */
-"yc02Yq" = "Tilføj kulhydrater til Loop.";
+"oLQSsJ" = "Aktiver \"${overrideName}\" Override forudindstilling";
+
+/* (No Comment) */
+"XNNmtH" = "Aktiver forudindstilling i Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Override valg";
+
+/* (No Comment) */
+"yc02Yq" = "Tilføj kulhydrater til Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Aktivere en forudindstilling for Override i Loop";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
diff --git a/Common/da.lproj/Localizable.strings b/Common/da.lproj/Localizable.strings
index d19cbd7249..05492ad924 100644
--- a/Common/da.lproj/Localizable.strings
+++ b/Common/da.lproj/Localizable.strings
@@ -4,6 +4,9 @@
/* Title of the user activity for adding carbs */
"Add Carb Entry" = "Tilføj kulhydrater";
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Beregner procentdelen af blodsukkermålinger inden for et specificeret interval";
+
/* Title of the button to begin lesson execution */
"Continue" = "Fortsæt";
@@ -14,7 +17,7 @@
"g" = "g";
/* Placeholder for upper range entry */
-"Maximum" = "Maximum";
+"Maximum" = "Maksimum";
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
@@ -26,7 +29,7 @@
"mmol/L" = "mmol/L";
/* Lesson title */
-"Modal Day" = "Modal Dag";
+"Modal Day" = "Modal-dag";
/* Lesson result text for no data */
"No data available" = "Ingen data tilgængelige";
@@ -38,16 +41,16 @@
"Range" = "Interval";
/* Title of config entry */
-"Start Date" = "Start Dato";
+"Start Date" = "Startdato";
/* Lesson title */
-"Time in Range" = "Tme in Range";
+"Time in Range" = "Tid inden for korrektionsområde";
/* The short unit display string for international units of insulin */
"U" = "E";
/* Lesson subtitle */
-"Visualizes the most frequent glucose values by time of day" = "Visualiserer de hyppigste blodsukker værdier fordelt på dagen";
+"Visualizes the most frequent glucose values by time of day" = "Visualiserer de hyppigste blodsukkerværdier fordelt på dagen";
/* Unit string for a count of calendar weeks */
"Weeks" = "Uger";
diff --git a/Common/de.lproj/Intents.strings b/Common/de.lproj/Intents.strings
index cb4bd9c6fb..53e85eca4e 100644
--- a/Common/de.lproj/Intents.strings
+++ b/Common/de.lproj/Intents.strings
@@ -2,7 +2,7 @@
"9KhaIS" = "Voreinstellung gesetzt";
/* (No Comment) */
-"80eo5o" = "KH-Eintrag hinzufügen";
+"80eo5o" = "Kohlenhydrate hinzufügen";
/* (No Comment) */
"b085BW" = "Voreinstellung konnte nicht gesetzt werden.";
@@ -14,10 +14,10 @@
"lYMuWV" = "Voreinstellungs-Name";
/* (No Comment) */
-"nDKAmn" = "Welche Voreinstellung möchtest Du aktivieren?";
+"nDKAmn" = "Welche Voreinstellung möchten Sie aktivieren?";
/* (No Comment) */
-"OcNxIj" = "KH-Eintrag hinzufügen";
+"OcNxIj" = "Kohlenhydrate hinzufügen";
/* (No Comment) */
"oLQSsJ" = "Aktiviere '${overrideName}' Voreinstellung";
diff --git a/Common/es.lproj/Intents.strings b/Common/es.lproj/Intents.strings
index d7f678f91c..fe46670365 100644
--- a/Common/es.lproj/Intents.strings
+++ b/Common/es.lproj/Intents.strings
@@ -1,18 +1,36 @@
-/* INIntentTitle */
-"80eo5o" = "Agregar Registro de Carbs";
+/* (No Comment) */
+"9KhaIS" = "He establecido el ajuste";
-/* INIntentParameterCombinationTitle */
-"OcNxIj" = "Agregar Registro de Carbs";
+/* (No Comment) */
+"80eo5o" = "Agregar Entrada de Carb";
-/* INIntentDescription */
-"yc02Yq" = "Agregar registro de carbs a Loop";
+/* (No Comment) */
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Agregar Entrada de Carb";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Agregar registro de carbs a Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/es.lproj/Localizable.strings b/Common/es.lproj/Localizable.strings
index edde7c378c..2517bb2aa1 100644
--- a/Common/es.lproj/Localizable.strings
+++ b/Common/es.lproj/Localizable.strings
@@ -7,18 +7,33 @@
/* Lesson subtitle */
"Computes the percentage of glucose measurements within a specified range" = "Calcula el porcentaje de medidas de glucosa entre una gama especificada";
+/* Title of the button to begin lesson execution */
+"Continue" = "Continuar";
+
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
"g" = "g";
+/* Placeholder for upper range entry */
+"Maximum" = "Máximo";
+
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
+/* Placeholder for lower range entry */
+"Minimum" = "Mínimo";
+
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "mmol/L";
+/* Lesson title */
+"Modal Day" = "Día modal";
+
+/* Lesson result text for no data */
+"No data available" = "Datos no disponibles";
+
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
@@ -28,6 +43,15 @@
/* Title of config entry */
"Start Date" = "Fecha de Inicio";
+/* Lesson title */
+"Time in Range" = "Tiempo en Rango";
+
/* The short unit display string for international units of insulin */
"U" = "U";
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "Visualiza los valores de glucosa más frecuentes por hora del día";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Semanas";
+
diff --git a/Common/fi.lproj/Intents.strings b/Common/fi.lproj/Intents.strings
index cd3e0d1c9f..e4c15dd161 100644
--- a/Common/fi.lproj/Intents.strings
+++ b/Common/fi.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Lisää hiilihydraatteja";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "Lisää hiilihydraatteja";
+"80eo5o" = "Lisää hiilihydraatteja";
/* (No Comment) */
-"yc02Yq" = "Lisää hiilihydraatteja Loopiin";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Lisää hiilihydraatteja";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Lisää hiilihydraatteja Loopiin";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/fr.lproj/Intents.strings b/Common/fr.lproj/Intents.strings
index 6adcf0a383..56bed88c3f 100644
--- a/Common/fr.lproj/Intents.strings
+++ b/Common/fr.lproj/Intents.strings
@@ -1,18 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "J'ai défini le préréglage";
+
/* (No Comment) */
"80eo5o" = "Ajouter des glucides";
+/* (No Comment) */
+"b085BW" = "Je n'ai pas pu définir le préréglage.";
+
+/* (No Comment) */
+"I4OZy8" = "Activer l'ajustement préréglé";
+
+/* (No Comment) */
+"lYMuWV" = "Nom Ajustement";
+
+/* (No Comment) */
+"nDKAmn" = "Quel est le nom de l'ajustement que vous voulez définir ?";
+
/* (No Comment) */
"OcNxIj" = "Ajouter des glucides";
+/* (No Comment) */
+"oLQSsJ" = "Activer l'ajustement '${overrideName}' ";
+
+/* (No Comment) */
+"XNNmtH" = "Activer le préréglage dans Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Selection Ajustement";
+
/* (No Comment) */
"yc02Yq" = "Ajouter des glucides à Loop";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
+/* (No Comment) */
+"ZZ3mtM" = "Activer un ajustement préréglé dans Loop";
+
diff --git a/Common/fr.lproj/Localizable.strings b/Common/fr.lproj/Localizable.strings
index 694e77a7d1..e58151d89a 100644
--- a/Common/fr.lproj/Localizable.strings
+++ b/Common/fr.lproj/Localizable.strings
@@ -7,18 +7,33 @@
/* Lesson subtitle */
"Computes the percentage of glucose measurements within a specified range" = "Ceci calcule le pourcentage des mesures de glycémie dans une plage spécifique";
+/* Title of the button to begin lesson execution */
+"Continue" = "Continuer";
+
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
"g" = "g";
+/* Placeholder for upper range entry */
+"Maximum" = "Maximum";
+
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
+/* Placeholder for lower range entry */
+"Minimum" = "Minimum";
+
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "mmol/L";
+/* Lesson title */
+"Modal Day" = "Journée type";
+
+/* Lesson result text for no data */
+"No data available" = "Données indisponibles";
+
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
@@ -26,8 +41,17 @@
"Range" = "Plage";
/* Title of config entry */
-"Start Date" = "Date de commencement";
+"Start Date" = "Date de démarrage";
+
+/* Lesson title */
+"Time in Range" = "Durée dans la cible";
/* The short unit display string for international units of insulin */
"U" = "U";
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "Visualise les glycémies les plus fréquentes par heure de la journée";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Semaines";
+
diff --git a/Common/he.lproj/Intents.strings b/Common/he.lproj/Intents.strings
index 853af215c0..69202aa99c 100644
--- a/Common/he.lproj/Intents.strings
+++ b/Common/he.lproj/Intents.strings
@@ -1,24 +1,36 @@
-"80eo5o" = "Add Carb Entry";
-
+/* (No Comment) */
"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-
-"OcNxIj" = "Add Carb Entry";
-
-"XNNmtH" = "Enable preset in Loop";
-
-"ZZ3mtM" = "Enable an override preset in Loop";
+/* (No Comment) */
+"80eo5o" = "Add Carb Entry";
+/* (No Comment) */
"b085BW" = "I wasn't able to set the preset.";
+/* (No Comment) */
+"I4OZy8" = "Enable Override Preset";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+/* (No Comment) */
+"OcNxIj" = "Add Carb Entry";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+/* (No Comment) */
"yc02Yq" = "Add a carb entry to Loop";
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/it.lproj/Intents.strings b/Common/it.lproj/Intents.strings
index d3a0e94880..847d80d4eb 100644
--- a/Common/it.lproj/Intents.strings
+++ b/Common/it.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Aggiungi carboidrati assunti";
+"9KhaIS" = "Ho impostato la preimpostazione";
/* (No Comment) */
-"OcNxIj" = "Aggiungi carboidrati assunti";
+"80eo5o" = "Agg. Carb. Assunti";
/* (No Comment) */
-"yc02Yq" = "Aggiungi carboidrati assunti a Loop";
+"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
+"I4OZy8" = "Abilita Programma Alternativo";
+
+/* (No Comment) */
+"lYMuWV" = "Nome Programma Alternativo";
+
+/* (No Comment) */
+"nDKAmn" = "Qual'è il nome del programma alternativo che vuoi impostare?";
+
+/* (No Comment) */
+"OcNxIj" = "Agg. Carb. Assunti";
+
+/* (No Comment) */
+"oLQSsJ" = "Abilita '${overrideName}' Programma Alternativo";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
+/* (No Comment) */
"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yBzwCL" = "Selezione Programma Alternativo";
+
+/* (No Comment) */
+"yc02Yq" = "Aggiungi carboidrati a Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Attiva Programma Alternativo in Loop";
+
diff --git a/Common/it.lproj/Localizable.strings b/Common/it.lproj/Localizable.strings
index 6da1a77ad0..55e7848e7b 100644
--- a/Common/it.lproj/Localizable.strings
+++ b/Common/it.lproj/Localizable.strings
@@ -2,7 +2,10 @@
"%1$@ v%2$@" = "%1$@ v%2$@";
/* Title of the user activity for adding carbs */
-"Add Carb Entry" = "Aggiungi carboidrati assunti";
+"Add Carb Entry" = "Agg. Carb. Assunti";
+
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Calcola la percentuale di misurazioni della glicemia entro un intervallo specifico";
/* Title of the button to begin lesson execution */
"Continue" = "Continua";
diff --git a/Common/ja.lproj/Intents.strings b/Common/ja.lproj/Intents.strings
index ca2038ce0d..f59cfa9e62 100644
--- a/Common/ja.lproj/Intents.strings
+++ b/Common/ja.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "カーボを追加";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "カーボを追加";
+"80eo5o" = "糖質の記入を追加";
/* (No Comment) */
-"yc02Yq" = "ループにカーボを追加";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "糖質の記入を追加";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "ループにカーボを追加";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/nb.lproj/Intents.strings b/Common/nb.lproj/Intents.strings
index d7a0b641a9..0fe45121af 100644
--- a/Common/nb.lproj/Intents.strings
+++ b/Common/nb.lproj/Intents.strings
@@ -1,18 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "Jeg har angitt forhåndsinnstillingen";
+
/* (No Comment) */
"80eo5o" = "Legg til karbohydrater";
+/* (No Comment) */
+"b085BW" = "Jeg kunne ikke angi forhåndsinnstillingen.";
+
+/* (No Comment) */
+"I4OZy8" = "Aktiver forhåndsinnstillt overstyring";
+
+/* (No Comment) */
+"lYMuWV" = "Navn på overstyring";
+
+/* (No Comment) */
+"nDKAmn" = "Hva heter overstyringen du vil angi?";
+
/* (No Comment) */
"OcNxIj" = "Legg til karbohydrater";
+/* (No Comment) */
+"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Aktiver forhåndsinnstilling i Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Overstyr valg";
+
/* (No Comment) */
"yc02Yq" = "Legg til karbohydrater i Loop";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
+/* (No Comment) */
+"ZZ3mtM" = "Aktiver en forhåndsinnstilling for overstyring i Loop";
+
diff --git a/Common/nb.lproj/Localizable.strings b/Common/nb.lproj/Localizable.strings
index 32bdd8539c..056b65c455 100644
--- a/Common/nb.lproj/Localizable.strings
+++ b/Common/nb.lproj/Localizable.strings
@@ -4,6 +4,9 @@
/* Title of the user activity for adding carbs */
"Add Carb Entry" = "Legg til karbohydrater";
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Beregner prosentandelen av blodsukkermålinger innenfor et spesifisert område";
+
/* Title of the button to begin lesson execution */
"Continue" = "Fortsett";
diff --git a/Common/nl.lproj/Intents.strings b/Common/nl.lproj/Intents.strings
index 1533363380..e72963d83a 100644
--- a/Common/nl.lproj/Intents.strings
+++ b/Common/nl.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Voeg koolhydraten toe";
+"9KhaIS" = "Ik heb het programma ingesteld";
/* (No Comment) */
-"OcNxIj" = "Voeg koolhydraten toe";
+"80eo5o" = "Kh. Inv. Toevoegen";
/* (No Comment) */
-"yc02Yq" = "Voeg koolhydraten toe aan Loop";
+"b085BW" = "Ik kon het programma niet instellen.";
+
+/* (No Comment) */
+"I4OZy8" = "Override Programma Inschakelen";
+
+/* (No Comment) */
+"lYMuWV" = "Override Naam";
+
+/* (No Comment) */
+"nDKAmn" = "Wat is de naam van de override die je zou willen instellen?";
+
+/* (No Comment) */
+"OcNxIj" = "Kh. Inv. Toevoegen";
+
+/* (No Comment) */
+"oLQSsJ" = "Override '${overrideName}' Inschakelen";
+
+/* (No Comment) */
+"XNNmtH" = "Programma in Loop inschakelen";
+
+/* (No Comment) */
+"yBzwCL" = "Overrideselectie";
+
+/* (No Comment) */
+"yc02Yq" = "Voeg koolhydrateninvoer toe aan Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Een override programma in Loop inschakelen";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
diff --git a/Common/nl.lproj/Localizable.strings b/Common/nl.lproj/Localizable.strings
index e98674e351..a272262f20 100644
--- a/Common/nl.lproj/Localizable.strings
+++ b/Common/nl.lproj/Localizable.strings
@@ -2,13 +2,13 @@
"%1$@ v%2$@" = "%1$@ v%2$@";
/* Title of the user activity for adding carbs */
-"Add Carb Entry" = "Voeg koolhydraten toe";
+"Add Carb Entry" = "Koolhydraatinvoer Toevoegen";
/* Lesson subtitle */
"Computes the percentage of glucose measurements within a specified range" = "Berekent het percentage glucosemetingen in een specifiek bereik";
/* Title of the button to begin lesson execution */
-"Continue" = "Ga verder";
+"Continue" = "Ga Verder";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -29,10 +29,10 @@
"mmol/L" = "mmol/L";
/* Lesson title */
-"Modal Day" = "Modale dag";
+"Modal Day" = "Modale Dag";
/* Lesson result text for no data */
-"No data available" = "Geen data beschikbaar";
+"No data available" = "Geen gegevens beschikbaar";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
@@ -41,16 +41,16 @@
"Range" = "Bereik";
/* Title of config entry */
-"Start Date" = "Start datum";
+"Start Date" = "Startdatum";
/* Lesson title */
-"Time in Range" = "Tijd binnen bereik";
+"Time in Range" = "Tijd binnen Bereik";
/* The short unit display string for international units of insulin */
"U" = "E";
/* Lesson subtitle */
-"Visualizes the most frequent glucose values by time of day" = "Geeft de meest voorkomende glucose waardes weer per moment van de dag ";
+"Visualizes the most frequent glucose values by time of day" = "Geeft de meest voorkomende glucosewaarden weer per moment van de dag";
/* Unit string for a count of calendar weeks */
"Weeks" = "Weken";
diff --git a/Common/pl.lproj/Intents.strings b/Common/pl.lproj/Intents.strings
index 9cec9c4b65..86f8cd9c3f 100644
--- a/Common/pl.lproj/Intents.strings
+++ b/Common/pl.lproj/Intents.strings
@@ -1,18 +1,36 @@
-/* INIntentTitle */
-"80eo5o" = "Add Carb Entry";
-
-/* INIntentParameterCombinationTitle */
-"OcNxIj" = "Add Carb Entry";
-
-/* INIntentDescription */
-"yc02Yq" = "Add a carb entry to Loop";
-
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
+/* (No Comment) */
+"9KhaIS" = "Ustawiłem Cel Tymczas.";
+
+/* (No Comment) */
+"80eo5o" = "Wprowadź węglowodany";
+
+/* (No Comment) */
+"b085BW" = "Nie mogłem ustawić celu.";
+
+/* (No Comment) */
+"I4OZy8" = "Włącz Cel Tymczasowy";
+
+/* (No Comment) */
+"lYMuWV" = "Nazwa Celu Tymczas.";
+
+/* (No Comment) */
+"nDKAmn" = "Jak nazywa się Cel Tymczasowy, który chcesz włączyć?";
+
+/* (No Comment) */
+"OcNxIj" = "Wprowadź węglowodany";
+
+/* (No Comment) */
+"oLQSsJ" = "Włącz '${overrideName}' Cel Tymczasowy";
+
+/* (No Comment) */
+"XNNmtH" = "Włącz Cel Tymczasowy w pętli";
+
+/* (No Comment) */
+"yBzwCL" = "Wybierz Cel Tymczasowy";
+
+/* (No Comment) */
+"yc02Yq" = "Dodaj węglowodany do pętli";
+
+/* (No Comment) */
+"ZZ3mtM" = "Włącz Cel Tymczasowy w pętli";
+
diff --git a/Common/pl.lproj/Localizable.strings b/Common/pl.lproj/Localizable.strings
index f630a70c5d..904ee7d8a8 100644
--- a/Common/pl.lproj/Localizable.strings
+++ b/Common/pl.lproj/Localizable.strings
@@ -4,20 +4,54 @@
/* Title of the user activity for adding carbs */
"Add Carb Entry" = "Dodaj pozycję dla węglowodanów";
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Oblicza procent pomiarów glukozy w określonym zakresie";
+
+/* Title of the button to begin lesson execution */
+"Continue" = "Kontynuuj";
+
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
"g" = "g";
+/* Placeholder for upper range entry */
+"Maximum" = "Maksymalnie";
+
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
+/* Placeholder for lower range entry */
+"Minimum" = "Minimalnie";
+
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "mmol/L";
+/* Lesson title */
+"Modal Day" = "Dzień modalny";
+
+/* Lesson result text for no data */
+"No data available" = "Brak danych";
+
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+/* Section title for glucose range */
+"Range" = "Zasięg";
+
+/* Title of config entry */
+"Start Date" = "Data rozpoczęcia";
+
+/* Lesson title */
+"Time in Range" = "Czas w zakresie (TIR)";
+
/* The short unit display string for international units of insulin */
"U" = "J";
+
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "Wizualizuje najczęstsze wartości glukozy według pory dnia";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Tygodnie";
+
diff --git a/Common/pt-BR.lproj/Intents.strings b/Common/pt-BR.lproj/Intents.strings
index 694faa1fe9..130b82cbb5 100644
--- a/Common/pt-BR.lproj/Intents.strings
+++ b/Common/pt-BR.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Adicionar Carboidratos";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "Adicionar Carboidratos";
+"80eo5o" = "Adicionar Carb";
/* (No Comment) */
-"yc02Yq" = "Adicionar Carboidratos ao Loop";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Adicionar Carb";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Adicionar Carboidratos ao Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/ro.lproj/Intents.strings b/Common/ro.lproj/Intents.strings
index ce36e2214c..2f029b1cd6 100644
--- a/Common/ro.lproj/Intents.strings
+++ b/Common/ro.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Adăugare carbohidrați";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "Adăugare carbohidrați";
+"80eo5o" = "Adaugă carbohidrați";
/* (No Comment) */
-"yc02Yq" = "Adaugă carbohidrați în Loop";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Adaugă carbohidrați";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Adaugă carbohidrați în Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/ru.lproj/Intents.strings b/Common/ru.lproj/Intents.strings
index 2f55bd8c16..43f070d0c0 100644
--- a/Common/ru.lproj/Intents.strings
+++ b/Common/ru.lproj/Intents.strings
@@ -1,18 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "Я установил пресет";
+
/* (No Comment) */
"80eo5o" = "Добавить запись углеводов";
+/* (No Comment) */
+"b085BW" = "Я не смог установить пресет.";
+
+/* (No Comment) */
+"I4OZy8" = "Включить пресет временной цели";
+
+/* (No Comment) */
+"lYMuWV" = "Имя пресета";
+
+/* (No Comment) */
+"nDKAmn" = "Как называется пресет, которое вы хотите установить?";
+
/* (No Comment) */
"OcNxIj" = "Добавить запись углеводов";
+/* (No Comment) */
+"oLQSsJ" = "Включить '${overrideName}' пресет";
+
+/* (No Comment) */
+"XNNmtH" = "Включить пресет в Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Выбор временных целей";
+
/* (No Comment) */
"yc02Yq" = "Добавьте запись углеводов в алгоритм цикла";
-"9KhaIS" = "I've set the preset";
-"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
-"lYMuWV" = "Override Name";
-"nDKAmn" = "What's the name of the override you'd like to set?";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
-"yBzwCL" = "Override Selection";
+/* (No Comment) */
+"ZZ3mtM" = "Включение пресета ВЦ в Loop";
+
diff --git a/Common/ru.lproj/Localizable.strings b/Common/ru.lproj/Localizable.strings
index bdee38ba11..29b8b0e0e1 100644
--- a/Common/ru.lproj/Localizable.strings
+++ b/Common/ru.lproj/Localizable.strings
@@ -4,21 +4,51 @@
/* Title of the user activity for adding carbs */
"Add Carb Entry" = "Введите углеводы";
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Вычисляет процент измерений глюкозы в заданном диапазоне";
+
+/* Title of the button to begin lesson execution */
+"Continue" = "Продолжить";
+
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
"g" = "г";
+/* Placeholder for upper range entry */
+"Maximum" = "Максимум";
+
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "мг/дл";
+/* Placeholder for lower range entry */
+"Minimum" = "Минимум";
+
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "ммоль/л";
+/* Lesson result text for no data */
+"No data available" = "Данные недоступны";
+
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+/* Section title for glucose range */
+"Range" = "Диапазон";
+
+/* Title of config entry */
+"Start Date" = "Дата начала";
+
+/* Lesson title */
+"Time in Range" = "Время в диапазоне";
+
/* The short unit display string for international units of insulin */
"U" = "ед";
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "Визуализация наиболее частых значений глюкозы по времени суток";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Недели";
+
diff --git a/Common/sk.lproj/Intents.strings b/Common/sk.lproj/Intents.strings
new file mode 100644
index 0000000000..ef6d2d0920
--- /dev/null
+++ b/Common/sk.lproj/Intents.strings
@@ -0,0 +1,36 @@
+/* (No Comment) */
+"9KhaIS" = "Nastavil som predvoľbu";
+
+/* (No Comment) */
+"80eo5o" = "Zadať sacharidy";
+
+/* (No Comment) */
+"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
+"I4OZy8" = "Enable Override Preset";
+
+/* (No Comment) */
+"lYMuWV" = "Override Name";
+
+/* (No Comment) */
+"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Zadať sacharidy";
+
+/* (No Comment) */
+"oLQSsJ" = "Enable '$%1$@' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
+"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Zadať sacharidy do Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/sk.lproj/Localizable.strings b/Common/sk.lproj/Localizable.strings
new file mode 100644
index 0000000000..4e49851fe2
--- /dev/null
+++ b/Common/sk.lproj/Localizable.strings
@@ -0,0 +1,54 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v %2$@";
+
+/* Title of the user activity for adding carbs */
+"Add Carb Entry" = "Zadať sacharidy";
+
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Vypočíta percento meraní glykémie v rámci špecifikovaného rozsahu";
+
+/* Title of the button to begin lesson execution */
+"Continue" = "Pokračovať";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
+/* The short unit display string for grams */
+"g" = "g";
+
+/* Placeholder for upper range entry */
+"Maximum" = "Maximum";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* Placeholder for lower range entry */
+"Minimum" = "Minimum";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Lesson result text for no data */
+"No data available" = "Údaje nie sú k dispozícii";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* Section title for glucose range */
+"Range" = "Rozsah";
+
+/* Title of config entry */
+"Start Date" = "Dátum začiatku";
+
+/* Lesson title */
+"Time in Range" = "Čas v rozsahu";
+
+/* The short unit display string for international units of insulin */
+"U" = "j";
+
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "Zobrazuje najčastejšie hodnoty glykémie podľa hodín dňa";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Týždne";
+
diff --git a/Common/sv.lproj/Intents.strings b/Common/sv.lproj/Intents.strings
index 20bf063944..25e1a6e213 100644
--- a/Common/sv.lproj/Intents.strings
+++ b/Common/sv.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Lägg till kolhydrater";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "Lägg till kolhydrater";
+"80eo5o" = "Lägg till kolhydrater";
/* (No Comment) */
-"yc02Yq" = "Lägg till kolhydrater för att kunna loopa";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Lägg till kolhydrater";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Lägg till kolhydrater för att kunna loopa";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/tr.lproj/Intents.strings b/Common/tr.lproj/Intents.strings
index 853af215c0..416c11d092 100644
--- a/Common/tr.lproj/Intents.strings
+++ b/Common/tr.lproj/Intents.strings
@@ -1,24 +1,36 @@
-"80eo5o" = "Add Carb Entry";
+/* (No Comment) */
+"9KhaIS" = "Ön ayarı yaptım";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
+"80eo5o" = "Karb Girişi Ekle";
-"I4OZy8" = "Enable Override Preset";
+/* (No Comment) */
+"b085BW" = "Ön ayarı yapamadım.";
-"OcNxIj" = "Add Carb Entry";
+/* (No Comment) */
+"I4OZy8" = "Ön Ayarı Geçersiz Kıl";
-"XNNmtH" = "Enable preset in Loop";
+/* (No Comment) */
+"lYMuWV" = "Geçersiz Kılma Adı";
-"ZZ3mtM" = "Enable an override preset in Loop";
+/* (No Comment) */
+"nDKAmn" = "Ayarlamak istediğiniz geçersiz kılmanın adı nedir?";
-"b085BW" = "I wasn't able to set the preset.";
+/* (No Comment) */
+"OcNxIj" = "Karb Girişi Ekle";
-"lYMuWV" = "Override Name";
+/* (No Comment) */
+"oLQSsJ" = "'${overrideName}' Ön Ayarını Geçersiz Kılmayı Etkinleştir";
-"nDKAmn" = "What's the name of the override you'd like to set?";
+/* (No Comment) */
+"XNNmtH" = "Döngüde ön ayarı etkinleştir";
-"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+/* (No Comment) */
+"yBzwCL" = "Geçersiz Kılma Seçimi";
-"yBzwCL" = "Override Selection";
+/* (No Comment) */
+"yc02Yq" = "Döngüye bir karbonhidrat girişi ekleyin";
-"yc02Yq" = "Add a carb entry to Loop";
+/* (No Comment) */
+"ZZ3mtM" = "Döngüde ön ayarı geçersiz kıl";
diff --git a/Common/tr.lproj/Localizable.strings b/Common/tr.lproj/Localizable.strings
index e0fb9dff1b..f924e32220 100644
--- a/Common/tr.lproj/Localizable.strings
+++ b/Common/tr.lproj/Localizable.strings
@@ -2,23 +2,56 @@
"%1$@ v%2$@" = "%1$@ v%2$@";
/* Title of the user activity for adding carbs */
-"Add Carb Entry" = "Add Carb Entry";
+"Add Carb Entry" = "Karbonhidrat Girişi Ekle";
+
+/* Lesson subtitle */
+"Computes the percentage of glucose measurements within a specified range" = "Belirli bir aralıktaki glikoz ölçümlerinin yüzdesini hesaplar";
+
+/* Title of the button to begin lesson execution */
+"Continue" = "Devam et";
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
-"g" = "g";
+"g" = "gr";
+
+/* Placeholder for upper range entry */
+"Maximum" = "Maksimum";
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
+/* Placeholder for lower range entry */
+"Minimum" = "Minimum";
+
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "mmol/L";
+/* Lesson title */
+"Modal Day" = "Modal Gün";
+
+/* Lesson result text for no data */
+"No data available" = "Kullanılabilir veri yok";
+
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+/* Section title for glucose range */
+"Range" = "Aralık";
+
+/* Title of config entry */
+"Start Date" = "Başlangıç tarihi";
+
+/* Lesson title */
+"Time in Range" = "Aralıktaki Süre";
+
/* The short unit display string for international units of insulin */
-"U" = "U";
+"U" = "Ü";
+
+/* Lesson subtitle */
+"Visualizes the most frequent glucose values by time of day" = "En sık görülen glikoz değerlerini günün saatine göre görselleştirir";
+
+/* Unit string for a count of calendar weeks */
+"Weeks" = "Hafta";
diff --git a/Common/vi.lproj/Intents.strings b/Common/vi.lproj/Intents.strings
index e078394091..26f9af1fd2 100644
--- a/Common/vi.lproj/Intents.strings
+++ b/Common/vi.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "Khai báo khối lượng Carb";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "Khai báo khối lượng Carb";
+"80eo5o" = "Khai báo Carb";
/* (No Comment) */
-"yc02Yq" = "Khai báo khối lượng Carb cho Loop";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "Khai báo Carb";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "Khai báo khối lượng Carb cho Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/zh-Hans.lproj/Intents.strings b/Common/zh-Hans.lproj/Intents.strings
index cff018b0c0..3c86a8a391 100644
--- a/Common/zh-Hans.lproj/Intents.strings
+++ b/Common/zh-Hans.lproj/Intents.strings
@@ -1,18 +1,36 @@
/* (No Comment) */
-"80eo5o" = "添加碳水化合物";
+"9KhaIS" = "I've set the preset";
/* (No Comment) */
-"OcNxIj" = "添加碳水化合物";
+"80eo5o" = "添加碳水化合物";
/* (No Comment) */
-"yc02Yq" = "将碳水化合物添加到Loop";
+"b085BW" = "I wasn't able to set the preset.";
-"9KhaIS" = "I've set the preset";
+/* (No Comment) */
"I4OZy8" = "Enable Override Preset";
-"XNNmtH" = "Enable preset in Loop";
-"ZZ3mtM" = "Enable an override preset in Loop";
-"b085BW" = "I wasn't able to set the preset.";
+
+/* (No Comment) */
"lYMuWV" = "Override Name";
+
+/* (No Comment) */
"nDKAmn" = "What's the name of the override you'd like to set?";
+
+/* (No Comment) */
+"OcNxIj" = "添加碳水化合物";
+
+/* (No Comment) */
"oLQSsJ" = "Enable '${overrideName}' Override Preset";
+
+/* (No Comment) */
+"XNNmtH" = "Enable preset in Loop";
+
+/* (No Comment) */
"yBzwCL" = "Override Selection";
+
+/* (No Comment) */
+"yc02Yq" = "将碳水化合物添加到Loop";
+
+/* (No Comment) */
+"ZZ3mtM" = "Enable an override preset in Loop";
+
diff --git a/Common/zh-Hans.lproj/Localizable.strings b/Common/zh-Hans.lproj/Localizable.strings
index be5965c657..62b18b0ecd 100644
--- a/Common/zh-Hans.lproj/Localizable.strings
+++ b/Common/zh-Hans.lproj/Localizable.strings
@@ -1,6 +1,3 @@
-/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
-"%1$@ v%2$@" = "%1$@ v%2$@";
-
/* Title of the user activity for adding carbs */
"Add Carb Entry" = "添加碳水化合物";
@@ -10,9 +7,6 @@
/* Title of the button to begin lesson execution */
"Continue" = "继续";
-/* The short unit display string for decibles */
-"dB" = "dB";
-
/* The short unit display string for grams */
"g" = "克";
@@ -31,9 +25,6 @@
/* Lesson result text for no data */
"No data available" = "无数据";
-/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
-"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
-
/* Section title for glucose range */
"Range" = "范围";
diff --git a/DoseMathTests/DoseMathTests.swift b/DoseMathTests/DoseMathTests.swift
index ce9e1767bf..5205955465 100644
--- a/DoseMathTests/DoseMathTests.swift
+++ b/DoseMathTests/DoseMathTests.swift
@@ -751,7 +751,7 @@ class RecommendTempBasalTests: XCTestCase {
func testHighAndFalling() {
let glucose = loadGlucoseValueFixture("recommend_temp_basal_high_and_falling")
-
+
let insulinModel = WalshInsulinModel(actionDuration: insulinActionDuration, delay: 0)
let dose = glucose.recommendedTempBasal(
diff --git a/DoseMathTests/ar.lproj/Localizable.strings b/DoseMathTests/ar.lproj/Localizable.strings
index a3607f260e..97a7523522 100644
--- a/DoseMathTests/ar.lproj/Localizable.strings
+++ b/DoseMathTests/ar.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "سكر الدم الحالي %1$@ أقل من نطاق التصحيح.";
+"Current glucose of %1$@ is below correction range." = "قراءة سكر الدم %1$@ أقل من نطاق التصحيح.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,10 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "متوقع سكر الدم خلال %1$@ هو %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "قراءاة سكر الدم بعد %1$@ هي %2$@.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "متوقع سكر الدم %1$@ أقل من إعدادات التعليق المؤقت.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "قراءة سكر الدم المتوقعة %1$@ أقل من قيمة تعليق الضخ في الإعدادات.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/da.lproj/Localizable.strings b/DoseMathTests/da.lproj/Localizable.strings
index 13db793a4f..8161cac496 100644
--- a/DoseMathTests/da.lproj/Localizable.strings
+++ b/DoseMathTests/da.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = "Den aktuelle glukose for %1$@ er under korrektionsområdet.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,16 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Forventet glukose ved %1$@ er %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Den forventede glukose er inden for intervallet.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Det forventede glukoseindhold på %1$@ er under din indstilling af glukose-sikkerhedsgrænsen.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Forventet glukose på %1$@ er under din indstilling for suspenderingstærskel.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/de.lproj/Localizable.strings b/DoseMathTests/de.lproj/Localizable.strings
index ffa45f1be7..b4b56621fc 100644
--- a/DoseMathTests/de.lproj/Localizable.strings
+++ b/DoseMathTests/de.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Der aktuelle Blutzucker von %1$@ liegt unterhalb des Korrekturbereiches.";
+"Current glucose of %1$@ is below correction range." = "Der aktuelle Blutzucker von %1$@ liegt unter dem Korrekturbereich.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -8,22 +8,22 @@
"g" = "g";
/* The short unit display string for milligrams of glucose per decilter */
-"mg/dL" = "mg/dl";
+"mg/dL" = "mg/dL";
/* The short unit display string for millimoles of glucose per liter */
-"mmol/L" = "mmol/l";
+"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Der vorhergesagte Blutzucker um %1$@ ist %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Vorhergesagte Glukose um %1$@ ist %2$@.";
/* Notice when predicted glucose for bolus recommendation is in range */
-"Predicted glucose is in range." = "Der vorhergesagte Glukosewert liegt im Bereich.";
+"Predicted glucose is in range." = "Der vorhergesagte Blutzucker liegt im Zielbereich.";
/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
-"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Der vorhergesagte Glukosewert von %1$@ liegt unter Ihrer Glukose-Sicherheitsgrenzwerteinstellung.";
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Der vorhergesagte Blutzucker von %1$@ liegt unter der Sicherheitsgrenze.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Der vorhergesagte Blutzucker von %1$@ liegt unterhalb des eingestellten Schwellwertes zur Unterbrechung der Basalrate. ";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Der vorhergesagte Blutzucker von %1$@ liegt unter dem Grenzwert für die Hypo-Abschaltung.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/es.lproj/Localizable.strings b/DoseMathTests/es.lproj/Localizable.strings
index ea86cdbd48..8550028f10 100644
--- a/DoseMathTests/es.lproj/Localizable.strings
+++ b/DoseMathTests/es.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Glucosa actual de %1$@ está debajo del rango correctivo.";
+"Current glucose of %1$@ is below correction range." = "Glucosa actual de %1$@ está por debajo del rango de corrección.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,16 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Glucosa proyectada en %1$@ es %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Glucosa proyectada a las %1$@ es %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "La glucosa proyectada está en rango";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Glucosa proyectada de %1$@ se encuentra por debajo de tu nivel de suspensión.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Glucosa proyectada de %1$@ se encuentra debajo de tu nivel de suspensión.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Glucosa proyectada de %1$@ se encuentra por debajo de su nivel de suspensión.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/fi.lproj/Localizable.strings b/DoseMathTests/fi.lproj/Localizable.strings
index 95e33d98bb..715f2b62be 100644
--- a/DoseMathTests/fi.lproj/Localizable.strings
+++ b/DoseMathTests/fi.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = "Nykyinen glukoosi %1$@ on korjausalueen alapuolella.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,13 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Ennustettu glukoosi klo %1$@ on %2$@.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Ennustettu glukoosi %1$@ on turvarajan alapuolella.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Ennustettu glukoosi %1$@ on pysäytysrajan alapuolella.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/fr.lproj/Localizable.strings b/DoseMathTests/fr.lproj/Localizable.strings
index a148669627..5b6ca784e3 100644
--- a/DoseMathTests/fr.lproj/Localizable.strings
+++ b/DoseMathTests/fr.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Glycémie actuelle %1$@ sous la plage de correction.";
+"Current glucose of %1$@ is below correction range." = "Glycémie actuelle de %1$@ est en dessous de la plage de correction.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,7 +14,13 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Glycémie de %2$@ prédite pour %1$@.";
+"Predicted glucose at %1$@ is %2$@." = "Glycémie prévue à %1$@ est %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "La glycémie prévue est dans la plage.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "La glycémie estimée à %1$@ est sous le seuil de suspension.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
"Predicted glucose of %1$@ is below your suspend threshold setting." = "Prédiction de la glycémie à %1$@ sous le seuil de suspension défini.";
diff --git a/DoseMathTests/he.lproj/Localizable.strings b/DoseMathTests/he.lproj/Localizable.strings
index cb195752e8..95e33d98bb 100644
--- a/DoseMathTests/he.lproj/Localizable.strings
+++ b/DoseMathTests/he.lproj/Localizable.strings
@@ -24,3 +24,4 @@
/* The short unit display string for international units of insulin */
"U" = "U";
+
diff --git a/DoseMathTests/it.lproj/Localizable.strings b/DoseMathTests/it.lproj/Localizable.strings
index ac7b220625..2b1f0b3c81 100644
--- a/DoseMathTests/it.lproj/Localizable.strings
+++ b/DoseMathTests/it.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "La glicemia corrente %1$@ é al di sotto dell'intervallo glicemico selezionato.";
+"Current glucose of %1$@ is below correction range." = "La glicemia attuale di %1$@ è al di sotto dell'intervallo glicemico selezionato.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,16 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "La glicemia prevista a %1$@ è %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "La glicemia prevista tra %1$@ e' di %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "La glicemia prevista è nell'intervallo";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "La glicemia prevista da %1$@ è al di sotto del tuo limite glicemico di sicurezza";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "La glicemia prevista %1$@ è inferiore al valore glicemico previsto per la sospensione dell'erogazione.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "La glicemia prevista %1$@ e' inferiore al valore soglia per la sospensione dell'erogazione.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/ja.lproj/Localizable.strings b/DoseMathTests/ja.lproj/Localizable.strings
index 95e33d98bb..fc23adb8cb 100644
--- a/DoseMathTests/ja.lproj/Localizable.strings
+++ b/DoseMathTests/ja.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = "現在の血糖値は %1$@ で補正範囲を下回っています。";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,10 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "%1$@の予想グルコースは %2$@です。";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "予想グルコースは %1$@ で一時停止値を下回ります。";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/nb.lproj/Localizable.strings b/DoseMathTests/nb.lproj/Localizable.strings
index f76a4f8154..656e726c6f 100644
--- a/DoseMathTests/nb.lproj/Localizable.strings
+++ b/DoseMathTests/nb.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Nåværende blodsukker på %1$@ er under målområde.";
+"Current glucose of %1$@ is below correction range." = "Gjeldende glukose på %1$@ er under korreksjonsområdet.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,16 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Forventet blodsukker om %1$@ er %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Forventet blodsukker kl %1$@ er %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Forventet blodsukker er innenfor målområdet.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Forventet blodsukker på %1$@ er lavere enn innstillingen for blodsukkersikkerhet.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Forventet blodsukker %1$@ er under innstillingen for insulinstopp.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Forventet blodsukker %1$@ er lavere enn innstilling for insulinstopp";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/nl.lproj/Localizable.strings b/DoseMathTests/nl.lproj/Localizable.strings
index f104ed4a4d..fc884f7931 100644
--- a/DoseMathTests/nl.lproj/Localizable.strings
+++ b/DoseMathTests/nl.lproj/Localizable.strings
@@ -1,11 +1,11 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Huidige glucose van %1$@ is onder het correctie bereik.";
+"Current glucose of %1$@ is below correction range." = "Huidige glucose %1$@ is lager dan het correctiebereik.";
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
-"g" = "gr";
+"g" = "g";
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
@@ -14,10 +14,16 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Voorspelde glucose van %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Voorspelde glucose om %1$@ is %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Voorspelde glucose is binnen bereik.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Voorspelde glucose van %1$@ ligt onder je ingestelde glucoseveiligheidslimiet.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Voorspelde glucose van %1$@ is onder het onderbreken van basaal instelling.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Verwachte glucose van %1$@ is lager dan je ingestelde insulineonderbrekingsdrempel.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/pl.lproj/Localizable.strings b/DoseMathTests/pl.lproj/Localizable.strings
index de8ed4e1d2..37275a855b 100644
--- a/DoseMathTests/pl.lproj/Localizable.strings
+++ b/DoseMathTests/pl.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Obecny cukier jest %1$@ poniżej poziomu korekcji.";
+"Current glucose of %1$@ is below correction range." = "Poziom glukozy %1$@ jest poniżej wartości korekcji.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -8,19 +8,26 @@
"g" = "g";
/* The short unit display string for milligrams of glucose per decilter */
-"mg/dL" = "mg/dL";
+"mg/dL" = "mg/dl";
/* The short unit display string for millimoles of glucose per liter */
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Przewidywany cukier o %1$@ wyniesie %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Przewidywany poziom cukru o %1$@ wyniesie %2$@";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Przewidywane stężenie glukozy jest w zakresie.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Przewidywana glukoza %1$@ jest poniżej ustawionego bezpiecznego limitu glukozy.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Przewidywany poziom cukru %1$@ jest poniżej progu wstrzymania.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Przewidywany poziom cukru %1$@ jest poniżej progu zawieszenia.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
/* The short unit display string for international units of insulin */
"U" = "J";
+
diff --git a/DoseMathTests/pt-BR.lproj/Localizable.strings b/DoseMathTests/pt-BR.lproj/Localizable.strings
index 95e33d98bb..e2b2c21af8 100644
--- a/DoseMathTests/pt-BR.lproj/Localizable.strings
+++ b/DoseMathTests/pt-BR.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = " Glicemia atual %1$@ está abaixo da zona de correção.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,10 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Glicemia prevista em %1$@ é %2$@.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Glicemia prevista de %1$@ está abaixo do limite de suspensão.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/ro.lproj/Localizable.strings b/DoseMathTests/ro.lproj/Localizable.strings
index 95e33d98bb..e40c294d20 100644
--- a/DoseMathTests/ro.lproj/Localizable.strings
+++ b/DoseMathTests/ro.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = " Glicemia curentă de %1$@ se situează sub intervalul țintă de corecție.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,13 +14,19 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Glicemia prognozată pentru %1$@ este %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Glicemia prognozată este în interval.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Glicemia prognozată de %1$@ se situează sub limita de siguranță configurată.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Glicemia prognozată de %1$@ se situează sub limita de suspendare configurată";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
-"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+"QUANTITY_VALUE_AND_UNIT" = "%1$@%2$@";
/* The short unit display string for international units of insulin */
"U" = "U";
diff --git a/DoseMathTests/ru.lproj/Localizable.strings b/DoseMathTests/ru.lproj/Localizable.strings
index c15e8d72e7..ee719e1110 100644
--- a/DoseMathTests/ru.lproj/Localizable.strings
+++ b/DoseMathTests/ru.lproj/Localizable.strings
@@ -1,8 +1,8 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = " Текущая гликемия %1$@ ниже диапазона коррекции";
+"Current glucose of %1$@ is below correction range." = "Гликемия %1$@ ниже диапазона коррекции";
/* The short unit display string for decibles */
-"dB" = "dB";
+"dB" = "дБ";
/* The short unit display string for grams */
"g" = "г";
@@ -11,13 +11,19 @@
"mg/dL" = "мг/дл";
/* The short unit display string for millimoles of glucose per liter */
-"mmol/L" = "ммоль/л";
+"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Предсказываемая гликемия в %1$@ - %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Прогнозируемый уровень глюкозы на %1$@ составляет %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Прогнозируемый уровень глюкозы находится в диапазоне.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Прогнозируемое значение глюкозы %1$@ ниже установленного вами предела безопасности глюкозы.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Предсказываемая гликемия %1$@ ниже установленного вами порога приостановки помпы";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Предсказываемая гликемия %1$@ ниже ваших настроек порога приостановки помпы";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/sk.lproj/Localizable.strings b/DoseMathTests/sk.lproj/Localizable.strings
new file mode 100644
index 0000000000..a8f518bed3
--- /dev/null
+++ b/DoseMathTests/sk.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
+"Current glucose of %1$@ is below correction range." = "Aktuálna glykémie %1$@ je pod cieľovým rozsahom.";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
+/* The short unit display string for grams */
+"g" = "g";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
+"Predicted glucose at %1$@ is %2$@." = "Predpokladaná glykémia o %1$@ je %2$@ .";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Predpokladaná glykémia je v cieľovom rozsahu.";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "j";
+
diff --git a/DoseMathTests/sv.lproj/Localizable.strings b/DoseMathTests/sv.lproj/Localizable.strings
index b992061cd5..a464fa7a93 100644
--- a/DoseMathTests/sv.lproj/Localizable.strings
+++ b/DoseMathTests/sv.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Nuvarande glukosvärde %1$@ är under målvärdet.";
+"Current glucose of %1$@ is below correction range." = "Nuvarande glukosvärde %1$@ är under målvärde.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -11,13 +11,16 @@
"mg/dL" = "mg/dl";
/* The short unit display string for millimoles of glucose per liter */
-"mmol/L" = "mmol/l";
+"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
"Predicted glucose at %1$@ is %2$@." = "Förväntat glukosvärde vid %1$@ är %2$@.";
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "Förväntat blodsocker på %1$@ är under ditt tröskelvärde.";
+
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Det förväntade slutglukosvärdet %1$@ är under ditt angivna tröskelvärde.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Förväntat glukosvärde %1$@ är under ditt tröskelvärde.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/DoseMathTests/tr.lproj/Localizable.strings b/DoseMathTests/tr.lproj/Localizable.strings
index cb195752e8..16eb8735b9 100644
--- a/DoseMathTests/tr.lproj/Localizable.strings
+++ b/DoseMathTests/tr.lproj/Localizable.strings
@@ -1,11 +1,11 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = "%1$@ Mevcut KŞ düzeltme aralığının altında.";
/* The short unit display string for decibles */
"dB" = "dB";
/* The short unit display string for grams */
-"g" = "g";
+"g" = "gr";
/* The short unit display string for milligrams of glucose per decilter */
"mg/dL" = "mg/dL";
@@ -14,13 +14,20 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Tahmini KŞ %1$@ %2$@.";
+
+/* Notice when predicted glucose for bolus recommendation is in range */
+"Predicted glucose is in range." = "Tahmini KŞ aralık içinde.";
+
+/* Notice message when recommending bolus when BG is below the glucose safety limit. (1: glucose value) */
+"Predicted glucose of %1$@ is below your glucose safety limit setting." = "%1$@ tahmini KŞ, KŞ güvenlik limiti ayarınızın altında.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Tahmini KŞ %1$@ askıya alma eşiği ayarınızın altında.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
/* The short unit display string for international units of insulin */
-"U" = "U";
+"U" = "Ü";
+
diff --git a/DoseMathTests/vi.lproj/Localizable.strings b/DoseMathTests/vi.lproj/Localizable.strings
index 95e33d98bb..1787817048 100644
--- a/DoseMathTests/vi.lproj/Localizable.strings
+++ b/DoseMathTests/vi.lproj/Localizable.strings
@@ -1,5 +1,5 @@
/* Message when offering bolus recommendation even though bg is below range. (1: glucose value) */
-"Current glucose of %1$@ is below correction range." = "Current glucose of %1$@ is below correction range.";
+"Current glucose of %1$@ is below correction range." = " Chỉ số glucose hiện tại %1$@ nằm dưới Phạm vi Điều chỉnh.";
/* The short unit display string for decibles */
"dB" = "dB";
@@ -14,10 +14,10 @@
"mmol/L" = "mmol/L";
/* Message when offering bolus recommendation even though bg is below range and minBG is in future. (1: glucose time)(2: glucose number) */
-"Predicted glucose at %1$@ is %2$@." = "Predicted glucose at %1$@ is %2$@.";
+"Predicted glucose at %1$@ is %2$@." = "Dự đoán đường huyết vào lúc %1$@ là %2$@.";
/* Notice message when recommending bolus when BG is below the suspend threshold. (1: glucose value) */
-"Predicted glucose of %1$@ is below your suspend threshold setting." = "Predicted glucose of %1$@ is below your suspend threshold setting.";
+"Predicted glucose of %1$@ is below your suspend threshold setting." = "Dự đoán đường huyết %1$@ là dưới ngưỡng tạm ngưng trong cài đặt của bạn.";
/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
diff --git a/Learn/Base.lproj/LaunchScreen.storyboard b/Learn/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index bfa3612941..0000000000
--- a/Learn/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Learn/ar.lproj/Main.strings b/Learn/ar.lproj/Main.strings
index bb24a4e11e..6359029045 100644
--- a/Learn/ar.lproj/Main.strings
+++ b/Learn/ar.lproj/Main.strings
@@ -1,3 +1,3 @@
-
/* Class = "UINavigationItem"; title = "Learn"; ObjectID = "8hF-Ij-B7m"; */
"8hF-Ij-B7m.title" = "تعلم";
+
diff --git a/Learn/da.lproj/InfoPlist.strings b/Learn/da.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..bf67d54ddb
--- /dev/null
+++ b/Learn/da.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Lær";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Mad-data fra Health-databasen bruges til at bestemme blodsukkereffekten. Blodsukkerdata fra Health-databasen bruges til graftegning og momentumberegning. Søvndata fra sundhedsdatabasen bruges til at optimere leveringen af opdateringer om komplikationer af Apple Watch i den tid, du er vågen.";
+
diff --git a/Learn/da.lproj/Main.strings b/Learn/da.lproj/Main.strings
index 50fa41e306..d8d90ac21a 100644
--- a/Learn/da.lproj/Main.strings
+++ b/Learn/da.lproj/Main.strings
@@ -1,3 +1,3 @@
/* Class = "UINavigationItem"; title = "Learn"; ObjectID = "8hF-Ij-B7m"; */
-"8hF-Ij-B7m.title" = "Learn";
+"8hF-Ij-B7m.title" = "Lær";
diff --git a/Learn/de.lproj/InfoPlist.strings b/Learn/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7b3a9db485
--- /dev/null
+++ b/Learn/de.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Lerne";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Mahlzeitendaten aus der Health Datenbank werden verwendet, um die Glukoseeffekte zu bestimmen. Glukosedaten aus der Health Datenbank werden zur grafischen Darstellung und Impulsberechnung verwendet. Schlafdaten aus der Health-Datenbank werden verwendet, um die Bereitstellung von Apple Watch-Komplikationsupdates während Ihrer Wachzeit zu optimieren.";
+
diff --git a/Learn/es.lproj/InfoPlist.strings b/Learn/es.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..9ca3ae0719
--- /dev/null
+++ b/Learn/es.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Aprender";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Los datos de alimentos de la base de datos de Salud se utilizan para determinar los efectos en el nivel de glucosa. Los datos de glucosa de la base de datos de Salud se utilizan para graficar y determinar cálculos de momento. Los datos de Sueño de la base de datos de Salud se utilizan para optimizar la entrega de actualizaciones de las complicaciones del Apple Watch durante el tiempo que está despierto.";
+
diff --git a/Learn/fi.lproj/InfoPlist.strings b/Learn/fi.lproj/InfoPlist.strings
index fbbd5eaa64..72a3c2f38b 100644
--- a/Learn/fi.lproj/InfoPlist.strings
+++ b/Learn/fi.lproj/InfoPlist.strings
@@ -1,3 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Opettele";
+
/* Privacy - Health Share Usage Description */
"NSHealthShareUsageDescription" = "Terveys-sovelluksen ateriatietoja käytetään glukoosivaikutusten määrittämiseen. Terveys-sovelluksen glukoositietoja käytetään graafeissa ja laskelmissa. Unitietoja käytetään Apple Watch -komplikaation toiminnan optimointiin hereillä olon aikana.";
diff --git a/Learn/fr.lproj/InfoPlist.strings b/Learn/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..904ee70a5b
--- /dev/null
+++ b/Learn/fr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Apprendre";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Les données sur les repas provenant de la base de données Santé sont utilisées pour déterminer les effets du glucose. Les données relatives au glucose provenant de la base de données Santé sont utilisées pour la création de graphiques et le calcul de l'élan. Les données relatives au sommeil provenant de la base de données Santé sont utilisées pour optimiser l'envoi des mises à jour des complications de l'Apple Watch pendant la période où vous êtes éveillé(e).";
+
diff --git a/Learn/he.lproj/LaunchScreen.strings b/Learn/he.lproj/LaunchScreen.strings
deleted file mode 100644
index 8b13789179..0000000000
--- a/Learn/he.lproj/LaunchScreen.strings
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/Learn/he.lproj/Main.strings b/Learn/he.lproj/Main.strings
index 6b8f04c045..50fa41e306 100644
--- a/Learn/he.lproj/Main.strings
+++ b/Learn/he.lproj/Main.strings
@@ -1,3 +1,3 @@
-
/* Class = "UINavigationItem"; title = "Learn"; ObjectID = "8hF-Ij-B7m"; */
"8hF-Ij-B7m.title" = "Learn";
+
diff --git a/Learn/it.lproj/InfoPlist.strings b/Learn/it.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..3cf2b9683c
--- /dev/null
+++ b/Learn/it.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Impara";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "I dati sui pasti del database Salute vengono utilizzati per determinare gli effetti del glucosio. I dati sul glucosio del database Salute vengono utilizzati per la rappresentazione grafica e il calcolo del momento. I dati sul sonno del database Salute vengono utilizzati per ottimizzare la consegna degli aggiornamenti delle complicazioni di Apple Watch durante il periodo di veglia.";
+
diff --git a/Learn/nb.lproj/InfoPlist.strings b/Learn/nb.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..874720150f
--- /dev/null
+++ b/Learn/nb.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Lære";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Måltidsdata fra helsedatabasen brukes til å bestemme glukoseeffekter. Glukosedata fra helsedatabasen brukes til grafer og momentumberegning. Søvndata fra helsedatabasen brukes til å optimalisere leveringen av Apple Watch-komplikasjonsoppdateringer når du er våken.";
+
diff --git a/Learn/nl.lproj/InfoPlist.strings b/Learn/nl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..2d6020792e
--- /dev/null
+++ b/Learn/nl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Leer";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Maaltijdgegevens uit de database Gezondheid worden gebruikt om glucose-effecenten te bepalen. Glucosegegevens uit de database Gezondheid worden gebruikt voor grafieken en het berekenen van trendlijnen. Slaapgegevens uit de database Gezondheid worden gebruikt om de Apple Watch complicatie bij te werken wanneer je wakker bent.";
+
diff --git a/Learn/pl.lproj/InfoPlist.strings b/Learn/pl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..afba6db611
--- /dev/null
+++ b/Learn/pl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Learn";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Dane posiłków z bazy danych aplikacji Zdrowie służą do określania wpływu glukozy. Dane dotyczące glukozy z bazy danych aplikacji Zdrowie są wykorzystywane do tworzenia wykresów i wyznaczania trendu. Dane dotyczące snu z bazy danych aplikacji Zdrowie służą do optymalizacji dostarczania aktualizacji komplikacji Apple Watch w czasie, gdy nie śpisz.";
+
diff --git a/Learn/pl.lproj/Main.strings b/Learn/pl.lproj/Main.strings
index 6b8f04c045..50fa41e306 100644
--- a/Learn/pl.lproj/Main.strings
+++ b/Learn/pl.lproj/Main.strings
@@ -1,3 +1,3 @@
-
/* Class = "UINavigationItem"; title = "Learn"; ObjectID = "8hF-Ij-B7m"; */
"8hF-Ij-B7m.title" = "Learn";
+
diff --git a/Learn/ro.lproj/InfoPlist.strings b/Learn/ro.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7b3f99c93d
--- /dev/null
+++ b/Learn/ro.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Learn";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Datele mesei din baza de date din aplicația Sănătate sunt folosite pentru a determina efectele glicemice. Datele despre glicemie din baza de date Sănătate sunt folosite pentru construirea graficelor și calcularea influențelor glicemice. Datele de somn din baza de date Sănătate sunt folosite pentru a optimiza livrarea de actualizări de datele ale ceasului Apple pe perioada când sunteți treaz.";
+
diff --git a/Learn/ru.lproj/InfoPlist.strings b/Learn/ru.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..c0198b35f9
--- /dev/null
+++ b/Learn/ru.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle name */
+"CFBundleName" = "Узнать";
+
diff --git a/Learn/sk.lproj/InfoPlist.strings b/Learn/sk.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..da8422aedb
--- /dev/null
+++ b/Learn/sk.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Údaje o jedle z databázy Health sa používajú na určenie účinkov glukózy. Údaje o glukóze z databázy Health sa používajú na vytváranie grafov a výpočet hybnosti. Údaje o spánku z databázy Health sa používajú na optimalizáciu doručovania aktualizácií komplikácií Apple Watch v čase, keď ste hore.";
+
diff --git a/Learn/sv.lproj/InfoPlist.strings b/Learn/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..55302cd95c
--- /dev/null
+++ b/Learn/sv.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Learn";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Kolhydratdata från Apple Health-databasen används för att avgöra blodsockereffekt. Blodsockervärden från Apple Health-databasen används i diagram och för beräkning av förändring.";
+
diff --git a/Learn/tr.lproj/InfoPlist.strings b/Learn/tr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7ff69b11e8
--- /dev/null
+++ b/Learn/tr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle name */
+"CFBundleName" = "Öğren";
+
+/* Privacy - Health Share Usage Description */
+"NSHealthShareUsageDescription" = "Sağlık veri tabanından alınan yemek verileri, glikoz etkilerini belirlemek için kullanılır. Sağlık veri tabanından alınan glikoz verileri, grafik ve momentum hesaplaması için kullanılır. Sağlık veritabanındaki uyku verileri, uyanık olduğunuz süre boyunca Apple Watch komplikasyon güncellemelerinin teslimini optimize etmek için kullanılır.";
+
diff --git a/Learn/tr.lproj/LaunchScreen.strings b/Learn/tr.lproj/LaunchScreen.strings
deleted file mode 100644
index 8b13789179..0000000000
--- a/Learn/tr.lproj/LaunchScreen.strings
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/Learn/tr.lproj/Main.strings b/Learn/tr.lproj/Main.strings
index 6b8f04c045..92d1c6c547 100644
--- a/Learn/tr.lproj/Main.strings
+++ b/Learn/tr.lproj/Main.strings
@@ -1,3 +1,3 @@
-
/* Class = "UINavigationItem"; title = "Learn"; ObjectID = "8hF-Ij-B7m"; */
-"8hF-Ij-B7m.title" = "Learn";
+"8hF-Ij-B7m.title" = "Öğren";
+
diff --git a/Loop Intent Extension/ar.lproj/Localizable.strings b/Loop Intent Extension/ar.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/ar.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/da.lproj/InfoPlist.strings b/Loop Intent Extension/da.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e1fa874bc4
--- /dev/null
+++ b/Loop Intent Extension/da.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent-udvidelse";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent-udvidelse";
+
diff --git a/Loop Intent Extension/da.lproj/Localizable.strings b/Loop Intent Extension/da.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/da.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/de.lproj/InfoPlist.strings b/Loop Intent Extension/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..b26b270e4a
--- /dev/null
+++ b/Loop Intent Extension/de.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Absichts Erweiterung";
+
+/* Bundle name */
+"CFBundleName" = "Loop Absichts Erweiterung";
+
diff --git a/Loop Intent Extension/de.lproj/Localizable.strings b/Loop Intent Extension/de.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/de.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/es.lproj/InfoPlist.strings b/Loop Intent Extension/es.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..0ddf6e188b
--- /dev/null
+++ b/Loop Intent Extension/es.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Extensión de Intención de Loop";
+
+/* Bundle name */
+"CFBundleName" = "Extensión de Intención de Loop";
+
diff --git a/Loop Intent Extension/es.lproj/Localizable.strings b/Loop Intent Extension/es.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/es.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/fi.lproj/InfoPlist.strings b/Loop Intent Extension/fi.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7dba838e53
--- /dev/null
+++ b/Loop Intent Extension/fi.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extension";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extension";
+
diff --git a/Loop Intent Extension/fi.lproj/Localizable.strings b/Loop Intent Extension/fi.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/fi.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/fr.lproj/InfoPlist.strings b/Loop Intent Extension/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7dba838e53
--- /dev/null
+++ b/Loop Intent Extension/fr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extension";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extension";
+
diff --git a/Loop Intent Extension/fr.lproj/Localizable.strings b/Loop Intent Extension/fr.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/fr.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/he.lproj/Localizable.strings b/Loop Intent Extension/he.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/he.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/it.lproj/InfoPlist.strings b/Loop Intent Extension/it.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..d7b1b818ad
--- /dev/null
+++ b/Loop Intent Extension/it.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Estensione dell'intento di Loop";
+
+/* Bundle name */
+"CFBundleName" = "Estensione dell'intento di Loop";
+
diff --git a/Loop Intent Extension/it.lproj/Localizable.strings b/Loop Intent Extension/it.lproj/Localizable.strings
new file mode 100644
index 0000000000..dcd56fd902
--- /dev/null
+++ b/Loop Intent Extension/it.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ contro %2$@";
+
diff --git a/Loop Intent Extension/ja.lproj/Localizable.strings b/Loop Intent Extension/ja.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/ja.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/nb.lproj/InfoPlist.strings b/Loop Intent Extension/nb.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..359db83e9d
--- /dev/null
+++ b/Loop Intent Extension/nb.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Utvidelse av Loop intensjon";
+
+/* Bundle name */
+"CFBundleName" = "Utvidelse av Loop intensjon";
+
diff --git a/Loop Intent Extension/nb.lproj/Localizable.strings b/Loop Intent Extension/nb.lproj/Localizable.strings
new file mode 100644
index 0000000000..0039fc241d
--- /dev/null
+++ b/Loop Intent Extension/nb.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v %2$@";
+
diff --git a/Loop Intent Extension/nl.lproj/InfoPlist.strings b/Loop Intent Extension/nl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7e45d4d58b
--- /dev/null
+++ b/Loop Intent Extension/nl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extensie";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extensie";
+
diff --git a/Loop Intent Extension/nl.lproj/Localizable.strings b/Loop Intent Extension/nl.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/nl.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/pl.lproj/InfoPlist.strings b/Loop Intent Extension/pl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7dba838e53
--- /dev/null
+++ b/Loop Intent Extension/pl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extension";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extension";
+
diff --git a/Loop Intent Extension/pl.lproj/Localizable.strings b/Loop Intent Extension/pl.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/pl.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/pt-BR.lproj/Localizable.strings b/Loop Intent Extension/pt-BR.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/pt-BR.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/ro.lproj/InfoPlist.strings b/Loop Intent Extension/ro.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..a9ddd00908
--- /dev/null
+++ b/Loop Intent Extension/ro.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Extensie Intent Loop";
+
+/* Bundle name */
+"CFBundleName" = "Extensie Intent Loop";
+
diff --git a/Loop Intent Extension/ro.lproj/Localizable.strings b/Loop Intent Extension/ro.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/ro.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/ru.lproj/InfoPlist.strings b/Loop Intent Extension/ru.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7dba838e53
--- /dev/null
+++ b/Loop Intent Extension/ru.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extension";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extension";
+
diff --git a/Loop Intent Extension/ru.lproj/Localizable.strings b/Loop Intent Extension/ru.lproj/Localizable.strings
new file mode 100644
index 0000000000..d468c09692
--- /dev/null
+++ b/Loop Intent Extension/ru.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ против %2$@";
+
diff --git a/Loop Intent Extension/sk.lproj/Localizable.strings b/Loop Intent Extension/sk.lproj/Localizable.strings
new file mode 100644
index 0000000000..0039fc241d
--- /dev/null
+++ b/Loop Intent Extension/sk.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v %2$@";
+
diff --git a/Loop Intent Extension/sv.lproj/InfoPlist.strings b/Loop Intent Extension/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..7dba838e53
--- /dev/null
+++ b/Loop Intent Extension/sv.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop Intent Extension";
+
+/* Bundle name */
+"CFBundleName" = "Loop Intent Extension";
+
diff --git a/Loop Intent Extension/sv.lproj/Localizable.strings b/Loop Intent Extension/sv.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/sv.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/tr.lproj/InfoPlist.strings b/Loop Intent Extension/tr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..64bff70e71
--- /dev/null
+++ b/Loop Intent Extension/tr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Döngü Amaç Uzantısı";
+
+/* Bundle name */
+"CFBundleName" = "Döngü Amaç Uzantısı";
+
diff --git a/Loop Intent Extension/tr.lproj/Localizable.strings b/Loop Intent Extension/tr.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/tr.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Intent Extension/vi.lproj/Localizable.strings b/Loop Intent Extension/vi.lproj/Localizable.strings
new file mode 100644
index 0000000000..f4d2b4576f
--- /dev/null
+++ b/Loop Intent Extension/vi.lproj/Localizable.strings
@@ -0,0 +1,3 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
diff --git a/Loop Status Extension/ar.lproj/InfoPlist.strings b/Loop Status Extension/ar.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..034a1e1f6a
--- /dev/null
+++ b/Loop Status Extension/ar.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
diff --git a/Loop Status Extension/ar.lproj/Localizable.strings b/Loop Status Extension/ar.lproj/Localizable.strings
index 5b7fa9b26d..5935bf3282 100644
--- a/Loop Status Extension/ar.lproj/Localizable.strings
+++ b/Loop Status Extension/ar.lproj/Localizable.strings
@@ -1,5 +1,33 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "كارب النشط";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "أنسولين نشط";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "متوقع %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "أنسولين نشط %1$@ وحدة";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "وحدة";
+
diff --git a/Loop Status Extension/ar.lproj/MainInterface.strings b/Loop Status Extension/ar.lproj/MainInterface.strings
index f5f9da2c9a..23ec628122 100644
--- a/Loop Status Extension/ar.lproj/MainInterface.strings
+++ b/Loop Status Extension/ar.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "كارب النشط";
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "متوقع 92 mg/dL";
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "أنسولين نشط";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "أنسولين نشط 1.0 وحدة";
diff --git a/Loop Status Extension/da.lproj/InfoPlist.strings b/Loop Status Extension/da.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..ffe563a634
--- /dev/null
+++ b/Loop Status Extension/da.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop-statusudvidelse";
+
diff --git a/Loop Status Extension/da.lproj/Localizable.strings b/Loop Status Extension/da.lproj/Localizable.strings
index fdea45f6b6..4388492489 100644
--- a/Loop Status Extension/da.lproj/Localizable.strings
+++ b/Loop Status Extension/da.lproj/Localizable.strings
@@ -1,9 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? E";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ E";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktive kulhydrater";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktivt insulin";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
-"Eventually %1$@" = "Til sidst %1$@";
+"Eventually %1$@" = "Med tiden %1$@";
+
+/* The short unit display string for grams */
+"g" = "g";
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ E";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
/* The short unit display string for international units of insulin */
"U" = "E";
diff --git a/Loop Status Extension/da.lproj/MainInterface.strings b/Loop Status Extension/da.lproj/MainInterface.strings
index 00e818d7d5..ca088fa3ce 100644
--- a/Loop Status Extension/da.lproj/MainInterface.strings
+++ b/Loop Status Extension/da.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Til sidst 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Aktive kulhydrater";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 E";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Aktivt insulin";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 E";
diff --git a/Loop Status Extension/de.lproj/InfoPlist.strings b/Loop Status Extension/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..8a7abf7ee4
--- /dev/null
+++ b/Loop Status Extension/de.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status-Erweiterung";
+
diff --git a/Loop Status Extension/de.lproj/Localizable.strings b/Loop Status Extension/de.lproj/Localizable.strings
index 51c1679402..8dac8187e8 100644
--- a/Loop Status Extension/de.lproj/Localizable.strings
+++ b/Loop Status Extension/de.lproj/Localizable.strings
@@ -1,9 +1,18 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
/* Displayed in the widget when the amount of active insulin cannot be determined. */
"? U" = "? IE";
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"%1$@ U" = "%1$@ IE";
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
/* Widget label title describing the active carbs */
"Active Carbs" = "Aktive KH";
@@ -16,9 +25,21 @@
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Irgendwann %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ IE";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
/* The short unit display string for international units of insulin */
"U" = "IE";
diff --git a/Loop Status Extension/de.lproj/MainInterface.strings b/Loop Status Extension/de.lproj/MainInterface.strings
index e525eeb307..fb0ae387e6 100644
--- a/Loop Status Extension/de.lproj/MainInterface.strings
+++ b/Loop Status Extension/de.lproj/MainInterface.strings
@@ -1,6 +1,9 @@
/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
"9iF-xY-Bh4.text" = "Aktive KH";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
"UPi-dG-yYD.text" = "Aktives Insulin";
diff --git a/Loop Status Extension/en.lproj/MainInterface.strings b/Loop Status Extension/en.lproj/MainInterface.strings
index 0f89462fa3..3a52b2e5e2 100644
--- a/Loop Status Extension/en.lproj/MainInterface.strings
+++ b/Loop Status Extension/en.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
-
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
"9iF-xY-Bh4.text" = "Eventually 92 mg/dL";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
"UPi-dG-yYD.text" = "IOB 1.0 U";
+
diff --git a/Loop Status Extension/es.lproj/InfoPlist.strings b/Loop Status Extension/es.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..029eaa2d2a
--- /dev/null
+++ b/Loop Status Extension/es.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Extensión de Estado de Loop";
+
diff --git a/Loop Status Extension/es.lproj/Localizable.strings b/Loop Status Extension/es.lproj/Localizable.strings
index 7d3b493829..a893db7399 100644
--- a/Loop Status Extension/es.lproj/Localizable.strings
+++ b/Loop Status Extension/es.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? gr";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? U";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ U";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Carbohidratos Activos";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Insulina activa";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Eventualmente %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/es.lproj/MainInterface.strings b/Loop Status Extension/es.lproj/MainInterface.strings
index 8d4fcfa1e0..5354b0e9c3 100644
--- a/Loop Status Extension/es.lproj/MainInterface.strings
+++ b/Loop Status Extension/es.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Eventualmente 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Carbohidratos Activos";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 gr";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Insulina activa";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 U";
diff --git a/Loop Status Extension/fi.lproj/InfoPlist.strings b/Loop Status Extension/fi.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..1565e025fa
--- /dev/null
+++ b/Loop Status Extension/fi.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extension";
+
diff --git a/Loop Status Extension/fi.lproj/Localizable.strings b/Loop Status Extension/fi.lproj/Localizable.strings
index 1dbfbd5cf3..af5d51baf2 100644
--- a/Loop Status Extension/fi.lproj/Localizable.strings
+++ b/Loop Status Extension/fi.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? U";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ U";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Akt. hiilari";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Akt. insuliini";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Ennuste %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/fi.lproj/MainInterface.strings b/Loop Status Extension/fi.lproj/MainInterface.strings
index 9bb1d27d3d..a1e847d468 100644
--- a/Loop Status Extension/fi.lproj/MainInterface.strings
+++ b/Loop Status Extension/fi.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Ennuste 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Akt. hiilari";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Akt. insuliini";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 U";
diff --git a/Loop Status Extension/fr.lproj/InfoPlist.strings b/Loop Status Extension/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..1565e025fa
--- /dev/null
+++ b/Loop Status Extension/fr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extension";
+
diff --git a/Loop Status Extension/fr.lproj/Localizable.strings b/Loop Status Extension/fr.lproj/Localizable.strings
index 78372a5724..1c6e8dfb18 100644
--- a/Loop Status Extension/fr.lproj/Localizable.strings
+++ b/Loop Status Extension/fr.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? U";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ U";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Glucides actifs";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Insuline active";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
-"Eventually %1$@" = "Éventuellement %1$@";
+"Eventually %1$@" = "Finalement %1$@";
+
+/* The short unit display string for grams */
+"g" = "g";
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/fr.lproj/MainInterface.strings b/Loop Status Extension/fr.lproj/MainInterface.strings
index 718222e748..4d13ebda2d 100644
--- a/Loop Status Extension/fr.lproj/MainInterface.strings
+++ b/Loop Status Extension/fr.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Éventuellement 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Glucides actifs";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Insuline active";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 U";
diff --git a/Loop Status Extension/he.lproj/InfoPlist.strings b/Loop Status Extension/he.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..034a1e1f6a
--- /dev/null
+++ b/Loop Status Extension/he.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
diff --git a/Loop Status Extension/he.lproj/Localizable.strings b/Loop Status Extension/he.lproj/Localizable.strings
index d21551845d..e8c025e6a6 100644
--- a/Loop Status Extension/he.lproj/Localizable.strings
+++ b/Loop Status Extension/he.lproj/Localizable.strings
@@ -1,5 +1,33 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Active Carbs";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Active Insulin";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Eventually %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/he.lproj/MainInterface.strings b/Loop Status Extension/he.lproj/MainInterface.strings
index 25ea93a823..1adc815b18 100644
--- a/Loop Status Extension/he.lproj/MainInterface.strings
+++ b/Loop Status Extension/he.lproj/MainInterface.strings
@@ -1,12 +1,12 @@
-
/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
"9iF-xY-Bh4.text" = "Active Carbs";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
"UPi-dG-yYD.text" = "Active Insulin";
/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
"Vgf-p1-2QP.text" = "0 U";
-/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
-"dPp-lJ-5sh.text" = "0 g";
diff --git a/Loop Status Extension/it.lproj/InfoPlist.strings b/Loop Status Extension/it.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..da11eb5a77
--- /dev/null
+++ b/Loop Status Extension/it.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Estensione dello stato di funzionamento di Loop";
+
diff --git a/Loop Status Extension/it.lproj/Localizable.strings b/Loop Status Extension/it.lproj/Localizable.strings
index 8d36fd4bed..871ef62d8c 100644
--- a/Loop Status Extension/it.lproj/Localizable.strings
+++ b/Loop Status Extension/it.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? U";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ U";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ contro %2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Carb Attivi";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Insulina attiva";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Probabile Glic. %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/it.lproj/MainInterface.strings b/Loop Status Extension/it.lproj/MainInterface.strings
index 660125a4df..ab9c005998 100644
--- a/Loop Status Extension/it.lproj/MainInterface.strings
+++ b/Loop Status Extension/it.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "probabile glic. 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Carb Attivi";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Insulina attiva";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 U";
diff --git a/Loop Status Extension/ja.lproj/InfoPlist.strings b/Loop Status Extension/ja.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..bb232bb4cc
--- /dev/null
+++ b/Loop Status Extension/ja.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "ループ";
+
diff --git a/Loop Status Extension/ja.lproj/Localizable.strings b/Loop Status Extension/ja.lproj/Localizable.strings
index 0f9b31a8ea..d328a81f35 100644
--- a/Loop Status Extension/ja.lproj/Localizable.strings
+++ b/Loop Status Extension/ja.lproj/Localizable.strings
@@ -1,6 +1,33 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "残存糖質";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "残存インスリン";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "予想 %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/ja.lproj/MainInterface.strings b/Loop Status Extension/ja.lproj/MainInterface.strings
index 3e7844c42b..2407f97e64 100644
--- a/Loop Status Extension/ja.lproj/MainInterface.strings
+++ b/Loop Status Extension/ja.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "予想 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "残存糖質";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "残存インスリン";
diff --git a/Loop Status Extension/nb.lproj/InfoPlist.strings b/Loop Status Extension/nb.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..24d50f5390
--- /dev/null
+++ b/Loop Status Extension/nb.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Utvidelse av Loop status";
+
diff --git a/Loop Status Extension/nb.lproj/Localizable.strings b/Loop Status Extension/nb.lproj/Localizable.strings
index af0e1fc932..2e4a88ce5f 100644
--- a/Loop Status Extension/nb.lproj/Localizable.strings
+++ b/Loop Status Extension/nb.lproj/Localizable.strings
@@ -1,9 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? E";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ E";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v %2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktive karbohydrater";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktivt insulin";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Omsider %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ E";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
/* The short unit display string for international units of insulin */
"U" = "E";
diff --git a/Loop Status Extension/nb.lproj/MainInterface.strings b/Loop Status Extension/nb.lproj/MainInterface.strings
index c464634590..7942de07be 100644
--- a/Loop Status Extension/nb.lproj/MainInterface.strings
+++ b/Loop Status Extension/nb.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Omsider 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Aktive karbohydrater";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 E";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Aktivt insulin";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 E";
diff --git a/Loop Status Extension/nl.lproj/InfoPlist.strings b/Loop Status Extension/nl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..62e5156f17
--- /dev/null
+++ b/Loop Status Extension/nl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extensie";
+
diff --git a/Loop Status Extension/nl.lproj/Localizable.strings b/Loop Status Extension/nl.lproj/Localizable.strings
index 20a25693db..b5f9439380 100644
--- a/Loop Status Extension/nl.lproj/Localizable.strings
+++ b/Loop Status Extension/nl.lproj/Localizable.strings
@@ -1,9 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? E";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ E";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Actieve Koolhydraten";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Actieve Insuline";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Uiteindelijk %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ E";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
/* The short unit display string for international units of insulin */
"U" = "E";
diff --git a/Loop Status Extension/nl.lproj/MainInterface.strings b/Loop Status Extension/nl.lproj/MainInterface.strings
index c652dfaa76..3300ee0aec 100644
--- a/Loop Status Extension/nl.lproj/MainInterface.strings
+++ b/Loop Status Extension/nl.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Uiteindelijk 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Actieve Koolhydraten";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 E";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Actieve Insuline";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 E";
diff --git a/Loop Status Extension/pl.lproj/InfoPlist.strings b/Loop Status Extension/pl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..1565e025fa
--- /dev/null
+++ b/Loop Status Extension/pl.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extension";
+
diff --git a/Loop Status Extension/pl.lproj/Localizable.strings b/Loop Status Extension/pl.lproj/Localizable.strings
index 6522679f83..9f9cab187f 100644
--- a/Loop Status Extension/pl.lproj/Localizable.strings
+++ b/Loop Status Extension/pl.lproj/Localizable.strings
@@ -1,5 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? J";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ J";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktywne węglowodany";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktywna insulina";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Docelowo %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ J";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dl";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "J";
+
diff --git a/Loop Status Extension/pl.lproj/MainInterface.strings b/Loop Status Extension/pl.lproj/MainInterface.strings
index 7421b4922b..137aac2c3c 100644
--- a/Loop Status Extension/pl.lproj/MainInterface.strings
+++ b/Loop Status Extension/pl.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Aktywne węglowodany";
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "docelowo 92 mg/dL";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Aktywna insulina";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 J";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 J";
diff --git a/Loop Status Extension/pt-BR.lproj/InfoPlist.strings b/Loop Status Extension/pt-BR.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..034a1e1f6a
--- /dev/null
+++ b/Loop Status Extension/pt-BR.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
diff --git a/Loop Status Extension/pt-BR.lproj/Localizable.strings b/Loop Status Extension/pt-BR.lproj/Localizable.strings
index 7d3b493829..ed1ddc8056 100644
--- a/Loop Status Extension/pt-BR.lproj/Localizable.strings
+++ b/Loop Status Extension/pt-BR.lproj/Localizable.strings
@@ -1,6 +1,33 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Carboidratos Ativos";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Insulina Ativa";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Eventualmente %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/pt-BR.lproj/MainInterface.strings b/Loop Status Extension/pt-BR.lproj/MainInterface.strings
index 8d4fcfa1e0..09c2331507 100644
--- a/Loop Status Extension/pt-BR.lproj/MainInterface.strings
+++ b/Loop Status Extension/pt-BR.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Eventualmente 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Carboidratos Ativos";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Insulina Ativa";
diff --git a/Loop Status Extension/ro.lproj/InfoPlist.strings b/Loop Status Extension/ro.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..811f60ffd2
--- /dev/null
+++ b/Loop Status Extension/ro.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Extensie stare Loop";
+
diff --git a/Loop Status Extension/ro.lproj/Localizable.strings b/Loop Status Extension/ro.lproj/Localizable.strings
index 177cf6e0c5..e749a36e8e 100644
--- a/Loop Status Extension/ro.lproj/Localizable.strings
+++ b/Loop Status Extension/ro.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? U";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ U";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Carbohidrați activi";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Insulină activă";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Eventually %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@%2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/ro.lproj/MainInterface.strings b/Loop Status Extension/ro.lproj/MainInterface.strings
index 3eb5d43c9e..52df0e4c8c 100644
--- a/Loop Status Extension/ro.lproj/MainInterface.strings
+++ b/Loop Status Extension/ro.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Eventually 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Carbohidrați activi";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Insulină activă";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 U";
diff --git a/Loop Status Extension/ru.lproj/InfoPlist.strings b/Loop Status Extension/ru.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..1565e025fa
--- /dev/null
+++ b/Loop Status Extension/ru.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extension";
+
diff --git a/Loop Status Extension/ru.lproj/Localizable.strings b/Loop Status Extension/ru.lproj/Localizable.strings
index 1049e0663e..319107dd52 100644
--- a/Loop Status Extension/ru.lproj/Localizable.strings
+++ b/Loop Status Extension/ru.lproj/Localizable.strings
@@ -1,6 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? г";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? ед.";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ Ед.";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ против %2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Активные углеводы";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Активный инсулин";
+
+/* The short unit display string for decibles */
+"dB" = "дБ";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "В конечном итоге %1$@";
+/* The short unit display string for grams */
+"g" = "г";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ ед";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "мг/дл";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "ед";
+
diff --git a/Loop Status Extension/ru.lproj/MainInterface.strings b/Loop Status Extension/ru.lproj/MainInterface.strings
index ac17fcfd98..7a44069cbe 100644
--- a/Loop Status Extension/ru.lproj/MainInterface.strings
+++ b/Loop Status Extension/ru.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "в конечном итоге 92 мг/дл";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Активные углеводы";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 ед";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 г";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Активный инсулин";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 ед.";
diff --git a/Loop Status Extension/sk.lproj/InfoPlist.strings b/Loop Status Extension/sk.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..034a1e1f6a
--- /dev/null
+++ b/Loop Status Extension/sk.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
diff --git a/Loop Status Extension/sk.lproj/Localizable.strings b/Loop Status Extension/sk.lproj/Localizable.strings
new file mode 100644
index 0000000000..f7fe0850f1
--- /dev/null
+++ b/Loop Status Extension/sk.lproj/Localizable.strings
@@ -0,0 +1,42 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? j";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%@ j";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v %2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktívne sacharidy";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktívny inzulín";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
+/* The short unit display string for grams */
+"g" = "g";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"IOB %1$@ U" = "IOB %1$@ j";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "j";
+
diff --git a/Loop Status Extension/sk.lproj/MainInterface.strings b/Loop Status Extension/sk.lproj/MainInterface.strings
new file mode 100644
index 0000000000..e249f99412
--- /dev/null
+++ b/Loop Status Extension/sk.lproj/MainInterface.strings
@@ -0,0 +1,12 @@
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Aktívne sacharidy";
+
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Aktívny inzulín";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 j";
+
diff --git a/Loop Status Extension/sv.lproj/InfoPlist.strings b/Loop Status Extension/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..1565e025fa
--- /dev/null
+++ b/Loop Status Extension/sv.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Status Extension";
+
diff --git a/Loop Status Extension/sv.lproj/Localizable.strings b/Loop Status Extension/sv.lproj/Localizable.strings
index ec07cf13d5..fb3f8b00e7 100644
--- a/Loop Status Extension/sv.lproj/Localizable.strings
+++ b/Loop Status Extension/sv.lproj/Localizable.strings
@@ -1,9 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? g";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? E";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ E";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktiva kolhydrater";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktivt insulin";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Förväntat %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ E";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dl";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
/* The short unit display string for international units of insulin */
"U" = "E";
diff --git a/Loop Status Extension/sv.lproj/MainInterface.strings b/Loop Status Extension/sv.lproj/MainInterface.strings
index d826dbc61a..afc966ed37 100644
--- a/Loop Status Extension/sv.lproj/MainInterface.strings
+++ b/Loop Status Extension/sv.lproj/MainInterface.strings
@@ -1,6 +1,12 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Förväntat 5,1 mmol/l";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Aktiva kolhydrater";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 E";
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 g";
+
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Aktivt insulin";
+
+/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
+"Vgf-p1-2QP.text" = "0 E";
diff --git a/Loop Status Extension/tr.lproj/InfoPlist.strings b/Loop Status Extension/tr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..a67e46ff7e
--- /dev/null
+++ b/Loop Status Extension/tr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
+/* Bundle name */
+"CFBundleName" = "Loop Durum Uzantısı";
+
diff --git a/Loop Status Extension/tr.lproj/Localizable.strings b/Loop Status Extension/tr.lproj/Localizable.strings
index d21551845d..0f5ebe9125 100644
--- a/Loop Status Extension/tr.lproj/Localizable.strings
+++ b/Loop Status Extension/tr.lproj/Localizable.strings
@@ -1,5 +1,45 @@
+/* Displayed in the widget when the amount of active carbs cannot be determined. */
+"? g" = "? gr";
+
+/* Displayed in the widget when the amount of active insulin cannot be determined. */
+"? U" = "? Ü";
+
+/* The subtitle format describing the grams of active carbs. (1: localized carb value description) */
+"%1$@" = "%1$@";
+
+/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
+"%1$@ U" = "%1$@ Ü";
+
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Aktif Karb.";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Aktif İnsülin";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
-"Eventually %1$@" = "Eventually %1$@";
+"Eventually %1$@" = "Nihai KŞ %1$@";
+
+/* The short unit display string for grams */
+"g" = "gr";
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
-"IOB %1$@ U" = "IOB %1$@ U";
+"IOB %1$@ U" = "AİNS %1$@ Ü";
+
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "Ü";
+
diff --git a/Loop Status Extension/tr.lproj/MainInterface.strings b/Loop Status Extension/tr.lproj/MainInterface.strings
index 25ea93a823..de7b3fc545 100644
--- a/Loop Status Extension/tr.lproj/MainInterface.strings
+++ b/Loop Status Extension/tr.lproj/MainInterface.strings
@@ -1,12 +1,12 @@
-
/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Active Carbs";
+"9iF-xY-Bh4.text" = "Aktif Karb.";
+
+/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
+"dPp-lJ-5sh.text" = "0 gr";
/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "Active Insulin";
+"UPi-dG-yYD.text" = "Aktif İnsülin";
/* Class = "UILabel"; text = "0 U"; ObjectID = "Vgf-p1-2QP"; */
-"Vgf-p1-2QP.text" = "0 U";
+"Vgf-p1-2QP.text" = "0 Ü";
-/* Class = "UILabel"; text = "0 g"; ObjectID = "dPp-lJ-5sh"; */
-"dPp-lJ-5sh.text" = "0 g";
diff --git a/Loop Status Extension/vi.lproj/InfoPlist.strings b/Loop Status Extension/vi.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..034a1e1f6a
--- /dev/null
+++ b/Loop Status Extension/vi.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Loop";
+
diff --git a/Loop Status Extension/vi.lproj/Localizable.strings b/Loop Status Extension/vi.lproj/Localizable.strings
index 471ea04c90..a0b94d6a7f 100644
--- a/Loop Status Extension/vi.lproj/Localizable.strings
+++ b/Loop Status Extension/vi.lproj/Localizable.strings
@@ -1,6 +1,33 @@
+/* The format string for the app name and version number. (1: bundle name)(2: bundle version) */
+"%1$@ v%2$@" = "%1$@ v%2$@";
+
+/* Widget label title describing the active carbs */
+"Active Carbs" = "Lượng Carbs còn hoạt động";
+
+/* Widget label title describing the active insulin */
+"Active Insulin" = "Lượng Insulin còn hoạt động";
+
+/* The short unit display string for decibles */
+"dB" = "dB";
+
/* The subtitle format describing eventual glucose. (1: localized glucose value description) */
"Eventually %1$@" = "Kết quả là %1$@";
+/* The short unit display string for grams */
+"g" = "g";
+
/* The subtitle format describing units of active insulin. (1: localized insulin value description) */
"IOB %1$@ U" = "IOB %1$@ U";
+/* The short unit display string for milligrams of glucose per decilter */
+"mg/dL" = "mg/dL";
+
+/* The short unit display string for millimoles of glucose per liter */
+"mmol/L" = "mmol/L";
+
+/* Format string for combining localized numeric value and unit. (1: numeric value)(2: unit) */
+"QUANTITY_VALUE_AND_UNIT" = "%1$@ %2$@";
+
+/* The short unit display string for international units of insulin */
+"U" = "U";
+
diff --git a/Loop Status Extension/vi.lproj/MainInterface.strings b/Loop Status Extension/vi.lproj/MainInterface.strings
index 66ec8fb074..c766b97e1b 100644
--- a/Loop Status Extension/vi.lproj/MainInterface.strings
+++ b/Loop Status Extension/vi.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
-"9iF-xY-Bh4.text" = "Kết quả là 92 mg/dL";
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
+"9iF-xY-Bh4.text" = "Lượng Carbs còn hoạt động";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
-"UPi-dG-yYD.text" = "IOB 1.0 U";
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
+"UPi-dG-yYD.text" = "Lượng Insulin còn hoạt động";
diff --git a/Loop Status Extension/zh-Hans.lproj/MainInterface.strings b/Loop Status Extension/zh-Hans.lproj/MainInterface.strings
index c315a458c2..2a063e6084 100644
--- a/Loop Status Extension/zh-Hans.lproj/MainInterface.strings
+++ b/Loop Status Extension/zh-Hans.lproj/MainInterface.strings
@@ -1,6 +1,6 @@
-/* Class = "UILabel"; text = "Eventually 92 mg/dL"; ObjectID = "9iF-xY-Bh4"; */
+/* Class = "UILabel"; text = "Active Carbs"; ObjectID = "9iF-xY-Bh4"; */
"9iF-xY-Bh4.text" = "最终血糖为92 毫克/分升";
-/* Class = "UILabel"; text = "IOB 1.0 U"; ObjectID = "UPi-dG-yYD"; */
+/* Class = "UILabel"; text = "Active Insulin"; ObjectID = "UPi-dG-yYD"; */
"UPi-dG-yYD.text" = "IOB 1.0 单位";
diff --git a/Loop.xcconfig b/Loop.xcconfig
index af9e83470a..9e1bb856ae 100644
--- a/Loop.xcconfig
+++ b/Loop.xcconfig
@@ -43,7 +43,10 @@ LOOP_PROVISIONING_PROFILE_SPECIFIER_WATCHAPP_RELEASE =
LOOP_PROVISIONING_PROFILE_SPECIFIER_WATCHAPP_EXTENSION_RELEASE =
// Min iOS Version [DEFAULT]
-IPHONEOS_DEPLOYMENT_TARGET = 14.1
+IPHONEOS_DEPLOYMENT_TARGET = 15.1
+
+// Base string for opening app via URL [DEFAULT]
+URL_SCHEME_NAME = $(MAIN_APP_DISPLAY_NAME)
// Version [DEFAULT]
#include? "Version.xcconfig"
diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj
index f220c9c11d..52137df99d 100644
--- a/Loop.xcodeproj/project.pbxproj
+++ b/Loop.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 52;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -85,11 +85,8 @@
4344629820A8B2D700C4BE6F /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4374B5EE209D84BE00D17AA8 /* OSLog.swift */; };
4345E3F421F036FC009E00E5 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D848AF1E7DCBE100DADCBC /* Result.swift */; };
4345E3F521F036FC009E00E5 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D848AF1E7DCBE100DADCBC /* Result.swift */; };
- 4345E3F821F03D2A009E00E5 /* DatesAndNumberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4345E3F721F03D2A009E00E5 /* DatesAndNumberCell.swift */; };
- 4345E3FA21F0473B009E00E5 /* TextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4345E3F921F0473B009E00E5 /* TextCell.swift */; };
4345E3FB21F04911009E00E5 /* UIColor+HIG.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43BFF0C31E4659E700FF19A9 /* UIColor+HIG.swift */; };
4345E3FC21F04911009E00E5 /* UIColor+HIG.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43BFF0C31E4659E700FF19A9 /* UIColor+HIG.swift */; };
- 4345E3FE21F04A50009E00E5 /* DateIntervalFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4345E3FD21F04A50009E00E5 /* DateIntervalFormatter.swift */; };
4345E3FF21F051C6009E00E5 /* LoopCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; };
4345E40021F051DD009E00E5 /* LoopCore.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
4345E40121F67300009E00E5 /* PotentialCarbEntryUserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DE92581C5479E4001FFDE1 /* PotentialCarbEntryUserInfo.swift */; };
@@ -157,29 +154,15 @@
43C05CAC21EB2B8B006FB252 /* NSBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430DA58D1D4AEC230097D1CA /* NSBundle.swift */; };
43C05CAD21EB2BBF006FB252 /* NSUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430B29892041F54A00BA9F93 /* NSUserDefaults.swift */; };
43C05CAF21EB2C24006FB252 /* NSBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430DA58D1D4AEC230097D1CA /* NSBundle.swift */; };
- 43C05CB121EBBDB9006FB252 /* TimeInRangeLesson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CB021EBBDB9006FB252 /* TimeInRangeLesson.swift */; };
43C05CB221EBD88A006FB252 /* LoopCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9002A21EB209400AF44BF /* LoopCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 43C05CB521EBE274006FB252 /* Date.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CB421EBE274006FB252 /* Date.swift */; };
- 43C05CB621EBE321006FB252 /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
43C05CB821EBEA54006FB252 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CB721EBEA54006FB252 /* HKUnit.swift */; };
43C05CB921EBEA54006FB252 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CB721EBEA54006FB252 /* HKUnit.swift */; };
- 43C05CBD21EBF77D006FB252 /* LessonsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CBC21EBF77D006FB252 /* LessonsViewController.swift */; };
- 43C05CC021EBFFA4006FB252 /* Lesson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CBF21EBFFA4006FB252 /* Lesson.swift */; };
- 43C05CC221EC06E4006FB252 /* LessonConfigurationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CC121EC06E4006FB252 /* LessonConfigurationViewController.swift */; };
43C05CC521EC29E3006FB252 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4374B5F3209D89A900D17AA8 /* TextFieldTableViewCell.swift */; };
- 43C05CC621EC29E7006FB252 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4374B5F3209D89A900D17AA8 /* TextFieldTableViewCell.swift */; };
43C05CC721EC2ABC006FB252 /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1E91CF26C29000DB779 /* IdentifiableClass.swift */; };
43C05CC821EC2ABC006FB252 /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1E91CF26C29000DB779 /* IdentifiableClass.swift */; };
- 43C05CCA21EC382B006FB252 /* NumberEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C05CC921EC382B006FB252 /* NumberEntry.swift */; };
43C0944A1CACCC73001F6403 /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C094491CACCC73001F6403 /* NotificationManager.swift */; };
43C2FAE11EB656A500364AFF /* GlucoseEffectVelocity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C2FAE01EB656A500364AFF /* GlucoseEffectVelocity.swift */; };
43C513191E864C4E001547C7 /* GlucoseRangeSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C513181E864C4E001547C7 /* GlucoseRangeSchedule.swift */; };
- 43C5F257222C7B7200905D10 /* TimeComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C5F256222C7B7200905D10 /* TimeComponents.swift */; };
- 43C5F258222C7BD400905D10 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9FFA421EA9A0C00AF44BF /* AppDelegate.swift */; };
- 43C5F25A222C921B00905D10 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C5F259222C921B00905D10 /* OSLog.swift */; };
- 43C728F5222266F000C62969 /* ModalDayLesson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C728F4222266F000C62969 /* ModalDayLesson.swift */; };
- 43C728F72222700000C62969 /* DateIntervalEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C728F62222700000C62969 /* DateIntervalEntry.swift */; };
- 43C728F9222A448700C62969 /* DayCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C728F8222A448700C62969 /* DayCalculator.swift */; };
43CB2B2B1D924D450079823D /* WCSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CB2B2A1D924D450079823D /* WCSession.swift */; };
43CE7CDE1CA8B63E003CC1B0 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CE7CDD1CA8B63E003CC1B0 /* Data.swift */; };
43D381621EBD9759007F8C8F /* HeaderValuesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D381611EBD9759007F8C8F /* HeaderValuesTableViewCell.swift */; };
@@ -187,29 +170,11 @@
43D9002021EB209400AF44BF /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
43D9002D21EB225D00AF44BF /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9002C21EB225D00AF44BF /* HealthKit.framework */; };
43D9002F21EB234400AF44BF /* LoopCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9002A21EB209400AF44BF /* LoopCore.framework */; };
- 43D9F81821EC51CC000578CD /* DateEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F81721EC51CC000578CD /* DateEntry.swift */; };
- 43D9F81A21EC593C000578CD /* UITableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F81921EC593C000578CD /* UITableViewCell.swift */; };
- 43D9F81E21EF0609000578CD /* NumberRangeEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F81D21EF0609000578CD /* NumberRangeEntry.swift */; };
- 43D9F82021EF0906000578CD /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F81F21EF0906000578CD /* NSNumber.swift */; };
- 43D9F82221EF0A7A000578CD /* QuantityRangeEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F82121EF0A7A000578CD /* QuantityRangeEntry.swift */; };
- 43D9F82421EFF1AB000578CD /* LessonResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9F82321EFF1AB000578CD /* LessonResultsViewController.swift */; };
- 43D9FFAA21EA9A0C00AF44BF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43D9FFA821EA9A0C00AF44BF /* Main.storyboard */; };
- 43D9FFAC21EA9A0F00AF44BF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 43D9FFAB21EA9A0F00AF44BF /* Assets.xcassets */; };
- 43D9FFAF21EA9A0F00AF44BF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43D9FFAD21EA9A0F00AF44BF /* LaunchScreen.storyboard */; };
- 43D9FFB421EA9AD800AF44BF /* LoopUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F75288B1DFE1DC600C322D6 /* LoopUI.framework */; };
- 43D9FFB621EA9B2F00AF44BF /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43F5C2C81B929C09003EB13D /* HealthKit.framework */; };
- 43D9FFBB21EA9CC900AF44BF /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43F78D4B1C914197002152D1 /* LoopKit.framework */; };
- 43D9FFBC21EA9CCD00AF44BF /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 437AFEE6203688CF008C4892 /* LoopKitUI.framework */; };
- 43D9FFC021EAB22E00AF44BF /* DataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9FFBF21EAB22E00AF44BF /* DataManager.swift */; };
43D9FFD321EAE05D00AF44BF /* LoopCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D9FFD121EAE05D00AF44BF /* LoopCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
43D9FFD621EAE05D00AF44BF /* LoopCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; };
43D9FFD721EAE05D00AF44BF /* LoopCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 43D9FFDE21EAE3AE00AF44BF /* LoopCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; };
- 43D9FFE021EAE3E500AF44BF /* LoopUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4F75288B1DFE1DC600C322D6 /* LoopUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 43D9FFE121EAE3E500AF44BF /* LoopCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
43D9FFFB21EAF3D300AF44BF /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
43DBF0531C93EC8200B3C386 /* DeviceDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DBF0521C93EC8200B3C386 /* DeviceDataManager.swift */; };
- 43DBF0591C93F73800B3C386 /* CarbEntryTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DBF0581C93F73800B3C386 /* CarbEntryTableViewController.swift */; };
43DFB62320D4CAE7008A7BAE /* PumpManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C3B6F620BBCAA30026CAFA /* PumpManager.swift */; };
43E2D8D41D20BF42004DA55F /* DoseMathTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E2D8D31D20BF42004DA55F /* DoseMathTests.swift */; };
43E2D8DB1D20C03B004DA55F /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
@@ -296,6 +261,7 @@
4FF4D0F81E1725B000846527 /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434F54561D287FDB002A9274 /* NibLoadable.swift */; };
4FF4D1001E18374700846527 /* WatchContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FF4D0FF1E18374700846527 /* WatchContext.swift */; };
4FF4D1011E18375000846527 /* WatchContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FF4D0FF1E18374700846527 /* WatchContext.swift */; };
+ 63F5E17C297DDF3900A62D4B /* ckcomplication.strings in Resources */ = {isa = PBXBuildFile; fileRef = 63F5E17A297DDF3900A62D4B /* ckcomplication.strings */; };
7D23667D21250C7E0028B67D /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D23667C21250C7E0028B67D /* LocalizedString.swift */; };
7D7076351FE06EDE004AC8EA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D7076371FE06EDE004AC8EA /* Localizable.strings */; };
7D7076451FE06EE0004AC8EA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D7076471FE06EE0004AC8EA /* InfoPlist.strings */; };
@@ -304,8 +270,6 @@
7D7076591FE06EE2004AC8EA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D70765B1FE06EE2004AC8EA /* Localizable.strings */; };
7D70765E1FE06EE3004AC8EA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D7076601FE06EE3004AC8EA /* Localizable.strings */; };
7D7076631FE06EE4004AC8EA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D7076651FE06EE4004AC8EA /* Localizable.strings */; };
- 7D9BEEF32335CF8D005DCFD6 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D9BEEF52335CF8D005DCFD6 /* Localizable.strings */; };
- 80F864E62433BF5D0026EC26 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80F864E42433BF5D0026EC26 /* InfoPlist.strings */; };
891B508524342BE1005DA578 /* CarbAndBolusFlowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891B508424342BE1005DA578 /* CarbAndBolusFlowViewModel.swift */; };
892A5D59222F0A27008961AB /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5D58222F0A27008961AB /* Debug.swift */; };
892A5D692230C41D008961AB /* RangeReplaceableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5D682230C41D008961AB /* RangeReplaceableCollection.swift */; };
@@ -390,6 +354,12 @@
A98556852493F901000FD662 /* AlertStore+SimulatedCoreData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98556842493F901000FD662 /* AlertStore+SimulatedCoreData.swift */; };
A987CD4924A58A0100439ADC /* ZipArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = A987CD4824A58A0100439ADC /* ZipArchive.swift */; };
A999D40624663D18004C89D4 /* PumpManagerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A999D40524663D18004C89D4 /* PumpManagerError.swift */; };
+ A99A114229A581F4007919CE /* BolusAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114129A581F4007919CE /* BolusAction.swift */; };
+ A99A114429A5829A007919CE /* CarbAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114329A5829A007919CE /* CarbAction.swift */; };
+ A99A114629A582A2007919CE /* OverrideAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114529A582A2007919CE /* OverrideAction.swift */; };
+ A99A114E29A5879D007919CE /* BolusActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114B29A5879C007919CE /* BolusActionTests.swift */; };
+ A99A114F29A5879D007919CE /* CarbActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114C29A5879C007919CE /* CarbActionTests.swift */; };
+ A99A115029A5879D007919CE /* OverrideActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99A114D29A5879C007919CE /* OverrideActionTests.swift */; };
A9A056B324B93C62007CF06D /* CriticalEventLogExportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9A056B224B93C62007CF06D /* CriticalEventLogExportView.swift */; };
A9A056B524B94123007CF06D /* CriticalEventLogExportViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9A056B424B94123007CF06D /* CriticalEventLogExportViewModel.swift */; };
A9A63F8E246B271600588D5B /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
@@ -413,7 +383,6 @@
A9DF02CB24F72B9E00B7C988 /* CriticalEventLogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9DF02CA24F72B9E00B7C988 /* CriticalEventLogTests.swift */; };
A9DFAFB324F0415E00950D1E /* CarbBackfillRequestUserInfoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9DFAFB224F0415E00950D1E /* CarbBackfillRequestUserInfoTests.swift */; };
A9DFAFB524F048A000950D1E /* WatchHistoricalCarbsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9DFAFB424F048A000950D1E /* WatchHistoricalCarbsTests.swift */; };
- A9E8A80528A7CAC000C0A8A4 /* RemoteCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9E8A80428A7CAC000C0A8A4 /* RemoteCommandTests.swift */; };
A9F5F1F5251050EC00E7C8A4 /* ZipArchiveTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F5F1F4251050EC00E7C8A4 /* ZipArchiveTests.swift */; };
A9F66FC3247F451500096EA7 /* UIDevice+Loop.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F66FC2247F451500096EA7 /* UIDevice+Loop.swift */; };
A9F703732489BC8500C98AD8 /* CarbStore+SimulatedCoreData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F703722489BC8500C98AD8 /* CarbStore+SimulatedCoreData.swift */; };
@@ -456,7 +425,12 @@
B4E96D5D248A82A2002DABAD /* StatusBarHUDView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B4E96D5C248A82A2002DABAD /* StatusBarHUDView.xib */; };
B4F3D25124AF890C0095CE44 /* BluetoothStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F3D25024AF890C0095CE44 /* BluetoothStateManager.swift */; };
B4FEEF7D24B8A71F00A8DF9B /* DeviceDataManager+DeviceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FEEF7C24B8A71F00A8DF9B /* DeviceDataManager+DeviceStatus.swift */; };
+ C1004DF22981F5B700B8CF94 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1004DF02981F5B700B8CF94 /* InfoPlist.strings */; };
+ C1004DF52981F5B700B8CF94 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1004DF32981F5B700B8CF94 /* Localizable.strings */; };
+ C1004DF82981F5B700B8CF94 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1004DF62981F5B700B8CF94 /* InfoPlist.strings */; };
C10B28461EA9BA5E006EA1FC /* far_future_high_bg_forecast.json in Resources */ = {isa = PBXBuildFile; fileRef = C10B28451EA9BA5E006EA1FC /* far_future_high_bg_forecast.json */; };
+ C11613492983096D00777E7C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C11613472983096D00777E7C /* InfoPlist.strings */; };
+ C116134C2983096D00777E7C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C116134A2983096D00777E7C /* Localizable.strings */; };
C11B9D5B286778A800500CF8 /* SwiftCharts in Frameworks */ = {isa = PBXBuildFile; productRef = C11B9D5A286778A800500CF8 /* SwiftCharts */; };
C11B9D5E286778D000500CF8 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C11B9D5D286778D000500CF8 /* LoopKitUI.framework */; };
C11B9D62286779C000500CF8 /* MockKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C11B9D60286779C000500CF8 /* MockKit.framework */; };
@@ -483,7 +457,6 @@
C16575752539FD60004AE16E /* LoopCoreConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16575742539FD60004AE16E /* LoopCoreConstants.swift */; };
C16575762539FEF3004AE16E /* LoopCoreConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16575742539FD60004AE16E /* LoopCoreConstants.swift */; };
C1657578253A0021004AE16E /* ChartConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1657577253A0021004AE16E /* ChartConstants.swift */; };
- C165B8CE23302C5D0004112E /* RemoteCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C165B8CD23302C5D0004112E /* RemoteCommand.swift */; };
C16B983E26B4893300256B05 /* DoseEnactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16B983D26B4893300256B05 /* DoseEnactor.swift */; };
C16B984026B4898800256B05 /* DoseEnactorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16B983F26B4898800256B05 /* DoseEnactorTests.swift */; };
C16DA84222E8E112008624C2 /* PluginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16DA84122E8E112008624C2 /* PluginManager.swift */; };
@@ -497,7 +470,6 @@
C17824A61E1AF91F00D9D25C /* ManualBolusRecommendation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17824A41E1AD4D100D9D25C /* ManualBolusRecommendation.swift */; };
C17DDC9C28AC339E005FBF4C /* PersistedProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DA986B2843B6F9001D04CC /* PersistedProperty.swift */; };
C17DDC9D28AC33A1005FBF4C /* PersistedProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DA986B2843B6F9001D04CC /* PersistedProperty.swift */; };
- C1814B86225E507C008D2D8E /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1814B85225E507C008D2D8E /* Sequence.swift */; };
C18913B52524F24C007B0683 /* DeviceDataManager+SimpleBolusViewModelDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18913B42524F24C007B0683 /* DeviceDataManager+SimpleBolusViewModelDelegate.swift */; };
C19008FE25225D3900721625 /* SimpleBolusCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19008FD25225D3900721625 /* SimpleBolusCalculator.swift */; };
C1900900252271BB00721625 /* SimpleBolusCalculatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19008FF252271BB00721625 /* SimpleBolusCalculatorTests.swift */; };
@@ -521,11 +493,14 @@
C19E96E023D275FA003F79B0 /* LoopCompletionFreshness.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19E96DD23D2733F003F79B0 /* LoopCompletionFreshness.swift */; };
C19F48742560ABFB003632D7 /* NSBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430DA58D1D4AEC230097D1CA /* NSBundle.swift */; };
C1AD4200256D61E500164DDD /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1AD41FF256D61E500164DDD /* Comparable.swift */; };
+ C1AF062329426300002C1B19 /* ManualGlucoseEntryRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1AF062229426300002C1B19 /* ManualGlucoseEntryRow.swift */; };
C1C6591C1E1B1FDA0025CC58 /* recommend_temp_basal_dropping_then_rising.json in Resources */ = {isa = PBXBuildFile; fileRef = C1C6591B1E1B1FDA0025CC58 /* recommend_temp_basal_dropping_then_rising.json */; };
C1C660D1252E4DD5009B5C32 /* LoopConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1C660D0252E4DD5009B5C32 /* LoopConstants.swift */; };
C1C73F0D1DE3D0270022FC89 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1C73F0F1DE3D0270022FC89 /* InfoPlist.strings */; };
C1CCF1122858FA900035389C /* LoopCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */; };
C1CCF1172858FBAD0035389C /* SwiftCharts in Frameworks */ = {isa = PBXBuildFile; productRef = C1CCF1162858FBAD0035389C /* SwiftCharts */; };
+ C1D0B6302986D4D90098D215 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D0B62F2986D4D90098D215 /* LocalizedString.swift */; };
+ C1D0B6312986D4D90098D215 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D0B62F2986D4D90098D215 /* LocalizedString.swift */; };
C1D289B522F90A52003FFBD9 /* BasalDeliveryState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D289B422F90A52003FFBD9 /* BasalDeliveryState.swift */; };
C1DE5D23251BFC4D00439E49 /* SimpleBolusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DE5D22251BFC4D00439E49 /* SimpleBolusView.swift */; };
C1E2773E224177C000354103 /* ClockKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E2773D224177C000354103 /* ClockKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
@@ -582,6 +557,7 @@
E942DE96253BE68F00AC532D /* NSBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430DA58D1D4AEC230097D1CA /* NSBundle.swift */; };
E942DE9F253BE6A900AC532D /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439897341CD2F7DE00223065 /* NSTimeInterval.swift */; };
E942DF34253BF87F00AC532D /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 43785E9B2120E7060057DED1 /* Intents.intentdefinition */; };
+ E950CA9129002D9000B5B692 /* LoopDataManagerDosingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E950CA9029002D9000B5B692 /* LoopDataManagerDosingTests.swift */; };
E95D380124EADE7C005E2F50 /* DoseStoreProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95D380024EADE7C005E2F50 /* DoseStoreProtocol.swift */; };
E95D380324EADF36005E2F50 /* CarbStoreProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95D380224EADF36005E2F50 /* CarbStoreProtocol.swift */; };
E95D380524EADF78005E2F50 /* GlucoseStoreProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = E95D380424EADF78005E2F50 /* GlucoseStoreProtocol.swift */; };
@@ -599,6 +575,18 @@
E9B08021253BBDE900BAD8F8 /* IntentExtensionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B08020253BBDE900BAD8F8 /* IntentExtensionInfo.swift */; };
E9B0802B253BBDFF00BAD8F8 /* IntentExtensionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B08020253BBDE900BAD8F8 /* IntentExtensionInfo.swift */; };
E9B080B1253BDA6300BAD8F8 /* UserDefaults+LoopIntents.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B08015253BBD7300BAD8F8 /* UserDefaults+LoopIntents.swift */; };
+ E9B3552229358C440076AB04 /* MealDetectionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B3552129358C440076AB04 /* MealDetectionManager.swift */; };
+ E9B355292935919E0076AB04 /* MissedMealSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B35525293590980076AB04 /* MissedMealSettings.swift */; };
+ E9B3552A293591E70076AB04 /* MissedMealNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B3551B292844010076AB04 /* MissedMealNotification.swift */; };
+ E9B3552B293591E70076AB04 /* MissedMealNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B3551B292844010076AB04 /* MissedMealNotification.swift */; };
+ E9B3552D293592B40076AB04 /* MealDetectionManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B3552C293592B40076AB04 /* MealDetectionManagerTests.swift */; };
+ E9B3552F2935968E0076AB04 /* HKHealthStoreMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B3552E2935968E0076AB04 /* HKHealthStoreMock.swift */; };
+ E9B35538293706CB0076AB04 /* needs_clamping_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35532293706CA0076AB04 /* needs_clamping_counteraction_effect.json */; };
+ E9B35539293706CB0076AB04 /* dynamic_autofill_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35533293706CA0076AB04 /* dynamic_autofill_counteraction_effect.json */; };
+ E9B3553A293706CB0076AB04 /* missed_meal_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35534293706CB0076AB04 /* missed_meal_counteraction_effect.json */; };
+ E9B3553B293706CB0076AB04 /* noisy_cgm_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35535293706CB0076AB04 /* noisy_cgm_counteraction_effect.json */; };
+ E9B3553C293706CB0076AB04 /* realistic_report_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35536293706CB0076AB04 /* realistic_report_counteraction_effect.json */; };
+ E9B3553D293706CB0076AB04 /* long_interval_counteraction_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9B35537293706CB0076AB04 /* long_interval_counteraction_effect.json */; };
E9BB27AB23B85C3500FB4987 /* SleepStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9BB27AA23B85C3500FB4987 /* SleepStore.swift */; };
E9C00EF224C6221B00628F35 /* LoopSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9C00EEF24C620EF00628F35 /* LoopSettings.swift */; };
E9C00EF324C6222400628F35 /* LoopSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9C00EEF24C620EF00628F35 /* LoopSettings.swift */; };
@@ -641,13 +629,6 @@
remoteGlobalIDString = 43A943711B926B7B0051FA24;
remoteInfo = WatchApp;
};
- 43D9FFB921EA9CA400AF44BF /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 43776F841B8022E90074EA36 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 4F75288A1DFE1DC600C322D6;
- remoteInfo = LoopUI;
- };
43D9FFD421EAE05D00AF44BF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 43776F841B8022E90074EA36 /* Project object */;
@@ -683,13 +664,6 @@
remoteGlobalIDString = 43D9FFCE21EAE05D00AF44BF;
remoteInfo = LoopCore;
};
- A942E446225FD9A300DD4980 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 43776F841B8022E90074EA36 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 43D9FFCE21EAE05D00AF44BF;
- remoteInfo = LoopCore;
- };
C117ED70232EDB3200DA57CD /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 43776F841B8022E90074EA36 /* Project object */;
@@ -776,18 +750,6 @@
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
- 43D9FFDF21EAE3C600AF44BF /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- 43D9FFE021EAE3E500AF44BF /* LoopUI.framework in Embed Frameworks */,
- 43D9FFE121EAE3E500AF44BF /* LoopCore.framework in Embed Frameworks */,
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
43E2D8DD1D20C072004DA55F /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -990,11 +952,9 @@
43D9F81F21EF0906000578CD /* NSNumber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSNumber.swift; sourceTree = ""; };
43D9F82121EF0A7A000578CD /* QuantityRangeEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityRangeEntry.swift; sourceTree = ""; };
43D9F82321EFF1AB000578CD /* LessonResultsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LessonResultsViewController.swift; sourceTree = ""; };
- 43D9FFA221EA9A0C00AF44BF /* Learn.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Learn.app; sourceTree = BUILT_PRODUCTS_DIR; };
43D9FFA421EA9A0C00AF44BF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
43D9FFA921EA9A0C00AF44BF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
43D9FFAB21EA9A0F00AF44BF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 43D9FFAE21EA9A0F00AF44BF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
43D9FFB021EA9A0F00AF44BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
43D9FFB521EA9B0100AF44BF /* Learn.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Learn.entitlements; sourceTree = ""; };
43D9FFBF21EAB22E00AF44BF /* DataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataManager.swift; sourceTree = ""; };
@@ -1002,7 +962,6 @@
43D9FFD121EAE05D00AF44BF /* LoopCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoopCore.h; sourceTree = ""; };
43D9FFD221EAE05D00AF44BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
43DBF0521C93EC8200B3C386 /* DeviceDataManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = DeviceDataManager.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
- 43DBF0581C93F73800B3C386 /* CarbEntryTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarbEntryTableViewController.swift; sourceTree = ""; };
43DE92581C5479E4001FFDE1 /* PotentialCarbEntryUserInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PotentialCarbEntryUserInfo.swift; sourceTree = ""; };
43E2D8D11D20BF42004DA55F /* DoseMathTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DoseMathTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
43E2D8D31D20BF42004DA55F /* DoseMathTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoseMathTests.swift; sourceTree = ""; };
@@ -1075,6 +1034,7 @@
4FDDD23620DC51DF00D04B16 /* LoopDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopDataManager.swift; sourceTree = ""; };
4FF4D0FF1E18374700846527 /* WatchContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchContext.swift; sourceTree = ""; };
4FFEDFBE20E5CF22000BFC58 /* ChartHUDController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartHUDController.swift; sourceTree = ""; };
+ 63F5E17B297DDF3900A62D4B /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/ckcomplication.strings; sourceTree = ""; };
7D199D93212A067600241026 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Main.strings; sourceTree = ""; };
7D199D94212A067600241026 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/MainInterface.strings; sourceTree = ""; };
7D199D95212A067600241026 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Interface.strings; sourceTree = ""; };
@@ -1381,6 +1341,12 @@
A98556842493F901000FD662 /* AlertStore+SimulatedCoreData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AlertStore+SimulatedCoreData.swift"; sourceTree = ""; };
A987CD4824A58A0100439ADC /* ZipArchive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipArchive.swift; sourceTree = ""; };
A999D40524663D18004C89D4 /* PumpManagerError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PumpManagerError.swift; sourceTree = ""; };
+ A99A114129A581F4007919CE /* BolusAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BolusAction.swift; sourceTree = ""; };
+ A99A114329A5829A007919CE /* CarbAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarbAction.swift; sourceTree = ""; };
+ A99A114529A582A2007919CE /* OverrideAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideAction.swift; sourceTree = ""; };
+ A99A114B29A5879C007919CE /* BolusActionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusActionTests.swift; sourceTree = ""; };
+ A99A114C29A5879C007919CE /* CarbActionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarbActionTests.swift; sourceTree = ""; };
+ A99A114D29A5879C007919CE /* OverrideActionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OverrideActionTests.swift; sourceTree = ""; };
A9A056B224B93C62007CF06D /* CriticalEventLogExportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CriticalEventLogExportView.swift; sourceTree = ""; };
A9A056B424B94123007CF06D /* CriticalEventLogExportViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CriticalEventLogExportViewModel.swift; sourceTree = ""; };
A9B607AF247F000F00792BE4 /* UserNotifications+Loop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserNotifications+Loop.swift"; sourceTree = ""; };
@@ -1402,7 +1368,6 @@
A9DF02CA24F72B9E00B7C988 /* CriticalEventLogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CriticalEventLogTests.swift; sourceTree = ""; };
A9DFAFB224F0415E00950D1E /* CarbBackfillRequestUserInfoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarbBackfillRequestUserInfoTests.swift; sourceTree = ""; };
A9DFAFB424F048A000950D1E /* WatchHistoricalCarbsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchHistoricalCarbsTests.swift; sourceTree = ""; };
- A9E8A80428A7CAC000C0A8A4 /* RemoteCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteCommandTests.swift; sourceTree = ""; };
A9F5F1F4251050EC00E7C8A4 /* ZipArchiveTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipArchiveTests.swift; sourceTree = ""; };
A9F66FC2247F451500096EA7 /* UIDevice+Loop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDevice+Loop.swift"; sourceTree = ""; };
A9F703722489BC8500C98AD8 /* CarbStore+SimulatedCoreData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CarbStore+SimulatedCoreData.swift"; sourceTree = ""; };
@@ -1439,14 +1404,99 @@
B4E96D5C248A82A2002DABAD /* StatusBarHUDView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StatusBarHUDView.xib; sourceTree = ""; };
B4F3D25024AF890C0095CE44 /* BluetoothStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothStateManager.swift; sourceTree = ""; };
B4FEEF7C24B8A71F00A8DF9B /* DeviceDataManager+DeviceStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceDataManager+DeviceStatus.swift"; sourceTree = ""; };
+ C1004DEF2981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DF12981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DF42981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; };
+ C1004DF72981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DF92981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; };
+ C1004DFA2981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DFB2981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DFC2981F5B700B8CF94 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DFD2981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DFE2981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004DFF2981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E002981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E012981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E022981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E032981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E042981F67A00B8CF94 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E052981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E062981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E072981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E082981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E092981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E0A2981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E0B2981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E0C2981F6A100B8CF94 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E0D2981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E0E2981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E0F2981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E102981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E112981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E122981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E132981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E142981F6E200B8CF94 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E152981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E162981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E172981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E182981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E192981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E1A2981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E1B2981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E1C2981F6F500B8CF94 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E1D2981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E1E2981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E1F2981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E202981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E212981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E222981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E232981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E242981F72D00B8CF94 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E252981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E262981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E272981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E282981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E292981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2A2981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2B2981F74300B8CF94 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2C2981F75B00B8CF94 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2D2981F75B00B8CF94 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2E2981F75B00B8CF94 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E2F2981F75B00B8CF94 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E302981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E312981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E322981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; };
+ C1004E332981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E342981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1004E352981F77B00B8CF94 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
C101947127DD473C004E7EB8 /* MockKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MockKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C1092BFD29F8116700AE3D1C /* apply-info-customizations.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "apply-info-customizations.sh"; sourceTree = ""; };
C10B28451EA9BA5E006EA1FC /* far_future_high_bg_forecast.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = far_future_high_bg_forecast.json; sourceTree = ""; };
+ C11613482983096D00777E7C /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; };
+ C116134B2983096D00777E7C /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; };
+ C116134D2983096D00777E7C /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/ckcomplication.strings; sourceTree = ""; };
+ C11A2BCE29830A3100AC5135 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; };
+ C11A2BCF29830A3100AC5135 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ckcomplication.strings; sourceTree = ""; };
C11AA5C7258736CF00BDE12F /* DerivedAssetsBase.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = DerivedAssetsBase.xcassets; sourceTree = ""; };
C11B9D5D286778D000500CF8 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C11B9D60286779C000500CF8 /* MockKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MockKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C11B9D61286779C000500CF8 /* MockKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MockKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C11BD0542523CFED00236B08 /* SimpleBolusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleBolusViewModel.swift; sourceTree = ""; };
C1201E2B23ECDBD0002DA84A /* WatchContextRequestUserInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchContextRequestUserInfo.swift; sourceTree = ""; };
+ C121D8CF29C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Main.strings; sourceTree = ""; };
+ C121D8D029C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; };
+ C121D8D129C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; };
+ C121D8D229C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Interface.strings; sourceTree = ""; };
+ C122DEF829BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C122DEF929BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; };
+ C122DEFA29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; };
+ C122DEFB29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C122DEFC29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C122DEFD29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; };
+ C122DEFE29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ckcomplication.strings; sourceTree = ""; };
+ C122DEFF29BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C122DF0029BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C12BCCF929BBFA480066A158 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; };
C12CB9AC23106A3C00F84978 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Intents.strings; sourceTree = ""; };
C12CB9AE23106A5C00F84978 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Intents.strings; sourceTree = ""; };
C12CB9B023106A5F00F84978 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Intents.strings; sourceTree = ""; };
@@ -1457,20 +1507,33 @@
C12F21A61DFA79CB00748193 /* recommend_temp_basal_very_low_end_in_range.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = recommend_temp_basal_very_low_end_in_range.json; sourceTree = ""; };
C13DA2AF24F6C7690098BB29 /* UIViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIViewController.swift; sourceTree = ""; };
C148CEE624FD91BD00711B3B /* DeliveryUncertaintyAlertManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryUncertaintyAlertManager.swift; sourceTree = ""; };
+ C14952142995822A0095AA84 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C14952152995822A0095AA84 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
+ C155A8F32986396E009BD257 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
+ C155A8F42986396E009BD257 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; };
+ C155A8F52986396E009BD257 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/ckcomplication.strings; sourceTree = ""; };
C159C8192867857000A86EC0 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C159C8212867859800A86EC0 /* MockKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MockKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C159C82E286787EF00A86EC0 /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C15A581F29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C15A582029C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; };
+ C15A582129C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C15A582229C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C15A582329C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; };
C165756E2534C468004AE16E /* SimpleBolusViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleBolusViewModelTests.swift; sourceTree = ""; };
C16575702538A36B004AE16E /* CGMStalenessMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGMStalenessMonitor.swift; sourceTree = ""; };
C16575722538AFF6004AE16E /* CGMStalenessMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGMStalenessMonitorTests.swift; sourceTree = ""; };
C16575742539FD60004AE16E /* LoopCoreConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopCoreConstants.swift; sourceTree = ""; };
C1657577253A0021004AE16E /* ChartConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartConstants.swift; sourceTree = ""; };
- C165B8CD23302C5D0004112E /* RemoteCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteCommand.swift; sourceTree = ""; };
C16B983D26B4893300256B05 /* DoseEnactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoseEnactor.swift; sourceTree = ""; };
C16B983F26B4898800256B05 /* DoseEnactorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoseEnactorTests.swift; sourceTree = ""; };
C16DA84122E8E112008624C2 /* PluginManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PluginManager.swift; sourceTree = ""; };
C1742331259BEADC00399C9D /* ManualEntryDoseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManualEntryDoseView.swift; sourceTree = ""; };
C174233B259BEB0F00399C9D /* ManualEntryDoseViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManualEntryDoseViewModel.swift; sourceTree = ""; };
+ C174571229830930009EFCF2 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C174571329830930009EFCF2 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C174571429830930009EFCF2 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; };
+ C174571529830930009EFCF2 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
C1750AEB255B013300B8011C /* Minizip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Minizip.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C1777A6525A125F100595963 /* ManualEntryDoseViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManualEntryDoseViewModelTests.swift; sourceTree = ""; };
C17824991E1999FA00D9D25C /* CaseCountable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CaseCountable.swift; sourceTree = ""; };
@@ -1478,22 +1541,92 @@
C17824A21E19EAB600D9D25C /* recommend_temp_basal_start_very_low_end_high.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = recommend_temp_basal_start_very_low_end_high.json; sourceTree = ""; };
C17824A41E1AD4D100D9D25C /* ManualBolusRecommendation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManualBolusRecommendation.swift; sourceTree = ""; };
C1814B85225E507C008D2D8E /* Sequence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sequence.swift; sourceTree = ""; };
+ C186B73F298309A700F83024 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; };
+ C18886E629830A5E004C982D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; };
+ C18886E729830A5E004C982D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; };
+ C18886E829830A5E004C982D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/ckcomplication.strings; sourceTree = ""; };
C18913B42524F24C007B0683 /* DeviceDataManager+SimpleBolusViewModelDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DeviceDataManager+SimpleBolusViewModelDelegate.swift"; sourceTree = ""; };
C18A491222FCC22800FDA733 /* build-derived-assets.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "build-derived-assets.sh"; sourceTree = ""; };
C18A491322FCC22900FDA733 /* make_scenario.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = make_scenario.py; sourceTree = ""; };
C18A491522FCC22900FDA733 /* copy-plugins.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "copy-plugins.sh"; sourceTree = ""; };
+ C18B725E299581C600F138D3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; };
+ C18B725F299581C600F138D3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; };
+ C18B7260299581C600F138D3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/ckcomplication.strings; sourceTree = ""; };
C19008FD25225D3900721625 /* SimpleBolusCalculator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleBolusCalculator.swift; sourceTree = ""; };
C19008FF252271BB00721625 /* SimpleBolusCalculatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleBolusCalculatorTests.swift; sourceTree = ""; };
C191D2A025B3ACAA00C26C0B /* DosingStrategySelectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DosingStrategySelectionView.swift; sourceTree = ""; };
+ C192C5FE29C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; };
+ C192C5FF29C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C192C60029C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; };
+ C192C60129C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C192C60229C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; };
+ C192C60329C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C192C60429C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; };
+ C19A2247298951AC000E4E71 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
C19C8BB928651DFB0056D5E4 /* TrueTime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TrueTime.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C19C8BC228651EAE0056D5E4 /* LoopTestingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopTestingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C19C8BC728651F0A0056D5E4 /* MockKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MockKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C19C8C20286776C20056D5E4 /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C19E387B298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C19E387C298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C19E387D298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; };
+ C19E387E298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; };
C19E96DD23D2733F003F79B0 /* LoopCompletionFreshness.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopCompletionFreshness.swift; sourceTree = ""; };
C19F496225630504003632D7 /* Minizip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Minizip.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C1AD41FF256D61E500164DDD /* Comparable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; };
+ C1AD48CE298639890013B994 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1AD62FE29BBFAA80002685D /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1AD62FF29BBFAA80002685D /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; };
+ C1AD630029BBFAA80002685D /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/ckcomplication.strings; sourceTree = ""; };
+ C1AF062229426300002C1B19 /* ManualGlucoseEntryRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManualGlucoseEntryRow.swift; sourceTree = ""; };
+ C1B0CFD429C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; };
+ C1B0CFD529C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1B0CFD629C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; };
+ C1B0CFD729C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1B0CFD829C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; };
+ C1B0CFD929C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1B0CFDA29C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1B267992995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; };
+ C1B2679A2995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1B2679B2995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; };
+ C1B2679C2995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/ckcomplication.strings; sourceTree = ""; };
+ C1B2679D2995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5AF298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B0298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B1298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; };
+ C1BCB5B2298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B3298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; };
+ C1BCB5B4298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B5298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B6298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; };
+ C1BCB5B7298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/ckcomplication.strings; sourceTree = ""; };
+ C1BCB5B8298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1BCB5B9298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C247882995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Intents.strings; sourceTree = ""; };
+ C1C247892995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; };
+ C1C2478A2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; };
+ C1C2478B2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C2478C2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; };
+ C1C2478D2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; };
+ C1C2478E2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/MainInterface.strings; sourceTree = ""; };
+ C1C2478F2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C247902995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C247912995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; };
+ C1C31277297E4BFE00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main.strings; sourceTree = ""; };
+ C1C31278297E4BFE00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/MainInterface.strings; sourceTree = ""; };
+ C1C31279297E4BFE00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Interface.strings; sourceTree = ""; };
+ C1C3127A297E4BFE00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main.strings; sourceTree = ""; };
+ C1C3127C297E4BFE00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C1C3127D297E4C0100296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C3127E297E4C0100296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ckcomplication.strings; sourceTree = ""; };
+ C1C3127F297E4C0400296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Intents.strings; sourceTree = ""; };
+ C1C31280297E4C0400296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C1C31281297E4C0400296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; };
+ C1C31282297E4F6E00296DA4 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; };
+ C1C5357529C6346A00E32DF9 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Intents.strings; sourceTree = ""; };
C1C6591B1E1B1FDA0025CC58 /* recommend_temp_basal_dropping_then_rising.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = recommend_temp_basal_dropping_then_rising.json; sourceTree = ""; };
C1C660D0252E4DD5009B5C32 /* LoopConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopConstants.swift; sourceTree = ""; };
+ C1D0B62F2986D4D90098D215 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; };
C1D197FE232CF92D0096D646 /* capture-build-details.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "capture-build-details.sh"; sourceTree = ""; };
C1D289B422F90A52003FFBD9 /* BasalDeliveryState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BasalDeliveryState.swift; sourceTree = ""; };
C1DA986B2843B6F9001D04CC /* PersistedProperty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistedProperty.swift; sourceTree = ""; };
@@ -1501,15 +1634,59 @@
C1E2773D224177C000354103 /* ClockKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ClockKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/ClockKit.framework; sourceTree = DEVELOPER_DIR; };
C1E2774722433D7A00354103 /* MKRingProgressView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MKRingProgressView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C1E3862428247B7100F561A4 /* StoredLoopNotRunningNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoredLoopNotRunningNotification.swift; sourceTree = "