diff --git a/.github/workflows/add_identifiers.yml b/.github/workflows/add_identifiers.yml index 214d2cfa83..fbb23f45a0 100644 --- a/.github/workflows/add_identifiers.yml +++ b/.github/workflows/add_identifiers.yml @@ -10,11 +10,11 @@ jobs: identifiers: needs: secrets - runs-on: macos-12 + runs-on: macos-13 steps: - # Uncomment to manually select latest Xcode if needed - #- name: Select Latest Xcode - # run: "sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer" + # Uncomment to manually select Xcode version if needed + #- name: Select Xcode version + # run: "sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer" # Checks-out the repo - name: Checkout Repo diff --git a/.github/workflows/build_iAPS.yml b/.github/workflows/build_iAPS.yml index 735d862d06..849f56d939 100644 --- a/.github/workflows/build_iAPS.yml +++ b/.github/workflows/build_iAPS.yml @@ -18,11 +18,11 @@ jobs: build: needs: secrets - runs-on: macos-12 + runs-on: macos-13 steps: - # Uncomment to manually select latest Xcode if needed - - name: Select Latest Xcode - run: "sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer" + # Uncomment to manually select Xcode version if needed + - name: Select Xcode version + run: "sudo xcode-select --switch /Applications/Xcode_14.3.app/Contents/Developer" # Checks-out the repo - name: Checkout Repo diff --git a/.github/workflows/create_certs.yml b/.github/workflows/create_certs.yml index 1ead0ff0e3..77604177c1 100644 --- a/.github/workflows/create_certs.yml +++ b/.github/workflows/create_certs.yml @@ -10,11 +10,11 @@ jobs: certificates: needs: secrets - runs-on: macos-12 + runs-on: macos-13 steps: - # Uncomment to manually select latest Xcode if needed - #- name: Select Latest Xcode - # run: "sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer" + # Uncomment to manually select Xcode version if needed + #- name: Select Xcode version + # run: "sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer" # Checks-out the repo - name: Checkout Repo diff --git a/.github/workflows/validate_secrets.yml b/.github/workflows/validate_secrets.yml index 6811efc791..e7300d7a15 100644 --- a/.github/workflows/validate_secrets.yml +++ b/.github/workflows/validate_secrets.yml @@ -4,7 +4,7 @@ on: [workflow_call, workflow_dispatch] jobs: validate: - runs-on: macos-12 + runs-on: macos-13 steps: # Checks-out the repo - name: Checkout Repo diff --git a/Config.xcconfig b/Config.xcconfig index f712ac6c31..247f38ae12 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -1,5 +1,5 @@ APP_DISPLAY_NAME = iAPS -APP_VERSION = 1.5.0 +APP_VERSION = 1.6.0 APP_BUILD_NUMBER = 1 COPYRIGHT_NOTICE = DEVELOPER_TEAM = ##TEAM_ID## diff --git a/Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents b/Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents index ac33518819..5d969c092a 100644 --- a/Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents +++ b/Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents @@ -1,5 +1,5 @@ - + @@ -52,6 +52,7 @@ + @@ -63,6 +64,9 @@ + + + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/InfoPlist.strings new file mode 100644 index 0000000000..945bc57b67 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Eksempel på CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Localizable.strings index b81689d8cc..99201ca77c 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Localizable.strings @@ -2,7 +2,8 @@ "Backfill" = "Backfill"; /* Title displayed during error response */ -"Error" = "Error"; +"Error" = "Fejl"; /* Title displayed during unknown data response */ -"Unknown Data" = "Unknown Data"; +"Unknown Data" = "Ukendte data"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Main.strings index 586a080ce8..a9689c0228 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/da.lproj/Main.strings @@ -1,12 +1,14 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Kør langs G5-appen"; +"3i8-2m-QFG.text" = "Kør sammen med G5-appen"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "Senders id"; +"5y6-vU-qC3.text" = "Sender ID"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ -"9p7-LX-EMK.text" = "Venter på førstebehandling"; +"9p7-LX-EMK.text" = "Venter på første aflæsning"; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -15,13 +17,11 @@ "HYW-Ex-7LC.normalTitle" = "Kalibrer"; /* Class = "UIButton"; normalTitle = "Stop"; ObjectID = "JAM-9K-KeE"; */ -"JAM-9K-KeE.normalTitle" = "Hold op"; +"JAM-9K-KeE.normalTitle" = "Stop"; /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Forbliv forbundet"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/InfoPlist.strings new file mode 100644 index 0000000000..7e2e684a98 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Beispiel"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Localizable.strings index 05f9f53ec4..66b6904354 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Unbekannte Daten"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Main.strings index 6725098e3c..6f5579c91a 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/de.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "Neben G5-App ausführen"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Warte auf den ersten Wert"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Verbunden bleiben"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/InfoPlist.strings new file mode 100644 index 0000000000..e1f10bdd22 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Ejemplo de CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Localizable.strings index a2bd477b6f..9f1a01ca48 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Datos desconocidos"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Main.strings index 7f011b3c0b..e71893710e 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/es.lproj/Main.strings @@ -1,12 +1,14 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Ejecutar junto con la app del G5"; +"3i8-2m-QFG.text" = "Ejecutar junto con la aplicación del G5"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "Identificador del transmisor"; +"5y6-vU-qC3.text" = "Identificación del transmisor"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ -"9p7-LX-EMK.text" = "Esperando por el primero dato"; +"9p7-LX-EMK.text" = "Esperando el primero dato"; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Comenzar"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Mantenerse conectado"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/fi.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/fi.lproj/InfoPlist.strings new file mode 100644 index 0000000000..078da42996 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/fi.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit esimerkki"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..9f0c222b85 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Exemple CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Localizable.strings index 4b2d075142..08ef05edf0 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Donnée inconnue"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Main.strings index dc797f9375..29dbf796f1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/fr.lproj/Main.strings @@ -1,6 +1,5 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Faire fonctionner l’application G5 en parallèle"; +"3i8-2m-QFG.text" = "Exécuter en même temps que l'application G5"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ "5y6-vU-qC3.text" = "ID du transmetteur"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "En attente de la première mesure"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Commencer"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Rester connecté"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Localizable.strings index b81689d8cc..86551822c7 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Unknown Data"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Main.strings index b7cd405efc..75d54645a3 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/he.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "Run alongside G5 app"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Waiting for first reading"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Stay connected"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/InfoPlist.strings new file mode 100644 index 0000000000..a2fcf72611 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "esempio CGMBLE kit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Localizable.strings index b81689d8cc..07925b3038 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Localizable.strings @@ -1,8 +1,9 @@ /* Title displayed during backfill response */ -"Backfill" = "Backfill"; +"Backfill" = "Riempimento"; /* Title displayed during error response */ -"Error" = "Error"; +"Error" = "Errore"; /* Title displayed during unknown data response */ "Unknown Data" = "Unknown Data"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Main.strings index fc33989176..716740ae2b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/it.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "Esegui insieme all’app G5"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "In attesa della prima lettura"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Avvia"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Rimani connesso"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Localizable.strings index 128dc60882..8b12904cdc 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "不明なデータ"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Main.strings index 45b6020f6d..aa822840e4 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ja.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "G5アプリのそばで使用してください"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "最初の読み取りを待っています"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "開始"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "接続を維持"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/InfoPlist.strings new file mode 100644 index 0000000000..fc58998e6d --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Eksempel"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Localizable.strings index 47e293fc77..330eb61eb8 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Ukjent data"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Main.strings index 7bdeed32e1..5fe03f9098 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nb.lproj/Main.strings @@ -1,6 +1,5 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Kjør parralelt med G5 app"; +"3i8-2m-QFG.text" = "Kjør parallelt med G5 app"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ "5y6-vU-qC3.text" = "Sender ID"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Venter på første måling"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Vær tilkoblet"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..13156d3984 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Voorbeeld"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Localizable.strings index f9be547e0e..ee20bdbfa3 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Localizable.strings @@ -1,9 +1,9 @@ /* Title displayed during backfill response */ -"Backfill" = "Aanvullen van data"; +"Backfill" = "Aanvullen"; /* Title displayed during error response */ "Error" = "Fout"; /* Title displayed during unknown data response */ -"Unknown Data" = "Onbekende Data"; +"Unknown Data" = "Onbekende Gegevens"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Main.strings index cad830825e..09d711b21b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/nl.lproj/Main.strings @@ -2,11 +2,14 @@ "3i8-2m-QFG.text" = "Gebruik tegelijk met G5 app"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "Zender ID"; +"5y6-vU-qC3.text" = "Zenderserienummer"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Wachten op eerste meting"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -19,3 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Blijf verbonden"; +/* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ +"zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..4f861bf386 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Example"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Localizable.strings index b81689d8cc..f40260caf9 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Localizable.strings @@ -2,7 +2,8 @@ "Backfill" = "Backfill"; /* Title displayed during error response */ -"Error" = "Error"; +"Error" = "Błąd"; /* Title displayed during unknown data response */ "Unknown Data" = "Unknown Data"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Main.strings index fd6e34ace5..4e097144b4 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/pl.lproj/Main.strings @@ -1,12 +1,14 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Przejrzyj aplikację G5"; +"3i8-2m-QFG.text" = "Uruchom aplikację G5"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ "5y6-vU-qC3.text" = "ID nadajnika"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ -"9p7-LX-EMK.text" = "Oczekiwanie na pierwszy odczyt"; +"9p7-LX-EMK.text" = "Czekam na pierwszy odczyt"; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Start"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Nie rozłączaj się"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Localizable.strings index cb9ca87a73..409274dd40 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Dados Desconhecidos"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Main.strings index 2828fe11de..dee40e848b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/pt-BR.lproj/Main.strings @@ -7,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Esperando a primeira leitura"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Iniciar"; @@ -19,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Permanecer conectado"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/InfoPlist.strings new file mode 100644 index 0000000000..3bd385e713 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Exemplu CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Localizable.strings index 11f0641899..b7d11f3799 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Date necunoscute"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Main.strings index 3537c7c220..9d36d0d19f 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ro.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "Rulează împreună cu aplicația G5"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Se așteaptă prima citire"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Pornește"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Păstrează conexiunea"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/InfoPlist.strings new file mode 100644 index 0000000000..a63a8e0008 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Пример CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Localizable.strings index f6b94167be..750e8059c1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Неизвестные данные"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Main.strings index f20667d316..4956b1ec41 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/ru.lproj/Main.strings @@ -1,12 +1,14 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "запустить совместно с приложением G5"; +"3i8-2m-QFG.text" = "Запустить совместно с приложением G5"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "идентификатор трансмиттера"; +"5y6-vU-qC3.text" = "ID трансмиттера"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ -"9p7-LX-EMK.text" = "ожидание данных"; +"9p7-LX-EMK.text" = "Ожидание первого показания"; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Начать"; @@ -18,10 +20,8 @@ "JAM-9K-KeE.normalTitle" = "Стоп"; /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ -"NSs-9e-3Sl.text" = "Не разъединяйтесь"; - -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; +"NSs-9e-3Sl.text" = "Оставайтесь подключенными"; /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/InfoPlist.strings new file mode 100644 index 0000000000..83a48f1c0a --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "Príklad CGMBLEKit"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..991d810243 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* Title displayed during error response */ +"Error" = "Chyba"; + +/* Title displayed during unknown data response */ +"Unknown Data" = "Neznáme dáta"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Main.strings new file mode 100644 index 0000000000..f111b482d8 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/sk.lproj/Main.strings @@ -0,0 +1,27 @@ +/* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ +"3i8-2m-QFG.text" = "Beží spolu s aplikáciou G5"; + +/* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ +"5y6-vU-qC3.text" = "ID vysielača"; + +/* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ +"9p7-LX-EMK.text" = "Čaká sa na prvé načítanie"; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + +/* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ +"HEQ-Bp-kx7.normalTitle" = "Štart"; + +/* Class = "UIButton"; normalTitle = "Calibrate"; ObjectID = "HYW-Ex-7LC"; */ +"HYW-Ex-7LC.normalTitle" = "Kalibrovať"; + +/* Class = "UIButton"; normalTitle = "Stop"; ObjectID = "JAM-9K-KeE"; */ +"JAM-9K-KeE.normalTitle" = "Stop"; + +/* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ +"NSs-9e-3Sl.text" = "Zostať pripojený"; + +/* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ +"zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/InfoPlist.strings new file mode 100644 index 0000000000..4f861bf386 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Example"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/Main.strings index f7b8f61f4a..eee1572852 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/sv.lproj/Main.strings @@ -2,7 +2,7 @@ "3i8-2m-QFG.text" = "Kör samtidigt som G5-appen"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "Sändar-ID"; +"5y6-vU-qC3.text" = "Sändari-ID"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Väntar på första värdet"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..8b0823dc0e --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle name */ +"CFBundleName" = "CGMBLEKit Örneği"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Localizable.strings index b81689d8cc..27ce6b43e0 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Localizable.strings @@ -1,8 +1,9 @@ /* Title displayed during backfill response */ -"Backfill" = "Backfill"; +"Backfill" = "Dolgu"; /* Title displayed during error response */ -"Error" = "Error"; +"Error" = "Hata"; /* Title displayed during unknown data response */ -"Unknown Data" = "Unknown Data"; +"Unknown Data" = "Bilinmeyen Veri"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Main.strings index b7cd405efc..f754cb8d64 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/tr.lproj/Main.strings @@ -1,27 +1,27 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ -"3i8-2m-QFG.text" = "Run alongside G5 app"; +"3i8-2m-QFG.text" = "G5 uygulamasıyla birlikte çalıştırın"; /* Class = "UILabel"; text = "Transmitter ID"; ObjectID = "5y6-vU-qC3"; */ -"5y6-vU-qC3.text" = "Transmitter ID"; +"5y6-vU-qC3.text" = "Verici Kimliği"; /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ -"9p7-LX-EMK.text" = "Waiting for first reading"; +"9p7-LX-EMK.text" = "İlk okuma bekleniyor.."; + +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ -"HEQ-Bp-kx7.normalTitle" = "Start"; +"HEQ-Bp-kx7.normalTitle" = "Başlat"; /* Class = "UIButton"; normalTitle = "Calibrate"; ObjectID = "HYW-Ex-7LC"; */ -"HYW-Ex-7LC.normalTitle" = "Calibrate"; +"HYW-Ex-7LC.normalTitle" = "Kalibrasyon"; /* Class = "UIButton"; normalTitle = "Stop"; ObjectID = "JAM-9K-KeE"; */ -"JAM-9K-KeE.normalTitle" = "Stop"; +"JAM-9K-KeE.normalTitle" = "Durdur"; /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ -"NSs-9e-3Sl.text" = "Stay connected"; - -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; +"NSs-9e-3Sl.text" = "Bağlı kalın"; /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Localizable.strings index 50db513008..d93ec29a1b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "Không nhận biết dữ liệu"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Main.strings index a46a69879e..b9bc2662fe 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/vi.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "Chạy song song cùng ứng dụng G5"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "Đang đợi đọc kết quả đầu tiên"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "Bắt đầu"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "Giữ kết nối"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Localizable.strings index 427257bf54..9f6be61681 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Localizable.strings @@ -6,3 +6,4 @@ /* Title displayed during unknown data response */ "Unknown Data" = "未知数据"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Main.strings b/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Main.strings index bc1c8731da..acc81ae07a 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit Example/zh-Hans.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Run alongside G5 app"; ObjectID = "3i8-2m-QFG"; */ "3i8-2m-QFG.text" = "与G5 App同时使用"; @@ -8,6 +7,9 @@ /* Class = "UILabel"; text = "Waiting for first reading"; ObjectID = "9p7-LX-EMK"; */ "9p7-LX-EMK.text" = "输入第一个校准值"; +/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ +"e0T-ru-tWD.text" = "500000"; + /* Class = "UIButton"; normalTitle = "Start"; ObjectID = "HEQ-Bp-kx7"; */ "HEQ-Bp-kx7.normalTitle" = "启动"; @@ -20,8 +22,6 @@ /* Class = "UILabel"; text = "Stay connected"; ObjectID = "NSs-9e-3Sl"; */ "NSs-9e-3Sl.text" = "保持连接"; -/* Class = "UITextField"; text = "500000"; ObjectID = "e0T-ru-tWD"; */ -"e0T-ru-tWD.text" = "500000"; - /* Class = "UILabel"; text = "––"; ObjectID = "zAF-A7-1Oc"; */ "zAF-A7-1Oc.text" = "––"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/project.pbxproj b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/project.pbxproj index cc84f4adcb..3f84f8e5af 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/project.pbxproj +++ b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/project.pbxproj @@ -185,6 +185,7 @@ B4D40D4A23ABB33500D7ECB5 /* CGMBLEKitG5Plugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D40D4923ABB33500D7ECB5 /* CGMBLEKitG5Plugin.swift */; }; B4D40D4B23ABB42400D7ECB5 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4323115E1EFC870300B95E62 /* OSLog.swift */; }; C15543B2252D8777008EE7E5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C15543B1252D8776008EE7E5 /* Assets.xcassets */; }; + C182166E297E55A7001EB097 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C182166C297E55A7001EB097 /* InfoPlist.strings */; }; C19084BB203932BD00AA47F3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C19084B9203932BD00AA47F3 /* Main.storyboard */; }; C19C8BDB286520970056D5E4 /* CGMBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43CABDF31C3506F100005705 /* CGMBLEKit.framework */; }; C19C8BDC286520970056D5E4 /* CGMBLEKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 43CABDF31C3506F100005705 /* CGMBLEKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -404,6 +405,7 @@ 437AFF002038EC43008C4892 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 437AFF032038EC43008C4892 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 437AFF052038EC43008C4892 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 437DE50B229C8A1D003B1074 /* copy-frameworks.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "copy-frameworks.sh"; sourceTree = ""; }; 43846AC51D8F896C00799272 /* CalibrationDataRxMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalibrationDataRxMessage.swift; sourceTree = ""; }; 43846AC71D8F89BE00799272 /* CalibrationDataRxMessageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalibrationDataRxMessageTests.swift; sourceTree = ""; }; 43880F971D9E19FC009061A8 /* TransmitterVersionRxMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransmitterVersionRxMessage.swift; sourceTree = ""; }; @@ -570,9 +572,57 @@ B4D40D4623A42A1700D7ECB5 /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B4D40D4823ABB33500D7ECB5 /* CGMBLEKitG5Plugin-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CGMBLEKitG5Plugin-Bridging-Header.h"; sourceTree = ""; }; B4D40D4923ABB33500D7ECB5 /* CGMBLEKitG5Plugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGMBLEKitG5Plugin.swift; sourceTree = ""; }; + C105EF122981EDCF00EA8341 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; + C105EF132981EDCF00EA8341 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; + C121D8C929C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C121D8CA29C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C121D8CB29C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C122DEF729BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; + C137D7B12981EDD200ABEE68 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; }; + C14B04E12981EDD200B37D8B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; + C14B04E22981EDD200B37D8B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; C15543B1252D8776008EE7E5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C15A581729C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A581829C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A581929C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/TransmitterManagerSetup.strings; sourceTree = ""; }; + C15A581A29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C17F1B502981EDD500F2F205 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; }; + C17F1B512981EDD500F2F205 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; }; + C182166D297E55A7001EB097 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; + C182166F297E55A7001EB097 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; + C18F3CBE2981EDD5000D3D0A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; + C18F3CBF2981EDD6000D3D0A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; C19084BA203932BD00AA47F3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + C192C5FB29C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; }; + C19E3878298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; }; + C19E3879298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; }; + C1B0CFD129C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; + C1BCB5AC298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; + C1BCB5AD298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; + C1BE50C42981EDD8009CC165 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; }; + C1BE50C52981EDD8009CC165 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; }; + C1C2477B2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Main.strings; sourceTree = ""; }; + C1C2477C2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; }; + C1C2477D2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1C2477E2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1C2477F2995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1C247802995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/TransmitterManagerSetup.strings; sourceTree = ""; }; + C1C247812995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Main.strings; sourceTree = ""; }; + C1C247822995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; }; + C1C247832995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; C1CD8B0A203931AD00A8F498 /* NSUserDefaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSUserDefaults.swift; sourceTree = ""; }; + C1D18D4E2981EDD900FE14A1 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; + C1E3CD6A2981EDD9006BD841 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; }; + C1E3CD6B2981EDD9006BD841 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; }; + C1E693C729C786E200410918 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/InfoPlist.strings"; sourceTree = ""; }; + C1F48FF32995821600C8BD69 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; + C1F48FF42995821600C8BD69 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; + C1F83F572981EDCF00963B52 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; }; + C1F83F582981EDCF00963B52 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; }; + C1FAB5B929C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C1FAB5BA29C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C1FAB5BB29C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C1FF3D4829C786A900BDC1EC /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/InfoPlist.strings; sourceTree = ""; }; E71BFF7D20673BD700C876A2 /* CommandQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandQueue.swift; sourceTree = ""; }; E752B40F2063C31B0063027D /* Command.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; E75DB6AD20419B5D00FBE04E /* CalibrateGlucoseRxMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalibrateGlucoseRxMessage.swift; sourceTree = ""; }; @@ -731,6 +781,7 @@ C19084B9203932BD00AA47F3 /* Main.storyboard */, 437AFF022038EC43008C4892 /* LaunchScreen.storyboard */, 437AFF052038EC43008C4892 /* Info.plist */, + C182166C297E55A7001EB097 /* InfoPlist.strings */, 7D9BF0F82336EF7C005DCFD6 /* Localizable.strings */, ); path = "CGMBLEKit Example"; @@ -750,6 +801,14 @@ name = Frameworks; sourceTree = ""; }; + 437DE50A229C8A0D003B1074 /* Scripts */ = { + isa = PBXGroup; + children = ( + 437DE50B229C8A1D003B1074 /* copy-frameworks.sh */, + ); + path = Scripts; + sourceTree = ""; + }; 43A8EC53210D0A7400A81379 /* CGMBLEKitUI */ = { isa = PBXGroup; children = ( @@ -781,6 +840,7 @@ B4D40D3F23A428BC00D7ECB5 /* CGMBLEKitG5Plugin */, 43CABDF41C3506F100005705 /* Products */, 437AFF172038EDF9008C4892 /* Frameworks */, + 437DE50A229C8A0D003B1074 /* Scripts */, ); sourceTree = ""; }; @@ -1179,6 +1239,10 @@ ro, tr, he, + sk, + ar, + cs, + hi, ); mainGroup = 43CABDE91C3506F100005705; productRefGroup = 43CABDF41C3506F100005705 /* Products */; @@ -1218,6 +1282,7 @@ 7D9BF0F62336EF7C005DCFD6 /* Localizable.strings in Resources */, 437AFF042038EC43008C4892 /* LaunchScreen.storyboard in Resources */, 437AFF012038EC43008C4892 /* Assets.xcassets in Resources */, + C182166E297E55A7001EB097 /* InfoPlist.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1547,6 +1612,10 @@ 7D9BF11F2336FD7C005DCFD6 /* ro */, F5D9C03C27DAC064002E48F6 /* tr */, F5E0BE1C27E1DE3E0033557E /* he */, + C1C2477E2995823200371B88 /* sk */, + C15A581729C7866600D3A5A1 /* ar */, + C121D8C929C7866D00DA0520 /* cs */, + C1FAB5B929C786B000D25073 /* hi */, ); name = Localizable.strings; sourceTree = ""; @@ -1573,6 +1642,10 @@ 7D9BF1202336FD7D005DCFD6 /* ro */, F5D9C03D27DAC064002E48F6 /* tr */, F5E0BE1D27E1DE3E0033557E /* he */, + C1C2477F2995823200371B88 /* sk */, + C15A581829C7866600D3A5A1 /* ar */, + C121D8CA29C7866D00DA0520 /* cs */, + C1FAB5BA29C786B000D25073 /* hi */, ); name = Localizable.strings; sourceTree = ""; @@ -1600,6 +1673,7 @@ 7D9BF11E2336FD7C005DCFD6 /* ro */, F5D9C03A27DAC063002E48F6 /* tr */, F5E0BE1A27E1DE3E0033557E /* he */, + C1C247812995823200371B88 /* sk */, ); name = Main.storyboard; sourceTree = ""; @@ -1637,6 +1711,8 @@ 7D9BF11C2336FD7B005DCFD6 /* ro */, F5D9C03727DAC063002E48F6 /* tr */, F5E0BE1727E1DE3E0033557E /* he */, + C1C247802995823200371B88 /* sk */, + C15A581929C7866600D3A5A1 /* ar */, ); name = TransmitterManagerSetup.storyboard; sourceTree = ""; @@ -1673,6 +1749,10 @@ 7D9BF1222336FD7D005DCFD6 /* ro */, F5D9C03F27DAC064002E48F6 /* tr */, F5E0BE1F27E1DE3E0033557E /* he */, + C1C247832995823200371B88 /* sk */, + C15A581A29C7866600D3A5A1 /* ar */, + C121D8CB29C7866D00DA0520 /* cs */, + C1FAB5BB29C786B000D25073 /* hi */, ); name = Localizable.strings; sourceTree = ""; @@ -1699,6 +1779,7 @@ 7D9BF1212336FD7D005DCFD6 /* ro */, F5D9C03E27DAC064002E48F6 /* tr */, F5E0BE1E27E1DE3E0033557E /* he */, + C1C2477D2995823200371B88 /* sk */, ); name = Localizable.strings; sourceTree = ""; @@ -1707,6 +1788,44 @@ isa = PBXVariantGroup; children = ( 80F864E82433C6450026EC26 /* fi */, + C182166F297E55A7001EB097 /* es */, + C1F83F582981EDCF00963B52 /* da */, + C105EF132981EDCF00EA8341 /* de */, + C14B04E22981EDD200B37D8B /* fr */, + C17F1B512981EDD500F2F205 /* nb */, + C18F3CBF2981EDD6000D3D0A /* nl */, + C1BE50C52981EDD8009CC165 /* ro */, + C1E3CD6B2981EDD9006BD841 /* sv */, + C1BCB5AD298309C4001C50FF /* it */, + C19E3879298638CE00851444 /* tr */, + C1F48FF42995821600C8BD69 /* pl */, + C1C247822995823200371B88 /* sk */, + C122DEF729BBFAAE00321F8D /* ru */, + C1FF3D4829C786A900BDC1EC /* he */, + C1B0CFD129C786BF0045B04D /* ja */, + C1E693C729C786E200410918 /* pt-BR */, + C192C5FB29C78711001EFEA6 /* vi */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + C182166C297E55A7001EB097 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + C182166D297E55A7001EB097 /* es */, + C1F83F572981EDCF00963B52 /* da */, + C105EF122981EDCF00EA8341 /* de */, + C137D7B12981EDD200ABEE68 /* fi */, + C14B04E12981EDD200B37D8B /* fr */, + C17F1B502981EDD500F2F205 /* nb */, + C18F3CBE2981EDD5000D3D0A /* nl */, + C1BE50C42981EDD8009CC165 /* ro */, + C1D18D4E2981EDD900FE14A1 /* ru */, + C1E3CD6A2981EDD9006BD841 /* sv */, + C1BCB5AC298309C4001C50FF /* it */, + C19E3878298638CE00851444 /* tr */, + C1F48FF32995821600C8BD69 /* pl */, + C1C2477C2995823200371B88 /* sk */, ); name = InfoPlist.strings; sourceTree = ""; @@ -1734,6 +1853,7 @@ 7D9BF11D2336FD7C005DCFD6 /* ro */, F5D9C03827DAC063002E48F6 /* tr */, F5E0BE1827E1DE3E0033557E /* he */, + C1C2477B2995823200371B88 /* sk */, ); name = Main.storyboard; sourceTree = ""; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/CGMBLEKit Example.xcscheme b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/CGMBLEKit Example.xcscheme deleted file mode 100644 index f8b93ead47..0000000000 --- a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/CGMBLEKit Example.xcscheme +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/ResetTransmitter.xcscheme b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/ResetTransmitter.xcscheme deleted file mode 100644 index bface559bf..0000000000 --- a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/ResetTransmitter.xcscheme +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme deleted file mode 100644 index 20569bd8be..0000000000 --- a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme b/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme deleted file mode 100644 index 7db3029ce9..0000000000 --- a/Dependencies/CGMBLEKit/CGMBLEKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/OSLog.swift b/Dependencies/CGMBLEKit/CGMBLEKit/OSLog.swift index 8108ff8998..67e76120e6 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/OSLog.swift +++ b/Dependencies/CGMBLEKit/CGMBLEKit/OSLog.swift @@ -4,143 +4,29 @@ // // Copyright © 2017 LoopKit Authors. All rights reserved. // -// -// OSLog.swift -// OmniBLE -// -// Copyright © 2017 LoopKit Authors. All rights reserved. -// OSLog updated for FreeAPSX logs -// import os.log -import Foundation - -let storeLoopLog: Bool = false - -let loggerLock = NSRecursiveLock() -let baseReporter: IssueReporter = SimpleLogReporter() -let category = Logger.Category.CGMBLEKit - -extension NSLocking { - func perform(_ block: () throws -> T) rethrows -> T { - lock() - defer { unlock() } - return try block() - } -} - -extension NSRecursiveLock { - convenience init(label: String) { - self.init() - name = label - } -} -extension NSLock { - convenience init(label: String) { - self.init() - name = label - } -} extension OSLog { - convenience init(category: String) { self.init(subsystem: "com.loopkit.CGMBLEKit", category: category) } func debug(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .debug, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } + log(message, type: .debug, args) } func info(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .info, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.info( - {msg}(), - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - + log(message, type: .info, args) } func `default`(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .default, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .default, args) } func error(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .error, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - - loggerLock.perform { - category.logger.warning( - {msg}(), - description: {msg}(), - error: nil, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .error, args) } private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { @@ -162,276 +48,3 @@ extension OSLog { } } } - -protocol IssueReporter: AnyObject { - /// Call this method in `applicationDidFinishLaunching()`. - func setup() - - func setUserIdentifier(_: String?) - - func reportNonFatalIssue(withName: String, attributes: [String: String]) - - func reportNonFatalIssue(withError: NSError) - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) -} - -final class Logger { - static let `default` = Logger(category: .default, reporter: baseReporter) - static let CGMBLEKit = Logger(category: .CGMBLEKit, reporter: baseReporter) - - enum Category: String { - case `default` - case CGMBLEKit - - var name: String { - rawValue - } - - var logger: Logger { - switch self { - case .default: return .default - case .CGMBLEKit: return .CGMBLEKit - - } - } - - fileprivate var log: OSLog { - let subsystem = Bundle.main.bundleIdentifier! - switch self { - case .default: return OSLog.default - case .CGMBLEKit: return OSLog(subsystem: subsystem, category: name) - } - } - } - - fileprivate enum Error: Swift.Error { - case error(String) - case errorWithInnerError(String, Swift.Error) - case errorWithDescription(String, String) - case errorWithDescriptionAndInnerError(String, String, Swift.Error) - - private func domain() -> String { - switch self { - case let .error(domain), - let .errorWithDescription(domain, _), - let .errorWithDescriptionAndInnerError(domain, _, _), - let .errorWithInnerError(domain, _): - return domain - } - } - - private func innerError() -> Swift.Error? { - switch self { - case let .errorWithDescriptionAndInnerError(_, _, error), - let .errorWithInnerError(_, error): - return error - default: return nil - } - } - - func asNSError() -> NSError { - var info: [String: Any] = ["Description": String(describing: self)] - - if let error = innerError() { - info["Error"] = String(describing: error) - } - - return NSError(domain: domain(), code: -1, userInfo: info) - } - } - - private let category: Category - private let reporter: IssueReporter - let log: OSLog - - private init(category: Category, reporter: IssueReporter) { - self.category = category - self.reporter = reporter - log = category.log - } - - static func setup() { - loggerLock.perform { - baseReporter.setup() - } - } - - func debug( - _ message: @autoclosure () -> String, - printToConsole: Bool = true, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let message = "DEV: \(message())" - if printToConsole { - os_log("%@ - %@ - %d %{public}@", log: log, type: .debug, file.file, function, line, message) - } - reporter.log(category.name, message, file: file, function: function, line: line) - } - - func info( - _ message: String, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let printedMessage = "INFO: \(message)" - os_log("%@ - %@ - %d %{public}@", log: log, type: .info, file.file, function, line, printedMessage) - reporter.log(category.name, printedMessage, file: file, function: function, line: line) - } - - func warning( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "WARN: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .default, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - - } - - func error( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) -> Never { - errorWithoutFatalError(message, description: description, error: maybeError, file: file, function: function, line: line) - - fatalError( - "\(message) @ \(String(describing: description)) @ \(String(describing: maybeError)) @ \(file) @ \(function) @ \(line)" - ) - } - - - fileprivate func errorWithoutFatalError( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "ERR: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .error, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - } -} - -private extension Optional where Wrapped == Swift.Error { - func loggerError(message: String, withDescription description: String?) -> Logger.Error { - switch (description, self) { - case (nil, nil): - return .error(message) - case let (descr?, nil): - return .errorWithDescription(message, descr) - case let (nil, error?): - return .errorWithInnerError(message, error) - case let (descr?, error?): - return .errorWithDescriptionAndInnerError(message, descr, error) - } - } -} - - -final class SimpleLogReporter: IssueReporter { - private let fileManager = FileManager.default - - private var dateFormatter: DateFormatter { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - return dateFormatter - } - - func setup() {} - - func setUserIdentifier(_: String?) {} - - func reportNonFatalIssue(withName _: String, attributes _: [String: String]) {} - - func reportNonFatalIssue(withError _: NSError) {} - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) { - let now = Date() - let startOfDay = Calendar.current.startOfDay(for: now) - - if !fileManager.fileExists(atPath: SimpleLogReporter.logDir) { - try? fileManager.createDirectory( - atPath: SimpleLogReporter.logDir, - withIntermediateDirectories: false, - attributes: nil - ) - } - - if !fileManager.fileExists(atPath: SimpleLogReporter.logFile) { - createFile(at: startOfDay) - } else { - if let attributes = try? fileManager.attributesOfItem(atPath: SimpleLogReporter.logFile), - let creationDate = attributes[.creationDate] as? Date, creationDate < startOfDay - { - try? fileManager.removeItem(atPath: SimpleLogReporter.logFilePrev) - try? fileManager.moveItem(atPath: SimpleLogReporter.logFile, toPath: SimpleLogReporter.logFilePrev) - createFile(at: startOfDay) - } - } - - let logEntry = "\(dateFormatter.string(from: now)) [\(category)] \(file.file) - \(function) - \(line) - \(message)\n" - let data = logEntry.data(using: .utf8)! - try? data.append(fileURL: URL(fileURLWithPath: SimpleLogReporter.logFile)) - } - - private func createFile(at date: Date) { - fileManager.createFile(atPath: SimpleLogReporter.logFile, contents: nil, attributes: [.creationDate: date]) - } - - static var logFile: String { - getDocumentsDirectory().appendingPathComponent("logs/log.txt").path - } - - static var logDir: String { - getDocumentsDirectory().appendingPathComponent("logs").path - } - - static var logFilePrev: String { - getDocumentsDirectory().appendingPathComponent("logs/log_prev.txt").path - } - - static func getDocumentsDirectory() -> URL { - let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) - let documentsDirectory = paths[0] - return documentsDirectory - } -} - -private extension Data { - func append(fileURL: URL) throws { - if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) { - defer { - fileHandle.closeFile() - } - fileHandle.seekToEndOfFile() - fileHandle.write(self) - } else { - try write(to: fileURL, options: .atomic) - } - } -} - -private extension String { - var file: String { components(separatedBy: "/").last ?? "" } -} - diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/TransmitterManager.swift b/Dependencies/CGMBLEKit/CGMBLEKit/TransmitterManager.swift index ce493f6be8..4942087c23 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/TransmitterManager.swift +++ b/Dependencies/CGMBLEKit/CGMBLEKit/TransmitterManager.swift @@ -126,7 +126,7 @@ public class TransmitterManager: TransmitterDelegate { }() let quantity = HKQuantity(unit: .milligramsPerDeciliter, doubleValue: glucoseValue) - let trendRate = HKQuantity(unit: .milligramsPerDeciliter, doubleValue: trendRateValue) + let trendRate = HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trendRateValue) let sample = NewGlucoseSample(date: timestamp, quantity: quantity, condition: nil, trend: trend, trendRate: trendRate, isDisplayOnly: false, wasUserEntered: false, syncIdentifier: syncIdentifier) self.updateDelegate(with: .newData([sample])) } diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/ar.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..b5285b3e91 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit/ar.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Describes a functioning transmitter */ +"OK" = "موافق"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/cs.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..e62935a3d8 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit/cs.lproj/Localizable.strings @@ -0,0 +1,18 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Údaje o glukóze nejsou k dispozici"; + +/* Describes a low battery */ +"Low Battery" = "Vybitá baterie"; + +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* Timeout error description */ +"Peripheral did not respond in time" = "Periferní zařízení nereagovalo včas"; + +/* The description of sensor calibration state when sensor sensor is stopped. */ +"Sensor is stopped" = "Senzor je zastaven"; + +/* The description of sensor calibration state when sensor sensor is warming up. */ +"Sensor is warming up" = "Senzor se zahřívá"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/da.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/da.lproj/Localizable.strings index 64f8804bb9..fbf2fd54b1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/da.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/da.lproj/Localizable.strings @@ -5,7 +5,7 @@ "Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ -"Glucose data is unavailable" = "Glukosedata er ikke tilgængelige"; +"Glucose data is unavailable" = "Glukosedata ikke tilgængeligt"; /* Describes a low battery */ "Low Battery" = "lavt batteri"; @@ -13,27 +13,30 @@ /* Describes a functioning transmitter */ "OK" = "OK"; +/* invlid config error description */ +"Peripheral command was invalid" = "Kommando for ekstern enhed var ugyldig"; + /* Timeout error description */ -"Peripheral did not respond in time" = "Perifere reagerede ikke i tide"; +"Peripheral did not respond in time" = "Ekstern enhed svarede ikke i tide"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Perifert udstyr er ikke tilsluttet"; +"Peripheral isnʼt connected" = "Ekstern enhed er ikke forbundet"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "Sensorkalibrering er OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Sensoren er i en ukendt tilstand %1$d"; +"Sensor is in unknown state %1$d" = "Sensor i ukendt tilstand %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensoren er stoppet"; +"Sensor is stopped" = "Sensor er stoppet"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensoren varmer op"; +"Sensor is warming up" = "Sensor varmer op"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Sensoren har brug for kalibrering"; /* Error description */ -"Unknown characteristic" = "Ukendt egenskab"; +"Unknown characteristic" = "Ukendt karakteristik"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/de.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/de.lproj/Localizable.strings index 9557e9d3dd..4ca4b9cc22 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/de.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/de.lproj/Localizable.strings @@ -1,29 +1,42 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; + /* Error description for unreliable state */ -"Glucose data is unavailable" = "Glukosedaten sind nicht verfügbar"; +"Glucose data is unavailable" = "Blutzuckerdaten sind nicht verfügbar"; /* Describes a low battery */ "Low Battery" = "Niedriger Batteriestatus"; +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Peripheriebefehl war ungültig"; + /* Timeout error description */ -"Peripheral did not respond in time" = "Peripheres Gerät antwortet nicht rechtzeitig"; +"Peripheral did not respond in time" = "Peripherie antwortet nicht rechtzeitig"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Peripheres Gerät ist nicht verbunden"; +"Peripheral isnʼt connected" = "Peripherie ist nicht verbunden"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "Sensorkalibrierung ist OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Sensor ist in unbekanntem Zustand %1$d"; +"Sensor is in unknown state %1$d" = "Sensor befindet sich in unbekanntem Zustand %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ "Sensor is stopped" = "Sensor ist gestoppt"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensor erwärmt sich"; +"Sensor is warming up" = "Sensor befindet sich in der Aufwärmphase"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Sensor benötigt Kalibrierung"; /* Error description */ "Unknown characteristic" = "Unbekannte Charakteristik"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/es.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/es.lproj/Localizable.strings index ab57192c0e..743c929ed6 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/es.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/es.lproj/Localizable.strings @@ -1,3 +1,8 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ "Glucose data is unavailable" = "Los datos de glucosa no están disponibles"; @@ -5,6 +10,12 @@ /* Describes a low battery */ "Low Battery" = "Batería Baja"; +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "El comando del dispositivo periférico no es válido"; + /* Timeout error description */ "Peripheral did not respond in time" = "El dispositivo periférico no respondió a tiempo"; @@ -15,16 +26,17 @@ "Sensor calibration is OK" = "Calibración de sensor está OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Estado desconocido de sensor %1$d"; +"Sensor is in unknown state %1$d" = "El sensor está en estado desconocido %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensor se ha detenido"; +"Sensor is stopped" = "El sensor está en pausa"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Preparación de sensor"; +"Sensor is warming up" = "El sensor se está calentando"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Sensor se necesita de calibración"; /* Error description */ "Unknown characteristic" = "Característica desconocida"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/fi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/fi.lproj/Localizable.strings index 51358d0b69..0255fcc38b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/fi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/fi.lproj/Localizable.strings @@ -17,10 +17,10 @@ "Peripheral command was invalid" = "Oheislaitekomento oli virheellinen"; /* Timeout error description */ -"Peripheral did not respond in time" = "Oheislaite ei vastannut ajoissa"; +"Peripheral did not respond in time" = "Ulkoinen laite ei vastannut ajoissa"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Oheislaitetta ei ole kytketty"; +"Peripheral isnʼt connected" = "Ulkoinen laite ei ole yhdistetty"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "Anturin kalibrointi onnistui"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/fr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/fr.lproj/Localizable.strings index df325af9de..284b17ce10 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/fr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/fr.lproj/Localizable.strings @@ -1,9 +1,21 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; + /* Error description for unreliable state */ -"Glucose data is unavailable" = "Les données de glucose ne sont pas disponibles"; +"Glucose data is unavailable" = "Les données de glycémie ne sont pas disponibles"; /* Describes a low battery */ "Low Battery" = "Batterie faible"; +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "La commande périphérique a retourné une commande invalide"; + /* Timeout error description */ "Peripheral did not respond in time" = "Le périphérique n’a pas répondu à temps"; @@ -11,19 +23,20 @@ "Peripheral isnʼt connected" = "Le périphérique n’est pas connecté"; /* The description of sensor calibration state when sensor calibration is ok. */ -"Sensor calibration is OK" = "Calibration de capteur OK"; +"Sensor calibration is OK" = "Étalonnage de capteur OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Capteur est dans un état inconnu %1$d"; +"Sensor is in unknown state %1$d" = "Le capteur est dans un état inconnu %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Capteur est arrêté"; +"Sensor is stopped" = "Le capteur est arrêté"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Capteur est en période de réchauffement"; +"Sensor is warming up" = "Le capteur est en préchauffage"; /* The description of sensor calibration state when sensor needs calibration. */ -"Sensor needs calibration" = "Capteur a besoin de calibration"; +"Sensor needs calibration" = "Capteur doit être étalonné"; /* Error description */ "Unknown characteristic" = "Caractéristique inconnue"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/he.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/he.lproj/Localizable.strings index 13448f2a95..fcb3585eba 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/he.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/he.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Glucose data is unavailable" = "Glucose data is unavailable"; /* Describes a low battery */ -"Low Battery" = "Low Battery"; +"Low Battery" = "סוללה חלשה"; /* Describes a functioning transmitter */ "OK" = "OK"; @@ -23,17 +23,17 @@ "Sensor calibration is OK" = "Sensor calibration is OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Sensor is in unknown state %1$d"; +"Sensor is in unknown state %1$d" = "מצב החישן אינו ידוע %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensor is stopped"; +"Sensor is stopped" = "חיישן נעצר"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensor is warming up"; +"Sensor is warming up" = "חיישן מתחמם"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Sensor needs calibration"; /* Error description */ -"Unknown characteristic" = "Unknown characteristic"; +"Unknown characteristic" = "מאפיין לא ידוע"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/hi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..aeef608c07 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit/hi.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "ग्लूकोस डेटा उपलब्ध नहीं है"; + +/* The description of sensor calibration state when sensor sensor is stopped. */ +"Sensor is stopped" = "सेन्सर समाप्त हो गया"; + +/* The description of sensor calibration state when sensor sensor is warming up. */ +"Sensor is warming up" = "सेन्सर अपने शुरुआती समय में है"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/it.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/it.lproj/Localizable.strings index 302d115e33..9e9621ca7b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/it.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/it.lproj/Localizable.strings @@ -1,10 +1,21 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ -"Glucose data is unavailable" = "I dati sulla glicemia non sono disponibili"; +"Glucose data is unavailable" = "I dati della glicemia non sono disponibili"; /* Describes a low battery */ "Low Battery" = "Batteria Bassa"; +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Il comando della periferica non era valido"; + /* Timeout error description */ "Peripheral did not respond in time" = "La periferica non ha risposto nel tempo limite"; @@ -15,16 +26,17 @@ "Sensor calibration is OK" = "La calibrazione del sensore e' valida"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Il sensore presenta stato sconosciuto %1$d"; +"Sensor is in unknown state %1$d" = "Il Sensore e' in un stato%1$d sconosciuto"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Il sensore e' spento"; +"Sensor is stopped" = "Il Sensore e' fermato"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Il sensore e' in fase di avvio"; +"Sensor is warming up" = "Il Sensore si sta riscaldando"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Il sensore necessita di calibrazione"; /* Error description */ -"Unknown characteristic" = "Caratteristiche sconosciute"; +"Unknown characteristic" = "Caratteristica sconosciuta"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/ja.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/ja.lproj/Localizable.strings index 8d68dfeb4b..1711840163 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/ja.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/ja.lproj/Localizable.strings @@ -14,10 +14,10 @@ "OK" = "OK"; /* Timeout error description */ -"Peripheral did not respond in time" = "周辺機器が時間内に反応しませんでした"; +"Peripheral did not respond in time" = "危機が時間内に反応しませんでした"; /* Not ready error description */ -"Peripheral isnʼt connected" = "周辺機器が接続されていません"; +"Peripheral isnʼt connected" = "危機が接続されていません"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "センサーの較正はできています"; @@ -35,5 +35,5 @@ "Sensor needs calibration" = "センサーの較正が必要です"; /* Error description */ -"Unknown characteristic" = "不明な特徴"; +"Unknown characteristic" = "エラー不明"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/nb.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/nb.lproj/Localizable.strings index b045ed66e8..b5f0c3d371 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/nb.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/nb.lproj/Localizable.strings @@ -1,8 +1,20 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; + /* Error description for unreliable state */ -"Glucose data is unavailable" = "Glukose data er utilgjengelig"; +"Glucose data is unavailable" = "Blodsukker er utilgjengelig"; /* Describes a low battery */ -"Low Battery" = "Lite batteri"; +"Low Battery" = "Lavt batterinivå"; + +/* Describes a functioning transmitter */ +"OK" = "Ok"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Perifer kommando var ugyldig"; /* Timeout error description */ "Peripheral did not respond in time" = "Tilbehøret svarte ikke i tide"; @@ -14,7 +26,7 @@ "Sensor calibration is OK" = "Sensorkalibrering er OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Sensor er i ukjent status %1$d"; +"Sensor is in unknown state %1$d" = "Sensor er i ukjent tilstand %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ "Sensor is stopped" = "Sensor er stoppet"; @@ -27,3 +39,4 @@ /* Error description */ "Unknown characteristic" = "Ukjent karakteristikk"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/nl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/nl.lproj/Localizable.strings index 1f53d73fc5..96deda64d5 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/nl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/nl.lproj/Localizable.strings @@ -1,9 +1,20 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ -"Glucose data is unavailable" = "Glucose gegevens niet beschikbaar"; +"Glucose data is unavailable" = "Glucosegegevens zijn niet beschikbaar"; /* Describes a low battery */ -"Low Battery" = "Lage batterij"; +"Low Battery" = "Batterij Bijna Leeg"; + +/* Describes a functioning transmitter */ +"OK" = "Ok"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Perifere commando was ongeldig"; /* Timeout error description */ "Peripheral did not respond in time" = "Apparaat reageerde niet op tijd"; @@ -12,19 +23,20 @@ "Peripheral isnʼt connected" = "Apparaat is niet verbonden"; /* The description of sensor calibration state when sensor calibration is ok. */ -"Sensor calibration is OK" = "Sensor callibratie is geslaagd"; +"Sensor calibration is OK" = "Sensorkalibratie is OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Senor is in onbekende status %1$d"; +"Sensor is in unknown state %1$d" = "Onbekende sensorstatus %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensor is gestopt"; +"Sensor is stopped" = "Sensor gestopt"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensor is aan het opwarmen"; +"Sensor is warming up" = "Sensor aan het opwarmen"; /* The description of sensor calibration state when sensor needs calibration. */ -"Sensor needs calibration" = "Sensor heeft callibratie nodig"; +"Sensor needs calibration" = "Sensor moet worden gekalibreerd"; /* Error description */ "Unknown characteristic" = "Onbekende eigenschap"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/pl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/pl.lproj/Localizable.strings index 3365fa2488..837bc5a80e 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/pl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/pl.lproj/Localizable.strings @@ -1,9 +1,21 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; + /* Error description for unreliable state */ -"Glucose data is unavailable" = "Dane o glukozie są niedostępne"; +"Glucose data is unavailable" = "Dane o poziomie glukozy są niedostępne"; /* Describes a low battery */ "Low Battery" = "Słaba bateria"; +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Polecenie urządzenia peryferyjnego było nieprawidłowe"; + /* Timeout error description */ "Peripheral did not respond in time" = "Urz. peryferyjne nie odpowiada"; @@ -17,13 +29,14 @@ "Sensor is in unknown state %1$d" = "Sensor jest w nieznanym stanie %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensor jest wstrzymany"; +"Sensor is stopped" = "Sensor został zatrzymany"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensor jest w trakcie uruchamiania"; +"Sensor is warming up" = "Sensor jest w fazie rozruchu"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Sensor wymaga kalibracji"; /* Error description */ "Unknown characteristic" = "Nieznany błąd"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/pt-BR.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/pt-BR.lproj/Localizable.strings index 25858c47ec..113f3439b8 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/pt-BR.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/pt-BR.lproj/Localizable.strings @@ -14,10 +14,10 @@ "OK" = "OK"; /* Timeout error description */ -"Peripheral did not respond in time" = "Periférico não respondeu a tempo"; +"Peripheral did not respond in time" = "Acessório não respondeu a tempo"; /* Not ready error description */ -"Peripheral isnʼt connected" = "O periférico não está conectado"; +"Peripheral isnʼt connected" = "Acessório não está conectado"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "A calibração do sensor está OK"; @@ -35,5 +35,5 @@ "Sensor needs calibration" = "O sensor precisa de calibração"; /* Error description */ -"Unknown characteristic" = "Característica desconhecida"; +"Unknown characteristic" = "Característica Desconhecida"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/ro.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/ro.lproj/Localizable.strings index 612402f6cd..93e588a283 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/ro.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/ro.lproj/Localizable.strings @@ -5,31 +5,34 @@ "Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ -"Glucose data is unavailable" = "Datele cu glucoză nu sunt disponibile"; +"Glucose data is unavailable" = "Datele despre glucoză nu sunt disponibile"; /* Describes a low battery */ -"Low Battery" = "Baterie descarcata"; +"Low Battery" = "Baterie descărcată"; /* Describes a functioning transmitter */ "OK" = "OK"; +/* invlid config error description */ +"Peripheral command was invalid" = "Comanda dispozitivului este nevalidă"; + /* Timeout error description */ -"Peripheral did not respond in time" = "Perifericul nu a răspuns la timp"; +"Peripheral did not respond in time" = "Dispozitivul periferic nu a răspuns în timp util"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Perifericul nu este conectat"; +"Peripheral isnʼt connected" = "Dispozitivul periferic nu este conectat"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "Calibrarea senzorului este OK"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Senzorul este într-o stare necunoscută %1$d"; +"Sensor is in unknown state %1$d" = "Starea senzorului este necunoscută"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Senzorul este oprit"; +"Sensor is stopped" = "Senzorul e oprit"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Senzorul se încălzește"; +"Sensor is warming up" = "Senzorul se pregătește"; /* The description of sensor calibration state when sensor needs calibration. */ "Sensor needs calibration" = "Senzorul are nevoie de calibrare"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/ru.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/ru.lproj/Localizable.strings index 49bc728094..be6968a125 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/ru.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/ru.lproj/Localizable.strings @@ -1,9 +1,20 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ "Glucose data is unavailable" = "Данные глюкозы недоступны"; /* Describes a low battery */ -"Low Battery" = "Низкий заряд батареи"; +"Low Battery" = "Батарейка садится"; + +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Неправильно сформирован запрос."; /* Timeout error description */ "Peripheral did not respond in time" = "Периферийное устройство не отозвалось вовремя"; @@ -15,7 +26,7 @@ "Sensor calibration is OK" = "Калибровка сенсора ОК"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Состояние сенсора неизвестно %1$d"; +"Sensor is in unknown state %1$d" = "Неизвестное состояние сенсора%1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ "Sensor is stopped" = "Сенсор остановлен"; @@ -28,3 +39,4 @@ /* Error description */ "Unknown characteristic" = "Неизвестная характеристика"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/sk.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..7280bc729a --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKit/sk.lproj/Localizable.strings @@ -0,0 +1,42 @@ +/* CGM display title */ +"Dexcom G5" = "Dexcom G5"; + +/* CGM display title */ +"Dexcom G6" = "Dexcom G6"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Údaje o glykémii nie sú k dispozícii"; + +/* Describes a low battery */ +"Low Battery" = "Slabá batéria"; + +/* Describes a functioning transmitter */ +"OK" = "OK"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Periférny príkaz bol neplatný"; + +/* Timeout error description */ +"Peripheral did not respond in time" = "Periférne zariadenie nereagovalo načas"; + +/* Not ready error description */ +"Peripheral isnʼt connected" = "Periférne zariadenie nie je pripojené"; + +/* The description of sensor calibration state when sensor calibration is ok. */ +"Sensor calibration is OK" = "Kalibrácia senzora je vporiadku"; + +/* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Senzor je v neznámom stave %1$d"; + +/* The description of sensor calibration state when sensor sensor is stopped. */ +"Sensor is stopped" = "Senzor je zastavený"; + +/* The description of sensor calibration state when sensor sensor is warming up. */ +"Sensor is warming up" = "Senzor sa zahrieva"; + +/* The description of sensor calibration state when sensor needs calibration. */ +"Sensor needs calibration" = "Senzor potrebuje kalibráciu"; + +/* Error description */ +"Unknown characteristic" = "Neznáma charakteristika"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/sv.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/sv.lproj/Localizable.strings index c53148f52a..38e1e14c1c 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/sv.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/sv.lproj/Localizable.strings @@ -13,8 +13,11 @@ /* Describes a functioning transmitter */ "OK" = "OK"; +/* invlid config error description */ +"Peripheral command was invalid" = "Perifert kommando var ogiltigt"; + /* Timeout error description */ -"Peripheral did not respond in time" = "Enheten svarade inte i tid"; +"Peripheral did not respond in time" = "Enhet svarade inte inom utsatt tid"; /* Not ready error description */ "Peripheral isnʼt connected" = "Enheten är inte ansluten"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/tr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/tr.lproj/Localizable.strings index 13448f2a95..a4fd7b9eae 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/tr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/tr.lproj/Localizable.strings @@ -5,35 +5,38 @@ "Dexcom G6" = "Dexcom G6"; /* Error description for unreliable state */ -"Glucose data is unavailable" = "Glucose data is unavailable"; +"Glucose data is unavailable" = "KŞ verileri mevcut değil"; /* Describes a low battery */ -"Low Battery" = "Low Battery"; +"Low Battery" = "Düşük Pil"; /* Describes a functioning transmitter */ -"OK" = "OK"; +"OK" = "Tamam"; + +/* invlid config error description */ +"Peripheral command was invalid" = "Çevre birimi komutu geçersiz"; /* Timeout error description */ -"Peripheral did not respond in time" = "Peripheral did not respond in time"; +"Peripheral did not respond in time" = "Çevre birimi zamanında yanıt vermedi"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Peripheral isnʼt connected"; +"Peripheral isnʼt connected" = "Çevre birimi bağlı değil"; /* The description of sensor calibration state when sensor calibration is ok. */ -"Sensor calibration is OK" = "Sensor calibration is OK"; +"Sensor calibration is OK" = "Sensör kalibrasyonu tamam"; /* The description of sensor calibration state when raw value is unknown. (1: missing data details) */ -"Sensor is in unknown state %1$d" = "Sensor is in unknown state %1$d"; +"Sensor is in unknown state %1$d" = "Sensör bilinmeyen durumda %1$d"; /* The description of sensor calibration state when sensor sensor is stopped. */ -"Sensor is stopped" = "Sensor is stopped"; +"Sensor is stopped" = "Sensör durdu"; /* The description of sensor calibration state when sensor sensor is warming up. */ -"Sensor is warming up" = "Sensor is warming up"; +"Sensor is warming up" = "Sensör ısınıyor"; /* The description of sensor calibration state when sensor needs calibration. */ -"Sensor needs calibration" = "Sensor needs calibration"; +"Sensor needs calibration" = "Sensörün kalibrasyona ihtiyacı var"; /* Error description */ -"Unknown characteristic" = "Unknown characteristic"; +"Unknown characteristic" = "Bilinmeyen karakteristik"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/vi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/vi.lproj/Localizable.strings index 1a557fb072..d3cc20db07 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/vi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/vi.lproj/Localizable.strings @@ -14,10 +14,10 @@ "OK" = "OK"; /* Timeout error description */ -"Peripheral did not respond in time" = "Ngoại vi không đáp ứng kịp thời"; +"Peripheral did not respond in time" = "Ngoại vi không đáp ứng kịp thời"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Ngoại vi không được kết nối"; +"Peripheral isnʼt connected" = "Ngoại vi không được kết nối"; /* The description of sensor calibration state when sensor calibration is ok. */ "Sensor calibration is OK" = "Hiệu chuẩn cảm biến là OK"; @@ -35,5 +35,5 @@ "Sensor needs calibration" = "Cảm biến cần hiệu chuẩn"; /* Error description */ -"Unknown characteristic" = "Đặc điểm không xác định"; +"Unknown characteristic" = "Đặc điểm không xác định"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKit/zh-Hans.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKit/zh-Hans.lproj/Localizable.strings index c552df6018..4456ad7040 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKit/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKit/zh-Hans.lproj/Localizable.strings @@ -27,3 +27,4 @@ /* Error description */ "Unknown characteristic" = "未知特性"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..b714b46e8a --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/Localizable.strings @@ -0,0 +1,16 @@ +/* Confirmation message for deleting a CGM */ +"Are you sure you want to delete this CGM?" = "هل أنت متأكد أنك تريد حذف هذا CGM؟"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "إلغاء"; + +/* Button title to delete CGM +Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "حذف CGM"; + +/* Title describing glucose value */ +"Glucose" = "قراءات السكر"; + +/* Title describing CGM calibration and battery state */ +"Status" = "الحالة"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/TransmitterManagerSetup.strings new file mode 100644 index 0000000000..ff24cb9fb9 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ar.lproj/TransmitterManagerSetup.strings @@ -0,0 +1,3 @@ +/* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ +"GOT-KQ-cEh.text" = "تفاصيل"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/cs.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..ea9199eee8 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/cs.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušit"; + +/* Title describing glucose value */ +"Glucose" = "Glukóza"; + +/* Title describing CGM calibration and battery state */ +"Status" = "Status"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/Localizable.strings index 76fdcd3a2a..a01e1297d1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/Localizable.strings @@ -5,7 +5,7 @@ "Are you sure you want to delete this CGM?" = "Er du sikker på, at du vil slette denne CGM?"; /* The title of the cancel action in an action sheet */ -"Cancel" = "Afbestille"; +"Cancel" = "Annuller"; /* Title describing glucose date */ "Date" = "Dato"; @@ -15,7 +15,7 @@ Title text for the button to remove a CGM from Loop */ "Delete CGM" = "Slet CGM"; /* Title describing glucose value */ -"Glucose" = "Blodsukker"; +"Glucose" = "Glukose"; /* Describes a glucose value adjusted to reflect a recent calibration */ "Glucose (Adjusted)" = "Blodsukker (justeret)"; @@ -23,23 +23,39 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Seneste kalibrering"; +/* Section title for latest connection date */ +"Latest Connection" = "Seneste forbindelse"; + /* Section title for latest glucose reading */ -"Latest Reading" = "Seneste læsning"; +"Latest Reading" = "Seneste aflæsning"; /* Button title to open CGM app */ "Open App" = "Åben app"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Synkronisering af fjerndata"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor udløbet"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensor udløber"; + /* Title describing sensor session age */ -"Session Age" = "Session alder"; +"Session Age" = "Session-alder"; /* Title describing CGM calibration and battery state */ -"Status" = "status"; +"Status" = "Status"; /* Title describing transmitter session age */ -"Transmitter Age" = "Senders alder"; +"Transmitter Age" = "Sender alder"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Senders ID"; +"Transmitter ID" = "Sender ID"; /* Title describing glucose trend */ "Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Upload aflæsninger"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/TransmitterManagerSetup.strings index 0244912f84..886b4145e3 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/da.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Legitimationsoplysninger"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Detalje"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Sender-ID'et kan findes trykt på bagsiden af ​​enheden, på den side af boksen, den kom i, og fra indstillingsmenuerne på modtageren og mobilappen."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Senders id"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Data kan downloades over internettet fra Share, når transmitterforbindelsen mislykkes."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Indtast det 6-cifrede sender-ID"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Sender-ID'et kan findes trykt på bagsiden af ​​enheden, på den side af boksen, den kom i, og fra indstillingsmenuerne på modtageren og mobilappen."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Sender ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/Localizable.strings index 25833c08db..ef6a34b717 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Möchten Sie dieses CGM wirklich löschen?"; +"Are you sure you want to delete this CGM?" = "Sind Sie sicher, dass Sie dieses CGM löschen wollen?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Abbrechen"; @@ -15,7 +15,7 @@ Title text for the button to remove a CGM from Loop */ "Delete CGM" = "CGM löschen"; /* Title describing glucose value */ -"Glucose" = "Glukose"; +"Glucose" = "Blutzucker"; /* Describes a glucose value adjusted to reflect a recent calibration */ "Glucose (Adjusted)" = "BZ-Wert (angepasst)"; @@ -23,12 +23,24 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Letzte Kalibrierung"; +/* Section title for latest connection date */ +"Latest Connection" = "Letzte Verbindung"; + /* Section title for latest glucose reading */ "Latest Reading" = "Letzter Wert"; /* Button title to open CGM app */ "Open App" = "App öffnen"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Remote Daten Synchronisation"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor abgelaufen"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensor-Ablaufzeitpunkt"; + /* Title describing sensor session age */ "Session Age" = "Sitzungsalter"; @@ -39,7 +51,11 @@ Title text for the button to remove a CGM from Loop */ "Transmitter Age" = "Transmitteralter"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Sender-ID"; +"Transmitter ID" = "Transmitter-ID"; /* Title describing glucose trend */ "Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Werte hochladen"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/TransmitterManagerSetup.strings index f9774d9df4..71c85c81c3 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/de.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Logindaten"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Detail"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Die Transmitter-ID befindet sich auf der Rückseite des Transmitters, an der Seite der Verpackung und in den Einstellungsmenüs des Empfängers sowie der Dexcom-App."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Transmitter-ID"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Daten können über das Internet von Share heruntergeladen werden, wenn die Verbindung zum Transmitter unterbrochen ist."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Geben Sie die 6-stellige Transmitter-ID ein"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Die Transmitter-ID befindet sich auf der Rückseite des Transmitters, an der Seite der Verpackung und in den Einstellungsmenüs des Empfängers sowie der Dexcom-App."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Transmitter-ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/Localizable.strings index 5e1c825635..a190b5f28d 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "¿Está usted seguro de querer eliminar este CGM?"; +"Are you sure you want to delete this CGM?" = "¿Está seguro de que quiere eliminar este MCG?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Cancelar"; @@ -12,7 +12,7 @@ /* Button title to delete CGM Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Eliminar CGM"; +"Delete CGM" = "Eliminar MCG"; /* Title describing glucose value */ "Glucose" = "Glucosa"; @@ -23,12 +23,24 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Calibración más reciente"; +/* Section title for latest connection date */ +"Latest Connection" = "Conexión más reciente"; + /* Section title for latest glucose reading */ "Latest Reading" = "Dato más reciente"; /* Button title to open CGM app */ "Open App" = "Abrir App"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Sincronización remota de datos"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor caducado"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "El sensor caduca"; + /* Title describing sensor session age */ "Session Age" = "Tiempo de sesión del sensor"; @@ -39,7 +51,11 @@ Title text for the button to remove a CGM from Loop */ "Transmitter Age" = "Edad del transmisor"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "ID de Transmisor"; +"Transmitter ID" = "Identificación del transmisor"; /* Title describing glucose trend */ "Trend" = "Tendencia"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Subir Datos"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/TransmitterManagerSetup.strings index 16e7bfb738..9d3fb37911 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/es.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Credenciales"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Detalle"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "La identificación del transmisor puede encontrarse en la parte trasera del dispositivo, en el lateral de la caja en la que venía, o en los menús de ajustes del receptor y la app del teléfono móvil. "; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Identificación del transmisor"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Los datos pueden descargarse, vía internet, desde el Share cuando la conexión del transmisor falla."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Introduzca la identificación de 6 cifras del transmisor"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "La identificación del transmisor puede encontrarse en la parte trasera del dispositivo, en el lateral de la caja en la que venía, o en los menús de ajustes del receptor y la app del teléfono móvil. "; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Identificación del transmisor"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/Localizable.strings index ecb4c47ad4..6bfc22668e 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/Localizable.strings @@ -11,7 +11,7 @@ "Date" = "Aika"; /* Button title to delete CGM - Title text for the button to remove a CGM from Loop */ +Title text for the button to remove a CGM from Loop */ "Delete CGM" = "Poista CGM"; /* Title describing glucose value */ diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/TransmitterManagerSetup.strings index 0b9e48a5f0..1f52cf3ba7 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/fi.lproj/TransmitterManagerSetup.strings @@ -5,7 +5,7 @@ "Dds-49-o7G.title" = "Lähettimen asennus"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Yksityiskohta"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Tiedot voidaan ladata Internetistä Share-palvelimelta, kun yhteys lähettimeen epäonnistuu."; diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/Localizable.strings index 2c6c3c060e..03b5101b37 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/Localizable.strings @@ -12,7 +12,7 @@ /* Button title to delete CGM Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Supprimer CGM"; +"Delete CGM" = "Effacer le CGM"; /* Title describing glucose value */ "Glucose" = "Glycémie"; @@ -23,12 +23,24 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Dernier étalonnage"; +/* Section title for latest connection date */ +"Latest Connection" = "Dernière connexion"; + /* Section title for latest glucose reading */ "Latest Reading" = "Dernière mesure"; /* Button title to open CGM app */ "Open App" = "Ouvrir l’application"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Synchronisation des données à distance"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Capteur expiré"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Le capteur expire"; + /* Title describing sensor session age */ "Session Age" = "L’âge de la session"; @@ -43,3 +55,7 @@ Title text for the button to remove a CGM from Loop */ /* Title describing glucose trend */ "Trend" = "Tendance"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Envoyer les données"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/TransmitterManagerSetup.strings index 69db6e60b9..b6c83e41ba 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/fr.lproj/TransmitterManagerSetup.strings @@ -1,6 +1,5 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ -"5oU-vK-JHQ.text" = "Identifiants"; +"5oU-vK-JHQ.text" = "Identifiant"; /* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ "Dds-49-o7G.title" = "Configuration du transmetteur"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Détail"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "L’ID du transmetteur se trouve sur le dos de l’appareil, sur la boîte dans laquelle il est venu, et depuis les menus de réglages du receveur et de l’application mobile."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "ID du transmetteur"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Les données peuvent être téléchargées depuis Internet avec Share quand la connexion au transmetteur échoue."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Entrez l’ID du transmetteur, composé de 6 lettres et chiffres"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "L’ID du transmetteur se trouve sur le dos de l’appareil, sur la boîte dans laquelle il est fourni, et depuis les menus de réglages du récepteur et de l’application mobile."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID du transmetteur"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/Localizable.strings index 1e4a01357a..08dfc6fce7 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/Localizable.strings @@ -23,20 +23,23 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Latest Calibration"; +/* Section title for latest connection date */ +"Latest Connection" = "חיבור אחרון"; + /* Section title for latest glucose reading */ "Latest Reading" = "Latest Reading"; /* Button title to open CGM app */ "Open App" = "Open App"; -/* Title describing sensor session age */ -"Session Age" = "Session Age"; +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor Expired"; /* Title describing sensor expiration */ "Sensor Expires" = "Sensor Expires"; -/* Title describing past sensor expiration */ -"Sensor Expired" = "Sensor Expired"; +/* Title describing sensor session age */ +"Session Age" = "Session Age"; /* Title describing CGM calibration and battery state */ "Status" = "Status"; @@ -48,4 +51,5 @@ Title text for the button to remove a CGM from Loop */ "Transmitter ID" = "Transmitter ID"; /* Title describing glucose trend */ -"Trend" = "Trend"; +"Trend" = "מגמה"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/TransmitterManagerSetup.strings index 41859f853c..3568d2477f 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/he.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Credentials"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Detail"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Transmitter ID"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Enter the 6-digit transmitter ID"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Transmitter ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/hi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..82f4a5b2e6 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/hi.lproj/Localizable.strings @@ -0,0 +1,15 @@ +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/मिनट"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + +/* Title describing glucose value */ +"Glucose" = "शुगर"; + +/* Title describing glucose trend */ +"Trend" = "ट्रेंड"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "अपलोड रीडिंग्स"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/Localizable.strings index 1ca8688f67..f01523221d 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/Localizable.strings @@ -5,7 +5,7 @@ "Are you sure you want to delete this CGM?" = "Sei sicuro di voler eliminare questo CGM?"; /* The title of the cancel action in an action sheet */ -"Cancel" = "Cancella"; +"Cancel" = "Annulla"; /* Title describing glucose date */ "Date" = "Data"; @@ -15,20 +15,32 @@ Title text for the button to remove a CGM from Loop */ "Delete CGM" = "Elimina CGM"; /* Title describing glucose value */ -"Glucose" = "Glicemie"; +"Glucose" = "Glicemia"; /* Describes a glucose value adjusted to reflect a recent calibration */ -"Glucose (Adjusted)" = "Glicemie (Corretto)"; +"Glucose (Adjusted)" = "Glicemie (Corrette)"; /* Section title for latest glucose calibration */ "Latest Calibration" = "Ultima calibrazione"; +/* Section title for latest connection date */ +"Latest Connection" = "Ultima connessione"; + /* Section title for latest glucose reading */ "Latest Reading" = "Ultima lettura"; /* Button title to open CGM app */ "Open App" = "Apri app"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Sincronizzazione di dati remoti"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensore Scaduto"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Scadenza Sensore"; + /* Title describing sensor session age */ "Session Age" = "Età sessione"; @@ -39,7 +51,11 @@ Title text for the button to remove a CGM from Loop */ "Transmitter Age" = "Età trasmettitore"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "ID Trasmettitore"; +"Transmitter ID" = "ID trasmettitore"; /* Title describing glucose trend */ -"Trend" = "Andamento"; +"Trend" = "Tendenza"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Carica Letture"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/TransmitterManagerSetup.strings index 61f9eea2f0..90067533b3 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/it.lproj/TransmitterManagerSetup.strings @@ -1,19 +1,12 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Credenziali"; /* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ -"Dds-49-o7G.title" = "Configurazione trasmettitore"; +"Dds-49-o7G.title" = "Configurazione"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Dettaglio"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "L'ID del trasmettitore è riportato sul retro del dispositivo, ai lati della confezione di imballaggio e nel menù Impostazioni del ricevitore e dell’app per dispositivi mobili."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "ID trasmettitore"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "In caso di problemi di connessione del trasmettitore, puoi scaricare i dati da Internet grazie alla funzionalità Condividi."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Inserisci ID a 6 cifre del trasmettitore"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "L'ID del trasmettitore è riportato sul retro del dispositivo, ai lati della confezione di imballaggio e nel menù Impostazioni del ricevitore e dell’app per dispositivi mobili."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID trasmettitore"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/Localizable.strings index 67c8b0a03e..056dbceb22 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/分"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "このCGMを削除しますか?"; +"Are you sure you want to delete this CGM?" = "このCGMを削除しますか?"; /* The title of the cancel action in an action sheet */ "Cancel" = "キャンセル"; @@ -24,7 +24,7 @@ Title text for the button to remove a CGM from Loop */ "Latest Calibration" = "直近の較正"; /* Section title for latest glucose reading */ -"Latest Reading" = "直近の読み取り"; +"Latest Reading" = "最新の読み取り"; /* Button title to open CGM app */ "Open App" = "アプリを開く"; @@ -43,3 +43,4 @@ Title text for the button to remove a CGM from Loop */ /* Title describing glucose trend */ "Trend" = "トレンド"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/TransmitterManagerSetup.strings index 1e1561b5d9..ece0fced03 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ja.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "証明"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "トランスミッター設定"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "詳細"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "トランスミッターIDは、トランスミッタ―の底面、パッケージの側面、またはレシーバとモバイルアプリの設定メニューで確認できます。"; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "トランスミッタ ID"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "トランスミッターの接続ができないときに、インターネットでShareからデータをダウンロードできます。"; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "6桁のトランスミッタIDを入力"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "トランスミッターIDは、トランスミッタ―の底面、パッケージの側面、またはレシーバとモバイルアプリの設定メニューで確認できます。"; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "トランスミッタ ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/Localizable.strings index 471f924912..5fb51b22e4 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "AEr du sikker på at du vil slette CGM?"; +"Are you sure you want to delete this CGM?" = "Er du sikker på at du vil slette CGM?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Avbryt"; @@ -23,14 +23,26 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Siste kalibrering"; +/* Section title for latest connection date */ +"Latest Connection" = "Siste forbindelse"; + /* Section title for latest glucose reading */ "Latest Reading" = "Siste måling"; /* Button title to open CGM app */ "Open App" = "Åpne app"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Synkronisering av eksterne data"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor utløpt"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensor utløper"; + /* Title describing sensor session age */ -"Session Age" = "Alder på sesjon"; +"Session Age" = "Alder på økt"; /* Title describing CGM calibration and battery state */ "Status" = "Status"; @@ -43,3 +55,7 @@ Title text for the button to remove a CGM from Loop */ /* Title describing glucose trend */ "Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Last opp avlesninger"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/TransmitterManagerSetup.strings index 20480e3c56..b5a02d40b1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/nb.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Påloggingsinformasjon"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "Sett opp sender"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Detaljer"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Sender ID finner du på baksiden av senderen, eller på siden av esken den kom i, eller under innstillinger i appen til senderen."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Sender ID"; +"GOT-KQ-cEh.text" = "Detalj"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Data kan lastes ned over internett fra Share-server om tilkobling til sender ikke fungerer."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Skriv 6-siffret sender ID"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Sender ID finner du på baksiden av senderen, eller på siden av esken den kom i, eller under innstillinger i appen til senderen."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Sender ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/Localizable.strings index fe21b04a98..81e49af6af 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Weet je zeker dat je deze CGM wilt verwijderen?"; +"Are you sure you want to delete this CGM?" = "Weet je zeker dat je deze CGM wilt verwijderen"; /* The title of the cancel action in an action sheet */ "Cancel" = "Annuleer"; @@ -18,28 +18,44 @@ Title text for the button to remove a CGM from Loop */ "Glucose" = "Glucose"; /* Describes a glucose value adjusted to reflect a recent calibration */ -"Glucose (Adjusted)" = "Glucose (aangepast)"; +"Glucose (Adjusted)" = "Glucose (Aangepast)"; /* Section title for latest glucose calibration */ -"Latest Calibration" = "Laatste kalibratie"; +"Latest Calibration" = "Laatste Kalibratie"; + +/* Section title for latest connection date */ +"Latest Connection" = "Laatste Verbinding"; /* Section title for latest glucose reading */ -"Latest Reading" = "Laatste meeting"; +"Latest Reading" = "Laatste Meting"; /* Button title to open CGM app */ "Open App" = "Open App"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Remote Gegevenssynchronisatie"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor Verlopen"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensor Verloopt"; + /* Title describing sensor session age */ -"Session Age" = "Sensor leeftijd"; +"Session Age" = "Sessieduur"; /* Title describing CGM calibration and battery state */ "Status" = "Status"; /* Title describing transmitter session age */ -"Transmitter Age" = "Transmitter leeftijd"; +"Transmitter Age" = "Zenderleeftijd"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Transmitter ID"; +"Transmitter ID" = "Zenderserienummer"; /* Title describing glucose trend */ "Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Upload Metingen"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/TransmitterManagerSetup.strings index cc5258fcc9..15d9270c93 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/nl.lproj/TransmitterManagerSetup.strings @@ -1,24 +1,24 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ -"5oU-vK-JHQ.text" = "Toegang gegevens"; +"5oU-vK-JHQ.text" = "Toegangsgegevens"; /* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ -"Dds-49-o7G.title" = "Transmitter instellen"; +"Dds-49-o7G.title" = "Zender Instellen"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "Detail"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "De zender ID staat achterop het apparaat, op de zijkant van de verpakking en in het instellingenmenu van de ontvanger en de app."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Transmitter ID"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ -"k1N-Rg-XDy.footerTitle" = "Data kan via het internet van Share gedownload worden als de transmitter connectie niet werkt."; +"k1N-Rg-XDy.footerTitle" = "Gegevens kunnen via het internet van Share gedownload worden wanneer de verbinding met de zender uitvalt."; /* Class = "UITableViewSection"; headerTitle = "Dexcom Share"; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.headerTitle" = "Dexcom Share"; /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ -"nKX-TW-GhD.placeholder" = "Vul de 6 cijferige transmitter ID in"; +"nKX-TW-GhD.placeholder" = "Vul de 6 cijferige zenderserienummer in"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "De zenderserienummer staat achter op het apparaat, op de zijkant van de verpakking en in het instellingenmenu van de ontvanger en de app."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Zenderserienummer"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/Localizable.strings index d30bdc3298..edc4fcdeb1 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/Localizable.strings @@ -12,7 +12,7 @@ /* Button title to delete CGM Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Delete CGM"; +"Delete CGM" = "Usuń CGM"; /* Title describing glucose value */ "Glucose" = "Glukoza"; @@ -23,12 +23,24 @@ Title text for the button to remove a CGM from Loop */ /* Section title for latest glucose calibration */ "Latest Calibration" = "Ostatnia kalibracja"; +/* Section title for latest connection date */ +"Latest Connection" = "Ostatnie połączenie"; + /* Section title for latest glucose reading */ "Latest Reading" = "Ostatni odczyt"; /* Button title to open CGM app */ "Open App" = "Otwórz aplikację"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Zdalna synchronizacja danych"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensor wygasł"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensor Wygasa"; + /* Title describing sensor session age */ "Session Age" = "Wiek sesji"; @@ -43,3 +55,7 @@ Title text for the button to remove a CGM from Loop */ /* Title describing glucose trend */ "Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Wysyłaj odczyty"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/TransmitterManagerSetup.strings index a31036447d..b60433a135 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/pl.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Dane uwierzytelniające"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "Konfiguracja nadajnika"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Szczegóły"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "ID nadajnika jest nadrukowany z tyłu urządzenia, z boku opakowania, w którym go dostarczono oraz jest dostępny w menu ustawień odbiornika i w aplikacji mobilnej."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "ID nadajnika"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Dane można pobrać przez internet z Share, kiedy połączenie nadajnika się nie powiedzie."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Wprowadź 6-cyfrowy ID nadajnika"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "ID nadajnika jest nadrukowany z tyłu urządzenia, z boku opakowania, w którym go dostarczono oraz jest dostępny w menu ustawień odbiornika i w aplikacji mobilnej."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID nadajnika"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/Localizable.strings index 2044124066..6ceff94791 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Tem certeza de que deseja excluir este CGM?"; +"Are you sure you want to delete this CGM?" = "Você está certo que quer remover este CGM?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Cancelar"; @@ -10,7 +10,8 @@ /* Title describing glucose date */ "Date" = "Data"; -/* Title text for the button to remove a CGM from Loop */ +/* Button title to delete CGM +Title text for the button to remove a CGM from Loop */ "Delete CGM" = "Remover CGM"; /* Title describing glucose value */ @@ -23,7 +24,7 @@ "Latest Calibration" = "Última Calibração"; /* Section title for latest glucose reading */ -"Latest Reading" = "Última Leitura"; +"Latest Reading" = "Leitura mais Recente"; /* Button title to open CGM app */ "Open App" = "Abrir App"; @@ -42,3 +43,4 @@ /* Title describing glucose trend */ "Trend" = "Tendência"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/TransmitterManagerSetup.strings index b2a387ff35..7d12c99eff 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/pt-BR.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Credenciais"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "Configuração do Transmissor"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Detalhes"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "O ID do transmissor pode ser encontrado impresso na parte traseira do dispositivo, na parte lateral da caixa em que ele veio e nos menus de configurações do receptor e do aplicativo móvel."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "ID do Transmissor"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Os dados podem ser baixados pela Internet a partir do compartilhamento quando a conexão do transmissor falhar."; @@ -23,3 +16,9 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Digite o ID do transmissor de 6 dígitos"; +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "O ID do transmissor pode ser encontrado impresso na parte traseira do dispositivo, na parte lateral da caixa em que ele veio e nos menus de configurações do receptor e do aplicativo móvel."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID do Transmissor"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/Localizable.strings index 29f8f582fc..b1b86fb0a9 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/Localizable.strings @@ -1,8 +1,8 @@ /* Format string for glucose trend per minute. (1: glucose value and unit) */ -"%@/min" = "%@/min"; +"%@/min" = "/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Sigur doriți să ștergeți acest CGM?"; +"Are you sure you want to delete this CGM?" = "Sunteți sigur că doriți să ștergeți acest CGM?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Renunță"; @@ -10,11 +10,12 @@ /* Title describing glucose date */ "Date" = "Data"; -/* Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Șterge CGM"; +/* Button title to delete CGM +Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "Ștergeți CGM"; /* Title describing glucose value */ -"Glucose" = "Glucoză"; +"Glucose" = "Glucoza"; /* Describes a glucose value adjusted to reflect a recent calibration */ "Glucose (Adjusted)" = "Glucoză (ajustată)"; @@ -22,12 +23,24 @@ /* Section title for latest glucose calibration */ "Latest Calibration" = "Ultima calibrare"; +/* Section title for latest connection date */ +"Latest Connection" = "Ultima conexiune"; + /* Section title for latest glucose reading */ "Latest Reading" = "Ultima citire"; /* Button title to open CGM app */ "Open App" = "Deschide aplicația"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Sincronizarea datelor"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Senzorul a expirat"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Senzorul expiră"; + /* Title describing sensor session age */ "Session Age" = "Vechime sesiune"; @@ -41,5 +54,8 @@ "Transmitter ID" = "ID transmițător"; /* Title describing glucose trend */ -"Trend" = "Trend"; +"Trend" = "Tendinţă"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Urcă citirile de glicemie"; diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/TransmitterManagerSetup.strings index c2af774827..e7b353c4a4 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ro.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Autentificare"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "Setare transmițător"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Detailu"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "ID-ul transmițătorului poate fi găsit fie pe pe spatele dispozitivului sau pe cutia cu care a venit sau poate fi văzut în setările receiver-ului sau a aplicației mobile."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "ID transmițător"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Pot fi transferate date prin Internet din Share atunci când eșuează conexiunea cu transmițătorul"; @@ -23,3 +16,9 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Introduceți ID-ul din 6 cifre al transmițătorului"; +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "ID-ul transmițătorului poate fi găsit fie pe pe spatele dispozitivului sau pe cutia cu care a venit sau poate fi văzut în setările receiver-ului sau a aplicației mobile."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID transmițător"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/Localizable.strings index 4e83dea74e..9d24314d0c 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/мин"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Стереть этот мониторинг?"; +"Are you sure you want to delete this CGM?" = "Вы уверены, что хотите удалить этот CGM?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Отмена"; @@ -12,34 +12,50 @@ /* Button title to delete CGM Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Удалить мониторинг"; +"Delete CGM" = "Удалить CGM"; /* Title describing glucose value */ -"Glucose" = "Гликемия"; +"Glucose" = "Глюкоза"; /* Describes a glucose value adjusted to reflect a recent calibration */ -"Glucose (Adjusted)" = "ГК (скорректирована)"; +"Glucose (Adjusted)" = "ГК (корректированная)"; /* Section title for latest glucose calibration */ "Latest Calibration" = "Последняя калибровка"; +/* Section title for latest connection date */ +"Latest Connection" = "Последнее подключение"; + /* Section title for latest glucose reading */ "Latest Reading" = "Последние данные"; /* Button title to open CGM app */ -"Open App" = "Запуск приложения"; +"Open App" = "Открыть приложение"; + +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Удаленная синхронизация данных"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Сенсор истек"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Сенсор истекает"; /* Title describing sensor session age */ "Session Age" = "Сенсор отработал"; /* Title describing CGM calibration and battery state */ -"Status" = "Состояние"; +"Status" = "Статус"; /* Title describing transmitter session age */ "Transmitter Age" = "Трансмиттер отработал"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Инд № трансмиттера"; +"Transmitter ID" = "ID трансмиттера"; /* Title describing glucose trend */ -"Trend" = "Тренд"; +"Trend" = "Тенденция"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Загрузить показания"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/TransmitterManagerSetup.strings index cbb8d4ffb9..4267752303 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/ru.lproj/TransmitterManagerSetup.strings @@ -1,18 +1,11 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ -"5oU-vK-JHQ.text" = "Удостоверение"; +"5oU-vK-JHQ.text" = "Учетные данные"; /* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ "Dds-49-o7G.title" = "Настройка трансмиттера"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Подробности"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Номер трансмиттера находится на обратной стороне устройства, сбоку кпаковочной коробки, в настройках ресивера и мобильного приложения."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Идентификатор трансмиттера"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Данные могут быть загружены с серверов Share если не произойдет соединение трансмиттера."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Введите шестизначный идентификатор трансмиттера"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Номер трансмиттера находится на обратной стороне устройства, сбоку кпаковочной коробки, в настройках ресивера и мобильного приложения."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID трансмиттера"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..571a18d2cb --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/Localizable.strings @@ -0,0 +1,61 @@ +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@ /min"; + +/* Confirmation message for deleting a CGM */ +"Are you sure you want to delete this CGM?" = "Naozaj chcete odstrániť toto CGM?"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušiť"; + +/* Title describing glucose date */ +"Date" = "Dátum"; + +/* Button title to delete CGM +Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "Odstrániť CGM"; + +/* Title describing glucose value */ +"Glucose" = "Glykémia"; + +/* Describes a glucose value adjusted to reflect a recent calibration */ +"Glucose (Adjusted)" = "Glykémia (upravená)"; + +/* Section title for latest glucose calibration */ +"Latest Calibration" = "Posledná kalibrácia"; + +/* Section title for latest connection date */ +"Latest Connection" = "Posledné pripojenie"; + +/* Section title for latest glucose reading */ +"Latest Reading" = "Posledné čítanie"; + +/* Button title to open CGM app */ +"Open App" = "Otvoriť aplikáciu"; + +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Diaľková sychronizácia dát"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Platnosť senzora vypršala"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Platnosť senzora vyprší"; + +/* Title describing sensor session age */ +"Session Age" = "Dĺžka relácie"; + +/* Title describing CGM calibration and battery state */ +"Status" = "Stav"; + +/* Title describing transmitter session age */ +"Transmitter Age" = "Vek vysielača"; + +/* The title text for the Dexcom G5/G6 transmitter ID config value */ +"Transmitter ID" = "ID vysielača"; + +/* Title describing glucose trend */ +"Trend" = "Trend"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Načítať údaje"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/TransmitterManagerSetup.strings new file mode 100644 index 0000000000..d85903ad46 --- /dev/null +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/sk.lproj/TransmitterManagerSetup.strings @@ -0,0 +1,21 @@ +/* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ +"Dds-49-o7G.title" = "Nastavenie vysielača"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ +"GOT-KQ-cEh.text" = "Detail"; + +/* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ +"k1N-Rg-XDy.footerTitle" = "Údaje je možné stiahnuť cez internet zo Share, keď zlyhá pripojenie vysielača."; + +/* Class = "UITableViewSection"; headerTitle = "Dexcom Share"; ObjectID = "k1N-Rg-XDy"; */ +"k1N-Rg-XDy.headerTitle" = "Dexcom Share"; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ +"nKX-TW-GhD.placeholder" = "Zadajte 6-miestne ID vysielača"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "ID vysielača nájdete vytlačené na zadnej strane zariadenia, na boku škatule, v ktorej bol dodaný, a v ponuke nastavení prijímača a mobilnej aplikácie."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "ID vysielača"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/Localizable.strings index bf76139b79..a12f102731 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/Localizable.strings @@ -2,17 +2,17 @@ "%@/min" = "%@/min"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Är du säker på att du vill ta bort denna CGM?"; +"Are you sure you want to delete this CGM?" = "Är du säker på att du vill radera denna CGM?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Avbryt"; /* Title describing glucose date */ -"Date" = "Datum"; +"Date" = "Tid"; /* Button title to delete CGM - Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Ta bort CGM"; +Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "Radera CGM"; /* Title describing glucose value */ "Glucose" = "Glukos"; @@ -23,12 +23,18 @@ /* Section title for latest glucose calibration */ "Latest Calibration" = "Senaste kalibrering"; +/* Section title for latest connection date */ +"Latest Connection" = "Senaste anslutning"; + /* Section title for latest glucose reading */ "Latest Reading" = "Senaste avläsning"; /* Button title to open CGM app */ "Open App" = "Öppna appen"; +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Synkronisering av fjärrlagrad data"; + /* Title describing sensor session age */ "Session Age" = "Sessionsålder"; @@ -39,8 +45,11 @@ "Transmitter Age" = "Ålder på sändare"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Sändar-ID"; +"Transmitter ID" = "Sändari-ID"; /* Title describing glucose trend */ "Trend" = "Trend"; +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Ladda upp avläsningar"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/TransmitterManagerSetup.strings index e31b82de22..b3ae04d69b 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/sv.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Inloggningsuppgifter"; @@ -6,13 +5,7 @@ "Dds-49-o7G.title" = "Sändarinställning"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Detalj"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Sändar-ID kan hittas tryckt på baksidan av enheten, på sidan av lådan den kom in samt från inställningsmenyn för mottagaren och mobilappen."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Sändar-ID"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Data kan laddas ned från Share (via Internet) om sändaranslutningen skulle misslyckas."; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Ange 6-siffrigt sändar-ID"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Sändar-ID kan hittas tryckt på baksidan av enheten, på sidan av lådan den kom in samt från inställningsmenyn för mottagaren och mobilappen."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Sändari-ID"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/Localizable.strings index 21cd8186f1..e58171f255 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/Localizable.strings @@ -1,45 +1,61 @@ /* Format string for glucose trend per minute. (1: glucose value and unit) */ -"%@/min" = "%@/min"; +"%@/min" = "%@/dk"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Are you sure you want to delete this CGM?"; +"Are you sure you want to delete this CGM?" = "Bu CGM'i silmek istediğinizden emin misiniz?"; /* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; +"Cancel" = "İptal"; /* Title describing glucose date */ -"Date" = "Date"; +"Date" = "Tarih"; /* Button title to delete CGM Title text for the button to remove a CGM from Loop */ -"Delete CGM" = "Delete CGM"; +"Delete CGM" = "CGM Sil"; /* Title describing glucose value */ -"Glucose" = "Glucose"; +"Glucose" = "Kan şekeri"; /* Describes a glucose value adjusted to reflect a recent calibration */ -"Glucose (Adjusted)" = "Glucose (Adjusted)"; +"Glucose (Adjusted)" = "KŞ (Düzeltilmiş)"; /* Section title for latest glucose calibration */ -"Latest Calibration" = "Latest Calibration"; +"Latest Calibration" = "Son Kalibrasyon"; + +/* Section title for latest connection date */ +"Latest Connection" = "Son Bağlantı"; /* Section title for latest glucose reading */ -"Latest Reading" = "Latest Reading"; +"Latest Reading" = "Son Okuma"; /* Button title to open CGM app */ -"Open App" = "Open App"; +"Open App" = "Uygulamayı aç"; + +/* Section title for remote data synchronization */ +"Remote Data Synchronization" = "Uzaktan Veri Senkronizasyonu"; + +/* Title describing past sensor expiration */ +"Sensor Expired" = "Sensörün Süresi Doldu"; + +/* Title describing sensor expiration */ +"Sensor Expires" = "Sensörün Süresi Doluyor"; /* Title describing sensor session age */ -"Session Age" = "Session Age"; +"Session Age" = "Sensör Yaşı"; /* Title describing CGM calibration and battery state */ -"Status" = "Status"; +"Status" = "Durum"; /* Title describing transmitter session age */ -"Transmitter Age" = "Transmitter Age"; +"Transmitter Age" = "Verici Yaşı"; /* The title text for the Dexcom G5/G6 transmitter ID config value */ -"Transmitter ID" = "Transmitter ID"; +"Transmitter ID" = "Verici Kimliği"; /* Title describing glucose trend */ -"Trend" = "Trend"; +"Trend" = "Eğilim"; + +/* The title text for the upload glucose switch cell */ +"Upload Readings" = "Okumaları Yükle"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/TransmitterManagerSetup.strings index 41859f853c..df50c8be41 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/tr.lproj/TransmitterManagerSetup.strings @@ -1,24 +1,24 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ -"5oU-vK-JHQ.text" = "Credentials"; +"5oU-vK-JHQ.text" = "Kimlik bilgileri"; /* Class = "UITableViewController"; title = "Transmitter Setup"; ObjectID = "Dds-49-o7G"; */ -"Dds-49-o7G.title" = "Transmitter Setup"; +"Dds-49-o7G.title" = "Verici Kurulumu"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Detail"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Transmitter ID"; +"GOT-KQ-cEh.text" = "Detay"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ -"k1N-Rg-XDy.footerTitle" = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; +"k1N-Rg-XDy.footerTitle" = "Verici bağlantısı başarısız olduğunda Dexcom Share üzerinden veriler indirilebilir."; /* Class = "UITableViewSection"; headerTitle = "Dexcom Share"; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.headerTitle" = "Dexcom Share"; /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ -"nKX-TW-GhD.placeholder" = "Enter the 6-digit transmitter ID"; +"nKX-TW-GhD.placeholder" = "6 basamaklı verici kimliğini girin"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Verici kimliğini, cihazın arkasında, geldiği kutunun yan tarafında, alıcının mobil uygulamasının ayarlar menüsünde bulabilirsiniz."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Verici Kimliği"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/Localizable.strings index 2a93d34f84..216f9233ac 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/Localizable.strings @@ -2,7 +2,7 @@ "%@/min" = "%@/phút"; /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Bạn có chắc muốn xóa CGM này không?"; +"Are you sure you want to delete this CGM?" = "Bạn có chắc sẽ xóa CGM này?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Hủy bỏ"; @@ -10,7 +10,8 @@ /* Title describing glucose date */ "Date" = "Ngày"; -/* Title text for the button to remove a CGM from Loop */ +/* Button title to delete CGM +Title text for the button to remove a CGM from Loop */ "Delete CGM" = "Xóa CGM"; /* Title describing glucose value */ diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/TransmitterManagerSetup.strings index 45dbd8a179..58ada30485 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/vi.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "Thông tin xác thực"; @@ -6,20 +5,20 @@ "Dds-49-o7G.title" = "Cài đặt Transmitter"; /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ -"GOT-KQ-cEh.text" = "Chi tiết"; - -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "Số ID của Transmitter có thể được tìm thấy trên vỏ hộp hoặc bên hông hộp và trong phần Menu cài đặt cũng như trên ứng dụng của điện thoại."; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "Số ID của Transmitter"; +"GOT-KQ-cEh.text" = "Detail"; /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "Dữ liệu có thể được tải xuống qua đường truyền Internet trên ứng dụng Share khi kết nối với transmitter bị đứt."; /* Class = "UITableViewSection"; headerTitle = "Dexcom Share"; ObjectID = "k1N-Rg-XDy"; */ -"k1N-Rg-XDy.headerTitle" = "Ứng dụng Share của Dexcom"; +"k1N-Rg-XDy.headerTitle" = "Dexcom Share"; /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "Nhập 6 số ID của Transmitter"; +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "Số ID của Transmitter có thể được tìm thấy trên vỏ hộp hoặc bên hông hộp và trong phần Menu cài đặt cũng như trên ứng dụng của điện thoại."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "Số ID của Transmitter"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/Localizable.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/Localizable.strings index dda3af1f9e..bce217d196 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/Localizable.strings @@ -43,3 +43,4 @@ Title text for the button to remove a CGM from Loop */ /* Title describing glucose trend */ "Trend" = "趋势"; + diff --git a/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/TransmitterManagerSetup.strings b/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/TransmitterManagerSetup.strings index a5b2469a9a..8b9846202c 100644 --- a/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/TransmitterManagerSetup.strings +++ b/Dependencies/CGMBLEKit/CGMBLEKitUI/zh-Hans.lproj/TransmitterManagerSetup.strings @@ -1,4 +1,3 @@ - /* Class = "UILabel"; text = "Credentials"; ObjectID = "5oU-vK-JHQ"; */ "5oU-vK-JHQ.text" = "密钥"; @@ -8,12 +7,6 @@ /* Class = "UILabel"; text = "Detail"; ObjectID = "GOT-KQ-cEh"; */ "GOT-KQ-cEh.text" = "详情"; -/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.footerTitle" = "发射器编号可在发射器包装盒背面找到,或者可在Dexcom Moblie软件及接受器的“setting”-“Transmitter”中找到"; - -/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ -"Qub-6B-0aB.headerTitle" = "发射器编号"; - /* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */ "k1N-Rg-XDy.footerTitle" = "当无法连接发射器时,可通过网络从Dexcom远程下载数据"; @@ -22,3 +15,10 @@ /* Class = "UITextField"; placeholder = "Enter the 6-digit transmitter ID"; ObjectID = "nKX-TW-GhD"; */ "nKX-TW-GhD.placeholder" = "请输入6位发射器编号"; + +/* Class = "UITableViewSection"; footerTitle = "The transmitter ID can be found printed on the back of the device, on the side of the box it came in, and from within the settings menus of the receiver and mobile app."; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.footerTitle" = "发射器编号可在发射器包装盒背面找到,或者可在Dexcom Moblie软件及接受器的“setting”-“Transmitter”中找到"; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "Qub-6B-0aB"; */ +"Qub-6B-0aB.headerTitle" = "发射器编号"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json b/Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json index 9212273d81..2a71258dd3 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -138,13 +138,6 @@ "scale" : "3x", "size" : "29x29" }, - { - "idiom" : "watch", - "role" : "notificationCenter", - "scale" : "2x", - "size" : "33x33", - "subtype" : "45mm" - }, { "filename" : "Icon-40@2x.png", "idiom" : "watch", @@ -161,13 +154,6 @@ "size" : "44x44", "subtype" : "40mm" }, - { - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "46x46", - "subtype" : "41mm" - }, { "idiom" : "watch", "role" : "appLauncher", @@ -175,20 +161,6 @@ "size" : "50x50", "subtype" : "44mm" }, - { - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "51x51", - "subtype" : "45mm" - }, - { - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "54x54", - "subtype" : "49mm" - }, { "filename" : "Icon-86@2x.png", "idiom" : "watch", @@ -212,20 +184,6 @@ "size" : "108x108", "subtype" : "44mm" }, - { - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "117x117", - "subtype" : "45mm" - }, - { - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "129x129", - "subtype" : "49mm" - }, { "idiom" : "watch-marketing", "scale" : "1x", @@ -235,5 +193,8 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "pre-rendered" : true } } diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ar.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..3bff730939 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ar.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Title of button to cancel reset */ +"Cancel" = "إلغاء"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/cs.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..d510fc10d8 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/cs.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Title of button to cancel reset */ +"Cancel" = "Zrušit"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/InfoPlist.strings new file mode 100644 index 0000000000..9f338c04f0 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Nulstil"; + +/* Bundle name */ +"CFBundleName" = "NulstilSender"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth bliver brugt til at kommunikere med din insulinpumpe og din blodsukkermonitor"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth bliver brugt til at kommunikere med din insulinpumpe og din blodsukkermonitor"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Localizable.strings index 0f0a5a5760..3a231b53c6 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Localizable.strings @@ -2,7 +2,7 @@ "Are you sure you want to reset this transmitter?" = "Er du sikker på, at du vil nulstille denne sender?"; /* Title of button to cancel reset */ -"Cancel" = "Afbestille"; +"Cancel" = "Annuller"; /* Message of the reset confirmation sheet */ "It will take up to 10 minutes to complete." = "Det vil tage op til 10 minutter at gennemføre."; @@ -12,5 +12,5 @@ "Reset" = "Nulstil"; /* Notification title for background completion notification */ -"Transmitter Reset Complete" = "Senderen er nulstillet fuldført"; +"Transmitter Reset Complete" = "Nulstilling af senderen er fuldført"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Main.strings index 27a46be6cc..bc5b2196db 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/da.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Nulstil fuldført"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Nulstil senderen"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Dette værktøj kan nulstille uret på en sender, der har nået sin udløbsdato, så det kan starte nye sensorsessioner.\nDette kan have utilsigtede konsekvenser for datatjenester, som f.eks. Dexcom Clarity og Dexcom Share, især når du bruger en nulstillet sender med det samme konto.\nGenindstilling kan ikke fortrydes.\nBenyttes på egen risiko."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Indtast det 6-cifrede ID"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Fejl optræder her. Og det kan blive meget langt, og det er OK]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Nulstil"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ -"MbK-kj-ejl.text" = "Senderen er nulstillet. Tilslut det til appen for at begynde en ny sensorsession."; - -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Dette værktøj kan nulstille uret på en sender, der har nået sin udløbsdato, så det kan starte nye sensorsessioner.\nDette kan have utilsigtede konsekvenser for datatjenester, som f.eks. Klarhed og deling, især når du bruger en nulstillet sender med det samme konto.\n Genindstilling kan ikke fortrydes.\n Brug på din egen risiko."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; +"MbK-kj-ejl.text" = "Senderen er nulstillet. Tilslut til appen for at begynde en ny sensorsession."; /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ -"vNG-r7-RbP.headerTitle" = "Senders id"; +"vNG-r7-RbP.headerTitle" = "Sender ID"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/InfoPlist.strings new file mode 100644 index 0000000000..97ceaac904 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Reset"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth wird verwendet für die Kommunikation mit CGM-Geräten"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth wird verwendet für die Kommunikation mit CGM-Geräten"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Localizable.strings index eba4af9521..04be07ed8c 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Localizable.strings @@ -9,7 +9,7 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Zurücksetzen"; +"Reset" = "Reset"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "TZurücksetzen des Transmitters abgeschlossen"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Main.strings index ffd99073eb..81a8b84def 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/de.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Zurücksetzen abgeschlossen"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Transmitter zurücksetzen"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "TMit diesem Tool kann ein Transmitter, dessen Ablaufdatum erreicht ist, zurückgesetzt werden, sodass Sensorsitzungen erneut gestartet werden können.\nDies kann unbeabsichtigte Konsequenzen für Datendienste wie Clarity und Share haben, insbesondere wenn ein zurückgesetzter Transmitter mit demselben Konto verwendet wird.\nDas Zurücksetzen kann nicht rückgängig gemacht werden.\nBenutzung auf eigene Gefahr!"; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Geben Sie die 6-stellige ID ein"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Zurücksetzen"; +"LBC-6R-q79.normalTitle" = "Reset"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "Der Transmitter wurde erfolgreich zurückgesetzt. Verbinden Sie ihn mit der App, um eine neue Sensorsitzung zu starten."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "TMit diesem Tool kann ein Transmitter, dessen Ablaufdatum erreicht ist, zurückgesetzt werden, sodass Sensorsitzungen erneut gestartet werden können.\nDies kann unbeabsichtigte Konsequenzen für Datendienste wie Clarity und Share haben, insbesondere wenn ein zurückgesetzter Transmitter mit demselben Konto verwendet wird.\nDas Zurücksetzen kann nicht rückgängig gemacht werden.\nBenutzung auf eigene Gefahr!"; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "Transmitter-ID"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/InfoPlist.strings new file mode 100644 index 0000000000..22d32822b2 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Reiniciar"; + +/* Bundle name */ +"CFBundleName" = "Resetear Transmisor"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "El bluetooth se utiliza para la comunicación con dispositivos de monitoreo continuo de glucosa"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "El bluetooth se utiliza para la comunicación con dispositivos de monitoreo continuo de glucosa"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Localizable.strings index 4b4ab50e3b..f02454953e 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Localizable.strings @@ -9,7 +9,7 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Reinicio"; +"Reset" = "Reiniciar"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Reinicio del transmisor completado"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Main.strings index b4d7d99c16..37f955b03e 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/es.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Reinicio completado"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Reiniciar el transmisor"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Esta herramienta puede reiniciar el reloj de un transmisor que ha caducado y permite comenzar una nueva sesión de funcionamiento en el sensor.\nEsto puede tener consecuencias inintencionadas con los servidores de datos como Clarity o Share, especialmente si se usa un transmisor reiniciado con la misma cuenta.\nUna vez reiniciado, no se puede volver atrás.\nÚselo bajo su propio riesgo."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Introduzca la identificación de 6 cifras"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[El error se localiza aquí. Puede ser muy largo, pero no importa]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Reinicio"; +"LBC-6R-q79.normalTitle" = "Reiniciar"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "El transmisor se ha reiniciado con éxito. Conéctelo a la app para empezar una sesión nueva del sensor."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Esta herramienta puede reiniciar el reloj de un transmisor que ha caducado y permite comenzar una nueva sesión de funcionamiento en el sensor.\nEsto puede tener consecuencias inintencionadas con los servidores de datos como Clarity o Share, especialmente si se usa un transmisor reiniciado con la misma cuenta.\nUna vez reiniciado, no se puede volver atrás.\nÚselo bajo su propio riesgo."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[El error se localiza aquí. Puede ser muy largo, pero no importa]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "Identificación del transmisor"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/fi.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/fi.lproj/InfoPlist.strings index 18af4cce52..6b1c385c4c 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/fi.lproj/InfoPlist.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/fi.lproj/InfoPlist.strings @@ -1,3 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Nollaa"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + /* Privacy - Bluetooth Always Usage Description */ "NSBluetoothAlwaysUsageDescription" = "Bluetoothia käytetään kommunikointiin glukoosinseurantalaitteiden kanssa."; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..e005461265 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Réinitialiser"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth est utilisé pour communiquer avec les dispositifs de surveillance continue du glucose."; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth est utilisé pour communiquer avec les dispositifs de surveillance continue du glucose."; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Localizable.strings index 92a27dd85c..d911e447af 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Localizable.strings @@ -5,7 +5,7 @@ "Cancel" = "Annuler"; /* Message of the reset confirmation sheet */ -"It will take up to 10 minutes to complete." = "Cela prendra jusqu’à 10 minutes pour finir."; +"It will take up to 10 minutes to complete." = "Cela prendra jusqu’à 10 minutes pour terminer."; /* Reset button title Title of button to begin reset */ diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Main.strings index 066055c39b..9c503d9944 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/fr.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Réinitialisation terminée"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Réinitialiser le transmetteur"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Cet outil peut réinitialiser l’horloge interne d’un transmetteur qui a atteint sa date de péremption, permettant de l’utiliser à nouveau.\nCeci pourrait avoir des conséquences involontaires pour des services de données, comme Clarity et Share, surtout en utilisant un transmetteur réinitialisé avec le même compte.\nLa réinitialisation est définitive.\nVous utilisez cette fonctionnalité à vos propres risques.."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Entrez l’ID, composé de 6 lettres et chiffres"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[L’erreur se place ici. Elle peut être très longue, ce n’est pas embêtant.]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Réinitialiser"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "La réinitialisation du transmetteur a réussi. Connectez-le à l’application mobile pour commencer une nouvelle session de capteur."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Cet outil peut réinitialiser l’horloge interne d’un transmetteur qui a atteint sa date de péremption, permettant de l’utiliser à nouveau.\nCeci pourrait avoir des conséquences involontaires pour des services de données, comme Clarity et Share, surtout en utilisant un transmetteur réinitialisé avec le même compte.\nLa réinitialisation est définitive.\nVous utilisez cette fonctionnalité à vos propres risques.\."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[L’erreur se place ici. Elle peut être très longue, ce n’est pas embêtant.]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "ID du transmetteur"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/InfoPlist.strings new file mode 100644 index 0000000000..a9bface778 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Reset"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/Main.strings index 67b6c4e603..dfdc8bd60d 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/he.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Reset Complete"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Reset Transmitter"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Enter the 6-digit ID"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Reset"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "Transmitter ID"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/hi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..bc1817c5d2 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/hi.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Title of button to cancel reset */ +"Cancel" = "निरस्त"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/InfoPlist.strings new file mode 100644 index 0000000000..38df0d9c8c --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Ripristina"; + +/* Bundle name */ +"CFBundleName" = "Resetta trasmettitore"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Il Bluetooth viene utilizzato per comunicare con i dispositivi di monitoraggio continuo del glucosio"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Il Bluetooth viene utilizzato per comunicare con i dispositivi di monitoraggio continuo del glucosio"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Localizable.strings index 4b9f78dace..4d6ff62e31 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* Title of the reset confirmation sheet */ -"Are you sure you want to reset this transmitter?" = "Sei sicuro di voler ripristinare questo trasmettitore?"; +"Are you sure you want to reset this transmitter?" = "Sei sicuro di voler resettare questo trasmettitore?"; /* Title of button to cancel reset */ "Cancel" = "Annulla"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Main.strings index eeedc77861..85c6d672c8 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/it.lproj/Main.strings @@ -1,12 +1,17 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Ripristino completato"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Ripristina trasmettitore"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Questo strumento può ripristinare l'orologio di un trasmettitore che ha raggiunto la data di scadenza, consentendo di avviare nuove sessioni del sensore. Questo può avere effetti indesiderati su servizi di dati come Clarity e Share, soprattutto se il ripristino avviene con lo stesso account. Il ripristino non può essere annullato. Effettualo a tuo rischio e pericolo."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ -"G4a-ia-wQC.placeholder" = "Inserisci ID a 6 cifre del trasmettitore"; +"G4a-ia-wQC.placeholder" = "Inserisci ID a 6 cifre"; + +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[L'errore va qui. Può essere molto lungo, ma va bene]"; /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Ripristina"; @@ -14,11 +19,6 @@ /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "Il trasmettitore è stato ripristinato. Collegalo all’app per avviare una nuova sessione di misurazione."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Questo strumento può ripristinare l'orologio di un trasmettitore che ha raggiunto la data di scadenza, consentendo di avviare nuove sessioni del sensore. Questo può avere effetti indesiderati su servizi di dati come Clarity e Share, soprattutto se il ripristino avviene con lo stesso account. Il ripristino non può essere annullato. Effettualo a tuo rischio e pericolo."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[L'errore va qui. Può essere molto lungo, ma va bene]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "ID trasmettitore"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/InfoPlist.strings new file mode 100644 index 0000000000..82343093e2 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "リセット"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/Main.strings index b3e93bb1d1..5ec5e4f65d 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ja.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "リセット完了"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "トランスミッターをリセットする"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "このツールは、使用期限に達したトランスミッターの時刻をリセットし、新たにセンサーのセッションを始められるようにします。\nリセットされたトランスミッターを同じアカウントで使うときは特に、ClarityやShareなどのデータサービスに意図しない影響を及ぼすことがあります。\nリセットは元に戻すことができません。\nご自身の責任で使用してください。"; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "6桁のトランスミッタIDを入力"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "リセット"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "トランスミッターのリセットが完了しました。新たにセンサーのセッションを始めるにはアプリを接続してください。"; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "このツールは、使用期限に達したトランスミッターの時刻をリセットし、新たにセンサーのセッションを始められるようにします。\nリセットされたトランスミッターを同じアカウントで使うときは特に、ClarityやShareなどのデータサービスに意図しない影響を及ぼすことがあります。\nリセットは元に戻すことができません。\nご自身の責任で使用してください。"; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "トランスミッタ ID"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/InfoPlist.strings new file mode 100644 index 0000000000..0673c068b6 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Nullstille"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth brukes til å kommunisere med kontinuerlige blodsukker monitorenheter"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth brukes til å kommunisere med kontinuerlige blodsukker monitorenheter"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Localizable.strings index 92302fce31..512d4b918d 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* Title of the reset confirmation sheet */ -"Are you sure you want to reset this transmitter?" = "Er di sikker på at du vil nullstille denne senderen?"; +"Are you sure you want to reset this transmitter?" = "Er du sikker på at du vil nullstille denne senderen?"; /* Title of button to cancel reset */ "Cancel" = "Avbryt"; @@ -9,7 +9,7 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Nullstill"; +"Reset" = "Nullstille"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Nullstilling av sender er ferdig"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Main.strings index 5457aa48f5..4cd87cf6f8 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nb.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ -"3SD-s3-7OM.title" = "Nullstilling ferdig"; +"3SD-s3-7OM.title" = "Nullstilling Ferdig"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ -"7nc-6t-4hZ.title" = "Nullstill sender"; +"7nc-6t-4hZ.title" = "Nullstill Sender"; + +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Dette verktøyet kan nullstille klokken på en sender som har gått ut på dato, slik at senderen kan brukes på nytt. Dette kan ha uante konsekvenser for eksterne data-tjenester, som Clarity og Share, og spesielt om sender brukes igjen med samme konto. Nullstilling kan ikke angres. Bruk på egen risiko."; /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Skriv inn 6-siffret ID"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Feil skrives her. Den kan være veldig lang, og det er helt greit]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Nullstill"; +"LBC-6R-q79.normalTitle" = "Nullstille"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ -"MbK-kj-ejl.text" = "Sender er nå nullstillt. Koble den til appen for å starte en ny sensor-sesjon."; - -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Dette verktøyet kan nullstille klokken på en sender som har gått ut på dato, slik at senderen kan brukes på nytt. Dette kan ha uante konsekvenser for eksterne data-tjenester, som Clarity og Share, og spesielt om sender brukes igjen med samme konto. Nullstilling kan ikke angres. Bruk på egen risiko."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Feil skrives her. Den kan være veldig lang, og det er helt greit]"; +"MbK-kj-ejl.text" = "Sender er nå nullstillt. Koble den til appen for å starte en ny sensorøkt."; /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "Sender ID"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..d422d5cdf0 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Reset"; + +/* Bundle name */ +"CFBundleName" = "ResetZender"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth wordt gebruikt om te communiceren met continue glucosemeters"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth wordt gebruikt om te communiceren met continue glucosemeters"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Localizable.strings index 6d38e33fc4..1ef84da951 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Localizable.strings @@ -1,16 +1,16 @@ /* Title of the reset confirmation sheet */ -"Are you sure you want to reset this transmitter?" = "Weet je zeker dat je de transmitter wilt resetten"; +"Are you sure you want to reset this transmitter?" = "Weet je zeker dat je deze zender wilt resetten?"; /* Title of button to cancel reset */ -"Cancel" = "Cancel"; +"Cancel" = "Annuleer"; /* Message of the reset confirmation sheet */ -"It will take up to 10 minutes to complete." = "Dit kan 10 minuten duren om te voltooien"; +"It will take up to 10 minutes to complete." = "Voltooiing kan tot 10 minuten duren."; /* Reset button title Title of button to begin reset */ "Reset" = "Reset"; /* Notification title for background completion notification */ -"Transmitter Reset Complete" = "Transmitter reset compleet"; +"Transmitter Reset Complete" = "Reset Zender Compleet"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Main.strings index 9fed50374b..edd6a6494c 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/nl.lproj/Main.strings @@ -1,24 +1,24 @@ /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ -"3SD-s3-7OM.title" = "Reset compleet"; +"3SD-s3-7OM.title" = "Reset Compleet"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ -"7nc-6t-4hZ.title" = "Reset Transmitter"; +"7nc-6t-4hZ.title" = "Reset Zender"; /* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Deze methode kan de klok van de transmitter resetten als de verval datum is bereikt, zodat een nieuwe sensor sessie gestart kan worden.\nDit heeft mogelijk onbedoelde gevolgen voor services als Clarity en Share. Met name als dezelfde account gebruikt blijft worden.\nResetten kan niet ongedaan gemaakt worden.\nGebruik op eigen risico"; +"cJ3-Gc-pnc.text" = "Deze methode kan de klok van de zender resetten als de vervaldatum is bereikt, zodat een nieuwe sensorsessie gestart kan worden.\nDit heeft mogelijk onbedoelde gevolgen voor services als Clarity en Share. Met name als hetzelfde account wordt gebruikt om een zender te resetten.\nResetten kan niet ongedaan gemaakt worden.\nGebruik op eigen risico"; /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ -"G4a-ia-wQC.placeholder" = "Vul het 6 cijferige ID in"; +"G4a-ia-wQC.placeholder" = "Vul de 6 cijferige ID in"; /* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Hier komt de foutmelding. Deze kan erg lang zijn, maar dat is goed]"; +"gYy-Zz-y12.text" = "[Hier komt de foutmelding. Deze kan erg lang zijn en dat is OK]"; /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Reset"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ -"MbK-kj-ejl.text" = "De transmitter is succesvol gereset. Verbind de transmitter met de app on een nieuwe sensor sessie te beginnen"; +"MbK-kj-ejl.text" = "De zender is succesvol gereset. Verbind de zender met de app om een nieuwe sensorsessie te beginnen."; /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ -"vNG-r7-RbP.headerTitle" = "Transmitter ID"; +"vNG-r7-RbP.headerTitle" = "Zenderserienummer"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..14730691c0 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Resetuj"; + +/* Bundle name */ +"CFBundleName" = "Zresetuj transmiter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth służy do komunikacji z urządzeniami do ciągłego monitorowania glukozy"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth służy do komunikacji z urządzeniami do ciągłego monitorowania glukozy"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/Main.strings index 5adbcd9a0b..130fae1f7d 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/pl.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ -"3SD-s3-7OM.title" = "Reset zakończony"; +"3SD-s3-7OM.title" = "Resetowanie zakończone"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ -"7nc-6t-4hZ.title" = "Resetuj nadajnik"; +"7nc-6t-4hZ.title" = "Zresetuj nadajnik"; + +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "To narzędzie może zresetować zegar nadajnika, który osiągnął termin ważności, umożliwiając ponowne rozpoczęcie sesji sensora. Może to mieć niepożądane konsekwencje dla usług danych, takich jak Clarity i Share, zwłaszcza w przypadku użytkowania zresetowanego nadajnika z tym samym kontem. Resetowania nie można cofnąć. Wykonujesz je na własne ryzyko."; /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Wprowadź 6-cyfrowy ID"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Oto błąd. Jego treść może być bardzo długa i to normalne]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Resetuj"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "Nadajnik został skutecznie zresetowany. Podłącz go do apliakcji, aby rozpocząć nową sesję sensora."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "To narzędzie może zresetować zegar nadajnika, który osiągnął termin ważności, umożliwiając ponowne rozpoczęcie sesji sensora. Może to mieć niepożądane konsekwencje dla usług danych, takich jak Clarity i Share, zwłaszcza w przypadku użytkowania zresetowanego nadajnika z tym samym kontem. Resetowania nie można cofnąć. Wykonujesz je na własne ryzyko."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Oto błąd. Jego treść może być bardzo długa i to normalne]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "ID nadajnika"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/InfoPlist.strings new file mode 100644 index 0000000000..8c502bc766 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Restabelecer"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Localizable.strings index 67bdcd8c01..66afc957aa 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Localizable.strings @@ -9,7 +9,8 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Reiniciar"; +"Reset" = "Restabelecer"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Redefinição do Transmissor Concluída"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Main.strings index f4e42a1ed0..367b469f8a 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/pt-BR.lproj/Main.strings @@ -4,20 +4,21 @@ /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Redefinir Transmissor"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Esta ferramenta pode redefinir o relógio em um transmissor que atingiu sua data de validade, permitindo que novas sessões de sensor sejam iniciadas novamente.\n Isso pode ter consequências indesejadas para serviços de dados, como Clarity e Share, especialmente ao usar um transmissor redefinido com a mesmo conta.\n A redefinição não pode ser desfeita.\n Use por sua conta e risco."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Digite o ID de 6 dígitos"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Erro aqui. E pode demorar muito mas tudo bem]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Redefinir"; +"LBC-6R-q79.normalTitle" = "Restabelecer"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "O transmissor foi redefinido com sucesso. Conecte-o ao aplicativo para iniciar uma nova sessão de sensor."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Esta ferramenta pode redefinir o relógio em um transmissor que atingiu sua data de validade, permitindo que novas sessões de sensor sejam iniciadas novamente.\n Isso pode ter consequências indesejadas para serviços de dados, como Clarity e Share, especialmente ao usar um transmissor redefinido com a mesmo conta.\n A redefinição não pode ser desfeita.\n Use por sua conta e risco."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Erro aqui. E pode demorar muito mas tudo bem]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "ID do Transmissor"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/InfoPlist.strings new file mode 100644 index 0000000000..e828ab4235 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Resetare"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth este utilizat pentru a comunica cu dispozitivele de monitorizare continuă a glicemiei"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth este utilizat pentru a comunica cu dispozitivele de monitorizare continuă a glicemiei"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Localizable.strings index 2b2c084d11..0cfa490ee9 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Localizable.strings @@ -9,9 +9,8 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Resetează"; +"Reset" = "Resetare"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Resetare transmițător finalizată"; - diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Main.strings index f527820972..03476dc05f 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ro.lproj/Main.strings @@ -4,20 +4,21 @@ /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Resetare transmițător"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Acest utilitar poate reseta ceasul dintr-un transmițător ce a depășit data de expirare, permițând pornirea unor noi sesiuni de senzor.\nResetarea poate cauza consecințe nedorite pentru serviciile care colectează date, cum ar fi Clarity sau Share, în special când utilizați un transmițător resetat cu același cont.\nResetarea nu poate fi anulată.\nA se utiliza pe proprie răspundere."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Introduceți ID-ul din 6 cifre"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Eroarea apare aici. Și poate fi foarte lungă și suntem OK cu asta]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Resetează"; +"LBC-6R-q79.normalTitle" = "Resetare"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "Transmițătorul a fost resetat cu succes. Conectați-l la aplicație pentru a porni o nouă sesiune de senzor."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Acest utilitar poate reseta ceasul dintr-un transmițător ce a depășit data de expirare, permițând pornirea unor noi sesiuni de senzor.\nResetarea poate cauza consecințe nedorite pentru serviciile care colectează date, cum ar fi Clarity sau Share, în special când utilizați un transmițător resetat cu același cont.\nResetarea nu poate fi anulată.\nA se utiliza pe proprie răspundere."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Eroarea apare aici. Și poate fi foarte lungă și suntem OK cu asta]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "ID transmițător"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/InfoPlist.strings new file mode 100644 index 0000000000..7146f1d88c --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Сброс"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth используется для связи с устройствами непрерывного мониторинга глюкозы"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth используется для связи с устройствами непрерывного мониторинга глюкозы"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Localizable.strings index dad36f4e2b..d2e7cb8f26 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* Title of the reset confirmation sheet */ -"Are you sure you want to reset this transmitter?" = "Подтвердите намерение выполнить сброс дней трансмиттера"; +"Are you sure you want to reset this transmitter?" = "Вы уверены, что хотите сбросить этот трансмиттер?"; /* Title of button to cancel reset */ "Cancel" = "Отмена"; @@ -9,7 +9,7 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Сбросить"; +"Reset" = "Сброс"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Сброс данных трансмиттера завершен"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Main.strings index 1f2ff05ebd..42ec973660 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/ru.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "Сброс завершен"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ -"7nc-6t-4hZ.title" = "Сбросить данные трансмиттера"; +"7nc-6t-4hZ.title" = "Сбросить трансмиттер"; + +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Этот инструмент поможет сбросить счетчик времени на трансмиттере, достигшем окончания срока работы. Может повлечь непреднамеренные последствия в службах сбора данных Clarity и Share, особенно при использовании трансмиттера с той же учетной записью. Сброс отменить невозможно. Пользуйтесь на свой риск."; /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Введите шестизначный идентификатор"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Ошибка здесь. И это может быть очень долго, и это нормально]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "Сброс"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ -"MbK-kj-ejl.text" = "Данные трансмиттера успешно обновлены. Свяжите его с приложением для запуска нового сенсора."; - -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Этот инструмент поможет сбросить счетчик времени на трансмиттере, достигшем окончания срока работы. Может повлечь непреднамеренные последствия в службах сбора данных Clarity и Share, особенно при использовании трансмиттера с той же учетной записью. Сброс отменить невозможно. Пользуйтесь на свой риск."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Здесь появляется сообщение об ошибке. Оно может продолжаться очень долго и это нормально]"; +"MbK-kj-ejl.text" = "Трансмиттер успешно сброшен. Подключите его к родному приложению, чтобы запустить новый сенсор."; /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ -"vNG-r7-RbP.headerTitle" = "Идентификатор трансмиттера"; +"vNG-r7-RbP.headerTitle" = "ID трансмиттера"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/InfoPlist.strings new file mode 100644 index 0000000000..8b22dfaf28 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Resetovať"; + +/* Bundle name */ +"CFBundleName" = "ResetovaťVysielač"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth sa používa na komunikáciu so zariadeniami pre kontinuálne snímanie glykémie."; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth sa používa na komunikáciu so zariadeniami pre kontinuálne snímanie glykémie."; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..9c38268dfe --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Localizable.strings @@ -0,0 +1,16 @@ +/* Title of the reset confirmation sheet */ +"Are you sure you want to reset this transmitter?" = "Naozaj chcete resetovať tento vysielač?"; + +/* Title of button to cancel reset */ +"Cancel" = "Zrušiť"; + +/* Message of the reset confirmation sheet */ +"It will take up to 10 minutes to complete." = "Dokončenie bude trvať do 10 minút."; + +/* Reset button title + Title of button to begin reset */ +"Reset" = "Resetovať"; + +/* Notification title for background completion notification */ +"Transmitter Reset Complete" = "Resetovanie vysielača je dokončené"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Main.strings new file mode 100644 index 0000000000..d3a973ef61 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/sk.lproj/Main.strings @@ -0,0 +1,21 @@ +/* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ +"3SD-s3-7OM.title" = "Obnovenie dokončené"; + +/* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ +"7nc-6t-4hZ.title" = "Resetovať vysielač"; + +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Tento nástroj môže resetovať hodiny na vysielači, ktorý dosiahol dátum vypršania platnosti, čo umožňuje opätovné spustenie nových relácií senzora.\nTo môže mať neželané dôsledky pre dátové služby, ako je Clarity a Share, najmä ak používate resetovaný vysielač s rovnakým účtom.\nResetovanie sa nedá vrátiť späť.\nPoužitie na vlastné riziko."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ +"G4a-ia-wQC.placeholder" = "Zadajte 6-miestne ID"; + +/* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ +"LBC-6R-q79.normalTitle" = "Resetovať"; + +/* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ +"MbK-kj-ejl.text" = "Vysielač bol úspešne resetovaný. Pripojte ho k aplikácii a začnite novú reláciu senzora."; + +/* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ +"vNG-r7-RbP.headerTitle" = "ID vysielača"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/sv.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/sv.lproj/InfoPlist.strings new file mode 100644 index 0000000000..c4012d2227 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/sv.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Återställ"; + +/* Bundle name */ +"CFBundleName" = "ResetTransmitter"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth används för kommunikation med kontinuerliga blodglukosmätare"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth används för kommunikation med kontinuerliga blodglukosmätare"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..099a9ff655 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/InfoPlist.strings @@ -0,0 +1,12 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Sıfırla"; + +/* Bundle name */ +"CFBundleName" = "Vericiyi Sıfırla"; + +/* Privacy - Bluetooth Always Usage Description */ +"NSBluetoothAlwaysUsageDescription" = "Bluetooth, sürekli glikoz izleme cihazlarıyla iletişim kurmak için kullanılır"; + +/* Privacy - Bluetooth Peripheral Usage Description */ +"NSBluetoothPeripheralUsageDescription" = "Bluetooth, sürekli glikoz izleme cihazlarıyla iletişim kurmak için kullanılır"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Localizable.strings index db64ce8a97..f986051c59 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Localizable.strings @@ -1,16 +1,16 @@ /* Title of the reset confirmation sheet */ -"Are you sure you want to reset this transmitter?" = "Are you sure you want to reset this transmitter?"; +"Are you sure you want to reset this transmitter?" = "Bu vericiyi sıfırlamak istediğinizden emin misiniz?"; /* Title of button to cancel reset */ -"Cancel" = "Cancel"; +"Cancel" = "İptal"; /* Message of the reset confirmation sheet */ -"It will take up to 10 minutes to complete." = "It will take up to 10 minutes to complete."; +"It will take up to 10 minutes to complete." = "Tamamlanması 10 dakika kadar sürecektir."; /* Reset button title Title of button to begin reset */ -"Reset" = "Reset"; +"Reset" = "Sıfırla"; /* Notification title for background completion notification */ -"Transmitter Reset Complete" = "Transmitter Reset Complete"; +"Transmitter Reset Complete" = "Verici Sıfırlama Tamamlandı"; diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Main.strings index 67b6c4e603..e3b51e1527 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/tr.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ -"3SD-s3-7OM.title" = "Reset Complete"; +"3SD-s3-7OM.title" = "Sıfırlama Tamamlandı"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ -"7nc-6t-4hZ.title" = "Reset Transmitter"; +"7nc-6t-4hZ.title" = "Vericiyi Sıfırla"; + +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Bu araç, son kullanma tarihine ulaşmış bir vericideki saati sıfırlayarak yeni sensör oturumlarının yeniden başlatılmasını sağlayabilir.\nÖzellikle aynı hesapla, sıfırlanan bir verici kullanıldığında, Clarity ve Share gibi veri hizmetleri için istenmeyen sonuçları olabilir.\nSıfırlama geri alınamaz.\nKullanımı kendi sorumluluğunuzdadır."; /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ -"G4a-ia-wQC.placeholder" = "Enter the 6-digit ID"; +"G4a-ia-wQC.placeholder" = "6 basamaklı kimliği girin"; + +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Hata buraya gider. Ve çok uzun olabilir ve sorun değil]"; /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Reset"; +"LBC-6R-q79.normalTitle" = "Sıfırla"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ -"MbK-kj-ejl.text" = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; - -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Error goes here. And it can get very long and that's OK]"; +"MbK-kj-ejl.text" = "Verici başarıyla sıfırlandı. Yeni bir sensör oturumu başlatmak için uygulamaya bağlayın."; /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ -"vNG-r7-RbP.headerTitle" = "Transmitter ID"; +"vNG-r7-RbP.headerTitle" = "Verici Kimliği"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/InfoPlist.strings b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/InfoPlist.strings new file mode 100644 index 0000000000..887b254782 --- /dev/null +++ b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Khôi phục lại"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Localizable.strings index 0ea651d7d9..ac0eb33d1d 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Localizable.strings @@ -9,7 +9,8 @@ /* Reset button title Title of button to begin reset */ -"Reset" = "Cài lại"; +"Reset" = "Khôi phục lại"; /* Notification title for background completion notification */ "Transmitter Reset Complete" = "Cài lại Transmitter hoàn tất"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Main.strings index cc8a0c8628..326e317adf 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/vi.lproj/Main.strings @@ -4,20 +4,21 @@ /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "Cài lại Transmitter"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "Tác vụ này có thể đảo ngược đồng hồ trên transmitter khi đến ngày hết hạn và cho phép tiếp tục sử dụng sensor mới.\nĐiều này có thể có hậu quả không lường được đối với các dịch vụ về dữ liệu ví dụ như trên ứng dụng Clarity và Share, đặc biệt là khi thực hiện việc cài lại transmitter mà sử dụng cùng một tài khoản.\nViệc cài đặt không thể được thực hiện.\nBạn tự chịu mọi rủi ro."; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "Nhập 6 số ID"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[Lỗi ở đây. Và có thể mất nhiều thời gian nhưng sẽ ổn thôi]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ -"LBC-6R-q79.normalTitle" = "Cài lại"; +"LBC-6R-q79.normalTitle" = "Khôi phục lại"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "Việc cài lại Transmitter đã hoàn tất. Kết nối với ứng dụng để bắt đầu khởi động sensor."; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "Tác vụ này có thể đảo ngược đồng hồ trên transmitter khi đến ngày hết hạn và cho phép tiếp tục sử dụng sensor mới.\nĐiều này có thể có hậu quả không lường được đối với các dịch vụ về dữ liệu ví dụ như trên ứng dụng Clarity và Share, đặc biệt là khi thực hiện việc cài lại transmitter mà sử dụng cùng một tài khoản.\nViệc cài đặt không thể được thực hiện.\nBạn tự chịu mọi rủi ro."; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[Lỗi ở đây. Và có thể mất nhiều thời gian nhưng sẽ ổn thôi]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "Số ID của Transmitter"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Localizable.strings b/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Localizable.strings index 9811799792..770ca160cd 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Localizable.strings @@ -13,3 +13,4 @@ /* Notification title for background completion notification */ "Transmitter Reset Complete" = "发射器已重置"; + diff --git a/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Main.strings b/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Main.strings index 2eeece7a3f..e4a62c6712 100644 --- a/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Main.strings +++ b/Dependencies/CGMBLEKit/ResetTransmitter/zh-Hans.lproj/Main.strings @@ -1,24 +1,24 @@ - /* Class = "UINavigationItem"; title = "Reset Complete"; ObjectID = "3SD-s3-7OM"; */ "3SD-s3-7OM.title" = "重置已完成"; /* Class = "UINavigationItem"; title = "Reset Transmitter"; ObjectID = "7nc-6t-4hZ"; */ "7nc-6t-4hZ.title" = "重置发射器"; +/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ +"cJ3-Gc-pnc.text" = "该操作将会把发射器使用时间清零,此后可以继续重新启动传感器.这可能会导致Dexcom远程数据故障,尤其是使用同一个Dexcom账户上传数据.重置可能会失败,请自行承担相关风险"; + /* Class = "UITextField"; placeholder = "Enter the 6-digit ID"; ObjectID = "G4a-ia-wQC"; */ "G4a-ia-wQC.placeholder" = "输入6位数字编号"; +/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ +"gYy-Zz-y12.text" = "[发生错误,请耐心等待]"; + /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "LBC-6R-q79"; */ "LBC-6R-q79.normalTitle" = "重置"; /* Class = "UITextView"; text = "The transmitter has been successfully reset. Connect it to the app to begin a new sensor session."; ObjectID = "MbK-kj-ejl"; */ "MbK-kj-ejl.text" = "发射器已重置,请重新连接,并启动传感器"; -/* Class = "UITextView"; text = "This tool can reset the clock on a transmitter that has reached its expiration date, allowing new sensor sessions to again be started.\nThis may have unintended consequences for data services, such as Clarity and Share, especially when using a reset transmitter with the same account.\nResetting cannot be undone.\nUse at your own risk."; ObjectID = "cJ3-Gc-pnc"; */ -"cJ3-Gc-pnc.text" = "该操作将会把发射器使用时间清零,此后可以继续重新启动传感器.这可能会导致Dexcom远程数据故障,尤其是使用同一个Dexcom账户上传数据.重置可能会失败,请自行承担相关风险"; - -/* Class = "UILabel"; text = "[Error goes here. And it can get very long and that's OK]"; ObjectID = "gYy-Zz-y12"; */ -"gYy-Zz-y12.text" = "[发生错误,请耐心等待]"; - /* Class = "UITableViewSection"; headerTitle = "Transmitter ID"; ObjectID = "vNG-r7-RbP"; */ "vNG-r7-RbP.headerTitle" = "发射器编号"; + diff --git a/Dependencies/ConnectIQ 2.xcframework/Info.plist b/Dependencies/ConnectIQ 2.xcframework/Info.plist new file mode 100644 index 0000000000..1925319c5b --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/Info.plist @@ -0,0 +1,41 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-armv7_arm64 + LibraryPath + ConnectIQ.framework + SupportedArchitectures + + armv7 + arm64 + + SupportedPlatform + ios + + + LibraryIdentifier + ios-i386_x86_64-simulator + LibraryPath + ConnectIQ.framework + SupportedArchitectures + + i386 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ConnectIQ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ConnectIQ new file mode 100755 index 0000000000..cb695cffc5 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ConnectIQ differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/ConnectIQ.h b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/ConnectIQ.h new file mode 100644 index 0000000000..632ae87e78 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/ConnectIQ.h @@ -0,0 +1,237 @@ +// +// ConnectIQ.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import "IQConstants.h" +#import "IQDevice.h" +#import "IQApp.h" + +// -------------------------------------------------------------------------------- +#pragma mark - PUBLIC TYPES +// -------------------------------------------------------------------------------- + +/// @brief SendMessage progress callback block +/// +/// @param sentBytes The number of bytes that have been successfully transferred +/// to the device so far for this connection. +/// @param totalBytes The total number of bytes to transfer for this connection. +typedef void (^IQSendMessageProgress)(uint32_t sentBytes, uint32_t totalBytes); + +/// @brief SendMessage completion callback block +/// +/// @param result The result of the SendMessage operation. +typedef void (^IQSendMessageCompletion)(IQSendMessageResult result); + +/// @brief Conforming to the IQUIOverrideDelegate protocol indicates that an +/// object handles one or more events triggered by the ConnectIQ SDK that +/// require user input. +@protocol IQUIOverrideDelegate +@optional +/// @brief Called by the ConnectIQ SDK when an action has been requested that +/// requires Garmin Connect Mobile to be installed. +/// +/// The receiver should choose whether or not to launch the Apple App +/// Store page for GCM, ideally by presenting the user with a choice. +/// +/// If the receiver of this message decides to install GCM, it must call +/// showAppStoreForConnectMobile. +- (void)needsToInstallConnectMobile; +@end + +/// @brief Conforming to the IQDeviceEventDelegate protocol indicates that an +/// object handles ConnectIQ device status events. +@protocol IQDeviceEventDelegate +@optional +/// @brief Called by the ConnectIQ SDK when an IQDevice's connection status has +/// changed. +/// +/// @param device The IQDevice whose status changed. +/// @param status The new status of the device. +- (void)deviceStatusChanged:(IQDevice *)device status:(IQDeviceStatus)status; +@end + +/// @brief Conforming to the IQAppMessageDelegate protocol indicates that an +/// object handles messages from ConnectIQ apps on compatible devices. +@protocol IQAppMessageDelegate +@optional +/// @brief Called by the ConnectIQ SDK when a message is received from a device. +/// +/// @param message The message that was received. +/// @param app The device app that sent the message. +- (void)receivedMessage:(id)message fromApp:(IQApp *)app; +@end + +// -------------------------------------------------------------------------------- +#pragma mark - CLASS DEFINITION +// -------------------------------------------------------------------------------- + +/// @brief The root of the ConnectIQ SDK API. +@interface ConnectIQ : NSObject + ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; + +// -------------------------------------------------------------------------------- +#pragma mark - SINGLETON ACCESS +// -------------------------------------------------------------------------------- + +/// @brief Exposes the single static instance of the ConnectIQ class. +/// +/// @return The single status instance of the ConnectIQ class. ++ (ConnectIQ *)sharedInstance; + +// -------------------------------------------------------------------------------- +#pragma mark - INITIALIZATION +// -------------------------------------------------------------------------------- + +/// @brief Initializes the ConnectIQ SDK with startup parameters necessary for +/// its operation. +/// +/// @param urlScheme The URL scheme for this companion app. When Garmin Connect +/// Mobile is launched, it will return to the companion app by +/// launching a URL with this scheme. +/// @param delegate The delegate that the SDK will use for notifying the +/// companion app about events that require user input. If this +/// is nil, the SDK's default UI will be used. +- (void)initializeWithUrlScheme:(NSString *)urlScheme uiOverrideDelegate:(id)delegate; + +// -------------------------------------------------------------------------------- +#pragma mark - EXTERNAL LAUNCHING +// -------------------------------------------------------------------------------- + +/// @brief Launches the Apple App Store page for the Garmin Connect Mobile app. +/// The companion app should only call this in response to a +/// needsToInstallConnectMobile event that gets triggered on the +/// IQUIOverrideDelegate. +- (void)showAppStoreForConnectMobile; + +/// @brief Launches Garmin Connect Mobile for the purpose of retrieving a list of +/// ConnectIQ-compatible devices. +/// +/// Once the user has chosen which ConnectIQ devices to share with the +/// companion app, GCM will return those devices to the companion app by +/// opening a URL with the scheme registered in +/// initializeWithUrlScheme:uiOverrideDelegate:. +/// +/// The companion app should handle this URL by passing it in to the +/// parseDeviceSelectionResponseFromURL: method to get the list of devices +/// that the user permitted the companion app to communicate with. +- (void)showConnectIQDeviceSelection; + +/// @brief Parses a URL opened from Garmin Connect Mobile into a list of devices. +/// +/// @param url The URL to parse. +/// +/// @return An array of IQDevice objects representing the ConnectIQ-compatible +/// devices that the user allowed GCM to share with the companion app. +/// +/// @seealso showConnectIQDeviceSelection +- (NSArray *)parseDeviceSelectionResponseFromURL:(NSURL *)url; + +/// @brief Launches Garmin Connect Mobile and shows the ConnectIQ app store page +/// for the given app. +/// +/// The companion app should call this if the user would like to manage +/// the app on the device, such as to install, upgrade, uninstall, or +/// modify settings. +/// +/// @param app The app to show the ConnectIQ app store page for. +- (void)showConnectIQStoreForApp:(IQApp *)app; + +// -------------------------------------------------------------------------------- +#pragma mark - DEVICE MANAGEMENT +// -------------------------------------------------------------------------------- + +/// @brief Registers an object as a listener for ConnectIQ device status events. +/// +/// A device may have multiple device event listeners if this method is +/// called more than once. +/// +/// @param device A device to listen for status events from. +/// @param delegate The listener which will receive status events for this device. +- (void)registerForDeviceEvents:(IQDevice *)device delegate:(id)delegate; + +/// @brief Unregisters a listener for a specific device. +/// +/// @param device The device to unregister the listener for. +/// @param delegate The listener to remove from the device. +- (void)unregisterForDeviceEvents:(IQDevice *)device delegate:(id)delegate; + +/// @brief Unregisters the specified listener from all devices for which it had +/// previously been registered. +/// +/// @param delegate The listener to unregister. +- (void)unregisterForAllDeviceEvents:(id)delegate; + +/// @brief Gets the current connection status of a device. +/// +/// The device must have been registered for event notifications by +/// calling registerForDeviceEvents:delegate: or this method will return +/// IQDeviceStatus_InvalidDevice. +/// +/// @param device The device to get the status for. +/// +/// @return The device's current connection status. +- (IQDeviceStatus)getDeviceStatus:(IQDevice *)device; + +// -------------------------------------------------------------------------------- +#pragma mark - APP MANAGEMENT +// -------------------------------------------------------------------------------- + +/// @brief Begins getting the status of an app on a device. This method returns +/// immediately. +/// +/// @param app The IQApp to get the status for. +/// @param completion The completion block that will be triggered when the device +/// status operation is complete. +- (void)getAppStatus:(IQApp *)app completion:(void(^)(IQAppStatus *appStatus))completion; + +/// @brief Registers an object as a listener for ConnectIQ messages from an app +/// on a device. +/// +/// An app may have multiple message listeners if this method is called +/// more than once. +/// +/// @param app The app to listen for messages from. +/// @param delegate The listener which will receive messages for this app. +- (void)registerForAppMessages:(IQApp *)app delegate:(id)delegate; + +/// @brief Unregisters a listener for a specific app. +/// +/// @param app The app to unregister a listener for. +/// @param delegate The listener to remove from the app. +- (void)unregisterForAppMessages:(IQApp *)app delegate:(id)delegate; + +/// @brief Unregisters all previously registered apps for a specific listener. +/// +/// @param delegate The listener to unregister. +- (void)unregisterForAllAppMessages:(id)delegate; + +/// @brief Begins sending a message to an app. This method returns immediately. +/// +/// @param message The message to send to the app. This message must be one of +/// the following types: NSString, NSNumber, NSNull, NSArray, +/// or NSDictionary. Arrays and dictionaries may be nested. +/// @param app The app to send the message to. +/// @param progress A progress block that will be triggered periodically +/// throughout the transfer. This is guaranteed to be triggered +/// at least once. +/// @param completion A completion block that will be triggered when the send +/// message operation is complete. +- (void)sendMessage:(id)message toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion; + +/// @brief Sends an open app request message request to the device. This method returns immediately. +/// +/// @param app The app to open. +/// @param completion A completion block that will be triggered when the send +/// message operation is complete. +- (void)openAppRequest:(IQApp *)app completion:(IQSendMessageCompletion)completion; + +// TODO *** Holding off on documenting this until this method actually works. +- (void)sendImage:(NSData *)bitmap toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQApp.h b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQApp.h new file mode 100644 index 0000000000..a9dfe8c54c --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQApp.h @@ -0,0 +1,34 @@ +// +// IQApp.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import "IQDevice.h" +#import "IQAppStatus.h" + +/// @brief Represents an instance of a ConnectIQ app that is installed on a +/// Garmin device. +@interface IQApp : NSObject + +/// @brief The unique identifier for this app. +@property (nonatomic, readonly) NSUUID *uuid; + +/// @brief The unique identifier for this app in the store. +@property (nonatomic, readonly) NSUUID *storeUuid; + +/// @brief The device that this app is installed on. +@property (nonatomic, readonly) IQDevice *device; + +/// @brief Creates a new app instance. +/// +/// @param uuid The UUID of the app to create. +/// @param storeUuid The store UUID of the app to create. +/// @param device The device the app to create is installed on. +/// +/// @return A new IQApp instance with the appropriate values set. ++ (IQApp *)appWithUUID:(NSUUID *)uuid storeUuid:(NSUUID *)storeUuid device:(IQDevice *)device; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQAppStatus.h b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQAppStatus.h new file mode 100644 index 0000000000..663641d150 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQAppStatus.h @@ -0,0 +1,20 @@ +// +// IQAppStatus.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import + +/// @brief Represents the current status of an app on a Garmin device. +@interface IQAppStatus : NSObject + +/// @brief YES if the app is installed on the device, NO if it isn't. +@property (nonatomic, readonly) BOOL isInstalled; + +/// @brief The version of the app that is currently installed on the device. If +/// the app is not installed, this value is unused. +@property (nonatomic, readonly) uint16_t version; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQConstants.h b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQConstants.h new file mode 100644 index 0000000000..b9017759a5 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQConstants.h @@ -0,0 +1,63 @@ +// +// IQConstants.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import + +/// @brief The current version of the ConnectIQ SDK. +extern int const IQSDKVersion; + +/// @brief The bundle identifier for the Garmin Connect Mobile app. +extern NSString * const IQGCMBundle; + +/// @brief The result of a SendMessage operation +typedef NS_ENUM(NSInteger, IQSendMessageResult){ + ///! @brief The message was sent successfully. + IQSendMessageResult_Success, + + /// @brief The message failed to send due to an unknown error. + IQSendMessageResult_Failure_Unknown, + + /// @brief The message failed to send. There was an error within the SDK or + /// on the device. + IQSendMessageResult_Failure_InternalError, + + /// @brief The message failed to send. The device is not available right now. + IQSendMessageResult_Failure_DeviceNotAvailable, + + /// @brief The message failed to send. The app is not installed on the + /// device. + IQSendMessageResult_Failure_AppNotFound, + + /// @brief The message failed to send. The device is busy and cannot receive + /// the message right now. + IQSendMessageResult_Failure_DeviceIsBusy, + + /// @brief The message failed to send. The message contained an unsupported + /// type. + IQSendMessageResult_Failure_UnsupportedType, + + /// @brief The message failed to send. The device does not have enough memory + /// to receive the message. + IQSendMessageResult_Failure_InsufficientMemory, + + /// @brief The message failed to send. The connection timed out while sending + /// the message. + IQSendMessageResult_Failure_Timeout, + + /// @brief The message failed to send and was retried, but could not complete + /// after a number of tries. + IQSendMessageResult_Failure_MaxRetries, + + /// @brief The message was received by the device but it chose not to display + /// a message prompt, ignoring the message. + IQSendMessageResult_Failure_PromptNotDisplayed, + + /// @brief The message was received by the device but the app to open + /// was already running on the device. + IQSendMessageResult_Failure_AppAlreadyRunning, +}; +NSString *NSStringFromSendMessageResult(IQSendMessageResult value); diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQDevice.h b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQDevice.h new file mode 100644 index 0000000000..6842829f7f --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Headers/IQDevice.h @@ -0,0 +1,61 @@ +// +// IQDevice.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import + +/// @brief The current status of an IQDevice. +typedef NS_ENUM(NSInteger, IQDeviceStatus){ + /// @brief No device with this UUID has been registered for status events + /// the SDK. + IQDeviceStatus_InvalidDevice, + + /// @brief Bluetooth is either powered off or resetting. + IQDeviceStatus_BluetoothNotReady, + + /// @brief This device could not be found by iOS. Perhaps the user removed + /// the device? + IQDeviceStatus_NotFound, + + /// @brief The device is recognized by iOS, but it is not currently + /// connected. + IQDeviceStatus_NotConnected, + + /// @brief The device is connected and ready to communicate. + IQDeviceStatus_Connected, +}; + +/// @brief Represents a ConnectIQ-compatible Garmin device. +@interface IQDevice : NSObject + +/// @brief The unique identifier for this device. +@property (nonatomic, readonly) NSUUID *uuid; + +/// @brief The model name of the device provided by Garmin Connect Mobile. +@property (nonatomic, readonly) NSString *modelName; + +/// @brief The friendly name of the device, set by the user and provided by +/// Garmin Connect Mobile. +@property (nonatomic, readonly) NSString *friendlyName; + +/// @brief Creates a new device instance. +/// +/// @param uuid The UUID of the device to create. +/// @param modelName The model name of the device to create. +/// @param friendlyName The friendly name of the device to create. +/// +/// @return A new IQDevice instance with the appropriate values set. ++ (IQDevice *)deviceWithId:(NSUUID *)uuid modelName:(NSString *)modelName friendlyName:(NSString *)friendlyName; + +/// @brief Creates a new device instance by copying another device's values. +/// +/// @param device The device to copy values from. +/// +/// @return A new IQDevice instance with all values copied. +- (instancetype)initWithDevice:(IQDevice *)device; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Info.plist b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Info.plist new file mode 100644 index 0000000000..87d9278679 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Info.plist differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Modules/module.modulemap b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Modules/module.modulemap new file mode 100644 index 0000000000..685a0721e4 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module ConnectIQ { + umbrella header "ConnectIQ.h" + + export * + module * { export * } +} diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ar.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ar.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..772c7c199c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ar.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/cs.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/cs.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..294594b65e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/cs.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/da.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/da.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..9c7faad3e8 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/da.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/de.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/de.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..cb4d87b1b9 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/de.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/el.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/el.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..8f4e270564 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/el.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/en.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/en.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..8794262a9e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/en.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/es.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/es.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..247b71ac7c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/es.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fi.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fi.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..344d06c1bf Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fi.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..814e34f18c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/fr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/he.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/he.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..b29a9b0842 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/he.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..e10bd29afd Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hu.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hu.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..9c96de1e8d Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/hu.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/id.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/id.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..eda1bc3d3c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/id.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/it.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/it.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..1bd95ac777 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/it.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ja.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ja.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..0f5b121c07 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ja.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ko.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ko.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..3f3749b0e6 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ko.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ms.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ms.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..499c806b2a Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ms.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nb.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nb.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..436c9f67dd Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nb.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nl.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nl.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..97d1c509c0 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/nl.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pl.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pl.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..0f8f3d72bf Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pl.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..6f90228789 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..ddc7d69a1f Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/pt.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ru.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ru.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..ce83c0a22b Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/ru.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sk.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sk.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..98b954bff3 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sk.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sv.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sv.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..316d6f8976 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/sv.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/th.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/th.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..f98199499c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/th.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/tr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/tr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..c71eb4a00e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/tr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..d630d3f0c1 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..db0daa2c7d Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-armv7_arm64/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ConnectIQ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ConnectIQ new file mode 100755 index 0000000000..f86f0c158a Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ConnectIQ differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/ConnectIQ.h b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/ConnectIQ.h new file mode 100644 index 0000000000..632ae87e78 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/ConnectIQ.h @@ -0,0 +1,237 @@ +// +// ConnectIQ.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import "IQConstants.h" +#import "IQDevice.h" +#import "IQApp.h" + +// -------------------------------------------------------------------------------- +#pragma mark - PUBLIC TYPES +// -------------------------------------------------------------------------------- + +/// @brief SendMessage progress callback block +/// +/// @param sentBytes The number of bytes that have been successfully transferred +/// to the device so far for this connection. +/// @param totalBytes The total number of bytes to transfer for this connection. +typedef void (^IQSendMessageProgress)(uint32_t sentBytes, uint32_t totalBytes); + +/// @brief SendMessage completion callback block +/// +/// @param result The result of the SendMessage operation. +typedef void (^IQSendMessageCompletion)(IQSendMessageResult result); + +/// @brief Conforming to the IQUIOverrideDelegate protocol indicates that an +/// object handles one or more events triggered by the ConnectIQ SDK that +/// require user input. +@protocol IQUIOverrideDelegate +@optional +/// @brief Called by the ConnectIQ SDK when an action has been requested that +/// requires Garmin Connect Mobile to be installed. +/// +/// The receiver should choose whether or not to launch the Apple App +/// Store page for GCM, ideally by presenting the user with a choice. +/// +/// If the receiver of this message decides to install GCM, it must call +/// showAppStoreForConnectMobile. +- (void)needsToInstallConnectMobile; +@end + +/// @brief Conforming to the IQDeviceEventDelegate protocol indicates that an +/// object handles ConnectIQ device status events. +@protocol IQDeviceEventDelegate +@optional +/// @brief Called by the ConnectIQ SDK when an IQDevice's connection status has +/// changed. +/// +/// @param device The IQDevice whose status changed. +/// @param status The new status of the device. +- (void)deviceStatusChanged:(IQDevice *)device status:(IQDeviceStatus)status; +@end + +/// @brief Conforming to the IQAppMessageDelegate protocol indicates that an +/// object handles messages from ConnectIQ apps on compatible devices. +@protocol IQAppMessageDelegate +@optional +/// @brief Called by the ConnectIQ SDK when a message is received from a device. +/// +/// @param message The message that was received. +/// @param app The device app that sent the message. +- (void)receivedMessage:(id)message fromApp:(IQApp *)app; +@end + +// -------------------------------------------------------------------------------- +#pragma mark - CLASS DEFINITION +// -------------------------------------------------------------------------------- + +/// @brief The root of the ConnectIQ SDK API. +@interface ConnectIQ : NSObject + ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; + +// -------------------------------------------------------------------------------- +#pragma mark - SINGLETON ACCESS +// -------------------------------------------------------------------------------- + +/// @brief Exposes the single static instance of the ConnectIQ class. +/// +/// @return The single status instance of the ConnectIQ class. ++ (ConnectIQ *)sharedInstance; + +// -------------------------------------------------------------------------------- +#pragma mark - INITIALIZATION +// -------------------------------------------------------------------------------- + +/// @brief Initializes the ConnectIQ SDK with startup parameters necessary for +/// its operation. +/// +/// @param urlScheme The URL scheme for this companion app. When Garmin Connect +/// Mobile is launched, it will return to the companion app by +/// launching a URL with this scheme. +/// @param delegate The delegate that the SDK will use for notifying the +/// companion app about events that require user input. If this +/// is nil, the SDK's default UI will be used. +- (void)initializeWithUrlScheme:(NSString *)urlScheme uiOverrideDelegate:(id)delegate; + +// -------------------------------------------------------------------------------- +#pragma mark - EXTERNAL LAUNCHING +// -------------------------------------------------------------------------------- + +/// @brief Launches the Apple App Store page for the Garmin Connect Mobile app. +/// The companion app should only call this in response to a +/// needsToInstallConnectMobile event that gets triggered on the +/// IQUIOverrideDelegate. +- (void)showAppStoreForConnectMobile; + +/// @brief Launches Garmin Connect Mobile for the purpose of retrieving a list of +/// ConnectIQ-compatible devices. +/// +/// Once the user has chosen which ConnectIQ devices to share with the +/// companion app, GCM will return those devices to the companion app by +/// opening a URL with the scheme registered in +/// initializeWithUrlScheme:uiOverrideDelegate:. +/// +/// The companion app should handle this URL by passing it in to the +/// parseDeviceSelectionResponseFromURL: method to get the list of devices +/// that the user permitted the companion app to communicate with. +- (void)showConnectIQDeviceSelection; + +/// @brief Parses a URL opened from Garmin Connect Mobile into a list of devices. +/// +/// @param url The URL to parse. +/// +/// @return An array of IQDevice objects representing the ConnectIQ-compatible +/// devices that the user allowed GCM to share with the companion app. +/// +/// @seealso showConnectIQDeviceSelection +- (NSArray *)parseDeviceSelectionResponseFromURL:(NSURL *)url; + +/// @brief Launches Garmin Connect Mobile and shows the ConnectIQ app store page +/// for the given app. +/// +/// The companion app should call this if the user would like to manage +/// the app on the device, such as to install, upgrade, uninstall, or +/// modify settings. +/// +/// @param app The app to show the ConnectIQ app store page for. +- (void)showConnectIQStoreForApp:(IQApp *)app; + +// -------------------------------------------------------------------------------- +#pragma mark - DEVICE MANAGEMENT +// -------------------------------------------------------------------------------- + +/// @brief Registers an object as a listener for ConnectIQ device status events. +/// +/// A device may have multiple device event listeners if this method is +/// called more than once. +/// +/// @param device A device to listen for status events from. +/// @param delegate The listener which will receive status events for this device. +- (void)registerForDeviceEvents:(IQDevice *)device delegate:(id)delegate; + +/// @brief Unregisters a listener for a specific device. +/// +/// @param device The device to unregister the listener for. +/// @param delegate The listener to remove from the device. +- (void)unregisterForDeviceEvents:(IQDevice *)device delegate:(id)delegate; + +/// @brief Unregisters the specified listener from all devices for which it had +/// previously been registered. +/// +/// @param delegate The listener to unregister. +- (void)unregisterForAllDeviceEvents:(id)delegate; + +/// @brief Gets the current connection status of a device. +/// +/// The device must have been registered for event notifications by +/// calling registerForDeviceEvents:delegate: or this method will return +/// IQDeviceStatus_InvalidDevice. +/// +/// @param device The device to get the status for. +/// +/// @return The device's current connection status. +- (IQDeviceStatus)getDeviceStatus:(IQDevice *)device; + +// -------------------------------------------------------------------------------- +#pragma mark - APP MANAGEMENT +// -------------------------------------------------------------------------------- + +/// @brief Begins getting the status of an app on a device. This method returns +/// immediately. +/// +/// @param app The IQApp to get the status for. +/// @param completion The completion block that will be triggered when the device +/// status operation is complete. +- (void)getAppStatus:(IQApp *)app completion:(void(^)(IQAppStatus *appStatus))completion; + +/// @brief Registers an object as a listener for ConnectIQ messages from an app +/// on a device. +/// +/// An app may have multiple message listeners if this method is called +/// more than once. +/// +/// @param app The app to listen for messages from. +/// @param delegate The listener which will receive messages for this app. +- (void)registerForAppMessages:(IQApp *)app delegate:(id)delegate; + +/// @brief Unregisters a listener for a specific app. +/// +/// @param app The app to unregister a listener for. +/// @param delegate The listener to remove from the app. +- (void)unregisterForAppMessages:(IQApp *)app delegate:(id)delegate; + +/// @brief Unregisters all previously registered apps for a specific listener. +/// +/// @param delegate The listener to unregister. +- (void)unregisterForAllAppMessages:(id)delegate; + +/// @brief Begins sending a message to an app. This method returns immediately. +/// +/// @param message The message to send to the app. This message must be one of +/// the following types: NSString, NSNumber, NSNull, NSArray, +/// or NSDictionary. Arrays and dictionaries may be nested. +/// @param app The app to send the message to. +/// @param progress A progress block that will be triggered periodically +/// throughout the transfer. This is guaranteed to be triggered +/// at least once. +/// @param completion A completion block that will be triggered when the send +/// message operation is complete. +- (void)sendMessage:(id)message toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion; + +/// @brief Sends an open app request message request to the device. This method returns immediately. +/// +/// @param app The app to open. +/// @param completion A completion block that will be triggered when the send +/// message operation is complete. +- (void)openAppRequest:(IQApp *)app completion:(IQSendMessageCompletion)completion; + +// TODO *** Holding off on documenting this until this method actually works. +- (void)sendImage:(NSData *)bitmap toApp:(IQApp *)app progress:(IQSendMessageProgress)progress completion:(IQSendMessageCompletion)completion; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQApp.h b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQApp.h new file mode 100644 index 0000000000..a9dfe8c54c --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQApp.h @@ -0,0 +1,34 @@ +// +// IQApp.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import "IQDevice.h" +#import "IQAppStatus.h" + +/// @brief Represents an instance of a ConnectIQ app that is installed on a +/// Garmin device. +@interface IQApp : NSObject + +/// @brief The unique identifier for this app. +@property (nonatomic, readonly) NSUUID *uuid; + +/// @brief The unique identifier for this app in the store. +@property (nonatomic, readonly) NSUUID *storeUuid; + +/// @brief The device that this app is installed on. +@property (nonatomic, readonly) IQDevice *device; + +/// @brief Creates a new app instance. +/// +/// @param uuid The UUID of the app to create. +/// @param storeUuid The store UUID of the app to create. +/// @param device The device the app to create is installed on. +/// +/// @return A new IQApp instance with the appropriate values set. ++ (IQApp *)appWithUUID:(NSUUID *)uuid storeUuid:(NSUUID *)storeUuid device:(IQDevice *)device; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQAppStatus.h b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQAppStatus.h new file mode 100644 index 0000000000..663641d150 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQAppStatus.h @@ -0,0 +1,20 @@ +// +// IQAppStatus.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import + +/// @brief Represents the current status of an app on a Garmin device. +@interface IQAppStatus : NSObject + +/// @brief YES if the app is installed on the device, NO if it isn't. +@property (nonatomic, readonly) BOOL isInstalled; + +/// @brief The version of the app that is currently installed on the device. If +/// the app is not installed, this value is unused. +@property (nonatomic, readonly) uint16_t version; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQConstants.h b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQConstants.h new file mode 100644 index 0000000000..b9017759a5 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQConstants.h @@ -0,0 +1,63 @@ +// +// IQConstants.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import + +/// @brief The current version of the ConnectIQ SDK. +extern int const IQSDKVersion; + +/// @brief The bundle identifier for the Garmin Connect Mobile app. +extern NSString * const IQGCMBundle; + +/// @brief The result of a SendMessage operation +typedef NS_ENUM(NSInteger, IQSendMessageResult){ + ///! @brief The message was sent successfully. + IQSendMessageResult_Success, + + /// @brief The message failed to send due to an unknown error. + IQSendMessageResult_Failure_Unknown, + + /// @brief The message failed to send. There was an error within the SDK or + /// on the device. + IQSendMessageResult_Failure_InternalError, + + /// @brief The message failed to send. The device is not available right now. + IQSendMessageResult_Failure_DeviceNotAvailable, + + /// @brief The message failed to send. The app is not installed on the + /// device. + IQSendMessageResult_Failure_AppNotFound, + + /// @brief The message failed to send. The device is busy and cannot receive + /// the message right now. + IQSendMessageResult_Failure_DeviceIsBusy, + + /// @brief The message failed to send. The message contained an unsupported + /// type. + IQSendMessageResult_Failure_UnsupportedType, + + /// @brief The message failed to send. The device does not have enough memory + /// to receive the message. + IQSendMessageResult_Failure_InsufficientMemory, + + /// @brief The message failed to send. The connection timed out while sending + /// the message. + IQSendMessageResult_Failure_Timeout, + + /// @brief The message failed to send and was retried, but could not complete + /// after a number of tries. + IQSendMessageResult_Failure_MaxRetries, + + /// @brief The message was received by the device but it chose not to display + /// a message prompt, ignoring the message. + IQSendMessageResult_Failure_PromptNotDisplayed, + + /// @brief The message was received by the device but the app to open + /// was already running on the device. + IQSendMessageResult_Failure_AppAlreadyRunning, +}; +NSString *NSStringFromSendMessageResult(IQSendMessageResult value); diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQDevice.h b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQDevice.h new file mode 100644 index 0000000000..6842829f7f --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Headers/IQDevice.h @@ -0,0 +1,61 @@ +// +// IQDevice.h +// ConnectIQ +// +// Copyright (c) 2014 Garmin. All rights reserved. +// + +#import +#import + +/// @brief The current status of an IQDevice. +typedef NS_ENUM(NSInteger, IQDeviceStatus){ + /// @brief No device with this UUID has been registered for status events + /// the SDK. + IQDeviceStatus_InvalidDevice, + + /// @brief Bluetooth is either powered off or resetting. + IQDeviceStatus_BluetoothNotReady, + + /// @brief This device could not be found by iOS. Perhaps the user removed + /// the device? + IQDeviceStatus_NotFound, + + /// @brief The device is recognized by iOS, but it is not currently + /// connected. + IQDeviceStatus_NotConnected, + + /// @brief The device is connected and ready to communicate. + IQDeviceStatus_Connected, +}; + +/// @brief Represents a ConnectIQ-compatible Garmin device. +@interface IQDevice : NSObject + +/// @brief The unique identifier for this device. +@property (nonatomic, readonly) NSUUID *uuid; + +/// @brief The model name of the device provided by Garmin Connect Mobile. +@property (nonatomic, readonly) NSString *modelName; + +/// @brief The friendly name of the device, set by the user and provided by +/// Garmin Connect Mobile. +@property (nonatomic, readonly) NSString *friendlyName; + +/// @brief Creates a new device instance. +/// +/// @param uuid The UUID of the device to create. +/// @param modelName The model name of the device to create. +/// @param friendlyName The friendly name of the device to create. +/// +/// @return A new IQDevice instance with the appropriate values set. ++ (IQDevice *)deviceWithId:(NSUUID *)uuid modelName:(NSString *)modelName friendlyName:(NSString *)friendlyName; + +/// @brief Creates a new device instance by copying another device's values. +/// +/// @param device The device to copy values from. +/// +/// @return A new IQDevice instance with all values copied. +- (instancetype)initWithDevice:(IQDevice *)device; + +@end diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Info.plist b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Info.plist new file mode 100644 index 0000000000..7d498ba76b Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Info.plist differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Modules/module.modulemap b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Modules/module.modulemap new file mode 100644 index 0000000000..685a0721e4 --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module ConnectIQ { + umbrella header "ConnectIQ.h" + + export * + module * { export * } +} diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/_CodeSignature/CodeResources b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000000..ffec58498a --- /dev/null +++ b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/_CodeSignature/CodeResources @@ -0,0 +1,830 @@ + + + + + files + + Headers/ConnectIQ.h + + F1hICh90Ex4ADEjYLcSi0YPhrPA= + + Headers/IQApp.h + + R7+SmeArgBACIBWHRnEAugyFHKE= + + Headers/IQAppStatus.h + + WnybOSMMVqCKGns0rEz9C3EfQOg= + + Headers/IQConstants.h + + eI7keKSkaajUZACnuMhgtV1RuBA= + + Headers/IQDevice.h + + bl545C/cu0mw2KlRmzojKmHPom0= + + Info.plist + + sMY09qXRBL/m1OGNWejLjfNg04w= + + Modules/module.modulemap + + SSRVAtIAdFmowQqE4HzOpWYLubg= + + ar.lproj/IQLocalizable.strings + + hash + + 1CDTE/Qaf1Z/HuhSt9CUnwitv4M= + + optional + + + cs.lproj/IQLocalizable.strings + + hash + + /jkyQ77G2Xd9wy6QptBphGNbtCY= + + optional + + + da.lproj/IQLocalizable.strings + + hash + + FYi0wjOu/Hw//Qe96yqxSb9yClc= + + optional + + + de.lproj/IQLocalizable.strings + + hash + + MitzVbGhXhTLjPvw9vuWcQQa50Q= + + optional + + + el.lproj/IQLocalizable.strings + + hash + + n82gLcjjjHszaroTFeJUvSrrc0o= + + optional + + + en.lproj/IQLocalizable.strings + + hash + + hcxxLyrTI+aElXlPc5dwr7jdqwc= + + optional + + + es.lproj/IQLocalizable.strings + + hash + + ff8DVQtNhO8pF7HFnXjh8foHXbo= + + optional + + + fi.lproj/IQLocalizable.strings + + hash + + R9cr8yqJmu91Xz31tGyprGR3t/s= + + optional + + + fr.lproj/IQLocalizable.strings + + hash + + PwFmqFeRTcjdHmkXYrPzNVYoe5o= + + optional + + + he.lproj/IQLocalizable.strings + + hash + + /jPUgFtYbbyELG5DZ3Sjoi/If9w= + + optional + + + hr.lproj/IQLocalizable.strings + + hash + + H2GtdTeORRPCnogvpWY69Dg9uME= + + optional + + + hu.lproj/IQLocalizable.strings + + hash + + QIimMhNyYmqp4ZW01hfj554WAMg= + + optional + + + id.lproj/IQLocalizable.strings + + hash + + 2/54a0gkcVuk1I3m4ulDAXOLL5o= + + optional + + + it.lproj/IQLocalizable.strings + + hash + + hNIKYIcP/87e6g7AUP+zKRtJ52M= + + optional + + + ja.lproj/IQLocalizable.strings + + hash + + 0iU2PbJ/3xgXMZ20ffsqaWpxKWc= + + optional + + + ko.lproj/IQLocalizable.strings + + hash + + ERH8oHR9H9jMHjP0EAgaTtVhnX4= + + optional + + + ms.lproj/IQLocalizable.strings + + hash + + DkbQA2+v/qSgQWma/fg3647Bkqs= + + optional + + + nb.lproj/IQLocalizable.strings + + hash + + T3zFOvuvrJt5Vnmfqt2Mf/du8as= + + optional + + + nl.lproj/IQLocalizable.strings + + hash + + t9PD5JEbfoSLaQ7f8M2cLghOReI= + + optional + + + pl.lproj/IQLocalizable.strings + + hash + + wfTnhBccAm6JfwH/JkZKNRKTUAU= + + optional + + + pt-PT.lproj/IQLocalizable.strings + + hash + + 7yXkcZEpJ4UiRHAzhK+vw/Q857Y= + + optional + + + pt.lproj/IQLocalizable.strings + + hash + + tZPncsQs8weCDJa03AKLpijXSUw= + + optional + + + ru.lproj/IQLocalizable.strings + + hash + + Ct+byJ3rWeigvg0q6rB/kQaR+yE= + + optional + + + sk.lproj/IQLocalizable.strings + + hash + + 1yTM1nAsAYpSH7NrYU6/nFlqk5E= + + optional + + + sv.lproj/IQLocalizable.strings + + hash + + i84z6vuHLrFpO0qZ2V0zYjixIws= + + optional + + + th.lproj/IQLocalizable.strings + + hash + + oW5npy+pDJM1wUOgTkw9FY1Ave4= + + optional + + + tr.lproj/IQLocalizable.strings + + hash + + 76rD7PLrQMiT5YTlI8IjEFgsiU4= + + optional + + + zh-Hans.lproj/IQLocalizable.strings + + hash + + DNlMxUKypOvKArzi7ioJUiFfFXg= + + optional + + + zh-Hant.lproj/IQLocalizable.strings + + hash + + U6I+uL07KIv2b77w0c0glaJlhMg= + + optional + + + + files2 + + Headers/ConnectIQ.h + + hash + + F1hICh90Ex4ADEjYLcSi0YPhrPA= + + hash2 + + ABtgvHbvmly4QpZO/KmmrwYkL0N+AqV3gXdPVrseysY= + + + Headers/IQApp.h + + hash + + R7+SmeArgBACIBWHRnEAugyFHKE= + + hash2 + + X4vXt0sO9gxQNzQalIaLqMpSGNRC9ue2USDcfjBYkec= + + + Headers/IQAppStatus.h + + hash + + WnybOSMMVqCKGns0rEz9C3EfQOg= + + hash2 + + tg9qNXtTmFUvNoJtq7O/aEXBNngcGENVRhvxLJ8C/xo= + + + Headers/IQConstants.h + + hash + + eI7keKSkaajUZACnuMhgtV1RuBA= + + hash2 + + bqDpm8yikc2FIqaSUHcLqPY6TPXLlXSUo+Dl9NUYwmA= + + + Headers/IQDevice.h + + hash + + bl545C/cu0mw2KlRmzojKmHPom0= + + hash2 + + 4N4+64IHeb9iBwyziNxo0SMuCM75ez9Em4UfmtgtTHA= + + + Modules/module.modulemap + + hash + + SSRVAtIAdFmowQqE4HzOpWYLubg= + + hash2 + + lQGjVO5Q0wfztjETCwDkwAkQ7nZInCgWdStnHL3o6Co= + + + ar.lproj/IQLocalizable.strings + + hash + + 1CDTE/Qaf1Z/HuhSt9CUnwitv4M= + + hash2 + + CWyQue2TCS0heGoGbN4ffetM2QZSk7lqgc2Wer2fgTg= + + optional + + + cs.lproj/IQLocalizable.strings + + hash + + /jkyQ77G2Xd9wy6QptBphGNbtCY= + + hash2 + + 1mSn+EYeYcTV1dArgHz7PkmZrV6mHWfnuG5aDa6Y87E= + + optional + + + da.lproj/IQLocalizable.strings + + hash + + FYi0wjOu/Hw//Qe96yqxSb9yClc= + + hash2 + + yLkvGzd+smkOjicvW/+Oe6wGGyirHS+/YfjuSzyVoMM= + + optional + + + de.lproj/IQLocalizable.strings + + hash + + MitzVbGhXhTLjPvw9vuWcQQa50Q= + + hash2 + + DFHv7MWBJmyAkOj993NmSFKbS2t8/vtSev603sBUtjI= + + optional + + + el.lproj/IQLocalizable.strings + + hash + + n82gLcjjjHszaroTFeJUvSrrc0o= + + hash2 + + i4FAK4mi+SgS6oZv8zM74kRZToakn49E8GD7FcJBLoQ= + + optional + + + en.lproj/IQLocalizable.strings + + hash + + hcxxLyrTI+aElXlPc5dwr7jdqwc= + + hash2 + + vmBi9DFJzFcG0OwaWKSDjgklNi407U8u2pz3EnEENN4= + + optional + + + es.lproj/IQLocalizable.strings + + hash + + ff8DVQtNhO8pF7HFnXjh8foHXbo= + + hash2 + + z6RjynaWjrRKHmv4sLirc4eXwKOtQdylzj5+TiHpaTc= + + optional + + + fi.lproj/IQLocalizable.strings + + hash + + R9cr8yqJmu91Xz31tGyprGR3t/s= + + hash2 + + 6BI0iPRVWaP63/XFdjLBz6z7DsvvuOoaEAS+mYzrx8E= + + optional + + + fr.lproj/IQLocalizable.strings + + hash + + PwFmqFeRTcjdHmkXYrPzNVYoe5o= + + hash2 + + geXjZzXre2CRiALecPFBGz4JSJA7MbkDnB4qrEMKNwk= + + optional + + + he.lproj/IQLocalizable.strings + + hash + + /jPUgFtYbbyELG5DZ3Sjoi/If9w= + + hash2 + + 47mcrSx16SFjWPIiN7guCAG0va8NiJ6I5s45tSVEHlY= + + optional + + + hr.lproj/IQLocalizable.strings + + hash + + H2GtdTeORRPCnogvpWY69Dg9uME= + + hash2 + + 4bQvygPax6VBpoFlyS5by1N6otnDMliHu+bWsDaWSQc= + + optional + + + hu.lproj/IQLocalizable.strings + + hash + + QIimMhNyYmqp4ZW01hfj554WAMg= + + hash2 + + 0m2fIyz26vh3RlUqqSXvoNTLovxIixrUyJoL/IDSoVk= + + optional + + + id.lproj/IQLocalizable.strings + + hash + + 2/54a0gkcVuk1I3m4ulDAXOLL5o= + + hash2 + + hQf9SrG7d8aVWsXIbCIxkKEJjbnW1FLvS+MbOI1VtHQ= + + optional + + + it.lproj/IQLocalizable.strings + + hash + + hNIKYIcP/87e6g7AUP+zKRtJ52M= + + hash2 + + XAbEWX6cicDxGzxGgSx3DhF4rjUHX4LV+dO0X3rUEqc= + + optional + + + ja.lproj/IQLocalizable.strings + + hash + + 0iU2PbJ/3xgXMZ20ffsqaWpxKWc= + + hash2 + + YOqOvZq0WEN4DCoSwc0lcTSRc4C812DqzjIsaid1SHg= + + optional + + + ko.lproj/IQLocalizable.strings + + hash + + ERH8oHR9H9jMHjP0EAgaTtVhnX4= + + hash2 + + WJyaRCWn1KqmcDeajRnC41MdNrlpbI+1JbPkXhbKrKY= + + optional + + + ms.lproj/IQLocalizable.strings + + hash + + DkbQA2+v/qSgQWma/fg3647Bkqs= + + hash2 + + gztYxa4Hn58HkKmcUIZI1jCz44IETZeMsqrpZSKxJvc= + + optional + + + nb.lproj/IQLocalizable.strings + + hash + + T3zFOvuvrJt5Vnmfqt2Mf/du8as= + + hash2 + + Oy6UOwSN+/xPIrthAEvzV8PEn27kfsHpMMLU5w1rww0= + + optional + + + nl.lproj/IQLocalizable.strings + + hash + + t9PD5JEbfoSLaQ7f8M2cLghOReI= + + hash2 + + XbijhSaZgmsW59Vo9ZEbhDuUQH18fHizWKzsLosiM0o= + + optional + + + pl.lproj/IQLocalizable.strings + + hash + + wfTnhBccAm6JfwH/JkZKNRKTUAU= + + hash2 + + MQYgqA+Hl03JJ261Q19K5Lt64kSTBP+pfpD+jOVE3AU= + + optional + + + pt-PT.lproj/IQLocalizable.strings + + hash + + 7yXkcZEpJ4UiRHAzhK+vw/Q857Y= + + hash2 + + seINq3QazVameLGOW+pIAtGWLa6NDl5XWRtqnObxywo= + + optional + + + pt.lproj/IQLocalizable.strings + + hash + + tZPncsQs8weCDJa03AKLpijXSUw= + + hash2 + + GnzdqEuQwORzVCih99bwr79UHIyzXm+zuN5b9m1NrKY= + + optional + + + ru.lproj/IQLocalizable.strings + + hash + + Ct+byJ3rWeigvg0q6rB/kQaR+yE= + + hash2 + + yCN9s/JXYqsMNZ1icaH4hUwyMQ1NtxOmV6sIAtRd9pc= + + optional + + + sk.lproj/IQLocalizable.strings + + hash + + 1yTM1nAsAYpSH7NrYU6/nFlqk5E= + + hash2 + + OFHDtkGLLSfTuSx8GOTycKDCKOKmX0Wh2QG1CHhRz3I= + + optional + + + sv.lproj/IQLocalizable.strings + + hash + + i84z6vuHLrFpO0qZ2V0zYjixIws= + + hash2 + + a3Gk+3USOT5uundOXrNCgnbcD0rDo2lkCO7b7+zg2Is= + + optional + + + th.lproj/IQLocalizable.strings + + hash + + oW5npy+pDJM1wUOgTkw9FY1Ave4= + + hash2 + + qxGqAqRMwm0/dMd0W7DUsvbWb9x65GT+3d1zOQEql1w= + + optional + + + tr.lproj/IQLocalizable.strings + + hash + + 76rD7PLrQMiT5YTlI8IjEFgsiU4= + + hash2 + + Y6TnKQmqO/TAx+0KYqRRG6UOz7I/gM1YmbUwgSfZSQU= + + optional + + + zh-Hans.lproj/IQLocalizable.strings + + hash + + DNlMxUKypOvKArzi7ioJUiFfFXg= + + hash2 + + BI3m4MTMHuPI4sQKPGeQnxIlBJJrXwgVuR7Ho1Q5o6Y= + + optional + + + zh-Hant.lproj/IQLocalizable.strings + + hash + + U6I+uL07KIv2b77w0c0glaJlhMg= + + hash2 + + 14dQnjX3pEz2Um4J/fOdQDRe/LSuXxqkg1hEkO8E5ys= + + optional + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ar.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ar.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..772c7c199c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ar.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/cs.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/cs.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..294594b65e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/cs.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/da.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/da.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..9c7faad3e8 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/da.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/de.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/de.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..cb4d87b1b9 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/de.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/el.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/el.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..8f4e270564 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/el.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/en.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/en.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..8794262a9e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/en.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/es.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/es.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..247b71ac7c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/es.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fi.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fi.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..344d06c1bf Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fi.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..814e34f18c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/fr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/he.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/he.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..b29a9b0842 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/he.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..e10bd29afd Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hu.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hu.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..9c96de1e8d Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/hu.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/id.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/id.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..eda1bc3d3c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/id.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/it.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/it.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..1bd95ac777 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/it.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ja.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ja.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..0f5b121c07 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ja.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ko.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ko.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..3f3749b0e6 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ko.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ms.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ms.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..499c806b2a Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ms.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nb.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nb.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..436c9f67dd Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nb.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nl.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nl.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..97d1c509c0 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/nl.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pl.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pl.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..0f8f3d72bf Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pl.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..6f90228789 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt-PT.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..ddc7d69a1f Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/pt.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ru.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ru.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..ce83c0a22b Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/ru.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sk.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sk.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..98b954bff3 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sk.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sv.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sv.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..316d6f8976 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/sv.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/th.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/th.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..f98199499c Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/th.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/tr.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/tr.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..c71eb4a00e Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/tr.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..d630d3f0c1 Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hans.lproj/IQLocalizable.strings differ diff --git a/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings new file mode 100644 index 0000000000..db0daa2c7d Binary files /dev/null and b/Dependencies/ConnectIQ 2.xcframework/ios-i386_x86_64-simulator/ConnectIQ.framework/zh-Hant.lproj/IQLocalizable.strings differ diff --git a/Dependencies/G7SensorKit/G7SensorKit.xcodeproj/project.pbxproj b/Dependencies/G7SensorKit/G7SensorKit.xcodeproj/project.pbxproj index 449d2a1c55..c87edd317e 100644 --- a/Dependencies/G7SensorKit/G7SensorKit.xcodeproj/project.pbxproj +++ b/Dependencies/G7SensorKit/G7SensorKit.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 19D4668729A7C17A004D5F33 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 19D4668929A7C17A004D5F33 /* Localizable.strings */; }; - 19D4668B29A7C8AA004D5F33 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 19D4668929A7C17A004D5F33 /* Localizable.strings */; }; C109F14A291ECCE2008EA5B6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C109F149291ECCE2008EA5B6 /* Assets.xcassets */; }; C109F14C291ED66F008EA5B6 /* G7GlucoseMessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C109F14B291ED66F008EA5B6 /* G7GlucoseMessageTests.swift */; }; C139829829295D7D0047DB5F /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; @@ -52,13 +50,14 @@ C17F5149291EB6B600555EB5 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5148291EB6B600555EB5 /* LocalizedString.swift */; }; C17F514B291EB6F000555EB5 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; C17F514D291EB79E00555EB5 /* AlgorithmError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514C291EB79E00555EB5 /* AlgorithmError.swift */; }; - C17F514E291EB86100555EB5 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5148291EB6B600555EB5 /* LocalizedString.swift */; }; C17F514F291EB87600555EB5 /* G7SensorKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C17F50C6291EAC3800555EB5 /* G7SensorKit.framework */; }; C17F5156291EBD8600555EB5 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5155291EBD8600555EB5 /* Image.swift */; }; C17F5157291EBD9900555EB5 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F513F291EB27D00555EB5 /* TimeInterval.swift */; }; + C19C9F4529C9115B00A6D3D0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C19C9F4729C9115B00A6D3D0 /* Localizable.strings */; }; + C19C9F4A29C9117500A6D3D0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C19C9F4C29C9117500A6D3D0 /* Localizable.strings */; }; + C19C9F4E29C91C4C00A6D3D0 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19C9F4D29C91C4C00A6D3D0 /* LocalizedString.swift */; }; C1E71720292D84FE00DA646F /* G7ProgressBarState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E7171F292D84FE00DA646F /* G7ProgressBarState.swift */; }; - CE70369C299F9AAB002D88AE /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE70369B299F9AAB002D88AE /* LoopKit.framework */; }; - CE70369E299F9AAB002D88AE /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE70369D299F9AAB002D88AE /* LoopKitUI.framework */; }; + CEC751E129D8837D006E9D24 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751E029D8837D006E9D24 /* LoopKitUI.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -108,31 +107,31 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 19D4668829A7C17A004D5F33 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 19D4668A29A7C6A9004D5F33 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; - 19D4668E29A7D459004D5F33 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; - 19D4668F29A7D460004D5F33 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; - 19D4669029A7D465004D5F33 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669129A7D46A004D5F33 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669229A7D4B4004D5F33 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669329A7D4B9004D5F33 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669429A7D4BE004D5F33 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669529A7D4CC004D5F33 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669629A7D4D4004D5F33 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669729A7D4DD004D5F33 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669829A7D4F5004D5F33 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 19D4669929A7D4FD004D5F33 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; - 19D4669A29A7D50A004D5F33 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669B29A7D538004D5F33 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669C29A7D53F004D5F33 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669D29A7D545004D5F33 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669E29A7D54E004D5F33 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - 19D4669F29A7D555004D5F33 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 19D466A029A7D5D3004D5F33 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1086B0E29C9169100D46E65 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C1086B0F29C9169100D46E65 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; C109F149291ECCE2008EA5B6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; C109F14B291ED66F008EA5B6 /* G7GlucoseMessageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = G7GlucoseMessageTests.swift; sourceTree = ""; }; + C10A0FE529C91688006F4CD8 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C10A0FE629C91688006F4CD8 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C10A851B29C916A200EAE6B3 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C10A851C29C916A200EAE6B3 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C110930529C9169800AD9503 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C110930629C9169800AD9503 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C125E0C029C9168100AB13C5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C125E0C129C9168100AB13C5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C12E6F0729C9166900E6FDBE /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C12E6F0829C9166900E6FDBE /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C13C056529C916AA00ED3803 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C13C056629C916AA00ED3803 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C14091FA29C9167100ADD112 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C14091FB29C9167100ADD112 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; C1409A08291EC22F006BE8D0 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; C1409A0A291EC258006BE8D0 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C149257929C916B200F94598 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C149257A29C916B200F94598 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C14BF96629C916560055FA98 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C158585E29C916BA00EA08EA /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C158585F29C916BA00EA08EA /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; C17F50C6291EAC3800555EB5 /* G7SensorKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = G7SensorKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C17F50C9291EAC3800555EB5 /* G7SensorKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = G7SensorKit.h; sourceTree = ""; }; C17F50CE291EAC3800555EB5 /* G7SensorKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = G7SensorKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -172,9 +171,32 @@ C17F514C291EB79E00555EB5 /* AlgorithmError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlgorithmError.swift; sourceTree = ""; }; C17F5155291EBD8600555EB5 /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; C17F5158291EBE7500555EB5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C19277AE29C916C200311AB7 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C19277AF29C916C200311AB7 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C19C9F4629C9115B00A6D3D0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C19C9F4D29C91C4C00A6D3D0 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C19C9F4F29C91ED400A6D3D0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C1AEF8AF29C916CA001F6F41 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C1AEF8B029C916CA001F6F41 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C1B6638F29C916EC001556A8 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1B6639029C916EC001556A8 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1C140DE29C916D20051AFF1 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C1C140DF29C916D20051AFF1 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C1C86C0A29C916DC0060D000 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1C86C0B29C916DC0060D000 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1CCD81429C916F600A1158E /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C1CCD81529C916F600A1158E /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C1CDA74429C916E400DDC69C /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C1CDA74529C916E400DDC69C /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C1CE705E29C916FE00E70F9D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C1CE705F29C916FE00E70F9D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C1E3B2FF29C9170800A06681 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C1E3B30029C9170800A06681 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; C1E7171F292D84FE00DA646F /* G7ProgressBarState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = G7ProgressBarState.swift; sourceTree = ""; }; - CE70369B299F9AAB002D88AE /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CE70369D299F9AAB002D88AE /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E9A8EB29C9170F00478AA9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C1F6C1FA29C9166000C74579 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1F6C1FB29C9166000C74579 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + CEC751E029D8837D006E9D24 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -182,8 +204,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CE70369C299F9AAB002D88AE /* LoopKit.framework in Frameworks */, - CE70369E299F9AAB002D88AE /* LoopKitUI.framework in Frameworks */, + CEC751E129D8837D006E9D24 /* LoopKitUI.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -218,7 +239,6 @@ C17F50BC291EAC3800555EB5 = { isa = PBXGroup; children = ( - 19D4668929A7C17A004D5F33 /* Localizable.strings */, C17F5136291EB07F00555EB5 /* Common */, C17F50C8291EAC3800555EB5 /* G7SensorKit */, C17F50D2291EAC3800555EB5 /* G7SensorKitTests */, @@ -243,6 +263,7 @@ C17F50C8291EAC3800555EB5 /* G7SensorKit */ = { isa = PBXGroup; children = ( + C19C9F4729C9115B00A6D3D0 /* Localizable.strings */, C17F513D291EB1A500555EB5 /* BluetoothServices.swift */, C17F514C291EB79E00555EB5 /* AlgorithmError.swift */, C17F5134291EB06A00555EB5 /* AlgorithmState.swift */, @@ -283,12 +304,14 @@ C17F50F9291EAC9100555EB5 /* G7SensorKitUI */ = { isa = PBXGroup; children = ( + C19C9F4C29C9117500A6D3D0 /* Localizable.strings */, C1E7171E292D84B500DA646F /* Views */, C109F149291ECCE2008EA5B6 /* Assets.xcassets */, C17F5154291EBD7100555EB5 /* Extensions */, C17F50FF291EAC9D00555EB5 /* G7CGMManager */, C17F50FA291EAC9100555EB5 /* G7SensorKitUI.h */, C17F5126291EAF2F00555EB5 /* OSLog.swift */, + C19C9F4D29C91C4C00A6D3D0 /* LocalizedString.swift */, ); path = G7SensorKitUI; sourceTree = ""; @@ -316,8 +339,7 @@ C17F5128291EAFA100555EB5 /* Frameworks */ = { isa = PBXGroup; children = ( - CE70369B299F9AAB002D88AE /* LoopKit.framework */, - CE70369D299F9AAB002D88AE /* LoopKitUI.framework */, + CEC751E029D8837D006E9D24 /* LoopKitUI.framework */, ); name = Frameworks; sourceTree = ""; @@ -479,6 +501,7 @@ BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1410; LastUpgradeCheck = 1410; + ORGANIZATIONNAME = "LoopKit Authors"; TargetAttributes = { C17F50C5291EAC3800555EB5 = { CreatedOnToolsVersion = 14.1; @@ -502,26 +525,31 @@ knownRegions = ( en, Base, - sv, + es, + nb, + it, + fr, + nl, + de, ar, "zh-Hans", da, - nl, - ca, fi, - fr, - de, he, - it, - "pt-BR", - "pt-PT", ja, pl, + "pt-BR", + ro, ru, - es, + sv, tr, - uk, + vi, sk, + hi, + cs, + uk, + "pt-PT", + ca, ); mainGroup = C17F50BC291EAC3800555EB5; productRefGroup = C17F50C7291EAC3800555EB5 /* Products */; @@ -541,7 +569,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 19D4668729A7C17A004D5F33 /* Localizable.strings in Resources */, + C19C9F4529C9115B00A6D3D0 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -557,7 +585,7 @@ buildActionMask = 2147483647; files = ( C109F14A291ECCE2008EA5B6 /* Assets.xcassets in Resources */, - 19D4668B29A7C8AA004D5F33 /* Localizable.strings in Resources */, + C19C9F4A29C9117500A6D3D0 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -616,6 +644,7 @@ files = ( C17F5108291EAC9D00555EB5 /* G7SettingsView.swift in Sources */, C17F5157291EBD9900555EB5 /* TimeInterval.swift in Sources */, + C19C9F4E29C91C4C00A6D3D0 /* LocalizedString.swift in Sources */, C17F5156291EBD8600555EB5 /* Image.swift in Sources */, C139829829295D7D0047DB5F /* HKUnit.swift in Sources */, C1409A07291EC21C006BE8D0 /* OSLog.swift in Sources */, @@ -623,7 +652,6 @@ C17F5109291EAC9D00555EB5 /* G7CGMManager+UI.swift in Sources */, C17F5107291EAC9D00555EB5 /* G7StartupView.swift in Sources */, C1E71720292D84FE00DA646F /* G7ProgressBarState.swift in Sources */, - C17F514E291EB86100555EB5 /* LocalizedString.swift in Sources */, C17F5106291EAC9D00555EB5 /* G7SettingsViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -663,30 +691,60 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 19D4668929A7C17A004D5F33 /* Localizable.strings */ = { + C19C9F4729C9115B00A6D3D0 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C19C9F4629C9115B00A6D3D0 /* en */, + C1F6C1FA29C9166000C74579 /* cs */, + C12E6F0729C9166900E6FDBE /* da */, + C14091FA29C9167100ADD112 /* de */, + C125E0C029C9168100AB13C5 /* es */, + C10A0FE529C91688006F4CD8 /* fi */, + C1086B0E29C9169100D46E65 /* fr */, + C110930529C9169800AD9503 /* he */, + C10A851B29C916A200EAE6B3 /* hi */, + C13C056529C916AA00ED3803 /* it */, + C149257929C916B200F94598 /* ja */, + C158585E29C916BA00EA08EA /* nb */, + C19277AE29C916C200311AB7 /* nl */, + C1AEF8AF29C916CA001F6F41 /* pl */, + C1C140DE29C916D20051AFF1 /* pt-BR */, + C1C86C0A29C916DC0060D000 /* ro */, + C1CDA74429C916E400DDC69C /* ru */, + C1B6638F29C916EC001556A8 /* sk */, + C1CCD81429C916F600A1158E /* sv */, + C1CE705E29C916FE00E70F9D /* tr */, + C1E3B2FF29C9170800A06681 /* vi */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + C19C9F4C29C9117500A6D3D0 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 19D4668829A7C17A004D5F33 /* en */, - 19D4668A29A7C6A9004D5F33 /* sv */, - 19D4668E29A7D459004D5F33 /* ar */, - 19D4668F29A7D460004D5F33 /* zh-Hans */, - 19D4669029A7D465004D5F33 /* da */, - 19D4669129A7D46A004D5F33 /* nl */, - 19D4669229A7D4B4004D5F33 /* ca */, - 19D4669329A7D4B9004D5F33 /* fi */, - 19D4669429A7D4BE004D5F33 /* fr */, - 19D4669529A7D4CC004D5F33 /* de */, - 19D4669629A7D4D4004D5F33 /* he */, - 19D4669729A7D4DD004D5F33 /* it */, - 19D4669829A7D4F5004D5F33 /* pt-BR */, - 19D4669929A7D4FD004D5F33 /* pt-PT */, - 19D4669A29A7D50A004D5F33 /* ja */, - 19D4669B29A7D538004D5F33 /* pl */, - 19D4669C29A7D53F004D5F33 /* ru */, - 19D4669D29A7D545004D5F33 /* es */, - 19D4669E29A7D54E004D5F33 /* tr */, - 19D4669F29A7D555004D5F33 /* uk */, - 19D466A029A7D5D3004D5F33 /* sk */, + C14BF96629C916560055FA98 /* ar */, + C1F6C1FB29C9166000C74579 /* cs */, + C12E6F0829C9166900E6FDBE /* da */, + C14091FB29C9167100ADD112 /* de */, + C125E0C129C9168100AB13C5 /* es */, + C10A0FE629C91688006F4CD8 /* fi */, + C1086B0F29C9169100D46E65 /* fr */, + C110930629C9169800AD9503 /* he */, + C10A851C29C916A200EAE6B3 /* hi */, + C13C056629C916AA00ED3803 /* it */, + C149257A29C916B200F94598 /* ja */, + C158585F29C916BA00EA08EA /* nb */, + C19277AF29C916C200311AB7 /* nl */, + C1AEF8B029C916CA001F6F41 /* pl */, + C1C140DF29C916D20051AFF1 /* pt-BR */, + C1C86C0B29C916DC0060D000 /* ro */, + C1CDA74529C916E400DDC69C /* ru */, + C1B6639029C916EC001556A8 /* sk */, + C1CCD81529C916F600A1158E /* sv */, + C1CE705F29C916FE00E70F9D /* tr */, + C1E3B30029C9170800A06681 /* vi */, + C1E9A8EB29C9170F00478AA9 /* zh-Hans */, + C19C9F4F29C91ED400A6D3D0 /* en */, ); name = Localizable.strings; sourceTree = ""; @@ -698,7 +756,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -747,6 +804,11 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -761,7 +823,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -804,6 +865,11 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + ); MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/Dependencies/G7SensorKit/G7SensorKit/OSLog.swift b/Dependencies/G7SensorKit/G7SensorKit/OSLog.swift index d68073135d..25f8f49226 100644 --- a/Dependencies/G7SensorKit/G7SensorKit/OSLog.swift +++ b/Dependencies/G7SensorKit/G7SensorKit/OSLog.swift @@ -4,143 +4,29 @@ // // Copyright © 2017 LoopKit Authors. All rights reserved. // -// -// OSLog.swift -// OmniBLE -// -// Copyright © 2017 LoopKit Authors. All rights reserved. -// OSLog updated for FreeAPSX logs -// import os.log -import Foundation - -let storeLoopLog: Bool = false - -let loggerLock = NSRecursiveLock() -let baseReporter: IssueReporter = SimpleLogReporter() -let category = Logger.Category.G7SensorKit - -extension NSLocking { - func perform(_ block: () throws -> T) rethrows -> T { - lock() - defer { unlock() } - return try block() - } -} - -extension NSRecursiveLock { - convenience init(label: String) { - self.init() - name = label - } -} -extension NSLock { - convenience init(label: String) { - self.init() - name = label - } -} extension OSLog { - convenience init(category: String) { - self.init(subsystem: "com.loopkit.G7SensorKit", category: category) + self.init(subsystem: "org.loopkit.G7SensorKit", category: category) } func debug(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .debug, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } + log(message, type: .debug, args) } func info(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .info, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.info( - {msg}(), - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - + log(message, type: .info, args) } func `default`(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .default, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .default, args) } func error(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .error, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - - loggerLock.perform { - category.logger.warning( - {msg}(), - description: {msg}(), - error: nil, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .error, args) } private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { @@ -162,275 +48,3 @@ extension OSLog { } } } - -protocol IssueReporter: AnyObject { - /// Call this method in `applicationDidFinishLaunching()`. - func setup() - - func setUserIdentifier(_: String?) - - func reportNonFatalIssue(withName: String, attributes: [String: String]) - - func reportNonFatalIssue(withError: NSError) - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) -} - -final class Logger { - static let `default` = Logger(category: .default, reporter: baseReporter) - static let G7SensorKit = Logger(category: .G7SensorKit, reporter: baseReporter) - - enum Category: String { - case `default` - case G7SensorKit - - var name: String { - rawValue - } - - var logger: Logger { - switch self { - case .default: return .default - case .G7SensorKit: return .G7SensorKit - - } - } - - fileprivate var log: OSLog { - let subsystem = Bundle.main.bundleIdentifier! - switch self { - case .default: return OSLog.default - case .G7SensorKit: return OSLog(subsystem: subsystem, category: name) - } - } - } - - fileprivate enum Error: Swift.Error { - case error(String) - case errorWithInnerError(String, Swift.Error) - case errorWithDescription(String, String) - case errorWithDescriptionAndInnerError(String, String, Swift.Error) - - private func domain() -> String { - switch self { - case let .error(domain), - let .errorWithDescription(domain, _), - let .errorWithDescriptionAndInnerError(domain, _, _), - let .errorWithInnerError(domain, _): - return domain - } - } - - private func innerError() -> Swift.Error? { - switch self { - case let .errorWithDescriptionAndInnerError(_, _, error), - let .errorWithInnerError(_, error): - return error - default: return nil - } - } - - func asNSError() -> NSError { - var info: [String: Any] = ["Description": String(describing: self)] - - if let error = innerError() { - info["Error"] = String(describing: error) - } - - return NSError(domain: domain(), code: -1, userInfo: info) - } - } - - private let category: Category - private let reporter: IssueReporter - let log: OSLog - - private init(category: Category, reporter: IssueReporter) { - self.category = category - self.reporter = reporter - log = category.log - } - - static func setup() { - loggerLock.perform { - baseReporter.setup() - } - } - - func debug( - _ message: @autoclosure () -> String, - printToConsole: Bool = true, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let message = "DEV: \(message())" - if printToConsole { - os_log("%@ - %@ - %d %{public}@", log: log, type: .debug, file.file, function, line, message) - } - reporter.log(category.name, message, file: file, function: function, line: line) - } - - func info( - _ message: String, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let printedMessage = "INFO: \(message)" - os_log("%@ - %@ - %d %{public}@", log: log, type: .info, file.file, function, line, printedMessage) - reporter.log(category.name, printedMessage, file: file, function: function, line: line) - } - - func warning( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "WARN: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .default, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - - } - - func error( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) -> Never { - errorWithoutFatalError(message, description: description, error: maybeError, file: file, function: function, line: line) - - fatalError( - "\(message) @ \(String(describing: description)) @ \(String(describing: maybeError)) @ \(file) @ \(function) @ \(line)" - ) - } - - - fileprivate func errorWithoutFatalError( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "ERR: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .error, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - } -} - -private extension Optional where Wrapped == Swift.Error { - func loggerError(message: String, withDescription description: String?) -> Logger.Error { - switch (description, self) { - case (nil, nil): - return .error(message) - case let (descr?, nil): - return .errorWithDescription(message, descr) - case let (nil, error?): - return .errorWithInnerError(message, error) - case let (descr?, error?): - return .errorWithDescriptionAndInnerError(message, descr, error) - } - } -} - - -final class SimpleLogReporter: IssueReporter { - private let fileManager = FileManager.default - - private var dateFormatter: DateFormatter { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - return dateFormatter - } - - func setup() {} - - func setUserIdentifier(_: String?) {} - - func reportNonFatalIssue(withName _: String, attributes _: [String: String]) {} - - func reportNonFatalIssue(withError _: NSError) {} - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) { - let now = Date() - let startOfDay = Calendar.current.startOfDay(for: now) - - if !fileManager.fileExists(atPath: SimpleLogReporter.logDir) { - try? fileManager.createDirectory( - atPath: SimpleLogReporter.logDir, - withIntermediateDirectories: false, - attributes: nil - ) - } - - if !fileManager.fileExists(atPath: SimpleLogReporter.logFile) { - createFile(at: startOfDay) - } else { - if let attributes = try? fileManager.attributesOfItem(atPath: SimpleLogReporter.logFile), - let creationDate = attributes[.creationDate] as? Date, creationDate < startOfDay - { - try? fileManager.removeItem(atPath: SimpleLogReporter.logFilePrev) - try? fileManager.moveItem(atPath: SimpleLogReporter.logFile, toPath: SimpleLogReporter.logFilePrev) - createFile(at: startOfDay) - } - } - - let logEntry = "\(dateFormatter.string(from: now)) [\(category)] \(file.file) - \(function) - \(line) - \(message)\n" - let data = logEntry.data(using: .utf8)! - try? data.append(fileURL: URL(fileURLWithPath: SimpleLogReporter.logFile)) - } - - private func createFile(at date: Date) { - fileManager.createFile(atPath: SimpleLogReporter.logFile, contents: nil, attributes: [.creationDate: date]) - } - - static var logFile: String { - getDocumentsDirectory().appendingPathComponent("logs/log.txt").path - } - - static var logDir: String { - getDocumentsDirectory().appendingPathComponent("logs").path - } - - static var logFilePrev: String { - getDocumentsDirectory().appendingPathComponent("logs/log_prev.txt").path - } - - static func getDocumentsDirectory() -> URL { - let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) - let documentsDirectory = paths[0] - return documentsDirectory - } -} - -private extension Data { - func append(fileURL: URL) throws { - if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) { - defer { - fileHandle.closeFile() - } - fileHandle.seekToEndOfFile() - fileHandle.write(self) - } else { - try write(to: fileURL, options: .atomic) - } - } -} - -private extension String { - var file: String { components(separatedBy: "/").last ?? "" } -} diff --git a/Dependencies/G7SensorKit/G7SensorKit/cs.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..2545fb307d --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/cs.lproj/Localizable.strings @@ -0,0 +1,21 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Údaje o glukóze nejsou k dispozici"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Platnost senzoru vypršela"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Senzor selhal"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Senzor je v pořádku"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Senzor je zastaven"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Senzor se zahřívá"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/da.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/da.lproj/Localizable.strings new file mode 100644 index 0000000000..7e7f792040 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/da.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Glukosedata ikke tilgængeligt"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor udløbet"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensorfejl"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensor i ukendt tilstand %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensor er OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensor er stoppet"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensor varmer op"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/de.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/de.lproj/Localizable.strings new file mode 100644 index 0000000000..ec8749479a --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/de.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Blutzuckerdaten sind nicht verfügbar"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor abgelaufen"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensorfehler"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensor befindet sich in unbekanntem Zustand %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensor ist OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensor ist gestoppt"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensor befindet sich in der Aufwärmphase"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/en.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/en.lproj/Localizable.strings new file mode 100644 index 0000000000..233b32c18b --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/en.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* + Localizable.strings + G7SensorKit + + Created by Pete Schwamb on 3/20/23. + +*/ diff --git a/Dependencies/G7SensorKit/G7SensorKit/es.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/es.lproj/Localizable.strings new file mode 100644 index 0000000000..b52e36f893 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/es.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Los datos de glucosa no están disponibles"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor caducado"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Fallo del sensor"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "El sensor está en estado desconocido %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "El sensor está bien"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "El sensor está en pausa"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "El sensor se está calentando"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/fi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..d3d114f90c --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/fi.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Glukoositietoja ei ole saatavilla"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Anturi on tuntemattomassa tilassa %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Anturi on pysäytetty"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Anturi lämpenee"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/fr.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..7b655b0e04 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/fr.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Les données de glycémie ne sont pas disponibles"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Capteur expiré"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Erreur de capteur"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Le capteur est dans un état inconnu %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Le capteur est OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Le capteur est arrêté"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Le capteur est en préchauffage"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/he.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/he.lproj/Localizable.strings new file mode 100644 index 0000000000..6232d3755d --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/he.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Glucose data is unavailable"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensor is in unknown state %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "חיישן נעצר"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "חיישן מתחמם"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/hi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..966b632aa3 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/hi.lproj/Localizable.strings @@ -0,0 +1,21 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "ग्लूकोस डेटा उपलब्ध नहीं है"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "सेन्सर समाप्त हो गया"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "सेन्सर ख़राब हो गया है"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "सेन्सर सही है"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "सेन्सर समाप्त हो गया"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "सेन्सर अपने शुरुआती समय में है"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/it.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/it.lproj/Localizable.strings new file mode 100644 index 0000000000..d24f3b1fae --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/it.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "I dati della glicemia non sono disponibili"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensore scaduto"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensore Fallito"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Il Sensore e' in un stato%1$d sconosciuto"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensore è OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Il Sensore e' fermato"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Il Sensore si sta riscaldando"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/ja.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..5e068ee722 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/ja.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "グルコースデータがありません"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "センサーの状態が不明です %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "センサーが停止しています"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "センサーが準備中です"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/nb.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..a09c406024 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/nb.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Blodsukker er utilgjengelig"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor utløpt"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensor feilet"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensor er i ukjent tilstand %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensor er OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensor er stoppet"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensor varmer opp"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/nl.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..c04a5ea12b --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/nl.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Glucosegegevens zijn niet beschikbaar"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor verlopen"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensor mislukt"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Onbekende sensorstatus %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensor is OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensor gestopt"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensor aan het opwarmen"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/pl.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..ee07e274c9 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/pl.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Dane o poziomie glukozy są niedostępne"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensor stracił ważność"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Błąd sensora"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensor jest w nieznanym stanie %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensor jest OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensor został zatrzymany"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensor jest w fazie rozruchu"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/pt-BR.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..cb62229317 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/pt-BR.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Os dados de glicose não estão disponíveis"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "O sensor está em um estado desconhecido %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "O sensor está parado"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "O sensor está aquecendo"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/ro.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..47fdefeef9 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/ro.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Datele despre glucoză nu sunt disponibile"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Senzorul a expirat"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Senzorul a eșuat"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Starea senzorului este necunoscută"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Senzorul este OK"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Senzorul e oprit"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Senzorul se pregătește"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/ru.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..e19db179b9 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/ru.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Данные глюкозы недоступны"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Сенсор истек"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Ошибка сенсора"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Неизвестное состояние сенсора%1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Сенсор ОК"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Сенсор остановлен"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Сенсор прогревается"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/sk.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..4972ecebeb --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/sk.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Údaje o glykémii nie sú k dispozícii"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Platnosť senzora vypršala"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Senzor zlyhal"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Senzor je v neznámom stave %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Senzor je v poriadku"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Senzor je zastavený"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Senzor sa zahrieva"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/sv.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..7eb4c335f3 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/sv.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Glukosvärden är inte tillgängliga"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensorns status är okänd %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensorn har stoppats"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensorn värmer upp"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/tr.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..f7f296ac7c --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/tr.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* CGM display title */ +"Dexcom G7" = "Dexcom G7"; + +/* Error description for unreliable state */ +"Glucose data is unavailable" = "KŞ verileri mevcut değil"; + +/* The description of sensor algorithm state when sensor is expired. */ +"Sensor expired" = "Sensörün süresi doldu"; + +/* The description of sensor algorithm state when sensor failed. */ +"Sensor failed" = "Sensör hatası"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Sensör bilinmeyen durumda %1$d"; + +/* The description of sensor algorithm state when sensor is ok. */ +"Sensor is OK" = "Sensör iyi durumda"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Sensör durdu"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Sensör ısınıyor"; + diff --git a/Dependencies/G7SensorKit/G7SensorKit/vi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKit/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..71e436ce2a --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKit/vi.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Error description for unreliable state */ +"Glucose data is unavailable" = "Dữ liệu glucose không có sẵn"; + +/* The description of sensor algorithm state when raw value is unknown. (1: missing data details) */ +"Sensor is in unknown state %1$d" = "Cảm biến ở trạng thái không xác định %1$d"; + +/* The description of sensor algorithm state when sensor is stopped. */ +"Sensor is stopped" = "Cảm biến bị dừng"; + +/* The description of sensor algorithm state when sensor is warming up. */ +"Sensor is warming up" = "Cảm biến đang nóng lên"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/LocalizedString.swift b/Dependencies/G7SensorKit/G7SensorKitUI/LocalizedString.swift new file mode 100644 index 0000000000..68b75aa5a4 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/LocalizedString.swift @@ -0,0 +1,20 @@ +// +// LocalizedString.swift +// G7SensorKitUI +// +// Created by Pete Schwamb on 3/20/23. +// + +import Foundation + +internal class FrameworkBundle { + static let main = Bundle(for: FrameworkBundle.self) +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: FrameworkBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: FrameworkBundle.main, comment: comment) + } +} diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7SettingsView.swift b/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7SettingsView.swift index c88c84ae88..9add43d559 100644 --- a/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7SettingsView.swift +++ b/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7SettingsView.swift @@ -72,7 +72,7 @@ struct G7SettingsView: View { } } - Section(LocalizedString("Last Reading", comment: "Title")) { + Section("Last Reading") { LabeledValueView(label: LocalizedString("Glucose", comment: "Field label"), value: viewModel.lastGlucoseString) LabeledDateView(label: LocalizedString("Time", comment: "Field label"), @@ -82,7 +82,7 @@ struct G7SettingsView: View { value: viewModel.lastGlucoseTrendString) } - Section(LocalizedString("Bluetooth", comment: "Title")) { + Section("Bluetooth") { if let name = viewModel.sensorName { HStack { Text(LocalizedString("Name", comment: "title for g7 settings row showing BLE Name")) @@ -114,7 +114,7 @@ struct G7SettingsView: View { } } - Section(LocalizedString("Configuration", comment: "Title")) { + Section("Configuration") { HStack { Toggle(LocalizedString("Upload Readings", comment: "title for g7 config settings to upload readings"), isOn: $viewModel.uploadReadings) } @@ -122,7 +122,7 @@ struct G7SettingsView: View { Section () { if !self.viewModel.scanning { - Button(LocalizedString("Scan for new sensor", comment: "Button text"), action: { + Button("Scan for new sensor", action: { self.viewModel.scanForNewSensor() }) } diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7StartupView.swift b/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7StartupView.swift index af76fb0da2..edc999c4cb 100644 --- a/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7StartupView.swift +++ b/Dependencies/G7SensorKit/G7SensorKitUI/Views/G7StartupView.swift @@ -26,7 +26,7 @@ struct G7StartupView: View { .frame(height: 120) .padding(.horizontal) }.frame(maxWidth: .infinity) - Text(LocalizedString("iAPS can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management.", comment: "Descriptive text on G7StartupView")) + Text(LocalizedString("Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management.", comment: "Descriptive text on G7StartupView")) .fixedSize(horizontal: false, vertical: true) .foregroundColor(.secondary) Spacer() diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/ar.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..25133b1904 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/ar.lproj/Localizable.strings @@ -0,0 +1,18 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "هل أنت متأكد أنك تريد حذف هذا CGM؟"; + +/* Button text to cancel G7 setup */ +"Cancel" = "إلغاء"; + +/* No comment provided by engineer. */ +"Configuration" = "المعطيات"; + +/* Button label for removing CGM */ +"Delete CGM" = "حذف CGM"; + +/* Field label */ +"Glucose" = "قراءات السكر"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/cs.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..087836a06b --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/cs.lproj/Localizable.strings @@ -0,0 +1,46 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Zrušit"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfigurace"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Připojeno"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Připojuji"; + +/* Button title for starting setup */ +"Continue" = "Pokračovat"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Field label */ +"Glucose" = "Glukóza"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Konec dodatečné lhůty"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Zbývající dodatečná lhůta"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Název"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Platnost senzoru vypršela"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Senzor selhal"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/da.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/da.lproj/Localizable.strings new file mode 100644 index 0000000000..6640a318a5 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/da.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Er du sikker på, at du vil slette denne CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Annuller"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfiguration"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Tilsluttet"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Tilslutter"; + +/* Button title for starting setup */ +"Continue" = "Fortsæt"; + +/* Button label for removing CGM */ +"Delete CGM" = "Slet CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Udført"; + +/* Field label */ +"Glucose" = "Glukose"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Grace period slut"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Grace period tilbage"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HØJ"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Sidst tilsluttet"; + +/* No comment provided by engineer. */ +"Last Reading" = "Seneste aflæsning"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop kan aflæse data fra en G7 sensor, men du skal stadig benytte Dexcoms egen G7 App til at parre, kalibrere og administrere G7-sensoren."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "LAV"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Navn"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Scan efter ny sensor"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Skanner"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Søger efter sensor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Søger efter sensor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor udløbet"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Sensorfejl"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Sensorproblem"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Sensor opvarmning"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensor udløb"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor udløbet"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensor udløber"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensorfejl"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Start sensor"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Signaltab"; + +/* Field label */ +"Time" = "Tid"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Upload aflæsninger"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Opvarmning afsluttes"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/de.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/de.lproj/Localizable.strings new file mode 100644 index 0000000000..6b569427f9 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/de.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Sind Sie sicher, dass Sie dieses CGM löschen wollen?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Abbrechen"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfiguration"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Verbunden"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Verbinden"; + +/* Button title for starting setup */ +"Continue" = "Weiter"; + +/* Button label for removing CGM */ +"Delete CGM" = "CGM löschen"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Fertig"; + +/* Field label */ +"Glucose" = "Blutzucker"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Ende der Toleranzzeit"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Verbleibende Toleranzzeit"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HOCH"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Letzte Verbindung"; + +/* No comment provided by engineer. */ +"Last Reading" = "Letzter Wert"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop kann Dexcom G7 CGM-Daten lesen, aber Du musst trotzdem die Dexcom G7 App für die Kopplung, Kalibrierung und andere Sensorverwaltung verwenden."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "NIEDRIG"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Name"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Nach neuem Sensor suchen"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Scannen"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Suche nach\nSensor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Suche nach Sensor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor\nabgelaufen"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Sensorfehler"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Sensor\nProblem"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Sensor\nAufwärmphase"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensor-Ablaufzeitpunkt"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor abgelaufen"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensor-Ablaufzeitpunkt"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensorfehler"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensor gestartet"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Signalverlust"; + +/* Field label */ +"Time" = "Zeit"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Werte hochladen"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Aufwärmen abgeschlossen"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/en.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/en.lproj/Localizable.strings new file mode 100644 index 0000000000..40a8c178f1 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/en.lproj/Localizable.strings @@ -0,0 +1 @@ +/* empty */ diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/es.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/es.lproj/Localizable.strings new file mode 100644 index 0000000000..904eb6d0e1 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/es.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "¿Está seguro de que quiere eliminar este MCG?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Cancelar"; + +/* No comment provided by engineer. */ +"Configuration" = "Configuración"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Conectado"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Conectando"; + +/* Button title for starting setup */ +"Continue" = "Continuar"; + +/* Button label for removing CGM */ +"Delete CGM" = "Eliminar MCG"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Completado"; + +/* Field label */ +"Glucose" = "Glucosa"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Fin del período de gracia"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Período de gracia restante"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "ALTO"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Última conexión"; + +/* No comment provided by engineer. */ +"Last Reading" = "Último dato"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop puede leer los datos de monitor continuo de glucosa Dexcom G7, pero Usted debe seguir usando la aplicación de Dexcom G7 para emparejar, calibrar y administrar otros comandos del sensor."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "BAJO"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nombre"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Escanear nuevo sensor"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Escaneando"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Buscando sensor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Buscando sensor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor caducado"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Fallo del sensor"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Error de sensor"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Preparación del sensor"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Caducación de sensor"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor caducado"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensor caduca"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Fallo del sensor"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensor comienza"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Pérdida de señal"; + +/* Field label */ +"Time" = "Hora"; + +/* Field label */ +"Trend" = "Tendencia"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Subir Datos"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Tiempo de calentamiento completado"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/fi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..2179d8b684 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/fi.lproj/Localizable.strings @@ -0,0 +1,51 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Haluatko varmasti poistaa CGM:n?"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Kumoa"; + +/* No comment provided by engineer. */ +"Configuration" = "Määritykset"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Yhdistetty"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Yhdistetään"; + +/* Button title for starting setup */ +"Continue" = "Jatka"; + +/* Button label for removing CGM */ +"Delete CGM" = "Poista CGM"; + +/* No comment provided by engineer. */ +"Done" = "Valmis"; + +/* Field label */ +"Glucose" = "Glukoosi"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "KORKEA"; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "MATALA"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nimi"; + +/* Field label */ +"Time" = "Aika"; + +/* Field label */ +"Trend" = "Suunta"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Lataa lukemat"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/fr.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..81523539e8 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/fr.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Voulez-vous vraiment supprimer ce CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Annuler"; + +/* No comment provided by engineer. */ +"Configuration" = "Configuration"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Connecté"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Connexion en cours"; + +/* Button title for starting setup */ +"Continue" = "Continuer"; + +/* Button label for removing CGM */ +"Delete CGM" = "Effacer le CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Terminé"; + +/* Field label */ +"Glucose" = "Glycémie"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Fin du délai de grâce"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Délai de grâce restant"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HAUT"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Dernière connexion"; + +/* No comment provided by engineer. */ +"Last Reading" = "Dernière lecture"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop peut lire les données du CGM G7, mais vous devrez continuer à utiliser l'application Dexcom G7 pour l'appairage, l'étalonnage et d'autres opérations de gestion du capteur."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "BAS"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nom"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Recherche du nouveau capteur"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Recherche..."; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Recherche de capteur"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Recherche de capteur"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Capteur expiré"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Capteur\nDéfaillant"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Problème de capteur"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Préchauffage du capteur"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Expiration du capteur"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Capteur expiré"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Capteur expire"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Erreur de capteur"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Démarrage du capteur"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Perte de signal"; + +/* Field label */ +"Time" = "Heure"; + +/* Field label */ +"Trend" = "Tendance"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Envoyer les données"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Préchauffage terminé"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/he.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/he.lproj/Localizable.strings new file mode 100644 index 0000000000..b85a290a54 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/he.lproj/Localizable.strings @@ -0,0 +1,75 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "האם למחוק את מד הסוכר הרציף?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Cancel"; + +/* No comment provided by engineer. */ +"Configuration" = "הגדרות"; + +/* title for g7 settings connection status when connected */ +"Connected" = "מחובר"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "מתחבר"; + +/* Button title for starting setup */ +"Continue" = "Continue"; + +/* Button label for removing CGM */ +"Delete CGM" = "מחק מד סוכר רציף"; + +/* No comment provided by engineer. */ +"Done" = "בוצע"; + +/* Field label */ +"Glucose" = "Glucose"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "גבוה"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "חיבור אחרון"; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "נמוך"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Name"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "מחפש חיישן"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "מחפש חיישן"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "חיישן פג"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "כשל בחיישן"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "בעיה בחיישן"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "חיישן מתחמם"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "תוקף חיישן"; + +/* Field label */ +"Time" = "שעה"; + +/* Field label */ +"Trend" = "מגמה"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/hi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..01933538ae --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/hi.lproj/Localizable.strings @@ -0,0 +1,97 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/मिनट"; + +/* Button text to cancel G7 setup */ +"Cancel" = "निरस्त"; + +/* title for g7 settings connection status when connected */ +"Connected" = "कनेक्ट हो गया"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "कनेक्ट हो रहा है"; + +/* Button title for starting setup */ +"Continue" = "जारी"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* Field label */ +"Glucose" = "शुगर"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "ग्रेस समय समाप्त"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "बचा हुआ ग्रेस समय"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HIGH"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "लास्ट कनेक्ट"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "लूप G7 सीजीएम की रीडिंग्स पढ़ सकता है लेकिन सीजीएम सेन्सर के मैनज्मेंट, सेन्सर पैरिंग और कैलिब्रेशन की लिए dexcom का G7 ऐप ही इस्तेमाल करना चाहिए।"; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "LOW"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "नाम"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "स्कैनिंग"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "सेन्सर ढूँड रहा है"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "सेन्सर ढूँड रहा है"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "सेन्सर समाप्त"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "सेन्सर ख़राब"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "सेन्सर ख़राबी"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "सेन्सर का शुरुआती समय"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "सेन्सर समाप्ति"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "सेन्सर समाप्त हो गया"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "सेन्सर समाप्त"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "सेन्सर ख़राब हो गया है"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "सेन्सर शुरू"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "सिग्नल लॉस"; + +/* Field label */ +"Time" = "समय"; + +/* Field label */ +"Trend" = "ट्रेंड"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "अपलोड रीडिंग्स"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "शुरुआती वॉर्म अप पूर्ण"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/it.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/it.lproj/Localizable.strings new file mode 100644 index 0000000000..5768c74d4a --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/it.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Sei sicuro di voler eliminare questo CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Annulla"; + +/* No comment provided by engineer. */ +"Configuration" = "Configurazione"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Connesso"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "In fase di Connessione"; + +/* Button title for starting setup */ +"Continue" = "Continua"; + +/* Button label for removing CGM */ +"Delete CGM" = "Elimina CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Fine"; + +/* Field label */ +"Glucose" = "Glicemia"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Fine Periodo supplementare"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Residuo Periodo supplementare"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "ALTO"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Ultima Connessione"; + +/* No comment provided by engineer. */ +"Last Reading" = "Ultima Lettura"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop può leggere i dati del G7, ma è comunque sempre necessario usare la App Dexcom G7 per fare l'abbinamento, la calibrazione e le altre operazioni di gestione del sensore."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "BASSO"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nome"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Scansiona un nuovo sensore"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Scansione in corso"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Scansione del Sensore"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Scansione del Sensore"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensore Scaduto"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Il Sensore ha Fallito"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Problema del Sensore"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Riscaldamento Sensore"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Scadenza Sensore"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensore scaduto"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Il Sensore Scade"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensore Fallito"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Inizializzazione Sensore"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Perdita del Segnale"; + +/* Field label */ +"Time" = "Tempo"; + +/* Field label */ +"Trend" = "Tendenza"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Carica Letture"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Riscaldamento completato"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/ja.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..d3dba4faab --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/ja.lproj/Localizable.strings @@ -0,0 +1,36 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/分"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "このCGMを削除しますか?"; + +/* Button text to cancel G7 setup */ +"Cancel" = "キャンセル"; + +/* No comment provided by engineer. */ +"Configuration" = "コンフィグレーション"; + +/* title for g7 settings connection status when connected */ +"Connected" = "接続済み"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "接続しています"; + +/* Button title for starting setup */ +"Continue" = "次へ"; + +/* Button label for removing CGM */ +"Delete CGM" = "CGMを削除"; + +/* Field label */ +"Glucose" = "血糖値"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "プリセット名"; + +/* Field label */ +"Trend" = "トレンド"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/nb.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..1a923bc2b8 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/nb.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Er du sikker på at du vil slette CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "blåtann"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Avbryt"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfigurasjon"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Tilkoblet"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Kobler til"; + +/* Button title for starting setup */ +"Continue" = "Fortsett"; + +/* Button label for removing CGM */ +"Delete CGM" = "Slett CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Ferdig"; + +/* Field label */ +"Glucose" = "Blodsukker"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Oppvarming ferdig"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Gjenstående oppvarmingsperiode"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HØY"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Siste tilkobling"; + +/* No comment provided by engineer. */ +"Last Reading" = "Forrige avlesning"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop kan lese G7 CGM data, men du må fortsatt bruke Dexcom G7-appen for sammenkobling, kalibrering, og annen sensoradministrasjon."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "LAV"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Navn"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Skann etter ny sensor"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Søker"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Søker etter\nSensor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Søker etter sensor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor\nUtløpt"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Sensor\nFeilet"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Sensor\nProblem"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Sensor\nOppvarming"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensor utløpsdato"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor utløpt"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensor utløper"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensor feilet"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensorstart"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Signal\nTap"; + +/* Field label */ +"Time" = "Tid"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Last opp avlesninger"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Fullfører oppvarming"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/nl.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..1094e17502 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/nl.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Weet je zeker dat je deze CGM wilt verwijderen"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Annuleer"; + +/* No comment provided by engineer. */ +"Configuration" = "Configuratie"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Verbonden"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Bezig met verbinden"; + +/* Button title for starting setup */ +"Continue" = "Ga Verder"; + +/* Button label for removing CGM */ +"Delete CGM" = "Verwijder CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Gereed"; + +/* Field label */ +"Glucose" = "Glucose"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Einde Verlenging"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Verlenging resterend"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HOOG"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Laatste Verbinding"; + +/* No comment provided by engineer. */ +"Last Reading" = "Laatste Meting"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop kan G7 CGM waarden lezen, maar je moet nog steeds de Dexcom G7 App gebruiken om te koppelen, te kalibreren en voor andere sensorinstellingen."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "LAAG"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Naam"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Zoeken naar nieuwe sensor"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Scannen"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Zoekt naar\nSensor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Zoekt naar sensor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor\nVerlopen"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Sensor\nMislukt"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Sensorprobleem"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Sensoropwarming"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensor Vervaldatum "; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor verlopen"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensor verloopt"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensor mislukt"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensorstart"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Signaalverlies"; + +/* Field label */ +"Time" = "Tijd"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Upload Metingen"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Opwarmen voltooien"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/pl.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..369cfc930d --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/pl.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Czy na pewno chcesz usunąć ten CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Anuluj"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfiguracja"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Połączono"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Łączenie"; + +/* Button title for starting setup */ +"Continue" = "Kontynuuj"; + +/* Button label for removing CGM */ +"Delete CGM" = "Usuń CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Gotowe"; + +/* Field label */ +"Glucose" = "Glukoza"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Sensor zakończy działanie"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Wiek sensora"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "WYSOKI"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Ostatnie połączenie"; + +/* No comment provided by engineer. */ +"Last Reading" = "Ostatnie czytanie"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Pętla może odczytywać dane G7 CGM, ale nadal musisz używać aplikacji Dexcom G7 do parowania, kalibracji i zarządzania innymi czujnikami."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "NISKI"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nazwa"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Wyszukaj nowy sensor"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Skanowanie"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Wyszukiwanie sensora"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Wyszukiwanie sensora"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensor stracił ważność"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Błąd sensora"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Błąd Sensora"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Rozgrzewanie sensora"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensor ważny do"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensor stracił ważność"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Ważność sensora"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Błąd sensora"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensor uruchomiony"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Utracono sygnał"; + +/* Field label */ +"Time" = "Czas"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Wysyłaj odczyty"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Rozgrzewanie G7 zakończone"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/pt-BR.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..2cb92b0860 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/pt-BR.lproj/Localizable.strings @@ -0,0 +1,36 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Você está certo que quer remover este CGM?"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Cancelar"; + +/* No comment provided by engineer. */ +"Configuration" = "Configuração"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Conectado"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Conectando"; + +/* Button title for starting setup */ +"Continue" = "Continuar"; + +/* Button label for removing CGM */ +"Delete CGM" = "Remover CGM"; + +/* Field label */ +"Glucose" = "Glicose"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nome"; + +/* Field label */ +"Trend" = "Tendência"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/ro.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..68ebde457a --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/ro.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Sunteți sigur că doriți să ștergeți acest CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Renunță"; + +/* No comment provided by engineer. */ +"Configuration" = "Configurare"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Conectat"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Conectare"; + +/* Button title for starting setup */ +"Continue" = "Continuă"; + +/* Button label for removing CGM */ +"Delete CGM" = "Ștergeți CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Realizat"; + +/* Field label */ +"Glucose" = "Glucoza"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Sfârșitul perioadei de grație"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Perioada de grație rămasă"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HIPER"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Ultima conectare"; + +/* No comment provided by engineer. */ +"Last Reading" = "Ultima citire"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop poate citi datele G7 CGM, dar pentru cuplare, calibrare și alte activități de gestionare a senzorului, va trebui să folosiți aplicația Dexcom G7."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "HIPO"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Nume"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Scanați pentru un senzor nou"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Scanare"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Detectarea senzorului"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Detectarea senzorului"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Senzorul a expirat"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Senzorul a eșuat"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Problemă cu senzorul"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Senzorul se încălzește"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Expirarea senzorului"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Senzorul a expirat"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Senzorul expiră"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Senzorul a eșuat"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Pornirea senzorului"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Pierdere de semnal"; + +/* Field label */ +"Time" = "Timp"; + +/* Field label */ +"Trend" = "Tendinţă"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Urcă citirile de glicemie"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Încălzirea s-a încheiat"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/ru.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..ec89117fc4 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/ru.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/мин"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Вы уверены, что хотите удалить этот CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Отмена"; + +/* No comment provided by engineer. */ +"Configuration" = "Конфигурация"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Подключено"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Подключение"; + +/* Button title for starting setup */ +"Continue" = "Продолжить"; + +/* Button label for removing CGM */ +"Delete CGM" = "Удалить CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Готово"; + +/* Field label */ +"Glucose" = "Глюкоза"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Конец срока"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Оставшийся срок"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "ВЫСОКИЙ"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Последнее соединение"; + +/* No comment provided by engineer. */ +"Last Reading" = "Последние данные"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop может считывать данные G7, но Вы должны использовать приложение Dexcom G7 для сопряжения, калибровки и других действий с сенсором."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "НИЗКИЙ"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Имя"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Сканировать новый сенсор"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Сканирование"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Поиск сенсора"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Поиск сенсора"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Сенсор истек"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Ошибка сенсора"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Проблема с сенсором"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Сенсор прогревается"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Сенсор истекает"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Сенсор истек"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Сенсор заканчивается"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Ошибка сенсора"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Сенсор запущен"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Сигнал потерян"; + +/* Field label */ +"Time" = "Время"; + +/* Field label */ +"Trend" = "Тенденция"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Загрузить показания"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Прогрев окончен"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/sk.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..24137a92ac --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/sk.lproj/Localizable.strings @@ -0,0 +1,115 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@ /min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Naozaj chcete odstrániť toto CGM?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Zrušiť"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfigurácia"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Pripojené"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Pripája sa"; + +/* Button title for starting setup */ +"Continue" = "Pokračovať"; + +/* Button label for removing CGM */ +"Delete CGM" = "Odstrániť CGM"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Field label */ +"Glucose" = "Glykémia"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Koniec ochrannej lehoty"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Zostávajúca ochranná lehota"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "VYSOKÁ"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Posledné spojenie"; + +/* No comment provided by engineer. */ +"Last Reading" = "Posledné čítanie"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop dokáže čítať údaje G7 CGM, ale na párovanie, kalibráciu a ďalšiu správu senzora musíte stále používať aplikáciu Dexcom G7."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "NÍZKA"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Názov"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Skenovanie"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Hľadá sa senzor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Hľadá sa senzor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Platnosť senzora vypršala"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Senzor zlyhal"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Chyba senzora"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Zahrievanie senzora"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Vypršanie platnosti senzora"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Platnosť senzora vypršala"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Platnosť senzora vyprší"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Senzor zlyhal"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Spustenie senzora"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Strata signálu"; + +/* Field label */ +"Time" = "Čas"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Načítať údaje"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Zahrieva sa"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/sv.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..f759fc92cc --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/sv.lproj/Localizable.strings @@ -0,0 +1,51 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/min"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Är du säker på att du vill radera denna CGM?"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Avbryt"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfiguration"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Ansluten"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Ansluter"; + +/* Button title for starting setup */ +"Continue" = "Fortsätt"; + +/* Button label for removing CGM */ +"Delete CGM" = "Radera CGM"; + +/* No comment provided by engineer. */ +"Done" = "Färdig"; + +/* Field label */ +"Glucose" = "Glukos"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "HÖGT"; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "LÅGT"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Namn"; + +/* Field label */ +"Time" = "Tid"; + +/* Field label */ +"Trend" = "Trend"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Ladda upp avläsningar"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/tr.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..4f5f83a8c9 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/tr.lproj/Localizable.strings @@ -0,0 +1,118 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "– – –"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/dk"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Bu CGM'i silmek istediğinizden emin misiniz?"; + +/* No comment provided by engineer. */ +"Bluetooth" = "Bluetooth"; + +/* Button text to cancel G7 setup */ +"Cancel" = "İptal"; + +/* No comment provided by engineer. */ +"Configuration" = "Konfigürasyon"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Bağlandı"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Bağlanıyor"; + +/* Button title for starting setup */ +"Continue" = "Devam et"; + +/* Button label for removing CGM */ +"Delete CGM" = "CGM Sil"; + +/* Navigation bar title for G7SettingsView + Title on WelcomeView */ +"Dexcom G7" = "Dexcom G7"; + +/* No comment provided by engineer. */ +"Done" = "Tamamlandı"; + +/* Field label */ +"Glucose" = "Kan şekeri"; + +/* title for g7 settings row showing sensor grace period end time */ +"Grace Period End" = "Ek süre sonu"; + +/* G7 Progress bar label when sensor grace period progress showing */ +"Grace period remaining" = "Kalan ek süre"; + +/* String displayed instead of a glucose value above the CGM range */ +"HIGH" = "YÜKSEK"; + +/* title for g7 settings row showing sensor last connect time */ +"Last Connect" = "Son bağlantı"; + +/* No comment provided by engineer. */ +"Last Reading" = "Son Okuma"; + +/* Descriptive text on G7StartupView */ +"Loop can read G7 CGM data, but you must still use the Dexcom G7 App for pairing, calibration, and other sensor management." = "Loop, G7 CGM verilerini okuyabilir, ancak eşleştirme, kalibrasyon ve diğer sensör yönetimi için yine de Dexcom G7 Uygulamasını kullanmanız gerekir."; + +/* String displayed instead of a glucose value below the CGM range */ +"LOW" = "DÜŞÜK"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "İsim"; + +/* No comment provided by engineer. */ +"Scan for new sensor" = "Yeni sensör için tarama"; + +/* title for g7 settings connection status when scanning */ +"Scanning" = "Aranıyor"; + +/* G7 Status highlight text for searching for sensor */ +"Searching for\nSensor" = "Sensör aranıyor"; + +/* G7 Progress bar label when searching for sensor */ +"Searching for sensor" = "Sensör aranıyor"; + +/* G7 Status highlight text for sensor expired */ +"Sensor\nExpired" = "Sensörün süresi doldu"; + +/* G7 Status highlight text for sensor failed */ +"Sensor\nFailed" = "Sensör Hatası"; + +/* G7 Status highlight text for sensor error */ +"Sensor\nIssue" = "Sensör problemi"; + +/* G7 Status highlight text for sensor warmup */ +"Sensor\nWarmup" = "Sensör ısınma"; + +/* title for g7 settings row showing sensor expiration time */ +"Sensor Expiration" = "Sensör ömrü"; + +/* G7 Progress bar label when sensor expired */ +"Sensor expired" = "Sensörün süresi doldu"; + +/* G7 Progress bar label when sensor lifetime progress showing */ +"Sensor expires" = "Sensörün süresi doluyor"; + +/* G7 Progress bar label when sensor failed */ +"Sensor failed" = "Sensör hatası"; + +/* title for g7 settings row showing sensor start time */ +"Sensor Start" = "Sensör başlangıcı"; + +/* G7 Status highlight text for signal loss */ +"Signal\nLoss" = "Sinyal\nKayıp"; + +/* Field label */ +"Time" = "Zaman"; + +/* Field label */ +"Trend" = "Eğilim"; + +/* title for g7 config settings to upload readings */ +"Upload Readings" = "Okumaları Yükle"; + +/* G7 Progress bar label when sensor in warmup */ +"Warmup completes" = "Isınma tamamlandı"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/vi.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..a042412b9f --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/vi.lproj/Localizable.strings @@ -0,0 +1,36 @@ +/* No glucose value representation (3 dashes for mg/dL) */ +"– – –" = "---"; + +/* Format string for glucose trend per minute. (1: glucose value and unit) */ +"%@/min" = "%@/phút"; + +/* No comment provided by engineer. */ +"Are you sure you want to delete this CGM?" = "Bạn có chắc sẽ xóa CGM này?"; + +/* Button text to cancel G7 setup */ +"Cancel" = "Hủy bỏ"; + +/* No comment provided by engineer. */ +"Configuration" = "Cấu hình"; + +/* title for g7 settings connection status when connected */ +"Connected" = "Đã kết nối"; + +/* title for g7 settings connection status when connecting */ +"Connecting" = "Đang kết nối"; + +/* Button title for starting setup */ +"Continue" = "Tiếp tục"; + +/* Button label for removing CGM */ +"Delete CGM" = "Xóa CGM"; + +/* Field label */ +"Glucose" = "Đường huyết"; + +/* title for g7 settings row showing BLE Name */ +"Name" = "Tên"; + +/* Field label */ +"Trend" = "Xu hướng"; + diff --git a/Dependencies/G7SensorKit/G7SensorKitUI/zh-Hans.lproj/Localizable.strings b/Dependencies/G7SensorKit/G7SensorKitUI/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..35e0192b99 --- /dev/null +++ b/Dependencies/G7SensorKit/G7SensorKitUI/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* Button text to cancel G7 setup */ +"Cancel" = "取消"; + +/* No comment provided by engineer. */ +"Configuration" = "配置"; + +/* Button title for starting setup */ +"Continue" = "继续"; + diff --git a/Dependencies/LoopKit/.circleci/config.yml b/Dependencies/LoopKit/.circleci/config.yml index 5bf6d002d8..e8e97343c3 100644 --- a/Dependencies/LoopKit/.circleci/config.yml +++ b/Dependencies/LoopKit/.circleci/config.yml @@ -14,13 +14,17 @@ jobs: test: working_directory: *project_directory macos: - xcode: 13.4.1 + xcode: 14.2.0 steps: - checkout - run: name: Test command: | - set -o pipefail && xcodebuild -project LoopKit.xcodeproj -scheme Shared build -destination 'name=iPhone 8' test | xcpretty + set -o pipefail && xcodebuild -project LoopKit.xcodeproj -scheme Shared build -destination 'name=iPhone 14' test | xcpretty + - run: + name: Build Swift Package + command: | + swift build -v -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios15.0-simulator" | xcpretty - store_test_results: path: test_output # diff --git a/Dependencies/LoopKit/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Dependencies/LoopKit/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/Dependencies/LoopKit/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Dependencies/LoopKit/Common/LocalizedString.swift b/Dependencies/LoopKit/Common/LocalizedString.swift deleted file mode 100644 index c35da4ebb4..0000000000 --- a/Dependencies/LoopKit/Common/LocalizedString.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// LocalizedString.swift -// LoopKit -// -// Created by Retina15 on 8/6/18. -// Copyright © 2018 LoopKit Authors. All rights reserved. -// - -import Foundation - -private class FrameworkBundle { - static let main = Bundle(for: FrameworkBundle.self) -} - -func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { - if let value = value { - return NSLocalizedString(key, tableName: tableName, bundle: FrameworkBundle.main, value: value, comment: comment) - } else { - return NSLocalizedString(key, tableName: tableName, bundle: FrameworkBundle.main, comment: comment) - } -} diff --git a/Dependencies/LoopKit/Extensions/NumberFormatter.swift b/Dependencies/LoopKit/Extensions/NumberFormatter.swift deleted file mode 100644 index 4749314c63..0000000000 --- a/Dependencies/LoopKit/Extensions/NumberFormatter.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// NSNumberFormatter.swift -// Loop -// -// Created by Nate Racklyeft on 9/5/16. -// Copyright © 2016 Nathan Racklyeft. All rights reserved. -// - -import Foundation -import HealthKit - - -extension NumberFormatter { - func string(from number: Double) -> String? { - return string(from: NSNumber(value: number)) - } - - func string(from number: Double, unit: String, style: Formatter.UnitStyle = .medium, avoidLineBreaking: Bool = true) -> String? { - guard let stringValue = string(from: number) else { - return nil - } - - let separator: String - switch style { - case .long: - separator = " " - case .medium: - separator = avoidLineBreaking ? .nonBreakingSpace : " " - case .short: - fallthrough - @unknown default: - separator = avoidLineBreaking ? .wordJoiner : "" - } - - let unit = avoidLineBreaking ? unit.replacingOccurrences(of: "/", with: "\(String.wordJoiner)/\(String.wordJoiner)") : unit - - return String( - format: NSLocalizedString("%1$@%2$@%3$@", comment: "String format for value with units (1: value, 2: separator, 3: units)"), - stringValue, - separator, - unit - ) - } -} - -public extension String { - static let nonBreakingSpace = "\u{00a0}" - static let wordJoiner = "\u{2060}" -} diff --git a/Dependencies/LoopKit/Extensions/OSLog.swift b/Dependencies/LoopKit/Extensions/OSLog.swift deleted file mode 100644 index 3a03b434e0..0000000000 --- a/Dependencies/LoopKit/Extensions/OSLog.swift +++ /dev/null @@ -1,437 +0,0 @@ -// -// OSLog.swift -// Loop -// -// Copyright © 2017 LoopKit Authors. All rights reserved. -// -// -// OSLog.swift -// OmniBLE -// -// Copyright © 2017 LoopKit Authors. All rights reserved. -// OSLog updated for FreeAPSX logs -// - -import os.log -import Foundation - -let storeLoopLog: Bool = false - - -let loggerLock = NSRecursiveLock() -let baseReporter: IssueReporter = SimpleLogReporter() -let category = Logger.Category.loopKit - -extension NSLocking { - func perform(_ block: () throws -> T) rethrows -> T { - lock() - defer { unlock() } - return try block() - } -} - -extension NSRecursiveLock { - convenience init(label: String) { - self.init() - name = label - } -} - -extension NSLock { - convenience init(label: String) { - self.init() - name = label - } -} - -extension OSLog { - - convenience init(category: String) { - self.init(subsystem: "com.loopkit.LoopKit", category: category) - } - - func debug(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .debug, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - } - - func info(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .info, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.info( - {msg}(), - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - - } - - func `default`(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .default, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - } - - func error(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .error, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - - loggerLock.perform { - category.logger.warning( - {msg}(), - description: {msg}(), - error: nil, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - } - - private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { - switch args.count { - case 0: - os_log(message, log: self, type: type) - case 1: - os_log(message, log: self, type: type, args[0]) - case 2: - os_log(message, log: self, type: type, args[0], args[1]) - case 3: - os_log(message, log: self, type: type, args[0], args[1], args[2]) - case 4: - os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) - case 5: - os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) - default: - os_log(message, log: self, type: type, args) - } - } -} - -protocol IssueReporter: AnyObject { - /// Call this method in `applicationDidFinishLaunching()`. - func setup() - - func setUserIdentifier(_: String?) - - func reportNonFatalIssue(withName: String, attributes: [String: String]) - - func reportNonFatalIssue(withError: NSError) - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) -} - -final class Logger { - static let `default` = Logger(category: .default, reporter: baseReporter) - static let loopKit = Logger(category: .loopKit, reporter: baseReporter) - - enum Category: String { - case `default` - case loopKit - - var name: String { - rawValue - } - - var logger: Logger { - switch self { - case .default: return .default - case .loopKit: return .loopKit - - } - } - - fileprivate var log: OSLog { - let subsystem = Bundle.main.bundleIdentifier! - switch self { - case .default: return OSLog.default - case .loopKit: return OSLog(subsystem: subsystem, category: name) - } - } - } - - fileprivate enum Error: Swift.Error { - case error(String) - case errorWithInnerError(String, Swift.Error) - case errorWithDescription(String, String) - case errorWithDescriptionAndInnerError(String, String, Swift.Error) - - private func domain() -> String { - switch self { - case let .error(domain), - let .errorWithDescription(domain, _), - let .errorWithDescriptionAndInnerError(domain, _, _), - let .errorWithInnerError(domain, _): - return domain - } - } - - private func innerError() -> Swift.Error? { - switch self { - case let .errorWithDescriptionAndInnerError(_, _, error), - let .errorWithInnerError(_, error): - return error - default: return nil - } - } - - func asNSError() -> NSError { - var info: [String: Any] = ["Description": String(describing: self)] - - if let error = innerError() { - info["Error"] = String(describing: error) - } - - return NSError(domain: domain(), code: -1, userInfo: info) - } - } - - private let category: Category - private let reporter: IssueReporter - let log: OSLog - - private init(category: Category, reporter: IssueReporter) { - self.category = category - self.reporter = reporter - log = category.log - } - - static func setup() { - loggerLock.perform { - baseReporter.setup() - } - } - - func debug( - _ message: @autoclosure () -> String, - printToConsole: Bool = true, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let message = "DEV: \(message())" - if printToConsole { - os_log("%@ - %@ - %d %{public}@", log: log, type: .debug, file.file, function, line, message) - } - reporter.log(category.name, message, file: file, function: function, line: line) - } - - func info( - _ message: String, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let printedMessage = "INFO: \(message)" - os_log("%@ - %@ - %d %{public}@", log: log, type: .info, file.file, function, line, printedMessage) - reporter.log(category.name, printedMessage, file: file, function: function, line: line) - } - - func warning( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "WARN: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .default, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - - } - - func error( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) -> Never { - errorWithoutFatalError(message, description: description, error: maybeError, file: file, function: function, line: line) - - fatalError( - "\(message) @ \(String(describing: description)) @ \(String(describing: maybeError)) @ \(file) @ \(function) @ \(line)" - ) - } - - - fileprivate func errorWithoutFatalError( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "ERR: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .error, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - } -} - -private extension Optional where Wrapped == Swift.Error { - func loggerError(message: String, withDescription description: String?) -> Logger.Error { - switch (description, self) { - case (nil, nil): - return .error(message) - case let (descr?, nil): - return .errorWithDescription(message, descr) - case let (nil, error?): - return .errorWithInnerError(message, error) - case let (descr?, error?): - return .errorWithDescriptionAndInnerError(message, descr, error) - } - } -} - - -final class SimpleLogReporter: IssueReporter { - private let fileManager = FileManager.default - - private var dateFormatter: DateFormatter { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - return dateFormatter - } - - func setup() {} - - func setUserIdentifier(_: String?) {} - - func reportNonFatalIssue(withName _: String, attributes _: [String: String]) {} - - func reportNonFatalIssue(withError _: NSError) {} - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) { - let now = Date() - let startOfDay = Calendar.current.startOfDay(for: now) - - if !fileManager.fileExists(atPath: SimpleLogReporter.logDir) { - try? fileManager.createDirectory( - atPath: SimpleLogReporter.logDir, - withIntermediateDirectories: false, - attributes: nil - ) - } - - if !fileManager.fileExists(atPath: SimpleLogReporter.logFile) { - createFile(at: startOfDay) - } else { - if let attributes = try? fileManager.attributesOfItem(atPath: SimpleLogReporter.logFile), - let creationDate = attributes[.creationDate] as? Date, creationDate < startOfDay - { - try? fileManager.removeItem(atPath: SimpleLogReporter.logFilePrev) - try? fileManager.moveItem(atPath: SimpleLogReporter.logFile, toPath: SimpleLogReporter.logFilePrev) - createFile(at: startOfDay) - } - } - - let logEntry = "\(dateFormatter.string(from: now)) [\(category)] \(file.file) - \(function) - \(line) - \(message)\n" - let data = logEntry.data(using: .utf8)! - try? data.append(fileURL: URL(fileURLWithPath: SimpleLogReporter.logFile)) - } - - private func createFile(at date: Date) { - fileManager.createFile(atPath: SimpleLogReporter.logFile, contents: nil, attributes: [.creationDate: date]) - } - - static var logFile: String { - getDocumentsDirectory().appendingPathComponent("logs/log.txt").path - } - - static var logDir: String { - getDocumentsDirectory().appendingPathComponent("logs").path - } - - static var logFilePrev: String { - getDocumentsDirectory().appendingPathComponent("logs/log_prev.txt").path - } - - static func getDocumentsDirectory() -> URL { - let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) - let documentsDirectory = paths[0] - return documentsDirectory - } -} - -private extension Data { - func append(fileURL: URL) throws { - if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) { - defer { - fileHandle.closeFile() - } - fileHandle.seekToEndOfFile() - fileHandle.write(self) - } else { - try write(to: fileURL, options: .atomic) - } - } -} - -private extension String { - var file: String { components(separatedBy: "/").last ?? "" } -} diff --git a/Dependencies/LoopKit/Extensions/UIColor.swift b/Dependencies/LoopKit/Extensions/UIColor.swift deleted file mode 100644 index 0095c6b719..0000000000 --- a/Dependencies/LoopKit/Extensions/UIColor.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// UIColor.swift -// LoopKitUI -// -// Copyright © 2018 LoopKit Authors. All rights reserved. -// - -import UIKit - - -extension UIColor { - static let delete = UIColor.higRed() -} - - -// MARK: - HIG colors -// See: https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/ -extension UIColor { - private static func higRed() -> UIColor { - return UIColor(red: 1, green: 59 / 255, blue: 48 / 255, alpha: 1) - } -} diff --git a/Dependencies/LoopKit/LoopKit Example/Extensions/CarbEntryTableViewController.swift b/Dependencies/LoopKit/LoopKit Example/Extensions/CarbEntryTableViewController.swift deleted file mode 100644 index 2dde28f5f1..0000000000 --- a/Dependencies/LoopKit/LoopKit Example/Extensions/CarbEntryTableViewController.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// CarbEntryTableViewController.swift -// LoopKit -// -// Created by Nate Racklyeft on 7/13/16. -// Copyright © 2016 Nathan Racklyeft. All rights reserved. -// - -import LoopKitUI - - -extension CarbEntryTableViewController: IdentifiableClass { } diff --git a/Dependencies/LoopKit/Extensions/HKUnit.swift b/Dependencies/LoopKit/LoopKit Example/Extensions/HKUnit.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/HKUnit.swift rename to Dependencies/LoopKit/LoopKit Example/Extensions/HKUnit.swift diff --git a/Dependencies/LoopKit/Extensions/IdentifiableClass.swift b/Dependencies/LoopKit/LoopKit Example/Extensions/IdentifiableClass.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/IdentifiableClass.swift rename to Dependencies/LoopKit/LoopKit Example/Extensions/IdentifiableClass.swift diff --git a/Dependencies/LoopKit/Extensions/NSTimeInterval.swift b/Dependencies/LoopKit/LoopKit Example/Extensions/TimeInterval.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/NSTimeInterval.swift rename to Dependencies/LoopKit/LoopKit Example/Extensions/TimeInterval.swift diff --git a/Dependencies/LoopKit/LoopKit Example/MasterViewController.swift b/Dependencies/LoopKit/LoopKit Example/MasterViewController.swift index eb918e20b7..b31904949b 100644 --- a/Dependencies/LoopKit/LoopKit Example/MasterViewController.swift +++ b/Dependencies/LoopKit/LoopKit Example/MasterViewController.swift @@ -14,7 +14,15 @@ import HealthKit class MasterViewController: UITableViewController { - private var dataManager: DeviceDataManager? = DeviceDataManager() + private var dataManager: DeviceDataManager? + + override func viewDidLoad() { + super.viewDidLoad() + + if ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] == nil { + dataManager = DeviceDataManager() + } + } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) @@ -89,28 +97,28 @@ class MasterViewController: UITableViewController { case .configuration: switch ConfigurationRow(rawValue: indexPath.row)! { case .basalRate: - cell.textLabel?.text = LocalizedString("Basal Rates", comment: "The title text for the basal rate schedule") + cell.textLabel?.text = NSLocalizedString("Basal Rates", comment: "The title text for the basal rate schedule") case .carbRatio: - cell.textLabel?.text = LocalizedString("Carb Ratios", comment: "The title of the carb ratios schedule screen") + cell.textLabel?.text = NSLocalizedString("Carb Ratios", comment: "The title of the carb ratios schedule screen") case .correctionRange: - cell.textLabel?.text = LocalizedString("Correction Range", comment: "The title text for the glucose correction range schedule") + cell.textLabel?.text = NSLocalizedString("Correction Range", comment: "The title text for the glucose correction range schedule") case .insulinSensitivity: - cell.textLabel?.text = LocalizedString("Insulin Sensitivity", comment: "The title text for the insulin sensitivity schedule") + cell.textLabel?.text = NSLocalizedString("Insulin Sensitivity", comment: "The title text for the insulin sensitivity schedule") case .pumpID: - cell.textLabel?.text = LocalizedString("Pump ID", comment: "The title text for the pump ID") + cell.textLabel?.text = NSLocalizedString("Pump ID", comment: "The title text for the pump ID") } case .data: switch DataRow(rawValue: indexPath.row)! { case .carbs: - cell.textLabel?.text = LocalizedString("Carbs", comment: "The title for the cell navigating to the carbs screen") + cell.textLabel?.text = NSLocalizedString("Carbs", comment: "The title for the cell navigating to the carbs screen") case .reservoir: - cell.textLabel?.text = LocalizedString("Reservoir", comment: "The title for the cell navigating to the reservoir screen") + cell.textLabel?.text = NSLocalizedString("Reservoir", comment: "The title for the cell navigating to the reservoir screen") case .diagnostic: - cell.textLabel?.text = LocalizedString("Diagnostic", comment: "The title for the cell displaying diagnostic data") + cell.textLabel?.text = NSLocalizedString("Diagnostic", comment: "The title for the cell displaying diagnostic data") case .generate: - cell.textLabel?.text = LocalizedString("Generate Data", comment: "The title for the cell displaying data generation") + cell.textLabel?.text = NSLocalizedString("Generate Data", comment: "The title for the cell displaying data generation") case .reset: - cell.textLabel?.text = LocalizedString("Reset", comment: "Title for the cell resetting the data manager") + cell.textLabel?.text = NSLocalizedString("Reset", comment: "Title for the cell resetting the data manager") } } @@ -194,10 +202,10 @@ class MasterViewController: UITableViewController { // textFieldVC.delegate = self textFieldVC.title = sender?.textLabel?.text - textFieldVC.placeholder = LocalizedString("Enter the 6-digit pump ID", comment: "The placeholder text instructing users how to enter a pump ID") + textFieldVC.placeholder = NSLocalizedString("Enter the 6-digit pump ID", comment: "The placeholder text instructing users how to enter a pump ID") textFieldVC.value = dataManager?.pumpID textFieldVC.keyboardType = .numberPad - textFieldVC.contextHelp = LocalizedString("The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N).", comment: "Instructions on where to find the pump ID on a Minimed pump") + textFieldVC.contextHelp = NSLocalizedString("The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N).", comment: "Instructions on where to find the pump ID on a Minimed pump") show(textFieldVC, sender: sender) default: @@ -206,7 +214,8 @@ class MasterViewController: UITableViewController { case .data: switch DataRow(rawValue: indexPath.row)! { case .carbs: - performSegue(withIdentifier: CarbEntryTableViewController.className, sender: sender) + //performSegue(withIdentifier: CarbEntryTableViewController.className, sender: sender) + break case .reservoir: performSegue(withIdentifier: LegacyInsulinDeliveryTableViewController.className, sender: sender) case .diagnostic: @@ -311,13 +320,6 @@ class MasterViewController: UITableViewController { } switch targetViewController { - case let vc as CarbEntryTableViewController: - vc.carbStore = dataManager?.carbStore - case let vc as CarbEntryEditViewController: - if let carbStore = dataManager?.carbStore { - vc.defaultAbsorptionTimes = carbStore.defaultAbsorptionTimes - vc.preferredUnit = carbStore.preferredUnit - } case let vc as LegacyInsulinDeliveryTableViewController: vc.doseStore = dataManager?.doseStore default: diff --git a/Dependencies/LoopKit/LoopKit Example/ar.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..d6379bd417 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/ar.lproj/Localizable.strings @@ -0,0 +1,21 @@ +/* The title text for the basal rate schedule */ +"Basal Rates" = "الضخ المستمر"; + +/* The title of the carb ratios schedule screen */ +"Carb Ratios" = "معاملات الكارب"; + +/* The title for the cell navigating to the carbs screen */ +"Carbs" = "Carbs"; + +/* The title text for the glucose correction range schedule */ +"Correction Range" = "نطاق التصحيح"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; + +/* The title text for the pump ID */ +"Pump ID" = "Pump ID"; + +/* The title for the cell navigating to the reservoir screen */ +"Reservoir" = "الخزان"; + diff --git a/Dependencies/LoopKit/LoopKit Example/ar.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/ar.lproj/Main.strings new file mode 100644 index 0000000000..bc7d8efb8d --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/ar.lproj/Main.strings @@ -0,0 +1,3 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "عنوان"; + diff --git a/Dependencies/LoopKit/LoopKit Example/cs.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..08727bedea --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/cs.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* The title text for the basal rate schedule */ +"Basal Rates" = "Úrovně bazálu"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Zadejte 6místné ID pumpy"; + +/* The title text for the pump ID */ +"Pump ID" = "ID pumpy"; + diff --git a/Dependencies/LoopKit/LoopKit Example/da.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/da.lproj/InfoPlist.strings new file mode 100644 index 0000000000..81b74517f4 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/da.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Eksempel på LoopKit"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Måltidsdata fra Apple Health-databasen bruges til at bestemme effekten på blodsukkeret. Blodsukkerdata fra Apple Health-databasen bruges til graftegning og momentum beregnings"; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Kulhydrater indtastet i Loop gemmes i Health databasen. Blodsukker lagres sikkert i HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/da.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/da.lproj/Localizable.strings index f18febd6dc..0da3a5a5e8 100644 --- a/Dependencies/LoopKit/LoopKit Example/da.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/da.lproj/Localizable.strings @@ -1,27 +1,27 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rater"; +"Basal Rates" = "Basalrater"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Kulhydrat Ratioer"; +"Carb Ratios" = "Kulhydratforhold"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Kulhydrater"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Korrektions Interval"; +"Correction Range" = "Korrektionsområde"; /* The title for the cell displaying diagnostic data */ -"Diagnostic" = "Diagnostisk"; +"Diagnostic" = "Diagnostik"; /* The placeholder text instructing users how to enter a pump ID */ "Enter the 6-digit pump ID" = "Indtast det 6-cifrede pumpe ID"; /* The title for the cell displaying data generation */ -"Generate Data" = "Genererer Data"; +"Generate Data" = "Genererer data"; /* The title of the insulin sensitivity schedule screen The title text for the insulin sensitivity schedule */ -"Insulin Sensitivity" = "Insulin Følsomhed"; +"Insulin Sensitivity" = "Insulinfølsomhed"; /* The title text for the pump ID */ "Pump ID" = "Pumpe ID"; @@ -33,7 +33,7 @@ "Reset" = "Nulstil"; /* Title of button to sync basal profile from pump */ -"Sync With Pump" = "Synkroniser med Pumpe"; +"Sync With Pump" = "Synkroniser med pumpe"; /* Instructions on where to find the pump ID on a Minimed pump */ "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Pumpe ID kan findes trykt på bagsiden, eller nær bunden på STATUS/Esc skærmen. Det er den rent numeriske del af serienummeret (vist som SN eller S/N)"; diff --git a/Dependencies/LoopKit/LoopKit Example/da.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/da.lproj/Main.strings index 35481722b9..87e302e73d 100644 --- a/Dependencies/LoopKit/LoopKit Example/da.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/da.lproj/Main.strings @@ -1,9 +1,9 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; /* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ -"Arm-wq-HPj.text" = "Title"; +"Arm-wq-HPj.text" = "Titel"; /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/de.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/de.lproj/InfoPlist.strings index d3ec34e6b9..124cf4b888 100644 --- a/Dependencies/LoopKit/LoopKit Example/de.lproj/InfoPlist.strings +++ b/Dependencies/LoopKit/LoopKit Example/de.lproj/InfoPlist.strings @@ -1,3 +1,6 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit-Beispiel"; + /* Privacy - Health Share Usage Description */ "NSHealthShareUsageDescription" = "Mahlzeitendaten aus HealthKit werden verwendet, um Blutzuckereffekte zu bestimmen. Blutzuckerdaten aus HealthKit werden für die grafische Darstellung und Momentum-Berechnung verwendet."; diff --git a/Dependencies/LoopKit/LoopKit Example/de.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/de.lproj/Localizable.strings index 0c11f24723..74b299a5bc 100644 --- a/Dependencies/LoopKit/LoopKit Example/de.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/de.lproj/Localizable.strings @@ -1,8 +1,8 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Basalraten"; +"Basal Rates" = "Basalrate"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Kohlenhydratfaktoren"; +"Carb Ratios" = "KH-Verhältnis"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "KH"; diff --git a/Dependencies/LoopKit/LoopKit Example/de.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/de.lproj/Main.strings new file mode 100644 index 0000000000..b81b546518 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/de.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "UI-Tests"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Titel"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "UI-Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/es.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/es.lproj/InfoPlist.strings new file mode 100644 index 0000000000..a79de59dbf --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/es.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Ejemplo de LoopKit"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Datos de alimentos de Salud se utiliza para determinar los efectos en el nivel de glucosa. Datos de glucosa de Salud se utilizan para graficar y determinar cálculos de momento."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Datos de alimentos ingresados en la aplicación son almacenados en la base de datos de Salud. Los datos de glucosa se almacenan de manera segura en Kit de Salud."; + diff --git a/Dependencies/LoopKit/LoopKit Example/es.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/es.lproj/Localizable.strings index e5666cde74..467e4fca5f 100644 --- a/Dependencies/LoopKit/LoopKit Example/es.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/es.lproj/Localizable.strings @@ -1,14 +1,14 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Perfil Basal"; +"Basal Rates" = "Tasas basales"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Relaciones de hidratos"; +"Carb Ratios" = "Ratios de carbohidratos"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Carbohidratos"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Rango Objetivo de Glucosa"; +"Correction Range" = "Rango de Corrección"; /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Diagnóstico"; @@ -24,7 +24,7 @@ "Insulin Sensitivity" = "Sensibilidad a la insulina"; /* The title text for the pump ID */ -"Pump ID" = "ID de microinfusora"; +"Pump ID" = "ID de Bomba"; /* The title for the cell navigating to the reservoir screen */ "Reservoir" = "Reservorio"; diff --git a/Dependencies/LoopKit/LoopKit Example/es.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/es.lproj/Main.strings new file mode 100644 index 0000000000..8bbae80b80 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/es.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "Pruebas de UI"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Título"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "Pruebas de UI"; + diff --git a/Dependencies/LoopKit/LoopKit Example/fi.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/fi.lproj/InfoPlist.strings index 768350f3fc..0e4ae92b81 100644 --- a/Dependencies/LoopKit/LoopKit Example/fi.lproj/InfoPlist.strings +++ b/Dependencies/LoopKit/LoopKit Example/fi.lproj/InfoPlist.strings @@ -1,3 +1,6 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit-esimerkki"; + /* 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."; diff --git a/Dependencies/LoopKit/LoopKit Example/fi.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/fi.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/fi.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/fi.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/fr.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/fr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..84c8cd9816 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/fr.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Exemple de LoopKit"; + +/* 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 sur la glycémie . Les données sur la glycémie de la base de données Health sont utilisées pour le calcul graphique et le calcul du momentum."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Les données sur les apports de repas glucidiques saisies dans l'application sont stockées dans la base de données Santé d'Apple. Les données de glycémie extraites du CGM sont stockées de manière sécurisée dans HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/fr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/fr.lproj/Localizable.strings index 850ea6b638..0fcf76e3db 100644 --- a/Dependencies/LoopKit/LoopKit Example/fr.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/fr.lproj/Localizable.strings @@ -1,8 +1,8 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Débits de basale"; +"Basal Rates" = "Débits basaux"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Ratios de glucides"; +"Carb Ratios" = "Ratios Insuline-Glucides"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Glucides"; @@ -14,7 +14,7 @@ "Diagnostic" = "Diagnostique"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Entrez l’ID de la pompe, composé de 6 lettres et chiffres"; +"Enter the 6-digit pump ID" = "Entrée l’ID de pompe de 6 chiffres"; /* The title for the cell displaying data generation */ "Generate Data" = "Générer les données"; @@ -36,5 +36,5 @@ "Sync With Pump" = "Synchroniser avec la pompe"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "L'ID de la pompe se trouve imprimé au dos ou près du bas de l'écran STATUS/Esc. Il s'agit de la partie uniquement numérique du numéro de série (indiquée par SN ou S/N)."; diff --git a/Dependencies/LoopKit/LoopKit Example/fr.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/fr.lproj/Main.strings new file mode 100644 index 0000000000..8d5a826f8f --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/fr.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "UI Tests"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Title"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/he.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/he.lproj/Localizable.strings index 087db1a525..4fbff95556 100644 --- a/Dependencies/LoopKit/LoopKit Example/he.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/he.lproj/Localizable.strings @@ -14,7 +14,7 @@ "Diagnostic" = "Diagnostic"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; +"Enter the 6-digit pump ID" = "הזן את מספר זיהוי המשאבה בן 6 הספרות"; /* The title for the cell displaying data generation */ "Generate Data" = "Generate Data"; @@ -24,7 +24,7 @@ "Insulin Sensitivity" = "Insulin Sensitivity"; /* The title text for the pump ID */ -"Pump ID" = "Pump ID"; +"Pump ID" = "מספר זיהוי המשאבה"; /* The title for the cell navigating to the reservoir screen */ "Reservoir" = "Reservoir"; @@ -36,5 +36,5 @@ "Sync With Pump" = "Sync With Pump"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "מספר זיהוי המשאבה מודפס על החלק האחורי או קרוב לחלק התחתון של המסך STATUS/Esc. רק הספרות של מספר הסידורי נצרכות (מופיעה כ- SN או S/N)."; diff --git a/Dependencies/LoopKit/LoopKit Example/he.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/he.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/he.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/he.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/it.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/it.lproj/InfoPlist.strings new file mode 100644 index 0000000000..4d34b1f599 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/it.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Esempio di LoopKit"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "I dati sui pasti contenuti nel database della app Apple Salute vengono utilizzati per determinare gli effetti sulla glicemia. Inoltre i dati del glucosio contenuti nel database di Apple Salute vengono utilizzati per il calcolo del grafico e le variazioni glicemiche."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "I dati dei carboidrati relativi ai pasti inseriti nell'app vengono archiviati nel database Salute. I dati delle glicemie vengono archiviati in modo sicuro in Salute."; + diff --git a/Dependencies/LoopKit/LoopKit Example/it.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/it.lproj/Localizable.strings index 768bbbf206..65cc4a3370 100644 --- a/Dependencies/LoopKit/LoopKit Example/it.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/it.lproj/Localizable.strings @@ -2,29 +2,29 @@ "Basal Rates" = "Velocità basali"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Proporzioni carboidrati"; +"Carb Ratios" = "Rapporti carboidrati"; /* The title for the cell navigating to the carbs screen */ -"Carbs" = "Carboidrati"; +"Carbs" = "Carb."; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Intervallo di correzione"; +"Correction Range" = "Intervallo Glicemico"; /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Dati diagnostici"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Inserisci ID a 6 cifre della pompa"; +"Enter the 6-digit pump ID" = "Inserire 6-cifre ID micro"; /* The title for the cell displaying data generation */ "Generate Data" = "Genera dati"; /* The title of the insulin sensitivity schedule screen The title text for the insulin sensitivity schedule */ -"Insulin Sensitivity" = "Sensibilità all’insulina"; +"Insulin Sensitivity" = "Sensibilità insulinica"; /* The title text for the pump ID */ -"Pump ID" = "ID pompa"; +"Pump ID" = "ID microinfusore"; /* The title for the cell navigating to the reservoir screen */ "Reservoir" = "Serbatoio"; @@ -36,5 +36,5 @@ "Sync With Pump" = "Sincronizza con la pompa"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "L'ID della pompa si trova stampato sul retro o in fondo alla schermata STATO/Esc. È la parte strettamente numerica del numero di serie (indicato come SN o S/N)."; diff --git a/Dependencies/LoopKit/LoopKit Example/it.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/it.lproj/Main.strings new file mode 100644 index 0000000000..0768c382c5 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/it.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "Test dell'interfaccia utente"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Titolo"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "Test dell'interfaccia utente"; + diff --git a/Dependencies/LoopKit/LoopKit Example/ja.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/ja.lproj/Localizable.strings index ffb17aa0d6..4b1a9977e5 100644 --- a/Dependencies/LoopKit/LoopKit Example/ja.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/ja.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "基礎インスリン"; +"Basal Rates" = "基礎レート"; /* The title of the carb ratios schedule screen */ "Carb Ratios" = "Carb Ratios"; @@ -14,7 +14,7 @@ "Diagnostic" = "診断"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "6桁のトランスミッターIDを入力"; +"Enter the 6-digit pump ID" = "6桁のポンプ ID"; /* The title for the cell displaying data generation */ "Generate Data" = "データ生成"; @@ -24,10 +24,10 @@ "Insulin Sensitivity" = "Insulin Sensitivity"; /* The title text for the pump ID */ -"Pump ID" = "ポンプID"; +"Pump ID" = "ポンプ ID"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "リザーバ"; +"Reservoir" = "Reservoir"; /* Title for the cell resetting the data manager */ "Reset" = "リセット"; diff --git a/Dependencies/LoopKit/LoopKit Example/ja.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/ja.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/ja.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/ja.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/nb.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/nb.lproj/InfoPlist.strings new file mode 100644 index 0000000000..9a6f7bb687 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/nb.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit-eksempel"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Måltidsdata fra helsedatabasen brukes til å bestemme glukoseeffekter. Glukosedata fra helsedatabasen brukes til grafer og momentumberegning."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Karbohydratmåltidsdata som legges inn i appen, lagres i Helsedatabasen. Glukosedata lagres sikkert i HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/nb.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/nb.lproj/Localizable.strings index 03a2df97fc..4f4137a8c9 100644 --- a/Dependencies/LoopKit/LoopKit Example/nb.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/nb.lproj/Localizable.strings @@ -1,8 +1,8 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Basalsatser"; +"Basal Rates" = "Basal-satser"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Karbohydratforhold"; +"Carb Ratios" = "Karb forhold"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Karbohydrater"; @@ -14,7 +14,7 @@ "Diagnostic" = "Diagnostikk"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Skriv 6-siffret pumpe ID"; +"Enter the 6-digit pump ID" = "Skriv 6-siffret pumpe-ID"; /* The title for the cell displaying data generation */ "Generate Data" = "Generer data"; @@ -30,11 +30,11 @@ "Reservoir" = "Reservoar"; /* Title for the cell resetting the data manager */ -"Reset" = "Nullstill"; +"Reset" = "Nullstille"; /* Title of button to sync basal profile from pump */ "Sync With Pump" = "Synkroniser med pumpe"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Pumpe-ID finner du trykt på baksiden eller nær bunnen av STATUS/Esc-skjermen. Det er den numeriske delen av serienummeret (vist som SN eller S/N)."; diff --git a/Dependencies/LoopKit/LoopKit Example/nb.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/nb.lproj/Main.strings new file mode 100644 index 0000000000..be772d0a05 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/nb.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "UI Tester"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Tittel"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "UI Tester"; + diff --git a/Dependencies/LoopKit/LoopKit Example/nl.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/nl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..20fab0fc1c --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/nl.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit Voorbeeld"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Maaltijdgegevens uit de database Gezondheid worden gebruikt om glucoseëffecten te bepalen. Glucosegegevens uit de database Gezondheid worden gebruikt voor grafieken en het berekenen van trendlijnen."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Maaltijdkoolhydraten die worden ingevoerd in de app worden opgeslagen in de database Gezondheid. Glucosegegevens worden veilig opgeslagen in HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/nl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/nl.lproj/Localizable.strings index 591e1b01c6..90aa0ed941 100644 --- a/Dependencies/LoopKit/LoopKit Example/nl.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/nl.lproj/Localizable.strings @@ -2,29 +2,29 @@ "Basal Rates" = "Basaalsnelheden"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Koolhydraten absorptie snelheid"; +"Carb Ratios" = "Koolhydraatratio's"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Koolhydraten"; +/* The title text for the glucose correction range schedule */ +"Correction Range" = "Correctiebereik"; + /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Diagnose"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Vul de 6 cijferige pomp ID in"; +"Enter the 6-digit pump ID" = "Voer het 6-cijferige pompserienummer in"; /* The title for the cell displaying data generation */ -"Generate Data" = "Genereer data"; +"Generate Data" = "Genereer Gegevens"; /* The title of the insulin sensitivity schedule screen The title text for the insulin sensitivity schedule */ -"Insulin Sensitivity" = "Correctie bereik"; - -/* The title text for the glucose target range schedule */ -"Correction Range" = "Gewenst glucose doelbereik"; +"Insulin Sensitivity" = "Insulinegevoeligheid"; /* The title text for the pump ID */ -"Pump ID" = "Pomp ID"; +"Pump ID" = "Pompserienummer"; /* The title for the cell navigating to the reservoir screen */ "Reservoir" = "Reservoir"; @@ -36,5 +36,5 @@ "Sync With Pump" = "Synchroniseer met pomp"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Het pompserienummer vindt je op de achterkant of onderaan het STATUS/Esc-scherm. Het is het strikt numerieke deel van het serienummer (weergegeven als SN of S/N)."; diff --git a/Dependencies/LoopKit/LoopKit Example/nl.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/nl.lproj/Main.strings new file mode 100644 index 0000000000..239c3d06cc --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/nl.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "UI Testen"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Titel"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "UI Testen"; + diff --git a/Dependencies/LoopKit/LoopKit Example/pl.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/pl.lproj/InfoPlist.strings new file mode 100644 index 0000000000..5fabb05e2f --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/pl.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit Example"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Dane o posiłkach z bazy danych aplikacji Zdrowie są używane do ustalania wpływu na poziom glukozy. Dane o poziomie glukozy z bazy danych aplikacji Apple Zdrowie są używane do tworzenia wykresu i obliczania momentum."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Dane dotyczące posiłków zawierających węglowodany wprowadzone w aplikacji są przechowywane w bazie danych aplikacji Zdrowie. Dane dotyczące glukozy są bezpiecznie przechowywane w Zdrowie Kit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/pl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/pl.lproj/Localizable.strings index 25334e6b20..1e0620ec95 100644 --- a/Dependencies/LoopKit/LoopKit Example/pl.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/pl.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Dawki podstawowe"; +"Basal Rates" = "Dawka Podstawowa (Baza)"; /* The title of the carb ratios schedule screen */ "Carb Ratios" = "Współczynniki węglowodanowe"; @@ -8,13 +8,13 @@ "Carbs" = "Węglowodany"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Zakres korekty"; +"Correction Range" = "Zakres docelowy"; /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Diagnostyka"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Wprowadź 6-cyfrowy ID pompy"; +"Enter the 6-digit pump ID" = "Wprowadź 6-cyfrowy numer pompy"; /* The title for the cell displaying data generation */ "Generate Data" = "Generuj dane"; @@ -24,10 +24,10 @@ "Insulin Sensitivity" = "Insulinowrażliwość"; /* The title text for the pump ID */ -"Pump ID" = "Pompą ID"; +"Pump ID" = "ID pompy"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "Zbiornik"; +"Reservoir" = "Zbiorniczek"; /* Title for the cell resetting the data manager */ "Reset" = "Resetuj"; diff --git a/Dependencies/LoopKit/LoopKit Example/pl.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/pl.lproj/Main.strings new file mode 100644 index 0000000000..8185475689 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/pl.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "Testy interfejsu użytkownika"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Title"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "Testy interfejsu użytkownika"; + diff --git a/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Localizable.strings index 925dc896ff..5acc3e2c01 100644 --- a/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Localizable.strings @@ -14,7 +14,7 @@ "Diagnostic" = "Diagnóstico"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Entre com o ID de 6 dígitos da bomba"; +"Enter the 6-digit pump ID" = "Digite o ID da bomba de 6 dígitos"; /* The title for the cell displaying data generation */ "Generate Data" = "Gerar Dados"; @@ -27,7 +27,7 @@ "Pump ID" = "ID da Bomba"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "Reservatório"; +"Reservoir" = "Reservoir"; /* Title for the cell resetting the data manager */ "Reset" = "Restabelecer"; @@ -37,3 +37,4 @@ /* Instructions on where to find the pump ID on a Minimed pump */ "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "O ID da bomba pode ser encontrado impresso na parte traseira ou na parte inferior da tela STATUS/Esc. É a parte estritamente numérica do número de série (mostrado como SN ou S/N)."; + diff --git a/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/pt-BR.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/ro.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/ro.lproj/InfoPlist.strings new file mode 100644 index 0000000000..23a9cd9884 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/ro.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Exemplu de LoopKit"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Datele mesei din baza de date Health sunt folosite pentru a determina efectele glicemiei. Datele despre glicemie din baza de date Health sunt folosite pentru grafice și calcularea impulsului."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Carbohidrații introduși în aplicație sunt stocați în baza de date Health. Glicemiile sunt stocate în mod confidențial în HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/ro.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/ro.lproj/Localizable.strings index 453e90e89a..fee3aead2b 100644 --- a/Dependencies/LoopKit/LoopKit Example/ro.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/ro.lproj/Localizable.strings @@ -2,19 +2,19 @@ "Basal Rates" = "Rate bazale"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Raport carbohidrați"; +"Carb Ratios" = "Raport carbohidrați/insulină"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Carbohidrați"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Interval corecție"; +"Correction Range" = "Interval țintă pentru corecție"; /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Diagnostic"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Introduceți ID-ul pompei din 6 cifre"; +"Enter the 6-digit pump ID" = "Introduceți ID-ul de pompă din 6 cifre"; /* The title for the cell displaying data generation */ "Generate Data" = "Generează date"; @@ -30,7 +30,7 @@ "Reservoir" = "Rezervor"; /* Title for the cell resetting the data manager */ -"Reset" = "Resetează"; +"Reset" = "Resetare"; /* Title of button to sync basal profile from pump */ "Sync With Pump" = "Sincronizează cu pompa"; diff --git a/Dependencies/LoopKit/LoopKit Example/ro.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/ro.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/ro.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/ro.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/ru.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/ru.lproj/InfoPlist.strings new file mode 100644 index 0000000000..6305489877 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/ru.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "Пример LoopKit"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Данные о приеме пищи из базы данных Health используются для определения влияния глюкозы. Данные о глюкозе из базы данных Health используются для построения графиков и расчетов."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Данные об углеводах, введенные в приложение, сохраняются в базе данных Health. Данные о глюкозе надежно хранятся в HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/ru.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/ru.lproj/Localizable.strings index 25f6e6abeb..c94ef2c32a 100644 --- a/Dependencies/LoopKit/LoopKit Example/ru.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/ru.lproj/Localizable.strings @@ -2,39 +2,39 @@ "Basal Rates" = "Скорости базала"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Carb Ratios"; +"Carb Ratios" = "Соотношения углеводов"; /* The title for the cell navigating to the carbs screen */ "Carbs" = "Углеводы"; +/* The title text for the glucose correction range schedule */ +"Correction Range" = "Диапазон коррекции"; + /* The title for the cell displaying diagnostic data */ -"Diagnostic" = "Диагностически"; +"Diagnostic" = "Диагностика"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Введите инд номер помпы (6 цифр)"; +"Enter the 6-digit pump ID" = "Ввести 6-значный ID помпы"; /* The title for the cell displaying data generation */ "Generate Data" = "Генерировать данные"; /* The title of the insulin sensitivity schedule screen The title text for the insulin sensitivity schedule */ -"Insulin Sensitivity" = "Чувствительность"; - -/* The title text for the glucose target range schedule */ -"Correction Range" = "Диапазон коррекции"; +"Insulin Sensitivity" = "Чувствительность к инсулину"; /* The title text for the pump ID */ -"Pump ID" = "Инд номер помпы"; +"Pump ID" = "Идентификатор ID помпы"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "Резервуар"; +"Reservoir" = "Reservoir"; /* Title for the cell resetting the data manager */ "Reset" = "Сброс"; /* Title of button to sync basal profile from pump */ -"Sync With Pump" = "Синхронизация с Помпа"; +"Sync With Pump" = "Синхронизация с помпой"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Регион помпы находится на ее задней стенке как часть номера модели (REF), например MMT-551NAB или MMT-515LWWS. Если номер модели содержит \"NA\" or \"CA\", то регион- Северная Америка. Если это \"WW\", тогда регион - остальной мир."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Регион помпы находится на ее задней стенке как часть номера модели (REF), например MMT-551NAB или MMT-515LWWS. Если номер модели содержит \"NA\" or \"CA\", то регион - Северная Америка. Если это \"WW\", тогда регион - остальной мир."; diff --git a/Dependencies/LoopKit/LoopKit Example/ru.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/ru.lproj/Main.strings new file mode 100644 index 0000000000..c916275d19 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/ru.lproj/Main.strings @@ -0,0 +1,9 @@ +/* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ +"7bK-jq-Zjz.title" = "Тесты пользовательского интерфейса"; + +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Title"; + +/* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ +"RMx-3f-FxP.title" = "Тесты пользовательского интерфейса"; + diff --git a/Dependencies/LoopKit/LoopKit Example/sk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..106ebc27c5 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/sk.lproj/Localizable.strings @@ -0,0 +1,18 @@ +/* The title text for the basal rate schedule */ +"Basal Rates" = "Bazálne dávky"; + +/* The title of the carb ratios schedule screen */ +"Carb Ratios" = "Inzulínovo sacharidový pomer"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Zadajte 6-miestne ID pumpy"; + +/* The title text for the pump ID */ +"Pump ID" = "ID pumpy"; + +/* The title for the cell navigating to the reservoir screen */ +"Reservoir" = "Rezervoár"; + +/* Title for the cell resetting the data manager */ +"Reset" = "Resetovať"; + diff --git a/Dependencies/LoopKit/LoopKit Example/sk.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/sk.lproj/Main.strings new file mode 100644 index 0000000000..542ce77eb6 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/sk.lproj/Main.strings @@ -0,0 +1,3 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ +"Arm-wq-HPj.text" = "Názov"; + diff --git a/Dependencies/LoopKit/LoopKit Example/sv.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/sv.lproj/InfoPlist.strings new file mode 100644 index 0000000000..2b6426fab6 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/sv.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit Example"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Kolhydratdata från Apple Health-databasen används för att avgöra glukoseffekt. Blodglukosvärden från Apple Health-databasen används i diagram och för beräkning av förändring."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Kolhydratvärden inmatade i appen lagras i Apple Health-databasen. Blodglukosvärden lagras säkert i HealthKit."; + diff --git a/Dependencies/LoopKit/LoopKit Example/sv.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/sv.lproj/Localizable.strings index 195c00aec2..d1ad2be15f 100644 --- a/Dependencies/LoopKit/LoopKit Example/sv.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/sv.lproj/Localizable.strings @@ -8,13 +8,13 @@ "Carbs" = "Kolhydrater"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Målvärden"; +"Correction Range" = "Målvärde"; /* The title for the cell displaying diagnostic data */ "Diagnostic" = "Diagnostisk"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Ange ditt 6-siffriga pump-ID"; +"Enter the 6-digit pump ID" = "Ange 6-siffrigt pump-ID"; /* The title for the cell displaying data generation */ "Generate Data" = "Generera data"; @@ -24,7 +24,7 @@ "Insulin Sensitivity" = "Insulinkänslighet"; /* The title text for the pump ID */ -"Pump ID" = "Pump ID"; +"Pump ID" = "Pump-ID"; /* The title for the cell navigating to the reservoir screen */ "Reservoir" = "Reservoar"; @@ -37,3 +37,4 @@ /* Instructions on where to find the pump ID on a Minimed pump */ "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Ditt pump-ID står tryckt på baksidan, eller nästan längst ner på status/Esc-menyn. Det är den numeriska delen av serienumret (visad som SN eller S/N). "; + diff --git a/Dependencies/LoopKit/LoopKit Example/sv.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/sv.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/sv.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/sv.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/tr.lproj/InfoPlist.strings b/Dependencies/LoopKit/LoopKit Example/tr.lproj/InfoPlist.strings new file mode 100644 index 0000000000..32c154cf15 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit Example/tr.lproj/InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle name */ +"CFBundleName" = "LoopKit Örneği"; + +/* Privacy - Health Share Usage Description */ +"NSHealthShareUsageDescription" = "Sağlık veri tabanından alınan yemek verileri, KŞ etkilerini belirlemek için kullanılır. Sağlık veri tabanından alınan KŞ verileri, grafik ve momentum hesaplaması için kullanılır."; + +/* Privacy - Health Update Usage Description */ +"NSHealthUpdateUsageDescription" = "Uygulamaya girilen karbonhidrat yemek verileri Sağlık veritabanında saklanır. KŞ verileri HealthKit'te güvenli bir şekilde saklanır."; + diff --git a/Dependencies/LoopKit/LoopKit Example/tr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/tr.lproj/Localizable.strings index 087db1a525..51f3c1f6c0 100644 --- a/Dependencies/LoopKit/LoopKit Example/tr.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/tr.lproj/Localizable.strings @@ -1,40 +1,40 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; +"Basal Rates" = "Bazal Oranlar"; /* The title of the carb ratios schedule screen */ -"Carb Ratios" = "Carb Ratios"; +"Carb Ratios" = "Karbonhidrat Oranları"; /* The title for the cell navigating to the carbs screen */ -"Carbs" = "Carbs"; +"Carbs" = "Karb"; /* The title text for the glucose correction range schedule */ -"Correction Range" = "Correction Range"; +"Correction Range" = "Düzeltme Aralığı"; /* The title for the cell displaying diagnostic data */ -"Diagnostic" = "Diagnostic"; +"Diagnostic" = "Teşhis"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; +"Enter the 6-digit pump ID" = "6 haneli pompa kimliğini girin"; /* The title for the cell displaying data generation */ -"Generate Data" = "Generate Data"; +"Generate Data" = "Veri Oluştur"; /* The title of the insulin sensitivity schedule screen The title text for the insulin sensitivity schedule */ -"Insulin Sensitivity" = "Insulin Sensitivity"; +"Insulin Sensitivity" = "İnsulin Duyarlılığı"; /* The title text for the pump ID */ -"Pump ID" = "Pump ID"; +"Pump ID" = "Pompa Kimliği"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "Reservoir"; +"Reservoir" = "Rezervuar"; /* Title for the cell resetting the data manager */ -"Reset" = "Reset"; +"Reset" = "Sıfırla"; /* Title of button to sync basal profile from pump */ -"Sync With Pump" = "Sync With Pump"; +"Sync With Pump" = "Pompa ile Senkronize Et"; /* Instructions on where to find the pump ID on a Minimed pump */ -"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)."; +"The pump ID can be found printed on the back, or near the bottom of the STATUS/Esc screen. It is the strictly numerical portion of the serial number (shown as SN or S/N)." = "Pompa kimliğini, pompanın arkasında veya Durum/Esc ekranında bulabilirsiniz. Seri numarasının tam olarak sayısal kısmıdır (SN veya S/N olarak gösterilir)."; diff --git a/Dependencies/LoopKit/LoopKit Example/tr.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/tr.lproj/Main.strings index 35481722b9..84f58a8ddd 100644 --- a/Dependencies/LoopKit/LoopKit Example/tr.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/tr.lproj/Main.strings @@ -1,9 +1,9 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; /* Class = "UILabel"; text = "Title"; ObjectID = "Arm-wq-HPj"; */ -"Arm-wq-HPj.text" = "Title"; +"Arm-wq-HPj.text" = "Başlık"; /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/vi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/vi.lproj/Localizable.strings index 4c8bf89415..f31ff64b58 100644 --- a/Dependencies/LoopKit/LoopKit Example/vi.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/vi.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; +"Basal Rates" = "Lịch biểu tiêm liều nền"; /* The title of the carb ratios schedule screen */ "Carb Ratios" = "Carb Ratios"; @@ -14,7 +14,7 @@ "Diagnostic" = "Chuẩn đoán"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Khai báo 6 số ID của bơm"; +"Enter the 6-digit pump ID" = "Nhập 6 số ID của bơm"; /* The title for the cell displaying data generation */ "Generate Data" = "Xuất bản dữ liệu"; @@ -27,7 +27,7 @@ "Pump ID" = "Số ID của bơm"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "Ngăn chứa insulin"; +"Reservoir" = "Reservoir"; /* Title for the cell resetting the data manager */ "Reset" = "Khôi phục lại"; diff --git a/Dependencies/LoopKit/LoopKit Example/vi.lproj/Main.strings b/Dependencies/LoopKit/LoopKit Example/vi.lproj/Main.strings index 35481722b9..8d5a826f8f 100644 --- a/Dependencies/LoopKit/LoopKit Example/vi.lproj/Main.strings +++ b/Dependencies/LoopKit/LoopKit Example/vi.lproj/Main.strings @@ -1,4 +1,3 @@ - /* Class = "UITableViewController"; title = "UI Tests"; ObjectID = "7bK-jq-Zjz"; */ "7bK-jq-Zjz.title" = "UI Tests"; @@ -7,3 +6,4 @@ /* Class = "UINavigationController"; title = "UI Tests"; ObjectID = "RMx-3f-FxP"; */ "RMx-3f-FxP.title" = "UI Tests"; + diff --git a/Dependencies/LoopKit/LoopKit Example/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit Example/zh-Hans.lproj/Localizable.strings index c1474255de..2e60c62f6a 100644 --- a/Dependencies/LoopKit/LoopKit Example/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/LoopKit/LoopKit Example/zh-Hans.lproj/Localizable.strings @@ -14,7 +14,7 @@ "Diagnostic" = "诊断"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "输入6位数字泵编号"; +"Enter the 6-digit pump ID" = "输入六位数字的泵ID"; /* The title for the cell displaying data generation */ "Generate Data" = "创建日期"; @@ -24,10 +24,10 @@ "Insulin Sensitivity" = "胰岛素敏感系数"; /* The title text for the pump ID */ -"Pump ID" = "泵编号"; +"Pump ID" = "胰岛素泵序列号"; /* The title for the cell navigating to the reservoir screen */ -"Reservoir" = "储药器"; +"Reservoir" = "胰岛素容量"; /* Title for the cell resetting the data manager */ "Reset" = "重置"; diff --git a/Dependencies/LoopKit/LoopKit.xcodeproj/project.pbxproj b/Dependencies/LoopKit/LoopKit.xcodeproj/project.pbxproj index 6dfe4a0148..6b13fc894f 100644 --- a/Dependencies/LoopKit/LoopKit.xcodeproj/project.pbxproj +++ b/Dependencies/LoopKit/LoopKit.xcodeproj/project.pbxproj @@ -48,18 +48,12 @@ 1DD9CE9926B8CC2A008B4A46 /* HKDevice+Encodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD9CE9826B8CC2A008B4A46 /* HKDevice+Encodable.swift */; }; 1DD9CE9A26B8CF4A008B4A46 /* HKDevice+Encodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD9CE9826B8CC2A008B4A46 /* HKDevice+Encodable.swift */; }; 1DE35E7A24ABEC720086F9AE /* DeviceManagerUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE35E7924ABEC720086F9AE /* DeviceManagerUI.swift */; }; - 1DECC3F52513F98D00F4056E /* UITextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DECC3F42513F98D00F4056E /* UITextField.swift */; }; 1DEE227724A676A300693C32 /* HKHealthStoreMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFF1E203A763F008C4892 /* HKHealthStoreMock.swift */; }; 1DEE229D24A676A300693C32 /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D8FDCB1C728FDF0073BE78 /* LoopKit.framework */; }; 1DFB99D6245CB2E900DCC8C9 /* AlertTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB99D5245CB2E900DCC8C9 /* AlertTests.swift */; }; 1DFFB988271740EE0075AEAA /* MockSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DFFB987271740EE0075AEAA /* MockSupport.swift */; }; - 1F5DAB1D2118C95700048054 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; - 1F5DAB1F2118C95700048054 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; - 1F5DAB202118C95700048054 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; - 1F5DAB212118C95700048054 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; 1F5DAB2D2118CE9300048054 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1F5DAB2B2118CE9300048054 /* Localizable.strings */; }; 1FE58796211D12CE004F24ED /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D68A9E31FE0A3D300522C49 /* Localizable.strings */; }; - 430059241CCDD08C00C861EA /* NSDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF11C7290350073BE78 /* NSDateFormatter.swift */; }; 430157FA1C7EC03B00B64B63 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430157F91C7EC03B00B64B63 /* AppDelegate.swift */; }; 430157FC1C7EC03B00B64B63 /* MasterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430157FB1C7EC03B00B64B63 /* MasterViewController.swift */; }; 430158011C7EC03B00B64B63 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 430157FF1C7EC03B00B64B63 /* Main.storyboard */; }; @@ -68,14 +62,8 @@ 430158191C7ECB5E00B64B63 /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D8FDCB1C728FDF0073BE78 /* LoopKit.framework */; }; 4301581A1C7ECB5E00B64B63 /* LoopKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 43D8FDCB1C728FDF0073BE78 /* LoopKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4301582D1C7ECD7A00B64B63 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4301582C1C7ECD7A00B64B63 /* HealthKit.framework */; }; - 43025DAF1D5AB2E300106C28 /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; 43026D642132404900A332E2 /* ice_minus_flat_carb_effect_output.json in Resources */ = {isa = PBXBuildFile; fileRef = 43026D632132404900A332E2 /* ice_minus_flat_carb_effect_output.json */; }; - 4302F4D91D4D32D500F0FCAF /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; 4302F4DF1D4E607B00F0FCAF /* LegacyInsulinDeliveryTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302F4DE1D4E607B00F0FCAF /* LegacyInsulinDeliveryTableViewController.swift */; }; - 4303C4921E2D665000ADEDC8 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; - 4303C4941E2D665F00ADEDC8 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; - 43177D021D3729E60006E908 /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1DF1CF269D8000DB779 /* IdentifiableClass.swift */; }; - 43177D041D372A7F0006E908 /* CarbEntryTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43177D031D372A7F0006E908 /* CarbEntryTableViewController.swift */; }; 4322B76C202F9ECD0002837D /* CarbMathTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE411C7291900073BE78 /* CarbMathTests.swift */; }; 4322B76D202F9EF20002837D /* GlucoseMathTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE991C7293D00073BE78 /* GlucoseMathTests.swift */; }; 4322B76E202FA26B0002837D /* GlucoseMath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE861C72934C0073BE78 /* GlucoseMath.swift */; }; @@ -92,7 +80,6 @@ 4322B779202FA2790002837D /* NewCarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE5B1C7291D80073BE78 /* NewCarbEntry.swift */; }; 4322B77A202FA2790002837D /* NSUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4346D1FB1C79481E00ABAFE3 /* NSUserDefaults.swift */; }; 4322B77B202FA2790002837D /* StoredCarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE4E1C7291BD0073BE78 /* StoredCarbEntry.swift */; }; - 4322B77C202FA2A60002837D /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; 4322B77D202FA2AF0002837D /* NewPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302F4EA1D50670500F0FCAF /* NewPumpEvent.swift */; }; 4322B77E202FA2AF0002837D /* PersistedPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302F4EC1D5068CE00F0FCAF /* PersistedPumpEvent.swift */; }; 4322B77F202FA2AF0002837D /* PersistenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FEE21C7294D50073BE78 /* PersistenceController.swift */; }; @@ -140,7 +127,6 @@ 4322B7AA202FA3D20002837D /* momentum_effect_rising_glucose_output.json in Resources */ = {isa = PBXBuildFile; fileRef = 43D8FEA11C7293FA0073BE78 /* momentum_effect_rising_glucose_output.json */; }; 4322B7AB202FA3D20002837D /* momentum_effect_stable_glucose_input.json in Resources */ = {isa = PBXBuildFile; fileRef = 43D8FEA21C7293FA0073BE78 /* momentum_effect_stable_glucose_input.json */; }; 4322B7AC202FA3D20002837D /* momentum_effect_stable_glucose_output.json in Resources */ = {isa = PBXBuildFile; fileRef = 43D8FEA31C7293FA0073BE78 /* momentum_effect_stable_glucose_output.json */; }; - 43260F6E21C4BF7A00DD6837 /* UUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43260F6D21C4BF7A00DD6837 /* UUID.swift */; }; 432762741D60505F0083215A /* HKQuantitySample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432762731D60505F0083215A /* HKQuantitySample.swift */; }; 432CF86720D76AB90066B889 /* SettingsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432CF86620D76AB90066B889 /* SettingsTableViewCell.swift */; }; 432CF86920D76B320066B889 /* SetupButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432CF86820D76B320066B889 /* SetupButton.swift */; }; @@ -149,7 +135,6 @@ 432CF86F20D76CCF0066B889 /* GlucoseTrend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432CF86E20D76CCF0066B889 /* GlucoseTrend.swift */; }; 432CF87120D76D5A0066B889 /* GlucoseDisplayable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432CF87020D76D5A0066B889 /* GlucoseDisplayable.swift */; }; 432CF87320D774220066B889 /* PumpManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432CF87220D774220066B889 /* PumpManager.swift */; }; - 432CF87420D774520066B889 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */; }; 433BC7A720523DB7000B1200 /* NewGlucoseSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 433BC7A620523DB7000B1200 /* NewGlucoseSample.swift */; }; 433BC7AA20538D4C000B1200 /* CachedGlucoseObject+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 433BC7A820538D4C000B1200 /* CachedGlucoseObject+CoreDataClass.swift */; }; 433BC7AB20538D4C000B1200 /* CachedGlucoseObject+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 433BC7A920538D4C000B1200 /* CachedGlucoseObject+CoreDataProperties.swift */; }; @@ -164,11 +149,8 @@ 434113BE20F2C72000D05747 /* CachedCarbObjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434113BD20F2C72000D05747 /* CachedCarbObjectTests.swift */; }; 4343951F205EED1F0056DC37 /* counteraction_effect_falling_glucose_output.json in Resources */ = {isa = PBXBuildFile; fileRef = 4343951E205EED1F0056DC37 /* counteraction_effect_falling_glucose_output.json */; }; 43439521205F2D910056DC37 /* counteraction_effect_falling_glucose_input.json in Resources */ = {isa = PBXBuildFile; fileRef = 43439520205F2D910056DC37 /* counteraction_effect_falling_glucose_input.json */; }; - 434570441FE605E30089C4DC /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434570431FE605E30089C4DC /* OSLog.swift */; }; 434C5F9C2098352500B2FD1A /* QuantityFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9B2098352500B2FD1A /* QuantityFormatter.swift */; }; - 434C5F9E209938CD00B2FD1A /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */; }; 434C5FA0209ABD4700B2FD1A /* QuantityFormatterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9F209ABD4700B2FD1A /* QuantityFormatterTests.swift */; }; - 434C5FA1209AC4EE00B2FD1A /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; 4352A73C20DECF0700CAC200 /* CGMManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4352A73B20DECF0600CAC200 /* CGMManager.swift */; }; 4353D16F203D104F007B4ECD /* CarbStoreError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4353D16E203D104F007B4ECD /* CarbStoreError.swift */; }; 4353D170203D3E5C007B4ECD /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4301582C1C7ECD7A00B64B63 /* HealthKit.framework */; }; @@ -229,7 +211,6 @@ 439706E922D2E94800C81566 /* BoundSwitchTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 439706E822D2E94800C81566 /* BoundSwitchTableViewCell.swift */; }; 43A8EC3C210CEEA500A81379 /* CGMManagerUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A8EC3B210CEEA500A81379 /* CGMManagerUI.swift */; }; 43AF1FB21C926CDD00EA2F3D /* HKQuantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AF1FB11C926CDD00EA2F3D /* HKQuantity.swift */; }; - 43B17C81208BFA6600AC27E9 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; 43B17C89208EEC0B00AC27E9 /* HealthStoreUnitCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43B17C88208EEC0B00AC27E9 /* HealthStoreUnitCache.swift */; }; 43BA7158201E484D0058961E /* LoopKitUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 43BA7156201E484D0058961E /* LoopKitUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; 43BA715B201E484D0058961E /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BA7154201E484D0058961E /* LoopKitUI.framework */; }; @@ -242,8 +223,6 @@ 43BA716F201E49220058961E /* FoodEmojiDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4359E74D1EEA1FBC0022EF0C /* FoodEmojiDataSource.swift */; }; 43BA7170201E49220058961E /* FoodTypeShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 433D705D1EFB29700004EB9F /* FoodTypeShortcutCell.swift */; }; 43BA7173201E492E0058961E /* DateAndDurationTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 434A01CF1F019D9100938125 /* DateAndDurationTableViewCell.xib */; }; - 43BA717A201E4F1D0058961E /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1DF1CF269D8000DB779 /* IdentifiableClass.swift */; }; - 43BA717B201EE6A40058961E /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43177D0D1D3737420006E908 /* NibLoadable.swift */; }; 43BA717D201EE7090058961E /* GlucoseRangeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE071C7290530073BE78 /* GlucoseRangeTableViewCell.swift */; }; 43BA717E201EE7090058961E /* CommandResponseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB6491D712158007B9C70 /* CommandResponseViewController.swift */; }; 43BA717F201EE7090058961E /* GlucoseRangeOverrideTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43177D0B1D3734040006E908 /* GlucoseRangeOverrideTableViewCell.swift */; }; @@ -254,11 +233,6 @@ 43BA7184201EE7090058961E /* TextFieldTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1F31CF294A9000DB779 /* TextFieldTableViewController.swift */; }; 43BA7185201EE7090058961E /* DailyValueScheduleTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE051C7290530073BE78 /* DailyValueScheduleTableViewController.swift */; }; 43BA7187201EE7090058961E /* GlucoseRangeScheduleTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE061C7290530073BE78 /* GlucoseRangeScheduleTableViewController.swift */; }; - 43BA7188201EE85B0058961E /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; - 43BA7189201EE8980058961E /* UITableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1E31CF26A1E000DB779 /* UITableViewCell.swift */; }; - 43BA718A201EE8CF0058961E /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; - 43BA718B201EE93C0058961E /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; - 43BA718C201EEE5A0058961E /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; 43BA7192202039950058961E /* RepeatingScheduleValueTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 43D8FE0B1C7290530073BE78 /* RepeatingScheduleValueTableViewCell.xib */; }; 43BA7193202039A30058961E /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 434FF1EF1CF29451000DB779 /* TextFieldTableViewCell.xib */; }; 43BA7194202039A90058961E /* GlucoseRangeTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 43D8FE081C7290530073BE78 /* GlucoseRangeTableViewCell.xib */; }; @@ -280,10 +254,8 @@ 43D8FDFA1C7290350073BE78 /* GlucoseRangeSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEB1C7290350073BE78 /* GlucoseRangeSchedule.swift */; }; 43D8FDFB1C7290350073BE78 /* GlucoseSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEC1C7290350073BE78 /* GlucoseSchedule.swift */; }; 43D8FDFC1C7290350073BE78 /* HealthKitSampleStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDED1C7290350073BE78 /* HealthKitSampleStore.swift */; }; - 43D8FDFD1C7290350073BE78 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; 43D8FDFE1C7290350073BE78 /* LoopMath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEF1C7290350073BE78 /* LoopMath.swift */; }; 43D8FDFF1C7290350073BE78 /* Date.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF01C7290350073BE78 /* Date.swift */; }; - 43D8FE011C7290350073BE78 /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; 43D8FE021C7290350073BE78 /* SampleValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF31C7290350073BE78 /* SampleValue.swift */; }; 43D8FE1D1C72906E0073BE78 /* BasalRateScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE1A1C72906E0073BE78 /* BasalRateScheduleTests.swift */; }; 43D8FE1E1C72906E0073BE78 /* NSDateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE1B1C72906E0073BE78 /* NSDateTests.swift */; }; @@ -326,13 +298,11 @@ 43FB60E920DCBE64002B996B /* PumpManagerStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43FB60E820DCBE64002B996B /* PumpManagerStatus.swift */; }; 43FB610720DDF19B002B996B /* PumpManagerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43FB610620DDF19B002B996B /* PumpManagerError.swift */; }; 4B67E2CB289B4EDB002D92AF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B67E2C9289B4EDB002D92AF /* InfoPlist.strings */; }; - 4B67E2CE289B4EDB002D92AF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B67E2CC289B4EDB002D92AF /* Localizable.strings */; }; 7D68A9AE1FE0A3D000522C49 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D68A9B01FE0A3D000522C49 /* Localizable.strings */; }; 8907E35921A9D0EC00335852 /* GlucoseEntryTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8907E35821A9D0EC00335852 /* GlucoseEntryTableViewController.swift */; }; 89186C0524BEC9CA0003D0F3 /* SegmentedControlTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89186C0424BEC9CA0003D0F3 /* SegmentedControlTableViewCell.swift */; }; 89186C0724BF7FC70003D0F3 /* Guardrail+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89186C0624BF7FC70003D0F3 /* Guardrail+UI.swift */; }; 89186C0B24BFD6DB0003D0F3 /* DurationPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89186C0A24BFD6DB0003D0F3 /* DurationPicker.swift */; }; - 891A3FC72247268F00378B27 /* Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891A3FC62247268F00378B27 /* Math.swift */; }; 891A3FD12249948A00378B27 /* TemporaryScheduleOverrideHistoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891A3FD02249948A00378B27 /* TemporaryScheduleOverrideHistoryTests.swift */; }; 891A3FD32249990900378B27 /* DailyValueSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891A3FD22249990900378B27 /* DailyValueSchedule.swift */; }; 891A3FD5224B047200378B27 /* DailyQuantitySchedule+Override.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891A3FD4224B047200378B27 /* DailyQuantitySchedule+Override.swift */; }; @@ -364,7 +334,6 @@ 892A5DB42231E191008961AB /* LevelMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5DB12231E191008961AB /* LevelMaskView.swift */; }; 892A5DB72231E1A0008961AB /* ReservoirVolumeHUDView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 892A5DB52231E19F008961AB /* ReservoirVolumeHUDView.xib */; }; 892A5DB82231E1A0008961AB /* ReservoirVolumeHUDView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5DB62231E19F008961AB /* ReservoirVolumeHUDView.swift */; }; - 892A5DBC2231E20C008961AB /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5DBB2231E20C008961AB /* Comparable.swift */; }; 892ADE002446C858007CE08C /* Card.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892ADDFF2446C858007CE08C /* Card.swift */; }; 893C9F8C2447DBD900CD4185 /* CardBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 893C9F8B2447DBD900CD4185 /* CardBuilder.swift */; }; 895FE06E22011E9A00FCF18A /* OverrideEmojiDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 895FE06C22011E9900FCF18A /* OverrideEmojiDataSource.swift */; }; @@ -390,13 +359,10 @@ 89653C822473592600E1BAA5 /* CarbRatioScheduleEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89653C812473592600E1BAA5 /* CarbRatioScheduleEditor.swift */; }; 89653C8424738D2B00E1BAA5 /* BasalRateScheduleEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89653C8324738D2B00E1BAA5 /* BasalRateScheduleEditor.swift */; }; 8974AFC022120D7A0043F01B /* TemporaryScheduleOverrideTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8974AFBF22120D7A0043F01B /* TemporaryScheduleOverrideTests.swift */; }; - 8974B0682215FE460043F01B /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8974B0672215FE460043F01B /* Collection.swift */; }; - 8974B0692215FE460043F01B /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8974B0672215FE460043F01B /* Collection.swift */; }; 898B4E75246CCAB50053C484 /* Binding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898B4E74246CCAB50053C484 /* Binding.swift */; }; 898B4E77246DAE280053C484 /* GlucoseRangePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898B4E76246DAE280053C484 /* GlucoseRangePicker.swift */; }; 898B4E7B246DC6A70053C484 /* CorrectionRangeScheduleEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898B4E7A246DC6A70053C484 /* CorrectionRangeScheduleEditor.swift */; }; 898B4E7E246DEB920053C484 /* GuardrailConstrainedQuantityRangeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898B4E7D246DEB920053C484 /* GuardrailConstrainedQuantityRangeView.swift */; }; - 898C896A24D4BF11002FA994 /* Guardrail+Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898C896924D4BF11002FA994 /* Guardrail+Settings.swift */; }; 898C896D24D4BF75002FA994 /* FloatingPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898C896C24D4BF75002FA994 /* FloatingPoint.swift */; }; 898C897124D4C0E4002FA994 /* GuardrailTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898C897024D4C0E4002FA994 /* GuardrailTests.swift */; }; 898E6E5D2241783C0019E459 /* SetConstrainedScheduleEntryTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5D63222F6B13008961AB /* SetConstrainedScheduleEntryTableViewCell.swift */; }; @@ -407,7 +373,6 @@ 898E6E6E2241ED9F0019E459 /* SuspendResumeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898E6E6D2241ED9F0019E459 /* SuspendResumeTableViewCell.swift */; }; 898E6E702241EDB70019E459 /* PercentageTextFieldTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898E6E6F2241EDB70019E459 /* PercentageTextFieldTableViewController.swift */; }; 898E6E722241EDC10019E459 /* DateAndDurationTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898E6E712241EDC10019E459 /* DateAndDurationTableViewController.swift */; }; - 898E6E732241EE000019E459 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5DBB2231E20C008961AB /* Comparable.swift */; }; 899012C1246F1D8F007B88BA /* ExpandableSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 899012C0246F1D8F007B88BA /* ExpandableSetting.swift */; }; 89904032245B5CA500F1C0A2 /* Deletable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89904031245B5CA500F1C0A2 /* Deletable.swift */; }; 8992426521EC138000EA512B /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8992426421EC138000EA512B /* UIColor.swift */; }; @@ -418,11 +383,8 @@ 89ADE12B226BDB730067222B /* DateRelativeCarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ADE12A226BDB730067222B /* DateRelativeCarbEntry.swift */; }; 89ADE12D226BDD190067222B /* DateRelativeBasalEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ADE12C226BDD190067222B /* DateRelativeBasalEntry.swift */; }; 89ADE12F226BDED40067222B /* DateRelativeBolusEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ADE12E226BDED40067222B /* DateRelativeBolusEntry.swift */; }; - 89ADE132226BE0590067222B /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; 89ADE134226BF0490067222B /* TestingScenarioInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ADE133226BF0490067222B /* TestingScenarioInstance.swift */; }; 89ADE136226BF0BE0067222B /* DateRelativeGlucoseSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ADE135226BF0BE0067222B /* DateRelativeGlucoseSample.swift */; }; - 89ADE138226BF51D0067222B /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; - 89ADE139226BF51E0067222B /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; 89AE2226228BC54C00BDFD85 /* TemporaryScheduleOverridePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE221F228BC54C00BDFD85 /* TemporaryScheduleOverridePreset.swift */; }; 89AE2227228BC54C00BDFD85 /* TemporaryScheduleOverride.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE2223228BC54C00BDFD85 /* TemporaryScheduleOverride.swift */; }; 89AE2228228BC54C00BDFD85 /* TemporaryScheduleOverrideSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE2224228BC54C00BDFD85 /* TemporaryScheduleOverrideSettings.swift */; }; @@ -444,9 +406,7 @@ 89AE223A228BCAAB00BDFD85 /* TemporaryScheduleOverridePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE221F228BC54C00BDFD85 /* TemporaryScheduleOverridePreset.swift */; }; 89AE223B228BCAAB00BDFD85 /* TemporaryScheduleOverrideSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE2224228BC54C00BDFD85 /* TemporaryScheduleOverrideSettings.swift */; }; 89AE223C228BCAAB00BDFD85 /* WeakSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AE222A228BC56A00BDFD85 /* WeakSet.swift */; }; - 89AE223D228BCB0B00BDFD85 /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8974B0672215FE460043F01B /* Collection.swift */; }; 89AE223E228BD3C400BDFD85 /* SetConstrainedScheduleEntryTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 892A5D62222F6B13008961AB /* SetConstrainedScheduleEntryTableViewCell.xib */; }; - 89AE2245228D0B5C00BDFD85 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; 89AF78C02447E285002B4FCC /* CardStackBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AF78BF2447E285002B4FCC /* CardStackBuilder.swift */; }; 89AF78C22447E353002B4FCC /* Splat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AF78C12447E353002B4FCC /* Splat.swift */; }; 89AF78C624482269002B4FCC /* ActionButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AF78C524482268002B4FCC /* ActionButtonStyle.swift */; }; @@ -456,8 +416,6 @@ 89BE75C524649C8100B145D9 /* NewScheduleItemEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BE75C424649C8100B145D9 /* NewScheduleItemEditor.swift */; }; 89BE75C72464B4A900B145D9 /* Environment+Dismiss.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BE75C62464B4A900B145D9 /* Environment+Dismiss.swift */; }; 89BE75CB2464BC2000B145D9 /* AlertContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BE75CA2464BC2000B145D9 /* AlertContent.swift */; }; - 89CA2B35226D1624004D9350 /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CA2B33226D15E0004D9350 /* MutableCollection.swift */; }; - 89CA2B36226D1627004D9350 /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CA2B33226D15E0004D9350 /* MutableCollection.swift */; }; 89CA2B38226D4456004D9350 /* DateRelativeQuantity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CA2B37226D4456004D9350 /* DateRelativeQuantity.swift */; }; 89CAB36B24C9EC25009EE3CE /* DismissibleKeyboardTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CAB36A24C9EC25009EE3CE /* DismissibleKeyboardTextField.swift */; }; 89CAB36D24C9EC98009EE3CE /* Keyboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CAB36C24C9EC98009EE3CE /* Keyboard.swift */; }; @@ -482,22 +440,8 @@ 89D204BC21CC7F34001238CC /* SineCurveParametersTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8907E35A21A9D1B200335852 /* SineCurveParametersTableViewController.swift */; }; 89D204BD21CC7F34001238CC /* RandomOutlierTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892F481A21AB2964004D313D /* RandomOutlierTableViewController.swift */; }; 89D204BE21CC7F34001238CC /* GlucoseTrendTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89D2046B21C83C3F001238CC /* GlucoseTrendTableViewController.swift */; }; - 89D204BF21CC7FFB001238CC /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; - 89D204C121CC8005001238CC /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43177D0D1D3737420006E908 /* NibLoadable.swift */; }; - 89D204C221CC8008001238CC /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1DF1CF269D8000DB779 /* IdentifiableClass.swift */; }; - 89D204C421CC803C001238CC /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; - 89D204C521CC815E001238CC /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; - 89D204C621CC8165001238CC /* UITableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FF1E31CF26A1E000DB779 /* UITableViewCell.swift */; }; - 89D204CB21CC8228001238CC /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */; }; - 89D204CC21CC8236001238CC /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; 89D204D221CC837A001238CC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 89D204D121CC837A001238CC /* Assets.xcassets */; }; 89E7E61024D11AB600591386 /* OrientationLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89E7E60F24D11AB600591386 /* OrientationLock.swift */; }; - 89ED164024A29BA300C9A105 /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ED163F24A29BA300C9A105 /* Sequence.swift */; }; - 89ED164124A29BA300C9A105 /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ED163F24A29BA300C9A105 /* Sequence.swift */; }; - 89ED164324A29BE400C9A105 /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ED164224A29BE400C9A105 /* ClosedRange.swift */; }; - 89ED164424A29BE400C9A105 /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89ED164224A29BE400C9A105 /* ClosedRange.swift */; }; - 89F53E9422B4328E0024A67C /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CA2B33226D15E0004D9350 /* MutableCollection.swift */; }; - 89F53E9522B437570024A67C /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CA2B33226D15E0004D9350 /* MutableCollection.swift */; }; 89F6E30D2449713600CB9E15 /* CardStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F6E30C2449713600CB9E15 /* CardStack.swift */; }; 89F6E30F244A1A5D00CB9E15 /* Guardrail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F6E30E244A1A5D00CB9E15 /* Guardrail.swift */; }; 89F6E311244A1AAB00CB9E15 /* SettingDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F6E310244A1AAB00CB9E15 /* SettingDescription.swift */; }; @@ -527,6 +471,11 @@ A933DB8924BF97CC009B417A /* CriticalEventLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = A933DB8724BF956F009B417A /* CriticalEventLog.swift */; }; A935094426E2FAB70030B60D /* GlucoseCondition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935094326E2FAB70030B60D /* GlucoseCondition.swift */; }; A935094526E2FAB70030B60D /* GlucoseCondition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935094326E2FAB70030B60D /* GlucoseCondition.swift */; }; + A935793B29A2570400246DED /* CarbAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935793629A2570300246DED /* CarbAction.swift */; }; + A935793C29A2570400246DED /* OverrideCancelAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935793729A2570300246DED /* OverrideCancelAction.swift */; }; + A935793D29A2570400246DED /* OverrideAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935793829A2570400246DED /* OverrideAction.swift */; }; + A935793E29A2570400246DED /* BolusAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935793929A2570400246DED /* BolusAction.swift */; }; + A935793F29A2570400246DED /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935793A29A2570400246DED /* Action.swift */; }; A93761C125ED670200F6BE43 /* BluetoothProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A93761C025ED670200F6BE43 /* BluetoothProvider.swift */; }; A93761C225ED670200F6BE43 /* BluetoothProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A93761C025ED670200F6BE43 /* BluetoothProvider.swift */; }; A93CA899278D08CC003B5A01 /* PumpAlarmType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A93CA898278D08CC003B5A01 /* PumpAlarmType.swift */; }; @@ -559,7 +508,6 @@ A96E6C3727B35BC600F81A5B /* AnyCodableEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A96E6C3627B35BC600F81A5B /* AnyCodableEquatable.swift */; }; A96E6C3827B35BC600F81A5B /* AnyCodableEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A96E6C3627B35BC600F81A5B /* AnyCodableEquatable.swift */; }; A971C89F23C68B030099BEFC /* GlucoseStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A971C89E23C68B030099BEFC /* GlucoseStoreTests.swift */; }; - A971C8A023C69E0F0099BEFC /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; A971C8A223C6B17D0099BEFC /* SettingsStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A971C8A123C6B17D0099BEFC /* SettingsStoreTests.swift */; }; A971C8A423C6B1890099BEFC /* DosingDecisionStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A971C8A323C6B1890099BEFC /* DosingDecisionStoreTests.swift */; }; A985464B251442010099C1A6 /* OutputStreamTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A985464A251442010099C1A6 /* OutputStreamTests.swift */; }; @@ -600,12 +548,10 @@ A9E1E6AD24E1D8590073CA39 /* CacheStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFF1C203A45DB008C4892 /* CacheStore.swift */; }; A9E1E6AE24E1D8860073CA39 /* NSManagedObjectContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFF20203AA740008C4892 /* NSManagedObjectContext.swift */; }; A9E6758222713F4700E25293 /* LoopNotificationCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1814B83225B9ED5008D2D8E /* LoopNotificationCategory.swift */; }; - A9E6758322713F4700E25293 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEE1C7290350073BE78 /* HKUnit.swift */; }; A9E6758422713F4700E25293 /* NewCarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE5B1C7291D80073BE78 /* NewCarbEntry.swift */; }; A9E6758522713F4700E25293 /* GlucoseMath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE861C72934C0073BE78 /* GlucoseMath.swift */; }; A9E6758722713F4700E25293 /* CarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE4A1C7291BD0073BE78 /* CarbEntry.swift */; }; A9E6758822713F4700E25293 /* HealthKitSampleStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDED1C7290350073BE78 /* HealthKitSampleStore.swift */; }; - A9E6758B22713F4700E25293 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434570431FE605E30089C4DC /* OSLog.swift */; }; A9E6758C22713F4700E25293 /* DoseType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A0670E1F23CAC700E9E90F /* DoseType.swift */; }; A9E6758D22713F4700E25293 /* CachedCarbObject+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFEE92036A156008C4892 /* CachedCarbObject+CoreDataClass.swift */; }; A9E6758E22713F4700E25293 /* DailyValueSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDE81C7290350073BE78 /* DailyValueSchedule.swift */; }; @@ -615,7 +561,6 @@ A9E6759222713F4700E25293 /* PumpManagerStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43FB60E820DCBE64002B996B /* PumpManagerStatus.swift */; }; A9E6759322713F4700E25293 /* CarbMath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE4B1C7291BD0073BE78 /* CarbMath.swift */; }; A9E6759522713F4700E25293 /* ExponentialInsulinModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DB55B21F2E964400C483A2 /* ExponentialInsulinModel.swift */; }; - A9E6759622713F4700E25293 /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; A9E6759722713F4700E25293 /* DailyQuantitySchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDE71C7290350073BE78 /* DailyQuantitySchedule.swift */; }; A9E6759822713F4700E25293 /* CarbRatioSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDE61C7290350073BE78 /* CarbRatioSchedule.swift */; }; A9E6759922713F4700E25293 /* GlucoseSampleValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43971A3F1C8CABFF0013154F /* GlucoseSampleValue.swift */; }; @@ -632,23 +577,19 @@ A9E675A522713F4700E25293 /* GlucoseValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D9888A1C87E47800DA4467 /* GlucoseValue.swift */; }; A9E675A622713F4700E25293 /* BasalRateSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDE51C7290340073BE78 /* BasalRateSchedule.swift */; }; A9E675A722713F4700E25293 /* DoseStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FEDD1C7294D50073BE78 /* DoseStore.swift */; }; - A9E675A822713F4700E25293 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; A9E675A922713F4700E25293 /* PumpEvent+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DFE27C1CB1D6A600EFBE95 /* PumpEvent+CoreDataProperties.swift */; }; A9E675AA22713F4700E25293 /* ReservoirValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302F4E81D5066F400F0FCAF /* ReservoirValue.swift */; }; A9E675AB22713F4700E25293 /* HKHealthStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFF23203BE402008C4892 /* HKHealthStore.swift */; }; A9E675AC22713F4700E25293 /* Reservoir.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FEE31C7294D50073BE78 /* Reservoir.swift */; }; A9E675AE22713F4700E25293 /* CarbValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4378B64E1ED61C64000AE785 /* CarbValue.swift */; }; A9E675AF22713F4700E25293 /* PumpEventType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DFE27F1CB1E12D00EFBE95 /* PumpEventType.swift */; }; - A9E675B122713F4700E25293 /* NSData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434FB64B1D712449007B9C70 /* NSData.swift */; }; A9E675B222713F4700E25293 /* GlucoseRangeSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDEB1C7290350073BE78 /* GlucoseRangeSchedule.swift */; }; A9E675B322713F4700E25293 /* PersistedPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302F4EC1D5068CE00F0FCAF /* PersistedPumpEvent.swift */; }; A9E675B422713F4700E25293 /* CachedCarbObject+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437AFEEA2036A156008C4892 /* CachedCarbObject+CoreDataProperties.swift */; }; A9E675B522713F4700E25293 /* AbsorbedCarbValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4378B64C1ED61C22000AE785 /* AbsorbedCarbValue.swift */; }; - A9E675B622713F4700E25293 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5DAB1C2118C95700048054 /* LocalizedString.swift */; }; A9E675B722713F4700E25293 /* NSManagedObjectContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434113AC20F287DC00D05747 /* NSManagedObjectContext.swift */; }; A9E675B822713F4700E25293 /* StoredCarbEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FE4E1C7291BD0073BE78 /* StoredCarbEntry.swift */; }; A9E675BA22713F4700E25293 /* InsulinValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DFE2811CB1FB8500EFBE95 /* InsulinValue.swift */; }; - A9E675BB22713F4700E25293 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */; }; A9E675BD22713F4700E25293 /* HKQuantitySample+InsulinKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437B064D1F2EB35800D95237 /* HKQuantitySample+InsulinKit.swift */; }; A9E675BE22713F4700E25293 /* InsulinModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EE16B1F2964B3007DB9F1 /* InsulinModel.swift */; }; A9E675BF22713F4700E25293 /* QuantityFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434C5F9B2098352500B2FD1A /* QuantityFormatter.swift */; }; @@ -728,7 +669,6 @@ B47ECFD625DC22D20024A54D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B47ECFD525DC22D20024A54D /* Assets.xcassets */; }; B4A2AAB1240830A30066563F /* LabeledTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A2AAB0240830A30066563F /* LabeledTextField.swift */; }; B4A2AAB3240832350066563F /* MultipleSelectionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A2AAB2240832350066563F /* MultipleSelectionList.swift */; }; - B4AA27F224C1ECDC001B8AFA /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4AA27F124C1ECDC001B8AFA /* UIColor.swift */; }; B4B7C1612603F241007379F6 /* InsulinSensitivityScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B7C1602603F241007379F6 /* InsulinSensitivityScheduleTests.swift */; }; B4B7C1772603F5F6007379F6 /* HKUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B7C1762603F5F6007379F6 /* HKUnitTests.swift */; }; B4B7C1BC2604E3FC007379F6 /* CorrectionRangeScheduleEditorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B7C1BB2604E3FC007379F6 /* CorrectionRangeScheduleEditorViewModel.swift */; }; @@ -744,11 +684,12 @@ B4D4C20D25F95A8700DA809D /* DisplayGlucoseUnitObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D4C20C25F95A8700DA809D /* DisplayGlucoseUnitObservable.swift */; }; C109240F286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C109240E286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift */; }; C1092410286A4ADB00FAD2B8 /* AutomaticDosingStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C109240E286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift */; }; - C1390AAF246A541C002F3C3C /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; C140DFFF260276BF000A4FF7 /* ManualBolusRecommendation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C140DFFE260276BF000A4FF7 /* ManualBolusRecommendation.swift */; }; C140E0522602908A000A4FF7 /* SettingsPresentationMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C140E0512602908A000A4FF7 /* SettingsPresentationMode.swift */; }; C1475B33264C30800040C7B1 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BA7154201E484D0058961E /* LoopKitUI.framework */; }; C14A7E7E295F43AB00CD87B4 /* ConfigurationPageScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14A7E7D295F43AB00CD87B4 /* ConfigurationPageScrollView.swift */; }; + C15E994429C67866004AB926 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B67E2CC289B4EDB002D92AF /* Localizable.strings */; }; + C15E994629C6790A004AB926 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C15E994529C6790A004AB926 /* LocalizedString.swift */; }; C164A56022F14C73000E3FA5 /* UnfinalizedDose.swift in Sources */ = {isa = PBXBuildFile; fileRef = C164A55F22F14C73000E3FA5 /* UnfinalizedDose.swift */; }; C164A56422F21081000E3FA5 /* MockPumpManagerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C164A56322F21081000E3FA5 /* MockPumpManagerState.swift */; }; C168CA7A280DD00F002BD2A7 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = C168CA77280DD00F002BD2A7 /* Model.xcdatamodeld */; }; @@ -764,18 +705,71 @@ C17F39D123CE34FD00FA1113 /* StoredDeviceLogEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F39CF23CE34B100FA1113 /* StoredDeviceLogEntry.swift */; }; C1814B84225B9ED5008D2D8E /* LoopNotificationCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1814B83225B9ED5008D2D8E /* LoopNotificationCategory.swift */; }; C1814B8C226371DF008D2D8E /* WeakSynchronizedDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1814B8B226371DF008D2D8E /* WeakSynchronizedDelegate.swift */; }; + C187337E29B9481500519CDF /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187337D29B9481500519CDF /* LocalizedString.swift */; }; + C187338A29B9486200519CDF /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187337F29B9486100519CDF /* Collection.swift */; }; + C187338B29B9486200519CDF /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338029B9486100519CDF /* Comparable.swift */; }; + C187338C29B9486200519CDF /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338129B9486100519CDF /* HKUnit.swift */; }; + C187338D29B9486200519CDF /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338229B9486200519CDF /* TimeInterval.swift */; }; + C187338E29B9486200519CDF /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338329B9486200519CDF /* ClosedRange.swift */; }; + C187338F29B9486200519CDF /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338429B9486200519CDF /* NumberFormatter.swift */; }; + C187339029B9486200519CDF /* Guardrail+Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338529B9486200519CDF /* Guardrail+Settings.swift */; }; + C187339129B9486200519CDF /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338629B9486200519CDF /* Data.swift */; }; + C187339229B9486200519CDF /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338729B9486200519CDF /* MutableCollection.swift */; }; + C187339329B9486200519CDF /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338829B9486200519CDF /* OSLog.swift */; }; + C187339429B9486200519CDF /* DateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338929B9486200519CDF /* DateFormatter.swift */; }; + C187339829B9488300519CDF /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339529B9488300519CDF /* Sequence.swift */; }; + C187339929B9488300519CDF /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339629B9488300519CDF /* TimeZone.swift */; }; + C187339A29B9488300519CDF /* UUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339729B9488300519CDF /* UUID.swift */; }; + C187339C29B948D800519CDF /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339B29B948D800519CDF /* Data.swift */; }; + C187339E29B948F200519CDF /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339D29B948F200519CDF /* HKUnit.swift */; }; + C18733AA29B9492300519CDF /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339F29B9492200519CDF /* NumberFormatter.swift */; }; + C18733AB29B9492300519CDF /* UITableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A029B9492200519CDF /* UITableViewCell.swift */; }; + C18733AC29B9492300519CDF /* UITextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A129B9492200519CDF /* UITextField.swift */; }; + C18733AD29B9492300519CDF /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A229B9492200519CDF /* TimeZone.swift */; }; + C18733AE29B9492300519CDF /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A329B9492200519CDF /* NSTimeInterval.swift */; }; + C18733AF29B9492300519CDF /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A429B9492200519CDF /* Collection.swift */; }; + C18733B029B9492300519CDF /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A529B9492200519CDF /* NibLoadable.swift */; }; + C18733B129B9492300519CDF /* Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A629B9492300519CDF /* Math.swift */; }; + C18733B229B9492300519CDF /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A729B9492300519CDF /* Comparable.swift */; }; + C18733B329B9492300519CDF /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A829B9492300519CDF /* IdentifiableClass.swift */; }; + C18733B429B9492300519CDF /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733A929B9492300519CDF /* HKUnit.swift */; }; + C18733B629B9495400519CDF /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733B529B9495400519CDF /* LocalizedString.swift */; }; + C18733B829B949FF00519CDF /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733B729B949FF00519CDF /* Data.swift */; }; + C18733BC29B94A3700519CDF /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733B929B94A3700519CDF /* HKUnit.swift */; }; + C18733BD29B94A3700519CDF /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733BA29B94A3700519CDF /* TimeInterval.swift */; }; + C18733BE29B94A3700519CDF /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733BB29B94A3700519CDF /* TimeZone.swift */; }; + C18733C529B94A6400519CDF /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733BF29B94A6300519CDF /* NumberFormatter.swift */; }; + C18733C629B94A6400519CDF /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733C029B94A6300519CDF /* Comparable.swift */; }; + C18733C729B94A6400519CDF /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733C129B94A6300519CDF /* IdentifiableClass.swift */; }; + C18733C829B94A6400519CDF /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733C229B94A6300519CDF /* NibLoadable.swift */; }; + C18733C929B94A6400519CDF /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733C329B94A6300519CDF /* TimeInterval.swift */; }; + C18733CA29B94A6400519CDF /* UITableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733C429B94A6300519CDF /* UITableViewCell.swift */; }; + C18733CC29B94A7A00519CDF /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733CB29B94A7A00519CDF /* LocalizedString.swift */; }; + C18733CE29B94B1700519CDF /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733CD29B94B1700519CDF /* IdentifiableClass.swift */; }; + C18733D029B94B3300519CDF /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733CF29B94B3300519CDF /* TimeInterval.swift */; }; + C18733D229B94B8E00519CDF /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18733D129B94B8E00519CDF /* HKUnit.swift */; }; C188B83422CC16AC0051760A /* InsulinSensitivityScheduleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C188B83322CC16AC0051760A /* InsulinSensitivityScheduleViewController.swift */; }; C191D26325B3815000C26C0B /* AutomaticDoseRecommendation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C191D26225B3815000C26C0B /* AutomaticDoseRecommendation.swift */; }; C1A174EC23DEAD670034DF11 /* DeviceLogEntry+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1F8403723DB84B700673141 /* DeviceLogEntry+CoreDataClass.swift */; }; C1A174ED23DEAD6A0034DF11 /* DeviceLogEntry+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1F8403823DB84B700673141 /* DeviceLogEntry+CoreDataProperties.swift */; }; - C1A3F5BE24AA6EE200329152 /* NSTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */; }; - C1B9E127256C1E91008E8B84 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 892A5DBB2231E20C008961AB /* Comparable.swift */; }; C1BECA93285902F5008075C4 /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43D8FDCB1C728FDF0073BE78 /* LoopKit.framework */; }; C1CAB9E926A3254800A57273 /* StoredInsulinModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1CAB9E826A3254800A57273 /* StoredInsulinModel.swift */; }; C1CB895925C8E7D900782BAC /* Modelv1v4.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = C1E84B8425C62FB100623C08 /* Modelv1v4.xcmappingmodel */; }; C1CCF1062858F07A0035389C /* SwiftCharts in Frameworks */ = {isa = PBXBuildFile; productRef = C1CCF1052858F07A0035389C /* SwiftCharts */; }; C1CCF1082858F1E10035389C /* SwiftCharts in Frameworks */ = {isa = PBXBuildFile; productRef = C1CCF1072858F1E10035389C /* SwiftCharts */; }; + C1CEBFD229BA9D43007FD8A3 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338229B9486200519CDF /* TimeInterval.swift */; }; + C1CEBFD329BA9D4F007FD8A3 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338829B9486200519CDF /* OSLog.swift */; }; + C1CEBFD429BA9D57007FD8A3 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338129B9486100519CDF /* HKUnit.swift */; }; + C1CEBFD529BA9D62007FD8A3 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187337D29B9481500519CDF /* LocalizedString.swift */; }; + C1CEBFD629BA9D6C007FD8A3 /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187337F29B9486100519CDF /* Collection.swift */; }; + C1CEBFD729BA9D73007FD8A3 /* MutableCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338729B9486200519CDF /* MutableCollection.swift */; }; + C1CEBFD829BA9D7A007FD8A3 /* Sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339529B9488300519CDF /* Sequence.swift */; }; + C1CEBFD929BA9D81007FD8A3 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187339629B9488300519CDF /* TimeZone.swift */; }; + C1CEBFDA29BA9D88007FD8A3 /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338329B9486200519CDF /* ClosedRange.swift */; }; + C1CEBFDB29BA9D8F007FD8A3 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338629B9486200519CDF /* Data.swift */; }; + C1CEBFDC29BA9D9D007FD8A3 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C187338429B9486200519CDF /* NumberFormatter.swift */; }; C1D56376296B3F5E00BA15EC /* reservoir_for_iob_missing.json in Resources */ = {isa = PBXBuildFile; fileRef = C1D56375296B3F5E00BA15EC /* reservoir_for_iob_missing.json */; }; + C1D7162129C75DC700B5AB3B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1D7162329C75DC700B5AB3B /* Localizable.strings */; }; C1DD512B259FD8A600DE27AE /* InsulinTypeChooser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1742345259CD3ED00399C9D /* InsulinTypeChooser.swift */; }; C1DD517825A016E700DE27AE /* InsulinTypeSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DD515A259FE3AB00DE27AE /* InsulinTypeSetting.swift */; }; C1DE4C2125A253BD007065F8 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1DE4C2025A253BD007065F8 /* Color.swift */; }; @@ -789,7 +783,6 @@ C1E94D3B28170DAC00262A6E /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = C168CA77280DD00F002BD2A7 /* Model.xcdatamodeld */; }; C1F8403923DB84B700673141 /* DeviceLogEntry+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1F8403723DB84B700673141 /* DeviceLogEntry+CoreDataClass.swift */; }; C1F8403A23DB84B700673141 /* DeviceLogEntry+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1F8403823DB84B700673141 /* DeviceLogEntry+CoreDataProperties.swift */; }; - C1F8B1E2223C3CC000DD66CF /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303C4901E2D664200ADEDC8 /* TimeZone.swift */; }; C1FAC06328C7B0A100754AE2 /* reservoir_iob_test.json in Resources */ = {isa = PBXBuildFile; fileRef = C1FAC06228C7B0A100754AE2 /* reservoir_iob_test.json */; }; C1FAEC1D264AD6B400A3250B /* DeviceStatusBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1FAEC1C264AD6B400A3250B /* DeviceStatusBadge.swift */; }; C1FAEC1F264AE12700A3250B /* UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B47ECF8725DC20810024A54D /* UIImage.swift */; }; @@ -832,6 +825,7 @@ E96DCB5A24AF74AC007117BC /* SuspendThresholdEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E96DCB5924AF74AC007117BC /* SuspendThresholdEditor.swift */; }; E96DCB5E24AF7DC7007117BC /* BasalRatesInformationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E96DCB5D24AF7DC7007117BC /* BasalRatesInformationView.swift */; }; E99A132E2557548300D3F5B3 /* SegmentedGaugeBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E99A132D2557548300D3F5B3 /* SegmentedGaugeBar.swift */; }; + E9A6D0E828DBCF5800DFF9D9 /* LoopNotificationUserInfoKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = B42A7471235885B600247B03 /* LoopNotificationUserInfoKey.swift */; }; E9C58A6E24DA65E400487A17 /* HistoricalOverrideDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9C58A6D24DA65E400487A17 /* HistoricalOverrideDetailView.swift */; }; E9DFB92C24E634E800468917 /* ExpandablePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9DFB92B24E634E800468917 /* ExpandablePicker.swift */; }; E9DFB92E24E8A75C00468917 /* iob_from_multiple_curves_output.json in Resources */ = {isa = PBXBuildFile; fileRef = E9DFB92D24E8A75C00468917 /* iob_from_multiple_curves_output.json */; }; @@ -1028,7 +1022,6 @@ 1DD65CFE26C476880085CC64 /* Model.sqlite.v1.original */ = {isa = PBXFileReference; lastKnownFileType = file; path = Model.sqlite.v1.original; sourceTree = ""; }; 1DD9CE9826B8CC2A008B4A46 /* HKDevice+Encodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HKDevice+Encodable.swift"; sourceTree = ""; }; 1DE35E7924ABEC720086F9AE /* DeviceManagerUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceManagerUI.swift; sourceTree = ""; }; - 1DECC3F42513F98D00F4056E /* UITextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITextField.swift; sourceTree = ""; }; 1DEE230124A676A300693C32 /* LoopKitHostedTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LoopKitHostedTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 1DEE230224A676A300693C32 /* LoopKitHostedTests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = LoopKitHostedTests.plist; sourceTree = ""; }; 1DFB99D5245CB2E900DCC8C9 /* AlertTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertTests.swift; sourceTree = ""; }; @@ -1037,7 +1030,6 @@ 1F50C324212B20D300C18FAB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; 1F50C326212B20D400C18FAB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; 1F50C329212B20D400C18FAB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 1F5DAB1C2118C95700048054 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; 1F5DAB2C2118CE9300048054 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; 1F5DAB322118D2A700048054 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; 1F5DAB372118D5A200048054 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InsulinKit.strings; sourceTree = ""; }; @@ -1083,13 +1075,9 @@ 4302F4EA1D50670500F0FCAF /* NewPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewPumpEvent.swift; sourceTree = ""; }; 4302F4EC1D5068CE00F0FCAF /* PersistedPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistedPumpEvent.swift; sourceTree = ""; }; 4303C48B1E29DD4200ADEDC8 /* momentum_effect_duplicate_glucose_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = momentum_effect_duplicate_glucose_input.json; sourceTree = ""; }; - 4303C4901E2D664200ADEDC8 /* TimeZone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; - 43177D031D372A7F0006E908 /* CarbEntryTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarbEntryTableViewController.swift; sourceTree = ""; }; 43177D071D37306D0006E908 /* GlucoseRangeOverrideTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GlucoseRangeOverrideTableViewCell.xib; sourceTree = ""; }; 43177D091D3732C70006E908 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 43177D0B1D3734040006E908 /* GlucoseRangeOverrideTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseRangeOverrideTableViewCell.swift; sourceTree = ""; }; - 43177D0D1D3737420006E908 /* NibLoadable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = ""; }; - 43260F6D21C4BF7A00DD6837 /* UUID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UUID.swift; sourceTree = ""; }; 432711371EDE826A00171F6A /* CustomInputTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomInputTextField.swift; sourceTree = ""; }; 432762731D60505F0083215A /* HKQuantitySample.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKQuantitySample.swift; sourceTree = ""; }; 432CF86620D76AB90066B889 /* SettingsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsTableViewCell.swift; sourceTree = ""; }; @@ -1115,19 +1103,14 @@ 434113BD20F2C72000D05747 /* CachedCarbObjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedCarbObjectTests.swift; sourceTree = ""; }; 4343951E205EED1F0056DC37 /* counteraction_effect_falling_glucose_output.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = counteraction_effect_falling_glucose_output.json; sourceTree = ""; }; 43439520205F2D910056DC37 /* counteraction_effect_falling_glucose_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = counteraction_effect_falling_glucose_input.json; sourceTree = ""; }; - 434570431FE605E30089C4DC /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; 4346D1FB1C79481E00ABAFE3 /* NSUserDefaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSUserDefaults.swift; sourceTree = ""; }; 434872781CB6256500E55D75 /* reconcile_history_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = reconcile_history_input.json; sourceTree = ""; }; 4348727C1CB626E500E55D75 /* reconcile_history_output.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = reconcile_history_output.json; sourceTree = ""; }; 434A01CF1F019D9100938125 /* DateAndDurationTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DateAndDurationTableViewCell.xib; sourceTree = ""; }; 434C5F9B2098352500B2FD1A /* QuantityFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityFormatter.swift; sourceTree = ""; }; - 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; 434C5F9F209ABD4700B2FD1A /* QuantityFormatterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityFormatterTests.swift; sourceTree = ""; }; 434FB6471D70096A007B9C70 /* reservoir_history_with_continuity_holes.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = reservoir_history_with_continuity_holes.json; sourceTree = ""; }; 434FB6491D712158007B9C70 /* CommandResponseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandResponseViewController.swift; sourceTree = ""; }; - 434FB64B1D712449007B9C70 /* NSData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSData.swift; sourceTree = ""; }; - 434FF1DF1CF269D8000DB779 /* IdentifiableClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; - 434FF1E31CF26A1E000DB779 /* UITableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableViewCell.swift; sourceTree = ""; }; 434FF1EF1CF29451000DB779 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; 434FF1F01CF29451000DB779 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; 434FF1F31CF294A9000DB779 /* TextFieldTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewController.swift; sourceTree = ""; }; @@ -1217,11 +1200,8 @@ 43D8FDEB1C7290350073BE78 /* GlucoseRangeSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseRangeSchedule.swift; sourceTree = ""; }; 43D8FDEC1C7290350073BE78 /* GlucoseSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseSchedule.swift; sourceTree = ""; }; 43D8FDED1C7290350073BE78 /* HealthKitSampleStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HealthKitSampleStore.swift; sourceTree = ""; }; - 43D8FDEE1C7290350073BE78 /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; 43D8FDEF1C7290350073BE78 /* LoopMath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoopMath.swift; sourceTree = ""; }; 43D8FDF01C7290350073BE78 /* Date.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Date.swift; sourceTree = ""; }; - 43D8FDF11C7290350073BE78 /* NSDateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDateFormatter.swift; sourceTree = ""; }; - 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSTimeInterval.swift; sourceTree = ""; }; 43D8FDF31C7290350073BE78 /* SampleValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleValue.swift; sourceTree = ""; }; 43D8FE041C7290530073BE78 /* DailyQuantityScheduleTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DailyQuantityScheduleTableViewController.swift; sourceTree = ""; }; 43D8FE051C7290530073BE78 /* DailyValueScheduleTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = DailyValueScheduleTableViewController.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; @@ -1331,7 +1311,6 @@ 89186C0424BEC9CA0003D0F3 /* SegmentedControlTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentedControlTableViewCell.swift; sourceTree = ""; }; 89186C0624BF7FC70003D0F3 /* Guardrail+UI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Guardrail+UI.swift"; sourceTree = ""; }; 89186C0A24BFD6DB0003D0F3 /* DurationPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DurationPicker.swift; sourceTree = ""; }; - 891A3FC62247268F00378B27 /* Math.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Math.swift; sourceTree = ""; }; 891A3FD02249948A00378B27 /* TemporaryScheduleOverrideHistoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemporaryScheduleOverrideHistoryTests.swift; sourceTree = ""; }; 891A3FD22249990900378B27 /* DailyValueSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyValueSchedule.swift; sourceTree = ""; }; 891A3FD4224B047200378B27 /* DailyQuantitySchedule+Override.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DailyQuantitySchedule+Override.swift"; sourceTree = ""; }; @@ -1362,7 +1341,6 @@ 892A5DB12231E191008961AB /* LevelMaskView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LevelMaskView.swift; sourceTree = ""; }; 892A5DB52231E19F008961AB /* ReservoirVolumeHUDView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ReservoirVolumeHUDView.xib; sourceTree = ""; }; 892A5DB62231E19F008961AB /* ReservoirVolumeHUDView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReservoirVolumeHUDView.swift; sourceTree = ""; }; - 892A5DBB2231E20C008961AB /* Comparable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; 892ADDFF2446C858007CE08C /* Card.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Card.swift; sourceTree = ""; }; 892F481A21AB2964004D313D /* RandomOutlierTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RandomOutlierTableViewController.swift; sourceTree = ""; }; 893C9F8B2447DBD900CD4185 /* CardBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardBuilder.swift; sourceTree = ""; }; @@ -1390,12 +1368,10 @@ 89653C812473592600E1BAA5 /* CarbRatioScheduleEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarbRatioScheduleEditor.swift; sourceTree = ""; }; 89653C8324738D2B00E1BAA5 /* BasalRateScheduleEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BasalRateScheduleEditor.swift; sourceTree = ""; }; 8974AFBF22120D7A0043F01B /* TemporaryScheduleOverrideTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TemporaryScheduleOverrideTests.swift; sourceTree = ""; }; - 8974B0672215FE460043F01B /* Collection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = ""; }; 898B4E74246CCAB50053C484 /* Binding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Binding.swift; sourceTree = ""; }; 898B4E76246DAE280053C484 /* GlucoseRangePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlucoseRangePicker.swift; sourceTree = ""; }; 898B4E7A246DC6A70053C484 /* CorrectionRangeScheduleEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CorrectionRangeScheduleEditor.swift; sourceTree = ""; }; 898B4E7D246DEB920053C484 /* GuardrailConstrainedQuantityRangeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuardrailConstrainedQuantityRangeView.swift; sourceTree = ""; }; - 898C896924D4BF11002FA994 /* Guardrail+Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Guardrail+Settings.swift"; sourceTree = ""; }; 898C896C24D4BF75002FA994 /* FloatingPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatingPoint.swift; sourceTree = ""; }; 898C897024D4C0E4002FA994 /* GuardrailTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuardrailTests.swift; sourceTree = ""; }; 898E6E64224179300019E459 /* BaseHUDView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseHUDView.swift; sourceTree = ""; }; @@ -1439,7 +1415,6 @@ 89BE75C424649C8100B145D9 /* NewScheduleItemEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewScheduleItemEditor.swift; sourceTree = ""; }; 89BE75C62464B4A900B145D9 /* Environment+Dismiss.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Environment+Dismiss.swift"; sourceTree = ""; }; 89BE75CA2464BC2000B145D9 /* AlertContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertContent.swift; sourceTree = ""; }; - 89CA2B33226D15E0004D9350 /* MutableCollection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutableCollection.swift; sourceTree = ""; }; 89CA2B37226D4456004D9350 /* DateRelativeQuantity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateRelativeQuantity.swift; sourceTree = ""; }; 89CAB36A24C9EC25009EE3CE /* DismissibleKeyboardTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissibleKeyboardTextField.swift; sourceTree = ""; }; 89CAB36C24C9EC98009EE3CE /* Keyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Keyboard.swift; sourceTree = ""; }; @@ -1461,8 +1436,6 @@ 89D204D121CC837A001238CC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 89DC540C21B75AE7005A1CE0 /* Collection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = ""; }; 89E7E60F24D11AB600591386 /* OrientationLock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrientationLock.swift; sourceTree = ""; }; - 89ED163F24A29BA300C9A105 /* Sequence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sequence.swift; sourceTree = ""; }; - 89ED164224A29BE400C9A105 /* ClosedRange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClosedRange.swift; sourceTree = ""; }; 89F6E30C2449713600CB9E15 /* CardStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardStack.swift; sourceTree = ""; }; 89F6E30E244A1A5D00CB9E15 /* Guardrail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Guardrail.swift; sourceTree = ""; }; 89F6E310244A1AAB00CB9E15 /* SettingDescription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingDescription.swift; sourceTree = ""; }; @@ -1488,6 +1461,11 @@ A932803A2798D63B0091D0A1 /* SyncAlertObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncAlertObject.swift; sourceTree = ""; }; A933DB8724BF956F009B417A /* CriticalEventLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CriticalEventLog.swift; sourceTree = ""; }; A935094326E2FAB70030B60D /* GlucoseCondition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlucoseCondition.swift; sourceTree = ""; }; + A935793629A2570300246DED /* CarbAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarbAction.swift; sourceTree = ""; }; + A935793729A2570300246DED /* OverrideCancelAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OverrideCancelAction.swift; sourceTree = ""; }; + A935793829A2570400246DED /* OverrideAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OverrideAction.swift; sourceTree = ""; }; + A935793929A2570400246DED /* BolusAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusAction.swift; sourceTree = ""; }; + A935793A29A2570400246DED /* Action.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Action.swift; sourceTree = ""; }; A93761C025ED670200F6BE43 /* BluetoothProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothProvider.swift; sourceTree = ""; }; A93CA898278D08CC003B5A01 /* PumpAlarmType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PumpAlarmType.swift; sourceTree = ""; }; A9498D6E23386C0B00DAA9B9 /* TempBasalRecommendation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempBasalRecommendation.swift; sourceTree = ""; }; @@ -1579,7 +1557,6 @@ B47ECFD525DC22D20024A54D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; B4A2AAB0240830A30066563F /* LabeledTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabeledTextField.swift; sourceTree = ""; }; B4A2AAB2240832350066563F /* MultipleSelectionList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleSelectionList.swift; sourceTree = ""; }; - B4AA27F124C1ECDC001B8AFA /* UIColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; B4B1162D25AF3A40006428DE /* DisplayGlucoseUnitObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayGlucoseUnitObserver.swift; sourceTree = ""; }; B4B7C1602603F241007379F6 /* InsulinSensitivityScheduleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinSensitivityScheduleTests.swift; sourceTree = ""; }; B4B7C1762603F5F6007379F6 /* HKUnitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnitTests.swift; sourceTree = ""; }; @@ -1593,20 +1570,67 @@ B4CEE2E2257129780093111B /* UnfinalizedDoseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnfinalizedDoseTests.swift; sourceTree = ""; }; B4CEE2E4257129780093111B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B4D4C20C25F95A8700DA809D /* DisplayGlucoseUnitObservable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayGlucoseUnitObservable.swift; sourceTree = ""; }; + C10340F329C786E900FE5BA1 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C104B64A2981EE3B003A9235 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main.strings; sourceTree = ""; }; + C104B64B2981EE3B003A9235 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; C109240E286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomaticDosingStrategy.swift; sourceTree = ""; }; + C10B8078297E498E00446CDD /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C10BD98429C7867600FE2BDC /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; C1110E981EE98CF5009BB852 /* ice_35_min_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ice_35_min_input.json; sourceTree = ""; }; + C121D8D329C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C121D8D429C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C122DF0129BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Main.strings; sourceTree = ""; }; + C122DF0229BBFAAE00321F8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; + C12D11D229C7867E000B215F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; C12EE16B1F2964B3007DB9F1 /* InsulinModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsulinModel.swift; sourceTree = ""; }; + C1330679297E49730067A05C /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C133067A297E49730067A05C /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C133067B297E49730067A05C /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C133067C297E49730067A05C /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C13493B4297E498700D87305 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C13493B5297E498700D87305 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C13493B6297E498700D87305 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C13493B7297E498700D87305 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C1394BA6297E49630042F1A9 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; C13E6D291EEB1CB9006F5880 /* ice_slow_absorption.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ice_slow_absorption.json; sourceTree = ""; }; + C13F89C4297E495B00C71398 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; C140DFFE260276BF000A4FF7 /* ManualBolusRecommendation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManualBolusRecommendation.swift; sourceTree = ""; }; C140E0512602908A000A4FF7 /* SettingsPresentationMode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsPresentationMode.swift; sourceTree = ""; }; + C14690CF297E497A00124A99 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C1469E02297E498100042439 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; C14A7E7D295F43AB00CD87B4 /* ConfigurationPageScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationPageScrollView.swift; sourceTree = ""; }; + C14C0AD02981EE35001B758E /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = ""; }; + C14C46E82981EE3F00E20BEF /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Main.strings; sourceTree = ""; }; + C14C46E92981EE3F00E20BEF /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = ""; }; + C15A582429C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main.strings; sourceTree = ""; }; + C15A582529C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A582629C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A582729C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InsulinKit.strings; sourceTree = ""; }; + C15A582829C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/LegacyInsulinDeliveryTableViewController.strings; sourceTree = ""; }; + C15A582929C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A582A29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A582B29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15C115029C814F300EBAC55 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C15E994529C6790A004AB926 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C161742B297E494D007C2E5F /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C161742C297E494D007C2E5F /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C161742D297E494D007C2E5F /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C161742E297E494D007C2E5F /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C161E8F9297E495300E22BDD /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C161E8FA297E495300E22BDD /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C161E8FB297E495300E22BDD /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C161E8FC297E495300E22BDD /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; C164A55F22F14C73000E3FA5 /* UnfinalizedDose.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnfinalizedDose.swift; sourceTree = ""; }; C164A56322F21081000E3FA5 /* MockPumpManagerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPumpManagerState.swift; sourceTree = ""; }; + C16528FF2981EE40000B130A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Main.strings; sourceTree = ""; }; + C16529002981EE40000B130A /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; C168CA78280DD00F002BD2A7 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; C168CA79280DD00F002BD2A7 /* Modelv4.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Modelv4.xcdatamodel; sourceTree = ""; }; C16DA83E22E8D88F008624C2 /* LoopPluginBundleKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopPluginBundleKey.swift; sourceTree = ""; }; C16DA84422E9330A008624C2 /* LoopUIPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopUIPlugin.swift; sourceTree = ""; }; + C16DFA45297E494500D56397 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; C1742345259CD3ED00399C9D /* InsulinTypeChooser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinTypeChooser.swift; sourceTree = ""; }; + C1790E6D297E493600683E3B /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; C17F39C023CD24A000FA1113 /* DeviceCommsLog.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DeviceCommsLog.xcdatamodel; sourceTree = ""; }; C17F39C623CD256000FA1113 /* PersistentDeviceLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistentDeviceLog.swift; sourceTree = ""; }; C17F39C823CD269200FA1113 /* DeviceLogEntryType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceLogEntryType.swift; sourceTree = ""; }; @@ -1614,12 +1638,88 @@ C17F4CB21EE9B6DF005079B1 /* carb_entry_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = carb_entry_input.json; sourceTree = ""; }; C1814B83225B9ED5008D2D8E /* LoopNotificationCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopNotificationCategory.swift; sourceTree = ""; }; C1814B8B226371DF008D2D8E /* WeakSynchronizedDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeakSynchronizedDelegate.swift; sourceTree = ""; }; + C1821688297E55A7001EB097 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Main.strings; sourceTree = ""; }; + C1821689297E55A7001EB097 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; + C183FDD3297E493D003B16ED /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = ""; }; + C183FDD4297E493D003B16ED /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C183FDD5297E493D003B16ED /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C183FDD6297E493D003B16ED /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C183FDD7297E493D003B16ED /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C187337D29B9481500519CDF /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C187337F29B9486100519CDF /* Collection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = ""; }; + C187338029B9486100519CDF /* Comparable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; + C187338129B9486100519CDF /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C187338229B9486200519CDF /* TimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C187338329B9486200519CDF /* ClosedRange.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClosedRange.swift; sourceTree = ""; }; + C187338429B9486200519CDF /* NumberFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C187338529B9486200519CDF /* Guardrail+Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Guardrail+Settings.swift"; sourceTree = ""; }; + C187338629B9486200519CDF /* Data.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C187338729B9486200519CDF /* MutableCollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MutableCollection.swift; sourceTree = ""; }; + C187338829B9486200519CDF /* OSLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C187338929B9486200519CDF /* DateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateFormatter.swift; sourceTree = ""; }; + C187339529B9488300519CDF /* Sequence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sequence.swift; sourceTree = ""; }; + C187339629B9488300519CDF /* TimeZone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C187339729B9488300519CDF /* UUID.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UUID.swift; sourceTree = ""; }; + C187339B29B948D800519CDF /* Data.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C187339D29B948F200519CDF /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C187339F29B9492200519CDF /* NumberFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C18733A029B9492200519CDF /* UITableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableViewCell.swift; sourceTree = ""; }; + C18733A129B9492200519CDF /* UITextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITextField.swift; sourceTree = ""; }; + C18733A229B9492200519CDF /* TimeZone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C18733A329B9492200519CDF /* NSTimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSTimeInterval.swift; sourceTree = ""; }; + C18733A429B9492200519CDF /* Collection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = ""; }; + C18733A529B9492200519CDF /* NibLoadable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = ""; }; + C18733A629B9492300519CDF /* Math.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Math.swift; sourceTree = ""; }; + C18733A729B9492300519CDF /* Comparable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; + C18733A829B9492300519CDF /* IdentifiableClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; + C18733A929B9492300519CDF /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C18733B529B9495400519CDF /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C18733B729B949FF00519CDF /* Data.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C18733B929B94A3700519CDF /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C18733BA29B94A3700519CDF /* TimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C18733BB29B94A3700519CDF /* TimeZone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C18733BF29B94A6300519CDF /* NumberFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C18733C029B94A6300519CDF /* Comparable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; + C18733C129B94A6300519CDF /* IdentifiableClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; + C18733C229B94A6300519CDF /* NibLoadable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = ""; }; + C18733C329B94A6300519CDF /* TimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C18733C429B94A6300519CDF /* UITableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableViewCell.swift; sourceTree = ""; }; + C18733CB29B94A7A00519CDF /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C18733CD29B94B1700519CDF /* IdentifiableClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; + C18733CF29B94B3300519CDF /* TimeInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C18733D129B94B8E00519CDF /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; C188B83322CC16AC0051760A /* InsulinSensitivityScheduleViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinSensitivityScheduleViewController.swift; sourceTree = ""; }; + C18E73FD29C7870A0031245F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; C191D26225B3815000C26C0B /* AutomaticDoseRecommendation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomaticDoseRecommendation.swift; sourceTree = ""; }; + C192C60529C78711001EFEA6 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C19951DA29C786C8001983C9 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C19E387F298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C1A1C7A529C786D1001A0FA5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C1A4ED662981EE36008F4B1A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Main.strings; sourceTree = ""; }; + C1AA4E0F2981EE4400888F32 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; }; C1ABE38D2245CFCD00570E82 /* UnfairLock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnfairLock.swift; sourceTree = ""; }; + C1B0CFDB29C786BF0045B04D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1B2679E2995824000BCB7C1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = ""; }; + C1B761F229C786D90098916A /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C1BCB5BA298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Main.strings; sourceTree = ""; }; + C1BCB5BB298309C4001C50FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; + C1C685F929C786B70002E063 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; C1CAB9E826A3254800A57273 /* StoredInsulinModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoredInsulinModel.swift; sourceTree = ""; }; C1CBF61B1EEA2A1E001E4851 /* ice_1_hour_input.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ice_1_hour_input.json; sourceTree = ""; }; + C1D107B7297E499D008905A6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1D107B8297E499D008905A6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1D107B9297E499D008905A6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1D107BA297E499D008905A6 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; C1D56375296B3F5E00BA15EC /* reservoir_for_iob_missing.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = reservoir_for_iob_missing.json; sourceTree = ""; }; + C1D7162229C75DC700B5AB3B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162429C75E3B00B5AB3B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162529C75E9000B5AB3B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162629C75E9F00B5AB3B /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162729C75EBD00B5AB3B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162829C75ECE00B5AB3B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1D7162929C75EE200B5AB3B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1D72CFD2981EE4600EE0982 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; }; + C1DB5556297E499500EB1DCE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; C1DB55B01F2E95FD00C483A2 /* WalshInsulinModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalshInsulinModel.swift; sourceTree = ""; }; C1DB55B21F2E964400C483A2 /* ExponentialInsulinModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExponentialInsulinModel.swift; sourceTree = ""; }; C1DB55B41F2EA6EA00C483A2 /* iob_from_doses_exponential_output.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = iob_from_doses_exponential_output.json; sourceTree = ""; }; @@ -1631,15 +1731,38 @@ C1E4B304242E98E900E70CCB /* ProgressIndicatorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressIndicatorView.swift; sourceTree = ""; }; C1E4B307242E995200E70CCB /* ActivityIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicator.swift; sourceTree = ""; }; C1E4B309242E99A800E70CCB /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; + C1E50005297E492E0018FA21 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E50006297E492E0018FA21 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E50007297E492E0018FA21 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E50008297E492E0018FA21 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E5A6DF29C7870100703C90 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C1E5F20D29C786A100BC686C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C1E693D129C786E200410918 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; C1E7035C24FFFA5C00DAB534 /* CollectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionTests.swift; sourceTree = ""; }; C1E7035E25001EA500DAB534 /* HKObserverQueryMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKObserverQueryMock.swift; sourceTree = ""; }; C1E703612500390B00DAB534 /* HKAnchoredObjectQueryMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKAnchoredObjectQueryMock.swift; sourceTree = ""; }; C1E84B8425C62FB100623C08 /* Modelv1v4.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = Modelv1v4.xcmappingmodel; sourceTree = ""; }; + C1F490012995821600C8BD69 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Main.strings; sourceTree = ""; }; + C1F490022995821600C8BD69 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; + C1F4FD5A29C7869800D7ACBC /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; C1F8403723DB84B700673141 /* DeviceLogEntry+CoreDataClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DeviceLogEntry+CoreDataClass.swift"; sourceTree = ""; }; C1F8403823DB84B700673141 /* DeviceLogEntry+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DeviceLogEntry+CoreDataProperties.swift"; sourceTree = ""; }; + C1FAB5C329C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C1FAB5C429C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; C1FAC06228C7B0A100754AE2 /* reservoir_iob_test.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = reservoir_iob_test.json; sourceTree = ""; }; C1FAEC1C264AD6B400A3250B /* DeviceStatusBadge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceStatusBadge.swift; sourceTree = ""; }; C1FAEC20264AEEA300A3250B /* UIImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIImage.swift; sourceTree = ""; }; + C1FC393029C786F20003C587 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C1FC9C6329C78690005D2515 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC0429C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Main.strings; sourceTree = ""; }; + C1FDCC0529C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC0629C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC0729C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InsulinKit.strings; sourceTree = ""; }; + C1FDCC0829C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/LegacyInsulinDeliveryTableViewController.strings; sourceTree = ""; }; + C1FDCC0929C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC0A29C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC0B29C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FF3D4E29C786A900BDC1EC /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; E9077D2624ACD59F0066A88D /* InformationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InformationView.swift; sourceTree = ""; }; E9077D2924ACDE2C0066A88D /* CorrectionRangeInformationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CorrectionRangeInformationView.swift; sourceTree = ""; }; E9086B2824B39EDC0062F5C8 /* ChartsTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartsTableViewController.swift; sourceTree = ""; }; @@ -1850,6 +1973,7 @@ 1D63DEA126E94F6B00F46FA5 /* Service */ = { isa = PBXGroup; children = ( + A98FF28F29A25699005739A5 /* Remote */, A9498D7323386C3200DAA9B9 /* AnalyticsService.swift */, A9498D7123386C3200DAA9B9 /* LoggingService.swift */, A9498D7523386C3300DAA9B9 /* RemoteDataService.swift */, @@ -1858,15 +1982,6 @@ path = Service; sourceTree = ""; }; - 1D640FF324524269008F9755 /* Assets */ = { - isa = PBXGroup; - children = ( - 1D640FF424524274008F9755 /* Sounds */, - B47ECFD525DC22D20024A54D /* Assets.xcassets */, - ); - path = Assets; - sourceTree = ""; - }; 1D640FF424524274008F9755 /* Sounds */ = { isa = PBXGroup; children = ( @@ -1900,41 +2015,6 @@ path = LoopKitHostedTests; sourceTree = ""; }; - 1F5DAB1B2118C91C00048054 /* Common */ = { - isa = PBXGroup; - children = ( - 1F5DAB1C2118C95700048054 /* LocalizedString.swift */, - ); - path = Common; - sourceTree = ""; - }; - 430059211CCDC7A200C861EA /* Extensions */ = { - isa = PBXGroup; - children = ( - 89ED164224A29BE400C9A105 /* ClosedRange.swift */, - 8974B0672215FE460043F01B /* Collection.swift */, - 892A5DBB2231E20C008961AB /* Comparable.swift */, - 898C896924D4BF11002FA994 /* Guardrail+Settings.swift */, - 43D8FDEE1C7290350073BE78 /* HKUnit.swift */, - 434FF1DF1CF269D8000DB779 /* IdentifiableClass.swift */, - 891A3FC62247268F00378B27 /* Math.swift */, - 89CA2B33226D15E0004D9350 /* MutableCollection.swift */, - 43177D0D1D3737420006E908 /* NibLoadable.swift */, - 434FB64B1D712449007B9C70 /* NSData.swift */, - 43D8FDF11C7290350073BE78 /* NSDateFormatter.swift */, - 43D8FDF21C7290350073BE78 /* NSTimeInterval.swift */, - 434C5F9D209938CD00B2FD1A /* NumberFormatter.swift */, - 434570431FE605E30089C4DC /* OSLog.swift */, - 89ED163F24A29BA300C9A105 /* Sequence.swift */, - 4303C4901E2D664200ADEDC8 /* TimeZone.swift */, - B4AA27F124C1ECDC001B8AFA /* UIColor.swift */, - 434FF1E31CF26A1E000DB779 /* UITableViewCell.swift */, - 1DECC3F42513F98D00F4056E /* UITextField.swift */, - 43260F6D21C4BF7A00DD6837 /* UUID.swift */, - ); - path = Extensions; - sourceTree = ""; - }; 430157F81C7EC03B00B64B63 /* LoopKit Example */ = { isa = PBXGroup; children = ( @@ -2001,7 +2081,9 @@ 435F355C1C9CD14E00C204D2 /* Extensions */ = { isa = PBXGroup; children = ( - 43177D031D372A7F0006E908 /* CarbEntryTableViewController.swift */, + C18733D129B94B8E00519CDF /* HKUnit.swift */, + C18733CF29B94B3300519CDF /* TimeInterval.swift */, + C18733CD29B94B1700519CDF /* IdentifiableClass.swift */, 4302F4DE1D4E607B00F0FCAF /* LegacyInsulinDeliveryTableViewController.swift */, 435F355D1C9CD16A00C204D2 /* NSUserDefaults.swift */, ); @@ -2158,15 +2240,29 @@ 437AFF22203BE382008C4892 /* Extensions */ = { isa = PBXGroup; children = ( + C187338329B9486200519CDF /* ClosedRange.swift */, + C187337F29B9486100519CDF /* Collection.swift */, + C187338029B9486100519CDF /* Comparable.swift */, + C187338629B9486200519CDF /* Data.swift */, 43D8FDF01C7290350073BE78 /* Date.swift */, + C187338929B9486200519CDF /* DateFormatter.swift */, 43D8FDE91C7290350073BE78 /* Double.swift */, 898C896C24D4BF75002FA994 /* FloatingPoint.swift */, + C187338529B9486200519CDF /* Guardrail+Settings.swift */, 437AFF23203BE402008C4892 /* HKHealthStore.swift */, A9FD046E24E310D00040F203 /* HKObject.swift */, 43AF1FB11C926CDD00EA2F3D /* HKQuantity.swift */, 432762731D60505F0083215A /* HKQuantitySample.swift */, - A967D94824F99B6A00CDDF8A /* OutputStream.swift */, + C187338129B9486100519CDF /* HKUnit.swift */, + C187338729B9486200519CDF /* MutableCollection.swift */, 43CB51B0211EB16C00DB9B4A /* NSUserActivity+CarbKit.swift */, + C187338429B9486200519CDF /* NumberFormatter.swift */, + C187338829B9486200519CDF /* OSLog.swift */, + A967D94824F99B6A00CDDF8A /* OutputStream.swift */, + C187339529B9488300519CDF /* Sequence.swift */, + C187338229B9486200519CDF /* TimeInterval.swift */, + C187339629B9488300519CDF /* TimeZone.swift */, + C187339729B9488300519CDF /* UUID.swift */, ); path = Extensions; sourceTree = ""; @@ -2183,30 +2279,26 @@ 43BA7155201E484D0058961E /* LoopKitUI */ = { isa = PBXGroup; children = ( + C1CEBFDE29BB72EA007FD8A3 /* Resources */, + C18733B529B9495400519CDF /* LocalizedString.swift */, E9086B4624B5404D0062F5C8 /* Models */, E9086B4324B53CB40062F5C8 /* Charts */, B41A60B023D1DBB700636320 /* Extensions */, - 43177D091D3732C70006E908 /* Assets.xcassets */, 43BA7160201E48910058961E /* CarbKit */, 43A8EC3B210CEEA500A81379 /* CGMManagerUI.swift */, 892A5D9F2231E12F008961AB /* CompletionNotifying.swift */, 1DE35E7924ABEC720086F9AE /* DeviceManagerUI.swift */, C1FAEC1C264AD6B400A3250B /* DeviceStatusBadge.swift */, - 895FE07022011EDD00FCF18A /* EmojiInputController.storyboard */, B4B1162D25AF3A40006428DE /* DisplayGlucoseUnitObserver.swift */, 892A5DA12231E136008961AB /* HUDProvider.swift */, 43BA7157201E484D0058961E /* Info.plist */, 1D096C0424C624F70078B6B5 /* InsulinModelSettings+LoopKitUI.swift */, 43BA7161201E48EB0058961E /* InsulinKit */, - 43D8FEED1C7294E90073BE78 /* InsulinKit.storyboard */, - E9DFB93324E8CD5800468917 /* LegacyInsulinDeliveryTableViewController.storyboard */, - 7D68A9E31FE0A3D300522C49 /* Localizable.strings */, 43BA7156201E484D0058961E /* LoopKitUI.h */, C16DA84422E9330A008624C2 /* LoopUIPlugin.swift */, A9DCF2C925B0F38000C89088 /* LoopUIColorPalette.swift */, A9CFCA8E2582F9FA00A04932 /* OnboardingUI.swift */, 895FE06C22011E9900FCF18A /* OverrideEmojiDataSource.swift */, - 895FE06D22011E9A00FCF18A /* OverrideSelectionViewController.storyboard */, 43FB60E220DCB9E0002B996B /* PumpManagerUI.swift */, 43F503622106C761009FA89A /* ServiceAuthenticationUI.swift */, 43F5035521059A8A009FA89A /* ServiceCredential.swift */, @@ -2264,8 +2356,6 @@ 43D8FDC11C728FDF0073BE78 = { isa = PBXGroup; children = ( - 1F5DAB1B2118C91C00048054 /* Common */, - 430059211CCDC7A200C861EA /* Extensions */, 43D8FDCD1C728FDF0073BE78 /* LoopKit */, 430157F81C7EC03B00B64B63 /* LoopKit Example */, 1DEE230524A6960400693C32 /* LoopKitHostedTests */, @@ -2300,44 +2390,57 @@ 43D8FDCD1C728FDF0073BE78 /* LoopKit */ = { isa = PBXGroup; children = ( - C17F39BD23CD239000FA1113 /* DeviceManager */, - 1D096BFD24C24C140078B6B5 /* Insulin */, - B42A74702358858D00247B03 /* Notification */, - 1D63DEA126E94F6B00F46FA5 /* Service */, - 43D8FDCE1C728FDF0073BE78 /* LoopKit.h */, - 43D8FDD01C728FDF0073BE78 /* Info.plist */, + 1DA649AA2445174400F61E75 /* Alert.swift */, + A96E6C3627B35BC600F81A5B /* AnyCodableEquatable.swift */, + C109240E286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift */, 43D8FDE51C7290340073BE78 /* BasalRateSchedule.swift */, A93761C025ED670200F6BE43 /* BluetoothProvider.swift */, + 43D8FE2B1C72914D0073BE78 /* CarbKit */, 43D8FDE61C7290350073BE78 /* CarbRatioSchedule.swift */, 891A3FDA224BEC0D00378B27 /* CarbSensitivitySchedule.swift */, + 1D1FCE2624BE4DE2000300A8 /* CorrectionRangeOverrides.swift */, + A933DB8724BF956F009B417A /* CriticalEventLog.swift */, 43D8FDE71C7290350073BE78 /* DailyQuantitySchedule.swift */, 891A3FD4224B047200378B27 /* DailyQuantitySchedule+Override.swift */, 43D8FDE81C7290350073BE78 /* DailyValueSchedule.swift */, - 1DA649AA2445174400F61E75 /* Alert.swift */, - A96E6C3627B35BC600F81A5B /* AnyCodableEquatable.swift */, - A933DB8724BF956F009B417A /* CriticalEventLog.swift */, + 1DC64C7D24BF6EBC004A63A1 /* DeliveryLimits.swift */, + C17F39BD23CD239000FA1113 /* DeviceManager */, A95A1D7E2460BBC70079378D /* DosingDecisionObject+CoreDataClass.swift */, A95A1D812460BBDC0079378D /* DosingDecisionObject+CoreDataProperties.swift */, A919889E2355016B00B75EEE /* DosingDecisionStore.swift */, 891A3FD8224BEB4500378B27 /* EGPSchedule.swift */, + 437AFF22203BE382008C4892 /* Extensions */, 43C9805B212D216A003B5D17 /* GlucoseChange.swift */, 43D8FDEA1C7290350073BE78 /* GlucoseEffect.swift */, 4378B64A1ED61965000AE785 /* GlucoseEffectVelocity.swift */, + 43D8FE701C7293070073BE78 /* GlucoseKit */, B455F4D22600DA0B000ED456 /* GlucoseRange.swift */, 43D8FDEB1C7290350073BE78 /* GlucoseRangeSchedule.swift */, 14B33264293ED44C009B8746 /* GlucoseRangeSchedule+SafeBounds.swift */, 43D8FDEC1C7290350073BE78 /* GlucoseSchedule.swift */, A9498D7423386C3200DAA9B9 /* GlucoseThreshold.swift */, 43D9888A1C87E47800DA4467 /* GlucoseValue.swift */, + 89F6E30E244A1A5D00CB9E15 /* Guardrail.swift */, 43D8FDED1C7290350073BE78 /* HealthKitSampleStore.swift */, 43B17C88208EEC0B00AC27E9 /* HealthStoreUnitCache.swift */, + 43D8FDD01C728FDF0073BE78 /* Info.plist */, + 1D096BFD24C24C140078B6B5 /* Insulin */, + 43D8FEB21C7294520073BE78 /* InsulinKit */, A987CD4524A5893500439ADC /* JSONStreamEncoder.swift */, 43F5034A21051FCD009FA89A /* KeychainManager.swift */, + C187337D29B9481500519CDF /* LocalizedString.swift */, 89AC792E224C781200B8E9BA /* Locked.swift */, + 43D8FDCE1C728FDF0073BE78 /* LoopKit.h */, 43D8FDEF1C7290350073BE78 /* LoopMath.swift */, + C16DA83E22E8D88F008624C2 /* LoopPluginBundleKey.swift */, + B42A74702358858D00247B03 /* Notification */, A985464E251449FE0099C1A6 /* NotificationSettings.swift */, + 437874B4202FDC8300A3D8B9 /* Persistence */, + 1D24A8D424C896E100AB8DB9 /* Prescription.swift */, 434C5F9B2098352500B2FD1A /* QuantityFormatter.swift */, + C1CEBFDD29BB6C84007FD8A3 /* Resources */, 43D8FDF31C7290350073BE78 /* SampleValue.swift */, + 1D63DEA126E94F6B00F46FA5 /* Service */, 43F5035421059A8A009FA89A /* ServiceAuthentication.swift */, A912BE28245B9CD500CBE199 /* SettingsObject+CoreDataClass.swift */, A912BE2A245B9E8600CBE199 /* SettingsObject+CoreDataProperties.swift */, @@ -2348,25 +2451,13 @@ 89AE2225228BC54C00BDFD85 /* TemporaryScheduleOverrideHistory.swift */, 89AE221F228BC54C00BDFD85 /* TemporaryScheduleOverridePreset.swift */, 89AE2224228BC54C00BDFD85 /* TemporaryScheduleOverrideSettings.swift */, + 1D1FCE2824BE4F11000300A8 /* TherapySetting.swift */, + E9086B3824B3CB4B0062F5C8 /* TherapySettings.swift */, C1ABE38D2245CFCD00570E82 /* UnfairLock.swift */, 1D63DEA226E94FDF00F46FA5 /* VersionUpdate.swift */, 89AE222A228BC56A00BDFD85 /* WeakSet.swift */, C1814B8B226371DF008D2D8E /* WeakSynchronizedDelegate.swift */, 43CACE0D2247F89100F90AF5 /* WeakSynchronizedSet.swift */, - 43D8FE2B1C72914D0073BE78 /* CarbKit */, - 437AFF22203BE382008C4892 /* Extensions */, - 43D8FE701C7293070073BE78 /* GlucoseKit */, - 43D8FEB21C7294520073BE78 /* InsulinKit */, - 1F5DAB2B2118CE9300048054 /* Localizable.strings */, - 437874B4202FDC8300A3D8B9 /* Persistence */, - C16DA83E22E8D88F008624C2 /* LoopPluginBundleKey.swift */, - 89F6E30E244A1A5D00CB9E15 /* Guardrail.swift */, - E9086B3824B3CB4B0062F5C8 /* TherapySettings.swift */, - 1D1FCE2624BE4DE2000300A8 /* CorrectionRangeOverrides.swift */, - 1D1FCE2824BE4F11000300A8 /* TherapySetting.swift */, - 1DC64C7D24BF6EBC004A63A1 /* DeliveryLimits.swift */, - 1D24A8D424C896E100AB8DB9 /* Prescription.swift */, - C109240E286A4AD500FAD2B8 /* AutomaticDosingStrategy.swift */, ); path = LoopKit; sourceTree = ""; @@ -2649,11 +2740,13 @@ 892A5D35222F03CB008961AB /* LoopTestingKit */ = { isa = PBXGroup; children = ( + C187339B29B948D800519CDF /* Data.swift */, 89ADE12C226BDD190067222B /* DateRelativeBasalEntry.swift */, 89ADE12E226BDED40067222B /* DateRelativeBolusEntry.swift */, 89ADE12A226BDB730067222B /* DateRelativeCarbEntry.swift */, 89ADE135226BF0BE0067222B /* DateRelativeGlucoseSample.swift */, 89CA2B37226D4456004D9350 /* DateRelativeQuantity.swift */, + C187339D29B948F200519CDF /* HKUnit.swift */, 892A5D37222F03CB008961AB /* Info.plist */, 892A5D36222F03CB008961AB /* LoopTestingKit.h */, 892A5D55222F0414008961AB /* TestingCGMManager.swift */, @@ -2681,8 +2774,14 @@ 8992426321EC137900EA512B /* Extensions */ = { isa = PBXGroup; children = ( + C18733C029B94A6300519CDF /* Comparable.swift */, + C18733C129B94A6300519CDF /* IdentifiableClass.swift */, + C18733C229B94A6300519CDF /* NibLoadable.swift */, + C18733BF29B94A6300519CDF /* NumberFormatter.swift */, + C18733C329B94A6300519CDF /* TimeInterval.swift */, 8992426421EC138000EA512B /* UIColor.swift */, C1FAEC20264AEEA300A3250B /* UIImage.swift */, + C18733C429B94A6300519CDF /* UITableViewCell.swift */, ); path = Extensions; sourceTree = ""; @@ -2690,10 +2789,9 @@ 89D2047321CC7BD7001238CC /* MockKit */ = { isa = PBXGroup; children = ( - 1D640FF324524269008F9755 /* Assets */, + C1CEBFDF29BB731E007FD8A3 /* Resources */, 89D204AD21CC7D2B001238CC /* Extensions */, 89D2047521CC7BD7001238CC /* Info.plist */, - 4B67E2CC289B4EDB002D92AF /* Localizable.strings */, 89CCD4F121A87D340068C3FB /* MockCGMDataSource.swift */, 89AB9EC821A4BC2400351324 /* MockCGMManager.swift */, 89AC7934224C783500B8E9BA /* MockDoseProgressEstimator.swift */, @@ -2703,6 +2801,7 @@ C164A56322F21081000E3FA5 /* MockPumpManagerState.swift */, A9498D8C23386CD700DAA9B9 /* MockService.swift */, C164A55F22F14C73000E3FA5 /* UnfinalizedDose.swift */, + C15E994529C6790A004AB926 /* LocalizedString.swift */, ); path = MockKit; sourceTree = ""; @@ -2710,6 +2809,8 @@ 89D2049021CC7C13001238CC /* MockKitUI */ = { isa = PBXGroup; children = ( + C18733CB29B94A7A00519CDF /* LocalizedString.swift */, + C1CEBFE029BB7342007FD8A3 /* Resources */, 8992426321EC137900EA512B /* Extensions */, 89D204B621CC7E77001238CC /* View Controllers */, 439706E722D2E8EE00C81566 /* Views */, @@ -2720,7 +2821,6 @@ 1DFFB987271740EE0075AEAA /* MockSupport.swift */, 89D2049121CC7C13001238CC /* MockKitUI.h */, 89D2049221CC7C13001238CC /* Info.plist */, - 89D204D121CC837A001238CC /* Assets.xcassets */, ); path = MockKitUI; sourceTree = ""; @@ -2729,6 +2829,9 @@ isa = PBXGroup; children = ( 89DC540C21B75AE7005A1CE0 /* Collection.swift */, + C18733B929B94A3700519CDF /* HKUnit.swift */, + C18733BA29B94A3700519CDF /* TimeInterval.swift */, + C18733BB29B94A3700519CDF /* TimeZone.swift */, B47ECF8725DC20810024A54D /* UIImage.swift */, ); path = Extensions; @@ -2750,6 +2853,26 @@ path = "View Controllers"; sourceTree = ""; }; + A935793529A256F800246DED /* Actions */ = { + isa = PBXGroup; + children = ( + A935793A29A2570400246DED /* Action.swift */, + A935793929A2570400246DED /* BolusAction.swift */, + A935793629A2570300246DED /* CarbAction.swift */, + A935793829A2570400246DED /* OverrideAction.swift */, + A935793729A2570300246DED /* OverrideCancelAction.swift */, + ); + path = Actions; + sourceTree = ""; + }; + A98FF28F29A25699005739A5 /* Remote */ = { + isa = PBXGroup; + children = ( + A935793529A256F800246DED /* Actions */, + ); + path = Remote; + sourceTree = ""; + }; A9E068142534EB6B00BDAB59 /* Persistence */ = { isa = PBXGroup; children = ( @@ -2761,9 +2884,13 @@ B41A60B023D1DBB700636320 /* Extensions */ = { isa = PBXGroup; children = ( + C18733B729B949FF00519CDF /* Data.swift */, 898B4E74246CCAB50053C484 /* Binding.swift */, E93C86A324C8F79C0073089B /* ChartLineModel+LoopKitUI.swift */, E93C86A524C8F7D90073089B /* ChartSettings+LoopKitUI.swift */, + C18733A429B9492200519CDF /* Collection.swift */, + C1DE4C2025A253BD007065F8 /* Color.swift */, + C18733A729B9492300519CDF /* Comparable.swift */, E9086B4924B540B70062F5C8 /* DateFormatter.swift */, E96175AD24B7BE38008E5080 /* Dictionary.swift */, 1D60355D24D39ED10095DC2A /* Environment+AppName.swift */, @@ -2772,15 +2899,23 @@ 89BE75C62464B4A900B145D9 /* Environment+Dismiss.swift */, B429D66B24BF7204003E1B4A /* GlucoseTrend.swift */, 89186C0624BF7FC70003D0F3 /* Guardrail+UI.swift */, + C18733A929B9492300519CDF /* HKUnit.swift */, + C18733A829B9492300519CDF /* IdentifiableClass.swift */, C1E4B309242E99A800E70CCB /* Image.swift */, 89CAB36C24C9EC98009EE3CE /* Keyboard.swift */, + C18733A629B9492300519CDF /* Math.swift */, + C18733A529B9492200519CDF /* NibLoadable.swift */, + C18733A329B9492200519CDF /* NSTimeInterval.swift */, + C187339F29B9492200519CDF /* NumberFormatter.swift */, 89E7E60F24D11AB600591386 /* OrientationLock.swift */, + 1DC9240E2575EF9A004F132A /* QuantityFormatter+Guardrails.swift */, + C18733A229B9492200519CDF /* TimeZone.swift */, B41A60B123D1DBC700636320 /* UIFont.swift */, B429D66D24BF7255003E1B4A /* UIImage.swift */, + C18733A029B9492200519CDF /* UITableViewCell.swift */, + C18733A129B9492200519CDF /* UITextField.swift */, 1D97A33B256F11E00042737E /* View+InsetGroupedListStyle.swift */, 89CAB36E24C9ECCA009EE3CE /* View+KeyboardAware.swift */, - 1DC9240E2575EF9A004F132A /* QuantityFormatter+Guardrails.swift */, - C1DE4C2025A253BD007065F8 /* Color.swift */, ); path = Extensions; sourceTree = ""; @@ -2848,6 +2983,46 @@ path = DeviceLog; sourceTree = ""; }; + C1CEBFDD29BB6C84007FD8A3 /* Resources */ = { + isa = PBXGroup; + children = ( + 1F5DAB2B2118CE9300048054 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C1CEBFDE29BB72EA007FD8A3 /* Resources */ = { + isa = PBXGroup; + children = ( + 895FE07022011EDD00FCF18A /* EmojiInputController.storyboard */, + 43D8FEED1C7294E90073BE78 /* InsulinKit.storyboard */, + E9DFB93324E8CD5800468917 /* LegacyInsulinDeliveryTableViewController.storyboard */, + 7D68A9E31FE0A3D300522C49 /* Localizable.strings */, + 895FE06D22011E9A00FCF18A /* OverrideSelectionViewController.storyboard */, + 43177D091D3732C70006E908 /* Assets.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; + C1CEBFDF29BB731E007FD8A3 /* Resources */ = { + isa = PBXGroup; + children = ( + B47ECFD525DC22D20024A54D /* Assets.xcassets */, + 1D640FF424524274008F9755 /* Sounds */, + 4B67E2CC289B4EDB002D92AF /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C1CEBFE029BB7342007FD8A3 /* Resources */ = { + isa = PBXGroup; + children = ( + 89D204D121CC837A001238CC /* Assets.xcassets */, + C1D7162329C75DC700B5AB3B /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; E9077D2824ACD5AA0066A88D /* Information Screens */ = { isa = PBXGroup; children = ( @@ -3246,6 +3421,10 @@ sv, tr, vi, + cs, + ar, + hi, + sk, ); mainGroup = 43D8FDC11C728FDF0073BE78; packageReferences = ( @@ -3456,6 +3635,7 @@ buildActionMask = 2147483647; files = ( 1D640FF724525228008F9755 /* sub.caf in Resources */, + C15E994429C67866004AB926 /* Localizable.strings in Resources */, B47ECFD625DC22D20024A54D /* Assets.xcassets in Resources */, 1D25C22E246A2A1A00E87FA0 /* critical.caf in Resources */, ); @@ -3466,7 +3646,7 @@ buildActionMask = 2147483647; files = ( 89D204D221CC837A001238CC /* Assets.xcassets in Resources */, - 4B67E2CE289B4EDB002D92AF /* Localizable.strings in Resources */, + C1D7162129C75DC700B5AB3B /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3499,7 +3679,6 @@ A9E068162534EB8200BDAB59 /* CachedGlucoseObjectTests.swift in Sources */, 1DEE227724A676A300693C32 /* HKHealthStoreMock.swift in Sources */, A9E1E6AD24E1D8590073CA39 /* CacheStore.swift in Sources */, - C1A3F5BE24AA6EE200329152 /* NSTimeInterval.swift in Sources */, A994B884254241B10039B108 /* InsulinDeliveryStoreTests.swift in Sources */, A9E0681825350ECC00BDAB59 /* GlucoseStoreTests.swift in Sources */, A9E1E6AE24E1D8860073CA39 /* NSManagedObjectContext.swift in Sources */, @@ -3512,16 +3691,12 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1F5DAB1D2118C95700048054 /* LocalizedString.swift in Sources */, + C18733D029B94B3300519CDF /* TimeInterval.swift in Sources */, 4302F4DF1D4E607B00F0FCAF /* LegacyInsulinDeliveryTableViewController.swift in Sources */, - 43177D041D372A7F0006E908 /* CarbEntryTableViewController.swift in Sources */, - 43B17C81208BFA6600AC27E9 /* HKUnit.swift in Sources */, - 89AE2245228D0B5C00BDFD85 /* TimeZone.swift in Sources */, + C18733D229B94B8E00519CDF /* HKUnit.swift in Sources */, 430157FC1C7EC03B00B64B63 /* MasterViewController.swift in Sources */, + C18733CE29B94B1700519CDF /* IdentifiableClass.swift in Sources */, 430157FA1C7EC03B00B64B63 /* AppDelegate.swift in Sources */, - 43177D021D3729E60006E908 /* IdentifiableClass.swift in Sources */, - B4AA27F224C1ECDC001B8AFA /* UIColor.swift in Sources */, - 4302F4D91D4D32D500F0FCAF /* NSTimeInterval.swift in Sources */, 435F355E1C9CD16A00C204D2 /* NSUserDefaults.swift in Sources */, 435F35611C9CD25F00C204D2 /* DeviceDataManager.swift in Sources */, ); @@ -3535,13 +3710,16 @@ 1D1065E7282DC3BB00026A70 /* PopoverLink.swift in Sources */, 898E6E6E2241ED9F0019E459 /* SuspendResumeTableViewCell.swift in Sources */, B4C004D12416961300B40429 /* GuidePage.swift in Sources */, + C18733B129B9492300519CDF /* Math.swift in Sources */, 898B4E7E246DEB920053C484 /* GuardrailConstrainedQuantityRangeView.swift in Sources */, + C18733AB29B9492300519CDF /* UITableViewCell.swift in Sources */, E93E866A24DD05FA00FF40C8 /* OverrideSelectionHistory.swift in Sources */, 898E6E69224179310019E459 /* BatteryLevelHUDView.swift in Sources */, 89E7E61024D11AB600591386 /* OrientationLock.swift in Sources */, 89B0B2AA2453C0AB0063D4A7 /* GuardrailConstraintedQuantityView.swift in Sources */, 898B4E75246CCAB50053C484 /* Binding.swift in Sources */, 892155182245FBEF009112BC /* InsulinSensitivityScalingTableViewCell.swift in Sources */, + C18733AE29B9492300519CDF /* NSTimeInterval.swift in Sources */, 892155132245C516009112BC /* SegmentedGaugeBarView.swift in Sources */, E9077D2A24ACDE2C0066A88D /* CorrectionRangeInformationView.swift in Sources */, 1D498E4724D892B0000627F2 /* Environment+Authenticate.swift in Sources */, @@ -3566,11 +3744,10 @@ B4001CF028CBC200002FB414 /* SingleSelectionCheckList.swift in Sources */, 89FC6891245A2D680075CF59 /* ScheduleItemPicker.swift in Sources */, 1D1FCE2524BD42EF000300A8 /* TherapySettingsViewModel.swift in Sources */, - 43BA718C201EEE5A0058961E /* NSData.swift in Sources */, 43F5035A21059AF7009FA89A /* AuthenticationTableViewCell.swift in Sources */, E916F56924AD32F000BE3547 /* CorrectionRangeOverridesEditor.swift in Sources */, + C18733B029B9492300519CDF /* NibLoadable.swift in Sources */, C1E4B30A242E99A800E70CCB /* Image.swift in Sources */, - 43BA718A201EE8CF0058961E /* NSTimeInterval.swift in Sources */, B4A2AAB1240830A30066563F /* LabeledTextField.swift in Sources */, B429D66E24BF7255003E1B4A /* UIImage.swift in Sources */, B46B62A923FF05F8001E69BA /* LabeledNumberInput.swift in Sources */, @@ -3608,8 +3785,6 @@ 898E6E702241EDB70019E459 /* PercentageTextFieldTableViewController.swift in Sources */, 89CAB36D24C9EC98009EE3CE /* Keyboard.swift in Sources */, 89186C0724BF7FC70003D0F3 /* Guardrail+UI.swift in Sources */, - 432CF87420D774520066B889 /* NumberFormatter.swift in Sources */, - 1F5DAB212118C95700048054 /* LocalizedString.swift in Sources */, 43FB60E520DCBA02002B996B /* SetupTableViewController.swift in Sources */, 43BA7180201EE7090058961E /* SingleValueScheduleTableViewController.swift in Sources */, E9DFB92C24E634E800468917 /* ExpandablePicker.swift in Sources */, @@ -3619,7 +3794,6 @@ 895FE09322011F4800FCF18A /* EmojiInputController.swift in Sources */, 43BA717E201EE7090058961E /* CommandResponseViewController.swift in Sources */, C188B83422CC16AC0051760A /* InsulinSensitivityScheduleViewController.swift in Sources */, - 43BA717A201E4F1D0058961E /* IdentifiableClass.swift in Sources */, 895FE08822011F0C00FCF18A /* DoubleRangeTableViewCell.swift in Sources */, E9086B2924B39EDC0062F5C8 /* ChartsTableViewController.swift in Sources */, 43BA7187201EE7090058961E /* GlucoseRangeScheduleTableViewController.swift in Sources */, @@ -3656,21 +3830,21 @@ 43BA716F201E49220058961E /* FoodEmojiDataSource.swift in Sources */, E9077D2724ACD59F0066A88D /* InformationView.swift in Sources */, E94141D024C8F31C0096C326 /* DeliveryLimitsEditor.swift in Sources */, + C18733AD29B9492300519CDF /* TimeZone.swift in Sources */, 43F89C9F22BDFB10006BB54E /* UIActivityIndicatorView.swift in Sources */, C1DD517825A016E700DE27AE /* InsulinTypeSetting.swift in Sources */, 892ADE002446C858007CE08C /* Card.swift in Sources */, 89653C8424738D2B00E1BAA5 /* BasalRateScheduleEditor.swift in Sources */, + C18733B229B9492300519CDF /* Comparable.swift in Sources */, B4B7C1BC2604E3FC007379F6 /* CorrectionRangeScheduleEditorViewModel.swift in Sources */, 898B4E77246DAE280053C484 /* GlucoseRangePicker.swift in Sources */, 432CF86D20D76C470066B889 /* SwitchTableViewCell.swift in Sources */, E93C86A824C8F7F70073089B /* InsulinModelChartView.swift in Sources */, - 43BA7188201EE85B0058961E /* HKUnit.swift in Sources */, E93C86B224D080E00073089B /* CarbRatioInformationView.swift in Sources */, 89F6E30D2449713600CB9E15 /* CardStack.swift in Sources */, 89BE75C324649C4C00B145D9 /* RoundedCorners.swift in Sources */, C1E4B306242E98E900E70CCB /* ProgressIndicatorView.swift in Sources */, 4369F092208B0DFF000E3E45 /* DateAndDurationTableViewCell.swift in Sources */, - 43BA7189201EE8980058961E /* UITableViewCell.swift in Sources */, E9086B3524B3A8820062F5C8 /* ChartContainerView.swift in Sources */, 89AF78C624482269002B4FCC /* ActionButtonStyle.swift in Sources */, 1D60355E24D39ED10095DC2A /* Environment+AppName.swift in Sources */, @@ -3678,17 +3852,15 @@ 1DD1964E248AE88000420876 /* HorizontalSizeClassOverride.swift in Sources */, 892A5D9C2231E118008961AB /* UIAlertController.swift in Sources */, 43BA7181201EE7090058961E /* RepeatingScheduleValueTableViewCell.swift in Sources */, + C18733B629B9495400519CDF /* LocalizedString.swift in Sources */, 1DC64C7C24BF6BFD004A63A1 /* CorrectionRangeOverridesExtension.swift in Sources */, 43BA716E201E49220058961E /* DecimalTextFieldTableViewCell.swift in Sources */, - 891A3FC72247268F00378B27 /* Math.swift in Sources */, 895FE08722011F0C00FCF18A /* EmojiInputCell.swift in Sources */, 89627B182441168900BEB424 /* ConfigurationPage.swift in Sources */, 43A8EC3C210CEEA500A81379 /* CGMManagerUI.swift in Sources */, - 43BA718B201EE93C0058961E /* TimeZone.swift in Sources */, 89FC6892245A2D680075CF59 /* ScheduleEditor.swift in Sources */, 89CAB37124CB4DEC009EE3CE /* WarningView.swift in Sources */, A9CFCA8F2582F9FA00A04932 /* OnboardingUI.swift in Sources */, - 43BA717B201EE6A40058961E /* NibLoadable.swift in Sources */, E916F56F24AE2FFE00BE3547 /* CorrectionRangeOverrideInformationView.swift in Sources */, 89BE75C124649C2E00B145D9 /* ModalHeaderButtonBar.swift in Sources */, A9012EB225BA3861000813AD /* SetupUIResult.swift in Sources */, @@ -3699,7 +3871,6 @@ 895FE08122011F0C00FCF18A /* OverridePresetCollectionViewCell.swift in Sources */, 43FB60E320DCB9E0002B996B /* PumpManagerUI.swift in Sources */, 89186C0B24BFD6DB0003D0F3 /* DurationPicker.swift in Sources */, - 8974B0692215FE460043F01B /* Collection.swift in Sources */, 89BE75C72464B4A900B145D9 /* Environment+Dismiss.swift in Sources */, 43BA717F201EE7090058961E /* GlucoseRangeOverrideTableViewCell.swift in Sources */, 895FE09022011F4800FCF18A /* OverrideSelectionViewController.swift in Sources */, @@ -3707,8 +3878,8 @@ 43F5035721059A8A009FA89A /* ServiceCredential.swift in Sources */, E93C86A224C8F7550073089B /* InsulinModelChart.swift in Sources */, E93C86B624D08CAD0073089B /* InsulinSensitivityInformationView.swift in Sources */, + C18733AF29B9492300519CDF /* Collection.swift in Sources */, 892A5DA22231E137008961AB /* HUDProvider.swift in Sources */, - 892A5DBC2231E20C008961AB /* Comparable.swift in Sources */, 898E6E6C224194060019E459 /* UIColor.swift in Sources */, 43BA717D201EE7090058961E /* GlucoseRangeTableViewCell.swift in Sources */, B455F3A425FF7FF0000ED456 /* CorrectionRangeOverridesEditorViewModel.swift in Sources */, @@ -3726,6 +3897,7 @@ 89AF78C02447E285002B4FCC /* CardStackBuilder.swift in Sources */, E9F54FC62581C50D0034795E /* ExpandableDatePicker.swift in Sources */, 43BA7185201EE7090058961E /* DailyValueScheduleTableViewController.swift in Sources */, + C18733B829B949FF00519CDF /* Data.swift in Sources */, 1D1065E4282DAEE500026A70 /* VideoView.swift in Sources */, 1D1065E9282DC54700026A70 /* VideoPlayView.swift in Sources */, E99A132E2557548300D3F5B3 /* SegmentedGaugeBar.swift in Sources */, @@ -3733,6 +3905,8 @@ 892A5DB32231E191008961AB /* LevelHUDView.swift in Sources */, B41A60B223D1DBC700636320 /* UIFont.swift in Sources */, B41A60AF23D1DB5B00636320 /* TableViewTitleLabel.swift in Sources */, + C18733B329B9492300519CDF /* IdentifiableClass.swift in Sources */, + C18733AC29B9492300519CDF /* UITextField.swift in Sources */, 89CC35D42403450E008FB633 /* ThumbView.swift in Sources */, 43BA7162201E490D0058961E /* ErrorBackgroundView.swift in Sources */, 892A5D9A2231E0E4008961AB /* SettingsNavigationViewController.swift in Sources */, @@ -3740,15 +3914,16 @@ B40D07CB251BD89D00C1C6D7 /* DateAndDurationSteppableTableViewCell.swift in Sources */, E949E38924AFC82F00024DA0 /* DeliveryLimitsInformationView.swift in Sources */, 1DC9240F2575EF9A004F132A /* QuantityFormatter+Guardrails.swift in Sources */, + C18733B429B9492300519CDF /* HKUnit.swift in Sources */, 89CAB36B24C9EC25009EE3CE /* DismissibleKeyboardTextField.swift in Sources */, E9086B4A24B540B70062F5C8 /* DateFormatter.swift in Sources */, 89AC9DCB24529927004A6B8A /* QuantityPicker.swift in Sources */, 1D096BFA24C242300078B6B5 /* CheckmarkListItem.swift in Sources */, A9DCF2CA25B0F38000C89088 /* LoopUIColorPalette.swift in Sources */, E9086B4524B53CC50062F5C8 /* GlucoseChart.swift in Sources */, - 1DECC3F52513F98D00F4056E /* UITextField.swift in Sources */, B4C004D22416961300B40429 /* GuideNavigationButton.swift in Sources */, 89627B16244115A400BEB424 /* CardList.swift in Sources */, + C18733AA29B9492300519CDF /* NumberFormatter.swift in Sources */, 89F6E311244A1AAB00CB9E15 /* SettingDescription.swift in Sources */, 1DE35E7A24ABEC720086F9AE /* DeviceManagerUI.swift in Sources */, ); @@ -3761,12 +3936,10 @@ B4102D3224ABB068005D460B /* DeviceLifecycleProgress.swift in Sources */, C17F39C923CD269200FA1113 /* DeviceLogEntryType.swift in Sources */, C1814B84225B9ED5008D2D8E /* LoopNotificationCategory.swift in Sources */, - 43D8FDFD1C7290350073BE78 /* HKUnit.swift in Sources */, E9F54F5E25802D5E0034795E /* InsulinType.swift in Sources */, C17F39C123CD24A000FA1113 /* DeviceLog.xcdatamodeld in Sources */, B42C951924A508CE00857C73 /* DeviceStatusHighlight.swift in Sources */, 4322B779202FA2790002837D /* NewCarbEntry.swift in Sources */, - 898C896A24D4BF11002FA994 /* Guardrail+Settings.swift in Sources */, 4322B76E202FA26B0002837D /* GlucoseMath.swift in Sources */, B455F4D32600DA0B000ED456 /* GlucoseRange.swift in Sources */, 891A3FDB224BEC0D00378B27 /* CarbSensitivitySchedule.swift in Sources */, @@ -3774,12 +3947,13 @@ C1E84B8525C62FB100623C08 /* Modelv1v4.xcmappingmodel in Sources */, 43D8FDFC1C7290350073BE78 /* HealthKitSampleStore.swift in Sources */, A9498D7E23386C3300DAA9B9 /* GlucoseThreshold.swift in Sources */, - 434570441FE605E30089C4DC /* OSLog.swift in Sources */, 4322B789202FA2B30002837D /* DoseType.swift in Sources */, C17F39C723CD256000FA1113 /* PersistentDeviceLog.swift in Sources */, + C187338D29B9486200519CDF /* TimeInterval.swift in Sources */, 437AFEED2036A156008C4892 /* CachedCarbObject+CoreDataClass.swift in Sources */, 43D8FDF71C7290350073BE78 /* DailyValueSchedule.swift in Sources */, 4322B77D202FA2AF0002837D /* NewPumpEvent.swift in Sources */, + A935793F29A2570400246DED /* Action.swift in Sources */, 434113AA20F171CB00D05747 /* CachedInsulinDeliveryObject+CoreDataClass.swift in Sources */, C140DFFF260276BF000A4FF7 /* ManualBolusRecommendation.swift in Sources */, 432CF86F20D76CCF0066B889 /* GlucoseTrend.swift in Sources */, @@ -3788,21 +3962,20 @@ 4322B78B202FA2B30002837D /* ExponentialInsulinModel.swift in Sources */, E9086B3924B3CB4B0062F5C8 /* TherapySettings.swift in Sources */, 89AE222F228BC68000BDFD85 /* DoseProgressTimerEstimator.swift in Sources */, - 43D8FE011C7290350073BE78 /* NSTimeInterval.swift in Sources */, 43D8FDF61C7290350073BE78 /* DailyQuantitySchedule.swift in Sources */, 43D8FDF51C7290350073BE78 /* CarbRatioSchedule.swift in Sources */, - 89ED164324A29BE400C9A105 /* ClosedRange.swift in Sources */, 4322B76F202FA26F0002837D /* GlucoseSampleValue.swift in Sources */, 89AE222C228BC66E00BDFD85 /* Locked.swift in Sources */, + A935793C29A2570400246DED /* OverrideCancelAction.swift in Sources */, 432CF87120D76D5A0066B889 /* GlucoseDisplayable.swift in Sources */, A919889F2355016B00B75EEE /* DosingDecisionStore.swift in Sources */, A9BD318224F4548900994B83 /* Modelv3EntityMigrationPolicy.swift in Sources */, 4322B77F202FA2AF0002837D /* PersistenceController.swift in Sources */, 4322B78D202FA2B30002837D /* InsulinDeliveryStore.swift in Sources */, - 8974B0682215FE460043F01B /* Collection.swift in Sources */, A9498D8023386C3300DAA9B9 /* RemoteDataService.swift in Sources */, 4379CFE321102A4100AADC79 /* DeviceManager.swift in Sources */, 4322B78A202FA2B30002837D /* DoseUnit.swift in Sources */, + C187339029B9486200519CDF /* Guardrail+Settings.swift in Sources */, A95A1D7F2460BBC70079378D /* DosingDecisionObject+CoreDataClass.swift in Sources */, 432762741D60505F0083215A /* HKQuantitySample.swift in Sources */, 43D8FDF81C7290350073BE78 /* Double.swift in Sources */, @@ -3815,16 +3988,19 @@ 43D9888B1C87E47800DA4467 /* GlucoseValue.swift in Sources */, A967D94924F99B6A00CDDF8A /* OutputStream.swift in Sources */, 43D8FDF41C7290350073BE78 /* BasalRateSchedule.swift in Sources */, + A935793B29A2570400246DED /* CarbAction.swift in Sources */, 4322B788202FA2B30002837D /* DoseStore.swift in Sources */, - 4303C4921E2D665000ADEDC8 /* TimeZone.swift in Sources */, A9498D6F23386C0B00DAA9B9 /* TempBasalRecommendation.swift in Sources */, - 89ED164024A29BA300C9A105 /* Sequence.swift in Sources */, + C187338E29B9486200519CDF /* ClosedRange.swift in Sources */, A93CA899278D08CC003B5A01 /* PumpAlarmType.swift in Sources */, 4322B781202FA2AF0002837D /* PumpEvent+CoreDataProperties.swift in Sources */, A9498D8223386C3300DAA9B9 /* Service.swift in Sources */, + C187338F29B9486200519CDF /* NumberFormatter.swift in Sources */, 4322B785202FA2AF0002837D /* ReservoirValue.swift in Sources */, 891A3FD9224BEB4600378B27 /* EGPSchedule.swift in Sources */, + A935793D29A2570400246DED /* OverrideAction.swift in Sources */, 89AE2229228BC54C00BDFD85 /* TemporaryScheduleOverrideHistory.swift in Sources */, + C187338B29B9486200519CDF /* Comparable.swift in Sources */, 437AFF24203BE402008C4892 /* HKHealthStore.swift in Sources */, 89AE222B228BC56A00BDFD85 /* WeakSet.swift in Sources */, A9498D7C23386C3300DAA9B9 /* AnalyticsService.swift in Sources */, @@ -3834,26 +4010,23 @@ 1DA649AB2445174400F61E75 /* Alert.swift in Sources */, 4322B777202FA2790002837D /* CarbValue.swift in Sources */, 4322B782202FA2AF0002837D /* PumpEventType.swift in Sources */, - 4322B77C202FA2A60002837D /* NSData.swift in Sources */, 89AE2228228BC54C00BDFD85 /* TemporaryScheduleOverrideSettings.swift in Sources */, 43D8FDFA1C7290350073BE78 /* GlucoseRangeSchedule.swift in Sources */, 4322B77E202FA2AF0002837D /* PersistedPumpEvent.swift in Sources */, 437AFEEE2036A156008C4892 /* CachedCarbObject+CoreDataProperties.swift in Sources */, 4322B772202FA2790002837D /* AbsorbedCarbValue.swift in Sources */, - 1F5DAB1F2118C95700048054 /* LocalizedString.swift in Sources */, 434113AD20F287DC00D05747 /* NSManagedObjectContext.swift in Sources */, + C187339829B9488300519CDF /* Sequence.swift in Sources */, 4322B77B202FA2790002837D /* StoredCarbEntry.swift in Sources */, 4322B790202FA2B30002837D /* InsulinValue.swift in Sources */, - 434C5F9E209938CD00B2FD1A /* NumberFormatter.swift in Sources */, 4322B78C202FA2B30002837D /* HKQuantitySample+InsulinKit.swift in Sources */, + C187339229B9486200519CDF /* MutableCollection.swift in Sources */, 89AE2226228BC54C00BDFD85 /* TemporaryScheduleOverridePreset.swift in Sources */, 4322B78F202FA2B30002837D /* InsulinModel.swift in Sources */, 1D096C0324C24C220078B6B5 /* ExponentialInsulinModelPreset.swift in Sources */, 434C5F9C2098352500B2FD1A /* QuantityFormatter.swift in Sources */, 43F503642106C78C009FA89A /* ServiceAuthentication.swift in Sources */, - 89F53E9422B4328E0024A67C /* MutableCollection.swift in Sources */, A93761C125ED670200F6BE43 /* BluetoothProvider.swift in Sources */, - C1B9E127256C1E91008E8B84 /* Comparable.swift in Sources */, 433BC7A720523DB7000B1200 /* NewGlucoseSample.swift in Sources */, 4322B78E202FA2B30002837D /* InsulinMath.swift in Sources */, C17F39D023CE34B100FA1113 /* StoredDeviceLogEntry.swift in Sources */, @@ -3864,6 +4037,7 @@ 4322B775202FA2790002837D /* CarbStatus.swift in Sources */, 4322B787202FA2B30002837D /* DoseEntry.swift in Sources */, 43CB51B2211EB1A400DB9B4A /* NSUserActivity+CarbKit.swift in Sources */, + C187338C29B9486200519CDF /* HKUnit.swift in Sources */, 434113AB20F171CB00D05747 /* CachedInsulinDeliveryObject+CoreDataProperties.swift in Sources */, A9E1E6A924E1B6700073CA39 /* SyncCarbObject.swift in Sources */, A96E6C3727B35BC600F81A5B /* AnyCodableEquatable.swift in Sources */, @@ -3876,6 +4050,7 @@ 43D8FDF91C7290350073BE78 /* GlucoseEffect.swift in Sources */, A932803B2798D63B0091D0A1 /* SyncAlertObject.swift in Sources */, 1D841AAD24577EE10069DBFF /* AlertSoundPlayer.swift in Sources */, + C187339A29B9488300519CDF /* UUID.swift in Sources */, C1CAB9E926A3254800A57273 /* StoredInsulinModel.swift in Sources */, 43CACE0E2247F89100F90AF5 /* WeakSynchronizedSet.swift in Sources */, A912BE2B245B9E8600CBE199 /* SettingsObject+CoreDataProperties.swift in Sources */, @@ -3883,7 +4058,9 @@ 43D8FDFE1C7290350073BE78 /* LoopMath.swift in Sources */, 43D8FDFF1C7290350073BE78 /* Date.swift in Sources */, C191D26325B3815000C26C0B /* AutomaticDoseRecommendation.swift in Sources */, + C187339429B9486200519CDF /* DateFormatter.swift in Sources */, A919889C2354E5EB00B75EEE /* SettingsStore.swift in Sources */, + C187338A29B9486200519CDF /* Collection.swift in Sources */, B42A7472235885B600247B03 /* LoopNotificationUserInfoKey.swift in Sources */, B4B85FCD24A2312000A296A3 /* GlucoseRangeCategory.swift in Sources */, 43C9805C212D216A003B5D17 /* GlucoseChange.swift in Sources */, @@ -3904,6 +4081,9 @@ 4322B778202FA2790002837D /* HKQuantitySample+CarbKit.swift in Sources */, 4322B771202FA26F0002837D /* HKQuantitySample+GlucoseKit.swift in Sources */, 433BC7AB20538D4C000B1200 /* CachedGlucoseObject+CoreDataProperties.swift in Sources */, + A935793E29A2570400246DED /* BolusAction.swift in Sources */, + C187339929B9488300519CDF /* TimeZone.swift in Sources */, + C187339329B9486200519CDF /* OSLog.swift in Sources */, 43FB610720DDF19B002B996B /* PumpManagerError.swift in Sources */, 89AE2232228BC68600BDFD85 /* UnfairLock.swift in Sources */, A9FD046F24E310D00040F203 /* HKObject.swift in Sources */, @@ -3911,6 +4091,7 @@ C168CA7A280DD00F002BD2A7 /* Model.xcdatamodeld in Sources */, 4322B770202FA26F0002837D /* GlucoseStore.swift in Sources */, C1814B8C226371DF008D2D8E /* WeakSynchronizedDelegate.swift in Sources */, + C187339129B9486200519CDF /* Data.swift in Sources */, 1D1FCE2724BE4DE2000300A8 /* CorrectionRangeOverrides.swift in Sources */, 1D1FCE2924BE4F11000300A8 /* TherapySetting.swift in Sources */, 4352A73C20DECF0700CAC200 /* CGMManager.swift in Sources */, @@ -3918,6 +4099,7 @@ 43AF1FB21C926CDD00EA2F3D /* HKQuantity.swift in Sources */, 89F6E30F244A1A5D00CB9E15 /* Guardrail.swift in Sources */, A985464F251449FE0099C1A6 /* NotificationSettings.swift in Sources */, + C187337E29B9481500519CDF /* LocalizedString.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3925,7 +4107,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1F5DAB202118C95700048054 /* LocalizedString.swift in Sources */, 434113B820F2BDE800D05747 /* PersistenceControllerTestCase.swift in Sources */, 437874B6202FDD1500A3D8B9 /* InsulinMathTests.swift in Sources */, B4B7C1612603F241007379F6 /* InsulinSensitivityScheduleTests.swift in Sources */, @@ -3935,7 +4116,6 @@ A971C8A423C6B1890099BEFC /* DosingDecisionStoreTests.swift in Sources */, 437AFF21203AA740008C4892 /* NSManagedObjectContext.swift in Sources */, A95A1D852460CAD50079378D /* CarbValueTests.swift in Sources */, - 434C5FA1209AC4EE00B2FD1A /* HKUnit.swift in Sources */, 437AFF1F203A763F008C4892 /* HKHealthStoreMock.swift in Sources */, A99C73792339ACDC00C80963 /* ServiceTests.swift in Sources */, 891A3FD32249990900378B27 /* DailyValueSchedule.swift in Sources */, @@ -3958,22 +4138,18 @@ 43D8FE1F1C72906E0073BE78 /* QuantityScheduleTests.swift in Sources */, 43D8FE1D1C72906E0073BE78 /* BasalRateScheduleTests.swift in Sources */, 434113B320F2890800D05747 /* PersistenceControllerTests.swift in Sources */, - A971C8A023C69E0F0099BEFC /* NSData.swift in Sources */, 434113BE20F2C72000D05747 /* CachedCarbObjectTests.swift in Sources */, A9DF02D124F7449E00B7C988 /* PersistentDeviceLogTests.swift in Sources */, - 43260F6E21C4BF7A00DD6837 /* UUID.swift in Sources */, A9DF02C524F6FA5100B7C988 /* PumpEventTests.swift in Sources */, A985464B251442010099C1A6 /* OutputStreamTests.swift in Sources */, A971C8A223C6B17D0099BEFC /* SettingsStoreTests.swift in Sources */, C1E7035D24FFFA5C00DAB534 /* CollectionTests.swift in Sources */, 1DFB99D6245CB2E900DCC8C9 /* AlertTests.swift in Sources */, B455F35625FC0284000ED456 /* CorrectionRangeOverridesTests.swift in Sources */, - 4303C4941E2D665F00ADEDC8 /* TimeZone.swift in Sources */, 898C897124D4C0E4002FA994 /* GuardrailTests.swift in Sources */, A9DF02CF24F732FC00B7C988 /* JSONStreamEncoderTests.swift in Sources */, 4322B76D202F9EF20002837D /* GlucoseMathTests.swift in Sources */, A9672B5326E80C060025B0CD /* NewGlucoseSampleTests.swift in Sources */, - 43025DAF1D5AB2E300106C28 /* NSTimeInterval.swift in Sources */, 43D8FDDB1C728FDF0073BE78 /* LoopKitTests.swift in Sources */, A9E068112534D87800BDAB59 /* StoredGlucoseSampleTests.swift in Sources */, B4B7C1772603F5F6007379F6 /* HKUnitTests.swift in Sources */, @@ -3991,7 +4167,6 @@ B46E095725F7E5910025A04D /* GlucoseRangeScheduleTests.swift in Sources */, A9DF02C324F6EEE400B7C988 /* DeviceLogEntryTests.swift in Sources */, 891A3FD7224BE62100378B27 /* DailyValueScheduleTests.swift in Sources */, - 430059241CCDD08C00C861EA /* NSDateFormatter.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4001,16 +4176,15 @@ files = ( 892A5D54222F03F9008961AB /* TestingPumpManager.swift in Sources */, 89ADE12F226BDED40067222B /* DateRelativeBolusEntry.swift in Sources */, - 89ADE132226BE0590067222B /* HKUnit.swift in Sources */, + C187339E29B948F200519CDF /* HKUnit.swift in Sources */, 89CA2B38226D4456004D9350 /* DateRelativeQuantity.swift in Sources */, 89ADE12D226BDD190067222B /* DateRelativeBasalEntry.swift in Sources */, + C187339C29B948D800519CDF /* Data.swift in Sources */, 89ADE134226BF0490067222B /* TestingScenarioInstance.swift in Sources */, 892A5D52222F03DB008961AB /* TestingDeviceManager.swift in Sources */, 89ADE129226BDB280067222B /* TestingScenario.swift in Sources */, 89ADE12B226BDB730067222B /* DateRelativeCarbEntry.swift in Sources */, - 89CA2B36226D1627004D9350 /* MutableCollection.swift in Sources */, 89ADE136226BF0BE0067222B /* DateRelativeGlucoseSample.swift in Sources */, - 89ADE139226BF51E0067222B /* NSData.swift in Sources */, 892A5D56222F0414008961AB /* TestingCGMManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4019,21 +4193,20 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 89CA2B35226D1624004D9350 /* MutableCollection.swift in Sources */, C164A56422F21081000E3FA5 /* MockPumpManagerState.swift in Sources */, - 89D204BF21CC7FFB001238CC /* NSTimeInterval.swift in Sources */, + C18733BD29B94A3700519CDF /* TimeInterval.swift in Sources */, C164A56022F14C73000E3FA5 /* UnfinalizedDose.swift in Sources */, - 89D204C421CC803C001238CC /* HKUnit.swift in Sources */, 89D204A921CC7C8F001238CC /* MockPumpManager.swift in Sources */, + C18733BC29B94A3700519CDF /* HKUnit.swift in Sources */, C1FAEC1F264AE12700A3250B /* UIImage.swift in Sources */, - 89ADE138226BF51D0067222B /* NSData.swift in Sources */, A9498D8D23386CD800DAA9B9 /* MockService.swift in Sources */, 89D204AA21CC7C8F001238CC /* MockGlucoseProvider.swift in Sources */, 89AE2233228BC6A500BDFD85 /* MockDoseProgressEstimator.swift in Sources */, - C1390AAF246A541C002F3C3C /* TimeZone.swift in Sources */, 89D204AB21CC7C8F001238CC /* MockCGMDataSource.swift in Sources */, + C15E994629C6790A004AB926 /* LocalizedString.swift in Sources */, 89D204B221CC7D93001238CC /* Collection.swift in Sources */, 89D204AC21CC7C8F001238CC /* MockCGMManager.swift in Sources */, + C18733BE29B94A3700519CDF /* TimeZone.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4042,31 +4215,30 @@ buildActionMask = 2147483647; files = ( 892A5D2E222EF69A008961AB /* MockHUDProvider.swift in Sources */, + C18733C929B94A6400519CDF /* TimeInterval.swift in Sources */, + C18733C529B94A6400519CDF /* NumberFormatter.swift in Sources */, 439706E922D2E94800C81566 /* BoundSwitchTableViewCell.swift in Sources */, 89D204B421CC7E74001238CC /* MockCGMManager+UI.swift in Sources */, 89D204B521CC7E74001238CC /* MockPumpManager+UI.swift in Sources */, 1DFFB988271740EE0075AEAA /* MockSupport.swift in Sources */, A9498D8F23386CE800DAA9B9 /* MockServiceTableViewController.swift in Sources */, - 89D204C121CC8005001238CC /* NibLoadable.swift in Sources */, 89D204BE21CC7F34001238CC /* GlucoseTrendTableViewController.swift in Sources */, - 89D204C621CC8165001238CC /* UITableViewCell.swift in Sources */, + C18733C829B94A6400519CDF /* NibLoadable.swift in Sources */, + C18733CA29B94A6400519CDF /* UITableViewCell.swift in Sources */, 8992426521EC138000EA512B /* UIColor.swift in Sources */, + C18733C629B94A6400519CDF /* Comparable.swift in Sources */, 89D204BA21CC7F34001238CC /* MockPumpManagerSettingsViewController.swift in Sources */, + C18733CC29B94A7A00519CDF /* LocalizedString.swift in Sources */, 89D204BC21CC7F34001238CC /* SineCurveParametersTableViewController.swift in Sources */, - C1F8B1E2223C3CC000DD66CF /* TimeZone.swift in Sources */, C1FAEC21264AEEA300A3250B /* UIImage.swift in Sources */, 89D204BD21CC7F34001238CC /* RandomOutlierTableViewController.swift in Sources */, B42C950E24A3BD4B00857C73 /* MeasurementFrequencyTableViewController.swift in Sources */, - 898E6E732241EE000019E459 /* Comparable.swift in Sources */, B45774352562CCC6004B9466 /* SupportedRangeTableViewController.swift in Sources */, 892A5D28222EF567008961AB /* (null) in Sources */, - 89D204C221CC8008001238CC /* IdentifiableClass.swift in Sources */, - 89D204CB21CC8228001238CC /* NumberFormatter.swift in Sources */, C1E0EEF624EB26D800086510 /* DeliveryUncertaintyRecoveryView.swift in Sources */, 89D204BB21CC7F34001238CC /* MockCGMManagerSettingsViewController.swift in Sources */, - 89D204C521CC815E001238CC /* NSTimeInterval.swift in Sources */, - 89D204CC21CC8236001238CC /* LocalizedString.swift in Sources */, 1DABAD3A2453615200ACF708 /* IssueAlertTableViewController.swift in Sources */, + C18733C729B94A6400519CDF /* IdentifiableClass.swift in Sources */, A9498D9123386D0800DAA9B9 /* MockService+UI.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4085,18 +4257,18 @@ 89AE223A228BCAAB00BDFD85 /* TemporaryScheduleOverridePreset.swift in Sources */, 89AE223B228BCAAB00BDFD85 /* TemporaryScheduleOverrideSettings.swift in Sources */, A987CD4724A5893500439ADC /* JSONStreamEncoder.swift in Sources */, + C1CEBFD929BA9D81007FD8A3 /* TimeZone.swift in Sources */, 89AE223C228BCAAB00BDFD85 /* WeakSet.swift in Sources */, A9E6758222713F4700E25293 /* LoopNotificationCategory.swift in Sources */, + C1CEBFDA29BA9D88007FD8A3 /* ClosedRange.swift in Sources */, A9E1E6AA24E1B7C10073CA39 /* SyncCarbObject.swift in Sources */, - A9E6758322713F4700E25293 /* HKUnit.swift in Sources */, A9E6758422713F4700E25293 /* NewCarbEntry.swift in Sources */, A9E6758522713F4700E25293 /* GlucoseMath.swift in Sources */, A9E6758722713F4700E25293 /* CarbEntry.swift in Sources */, A9E6758822713F4700E25293 /* HealthKitSampleStore.swift in Sources */, - 89AE223D228BCB0B00BDFD85 /* Collection.swift in Sources */, - A9E6758B22713F4700E25293 /* OSLog.swift in Sources */, C17F39CC23CD2D3E00FA1113 /* DeviceLog.xcdatamodeld in Sources */, A93CA89A278D08CC003B5A01 /* PumpAlarmType.swift in Sources */, + C1CEBFDC29BA9D9D007FD8A3 /* NumberFormatter.swift in Sources */, A9E6758C22713F4700E25293 /* DoseType.swift in Sources */, A9E6758D22713F4700E25293 /* CachedCarbObject+CoreDataClass.swift in Sources */, 1DD9CE9A26B8CF4A008B4A46 /* HKDevice+Encodable.swift in Sources */, @@ -4104,14 +4276,13 @@ A9E6758F22713F4700E25293 /* NewPumpEvent.swift in Sources */, A9CE912324CA033A00302A40 /* InsulinModelProvider.swift in Sources */, A9E6759022713F4700E25293 /* CachedInsulinDeliveryObject+CoreDataClass.swift in Sources */, + C1CEBFD429BA9D57007FD8A3 /* HKUnit.swift in Sources */, A9E6759122713F4700E25293 /* GlucoseTrend.swift in Sources */, A9E6759222713F4700E25293 /* PumpManagerStatus.swift in Sources */, A9E6759322713F4700E25293 /* CarbMath.swift in Sources */, A9E6759522713F4700E25293 /* ExponentialInsulinModel.swift in Sources */, B4102D3324ABB0D8005D460B /* DeviceLifecycleProgress.swift in Sources */, - A9E6759622713F4700E25293 /* NSTimeInterval.swift in Sources */, A9E6759722713F4700E25293 /* DailyQuantitySchedule.swift in Sources */, - 89ED164124A29BA300C9A105 /* Sequence.swift in Sources */, C1A174EC23DEAD670034DF11 /* DeviceLogEntry+CoreDataClass.swift in Sources */, A9E6759822713F4700E25293 /* CarbRatioSchedule.swift in Sources */, A9E6759922713F4700E25293 /* GlucoseSampleValue.swift in Sources */, @@ -4123,15 +4294,16 @@ A9E6759E22713F4700E25293 /* DoseUnit.swift in Sources */, C17F39D123CE34FD00FA1113 /* StoredDeviceLogEntry.swift in Sources */, A9E675A022713F4700E25293 /* HKQuantitySample.swift in Sources */, + C1CEBFD329BA9D4F007FD8A3 /* OSLog.swift in Sources */, A9E675A122713F4700E25293 /* Double.swift in Sources */, A9E675A222713F4700E25293 /* KeychainManager.swift in Sources */, A9E675A322713F4700E25293 /* PumpManager.swift in Sources */, A9FD047024E310DD0040F203 /* HKObject.swift in Sources */, A9E675A422713F4700E25293 /* SampleValue.swift in Sources */, + C1CEBFD829BA9D7A007FD8A3 /* Sequence.swift in Sources */, A9E675A522713F4700E25293 /* GlucoseValue.swift in Sources */, A9E675A622713F4700E25293 /* BasalRateSchedule.swift in Sources */, A9E675A722713F4700E25293 /* DoseStore.swift in Sources */, - A9E675A822713F4700E25293 /* TimeZone.swift in Sources */, A9E675A922713F4700E25293 /* PumpEvent+CoreDataProperties.swift in Sources */, A9E675AA22713F4700E25293 /* ReservoirValue.swift in Sources */, A93761C225ED670200F6BE43 /* BluetoothProvider.swift in Sources */, @@ -4141,7 +4313,6 @@ A9E675AE22713F4700E25293 /* CarbValue.swift in Sources */, C17F39CB23CD2D2F00FA1113 /* DeviceLogEntryType.swift in Sources */, A9E675AF22713F4700E25293 /* PumpEventType.swift in Sources */, - A9E675B122713F4700E25293 /* NSData.swift in Sources */, C1A174ED23DEAD6A0034DF11 /* DeviceLogEntry+CoreDataProperties.swift in Sources */, A9E675B222713F4700E25293 /* GlucoseRangeSchedule.swift in Sources */, A9E675B322713F4700E25293 /* PersistedPumpEvent.swift in Sources */, @@ -4149,22 +4320,22 @@ A9E675B422713F4700E25293 /* CachedCarbObject+CoreDataProperties.swift in Sources */, A9E675B522713F4700E25293 /* AbsorbedCarbValue.swift in Sources */, B455F4FE2600E5EE000ED456 /* GlucoseRange.swift in Sources */, - A9E675B622713F4700E25293 /* LocalizedString.swift in Sources */, A9E675B722713F4700E25293 /* NSManagedObjectContext.swift in Sources */, A9E675B822713F4700E25293 /* StoredCarbEntry.swift in Sources */, + C1CEBFD629BA9D6C007FD8A3 /* Collection.swift in Sources */, A9E675BA22713F4700E25293 /* InsulinValue.swift in Sources */, - A9E675BB22713F4700E25293 /* NumberFormatter.swift in Sources */, A95A1D802460BBC70079378D /* DosingDecisionObject+CoreDataClass.swift in Sources */, 89AE2230228BC68100BDFD85 /* DoseProgressReporter.swift in Sources */, A9E675BD22713F4700E25293 /* HKQuantitySample+InsulinKit.swift in Sources */, C17F39CA23CD2D2000FA1113 /* PersistentDeviceLog.swift in Sources */, + E9A6D0E828DBCF5800DFF9D9 /* LoopNotificationUserInfoKey.swift in Sources */, A9E675BE22713F4700E25293 /* InsulinModel.swift in Sources */, 89AE222D228BC66E00BDFD85 /* Locked.swift in Sources */, - 89F53E9522B437570024A67C /* MutableCollection.swift in Sources */, A9E675BF22713F4700E25293 /* QuantityFormatter.swift in Sources */, A9E675C022713F4700E25293 /* ServiceAuthentication.swift in Sources */, A9E675C122713F4700E25293 /* NewGlucoseSample.swift in Sources */, A9E675C222713F4700E25293 /* InsulinMath.swift in Sources */, + C1CEBFD729BA9D73007FD8A3 /* MutableCollection.swift in Sources */, A9E675C322713F4700E25293 /* UnfairLock.swift in Sources */, 1DD3DEB624451C3300BD8E40 /* Alert.swift in Sources */, A9E675C422713F4700E25293 /* HealthStoreUnitCache.swift in Sources */, @@ -4175,12 +4346,15 @@ A9498D7023386C0B00DAA9B9 /* TempBasalRecommendation.swift in Sources */, A9E675C722713F4700E25293 /* DoseEntry.swift in Sources */, A9E675C822713F4700E25293 /* NSUserActivity+CarbKit.swift in Sources */, + C1CEBFD229BA9D43007FD8A3 /* TimeInterval.swift in Sources */, A9E675C922713F4700E25293 /* CachedInsulinDeliveryObject+CoreDataProperties.swift in Sources */, + C1CEBFD529BA9D62007FD8A3 /* LocalizedString.swift in Sources */, A967D94A24F99B6A00CDDF8A /* OutputStream.swift in Sources */, A9E675CB22713F4700E25293 /* StoredGlucoseSample.swift in Sources */, A9E675CC22713F4700E25293 /* GlucoseEffect.swift in Sources */, A9E675CD22713F4700E25293 /* WeakSynchronizedSet.swift in Sources */, A9E675CE22713F4700E25293 /* LoopMath.swift in Sources */, + C1CEBFDB29BA9D8F007FD8A3 /* Data.swift in Sources */, A9E675CF22713F4700E25293 /* Date.swift in Sources */, A9E675D022713F4700E25293 /* GlucoseChange.swift in Sources */, A9E675D122713F4700E25293 /* GlucoseSchedule.swift in Sources */, @@ -4199,7 +4373,6 @@ E9F54FBA258052130034795E /* InsulinType.swift in Sources */, A96E6C3827B35BC600F81A5B /* AnyCodableEquatable.swift in Sources */, A9E675DA22713F4700E25293 /* HKQuantitySample+CarbKit.swift in Sources */, - 89ED164424A29BE400C9A105 /* ClosedRange.swift in Sources */, A9E675DB22713F4700E25293 /* HKQuantitySample+GlucoseKit.swift in Sources */, A9E675DC22713F4700E25293 /* CachedGlucoseObject+CoreDataProperties.swift in Sources */, A9E675DD22713F4700E25293 /* PumpManagerError.swift in Sources */, @@ -4323,6 +4496,16 @@ 1F50C324212B20D300C18FAB /* pl */, F5E0BDF327E1D9EC0033557E /* he */, F5E0BE0F27E1DC490033557E /* tr */, + C1E50006297E492E0018FA21 /* ro */, + C183FDD5297E493D003B16ED /* fi */, + C161742C297E494D007C2E5F /* vi */, + C161E8FA297E495300E22BDD /* pt-BR */, + C133067A297E49730067A05C /* sv */, + C13493B5297E498700D87305 /* da */, + C1D107B8297E499D008905A6 /* ja */, + C1D7162929C75EE200B5AB3B /* cs */, + C15A582629C7866600D3A5A1 /* ar */, + C1FDCC0629C786F90056E652 /* sk */, ); name = Localizable.strings; sourceTree = ""; @@ -4340,6 +4523,16 @@ F5E0BE0627E1DBA40033557E /* sv */, F5E0BE0B27E1DC480033557E /* tr */, F5E0BE1327E1DCC90033557E /* vi */, + C1821688297E55A7001EB097 /* es */, + C1A4ED662981EE36008F4B1A /* de */, + C104B64A2981EE3B003A9235 /* fr */, + C14C46E82981EE3F00E20BEF /* nb */, + C16528FF2981EE40000B130A /* nl */, + C1BCB5BA298309C4001C50FF /* it */, + C1F490012995821600C8BD69 /* pl */, + C122DF0129BBFAAE00321F8D /* ru */, + C15A582429C7866600D3A5A1 /* ar */, + C1FDCC0429C786F90056E652 /* sk */, ); name = Main.storyboard; sourceTree = ""; @@ -4383,6 +4576,8 @@ F5E0BE0827E1DBA40033557E /* sv */, F5E0BE0D27E1DC490033557E /* tr */, F5E0BE1527E1DCC90033557E /* vi */, + C15A582729C7866600D3A5A1 /* ar */, + C1FDCC0729C786F90056E652 /* sk */, ); name = InsulinKit.storyboard; sourceTree = ""; @@ -4391,6 +4586,18 @@ isa = PBXVariantGroup; children = ( 4B67E2CA289B4EDB002D92AF /* de */, + C183FDD3297E493D003B16ED /* fi */, + C1821689297E55A7001EB097 /* es */, + C14C0AD02981EE35001B758E /* da */, + C104B64B2981EE3B003A9235 /* fr */, + C14C46E92981EE3F00E20BEF /* nb */, + C16529002981EE40000B130A /* nl */, + C1AA4E0F2981EE4400888F32 /* ro */, + C1D72CFD2981EE4600EE0982 /* sv */, + C1BCB5BB298309C4001C50FF /* it */, + C1F490022995821600C8BD69 /* pl */, + C1B2679E2995824000BCB7C1 /* tr */, + C122DF0229BBFAAE00321F8D /* ru */, ); name = InfoPlist.strings; sourceTree = ""; @@ -4399,6 +4606,27 @@ isa = PBXVariantGroup; children = ( 4B67E2CD289B4EDB002D92AF /* de */, + C1E50008297E492E0018FA21 /* ro */, + C1790E6D297E493600683E3B /* nl */, + C183FDD7297E493D003B16ED /* fi */, + C16DFA45297E494500D56397 /* fr */, + C161742E297E494D007C2E5F /* vi */, + C161E8FC297E495300E22BDD /* pt-BR */, + C13F89C4297E495B00C71398 /* ru */, + C1394BA6297E49630042F1A9 /* pl */, + C133067C297E49730067A05C /* sv */, + C14690CF297E497A00124A99 /* it */, + C1469E02297E498100042439 /* nb */, + C13493B7297E498700D87305 /* da */, + C10B8078297E498E00446CDD /* es */, + C1DB5556297E499500EB1DCE /* zh-Hans */, + C1D107BA297E499D008905A6 /* ja */, + C19E387F298638CE00851444 /* tr */, + C1D7162429C75E3B00B5AB3B /* en */, + C1D7162529C75E9000B5AB3B /* cs */, + C1D7162629C75E9F00B5AB3B /* he */, + C15A582A29C7866600D3A5A1 /* ar */, + C1FDCC0A29C786F90056E652 /* sk */, ); name = Localizable.strings; sourceTree = ""; @@ -4418,6 +4646,16 @@ 1F50C326212B20D400C18FAB /* pl */, F5E0BDF427E1D9EC0033557E /* he */, F5E0BE1027E1DC490033557E /* tr */, + C1E50005297E492E0018FA21 /* ro */, + C183FDD4297E493D003B16ED /* fi */, + C161742B297E494D007C2E5F /* vi */, + C161E8F9297E495300E22BDD /* pt-BR */, + C1330679297E49730067A05C /* sv */, + C13493B4297E498700D87305 /* da */, + C1D107B7297E499D008905A6 /* ja */, + C15A582529C7866600D3A5A1 /* ar */, + C121D8D329C7866D00DA0520 /* cs */, + C1FDCC0529C786F90056E652 /* sk */, ); name = Localizable.strings; sourceTree = ""; @@ -4437,6 +4675,48 @@ 1F50C329212B20D400C18FAB /* pl */, F5E0BDF527E1D9EC0033557E /* he */, F5E0BE1127E1DC490033557E /* tr */, + C1E50007297E492E0018FA21 /* ro */, + C183FDD6297E493D003B16ED /* fi */, + C161742D297E494D007C2E5F /* vi */, + C161E8FB297E495300E22BDD /* pt-BR */, + C133067B297E49730067A05C /* sv */, + C13493B6297E498700D87305 /* da */, + C1D107B9297E499D008905A6 /* ja */, + C1D7162729C75EBD00B5AB3B /* en */, + C1D7162829C75ECE00B5AB3B /* cs */, + C15A582929C7866600D3A5A1 /* ar */, + C1FAB5C329C786B000D25073 /* hi */, + C1FDCC0929C786F90056E652 /* sk */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + C1D7162329C75DC700B5AB3B /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C1D7162229C75DC700B5AB3B /* en */, + C15A582B29C7866600D3A5A1 /* ar */, + C121D8D429C7866D00DA0520 /* cs */, + C10BD98429C7867600FE2BDC /* da */, + C12D11D229C7867E000B215F /* de */, + C1FC9C6329C78690005D2515 /* es */, + C1F4FD5A29C7869800D7ACBC /* fi */, + C1E5F20D29C786A100BC686C /* fr */, + C1FF3D4E29C786A900BDC1EC /* he */, + C1FAB5C429C786B000D25073 /* hi */, + C1C685F929C786B70002E063 /* it */, + C1B0CFDB29C786BF0045B04D /* ja */, + C19951DA29C786C8001983C9 /* nb */, + C1A1C7A529C786D1001A0FA5 /* nl */, + C1B761F229C786D90098916A /* pl */, + C1E693D129C786E200410918 /* pt-BR */, + C10340F329C786E900FE5BA1 /* ro */, + C1FC393029C786F20003C587 /* ru */, + C1FDCC0B29C786F90056E652 /* sk */, + C1E5A6DF29C7870100703C90 /* sv */, + C18E73FD29C7870A0031245F /* tr */, + C192C60529C78711001EFEA6 /* vi */, + C15C115029C814F300EBAC55 /* zh-Hans */, ); name = Localizable.strings; sourceTree = ""; @@ -4464,6 +4744,8 @@ F5E0BE0927E1DBA40033557E /* sv */, F5E0BE0E27E1DC490033557E /* tr */, F5E0BE1627E1DCC90033557E /* vi */, + C15A582829C7866600D3A5A1 /* ar */, + C1FDCC0829C786F90056E652 /* sk */, ); name = LegacyInsulinDeliveryTableViewController.storyboard; sourceTree = ""; @@ -4521,6 +4803,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.rileylink.LoopKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; + SWIFT_EMIT_LOC_STRINGS = YES; }; name = Debug; }; @@ -4542,6 +4825,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.rileylink.LoopKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; + SWIFT_EMIT_LOC_STRINGS = YES; }; name = Release; }; @@ -4574,6 +4858,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; }; name = Debug; @@ -4606,6 +4891,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.LoopKitUI; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; }; name = Release; @@ -4762,6 +5048,7 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -4792,6 +5079,7 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -4845,6 +5133,7 @@ PRODUCT_NAME = MockKit; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -4880,6 +5169,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.MockKit; PRODUCT_NAME = MockKit; SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -4949,6 +5239,7 @@ PRODUCT_NAME = LoopTestingKit; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -4972,6 +5263,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.LoopTestingKit; PRODUCT_NAME = LoopTestingKit; SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -5001,6 +5293,7 @@ SDKROOT = watchos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = 4; }; @@ -5030,6 +5323,7 @@ SDKROOT = watchos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "watchos watchsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_INSTALL_OBJC_HEADER = NO; TARGETED_DEVICE_FAMILY = 4; }; diff --git a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/LoopKit Example.xcscheme b/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/LoopKit Example.xcscheme deleted file mode 100644 index be16b5e5bc..0000000000 --- a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/LoopKit Example.xcscheme +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme b/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme deleted file mode 100644 index 5bb1b70eef..0000000000 --- a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme b/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme deleted file mode 100644 index 3567720b2f..0000000000 --- a/Dependencies/LoopKit/LoopKit.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/LoopKit/LoopKit/BluetoothProvider.swift b/Dependencies/LoopKit/LoopKit/BluetoothProvider.swift index 8495d5d41a..2d6f85c770 100644 --- a/Dependencies/LoopKit/LoopKit/BluetoothProvider.swift +++ b/Dependencies/LoopKit/LoopKit/BluetoothProvider.swift @@ -6,6 +6,8 @@ // Copyright © 2021 LoopKit Authors. All rights reserved. // +import Foundation + public enum BluetoothAuthorization: Int { /// User has not yet made a choice regarding whether the application may use Bluetooth. case notDetermined diff --git a/Dependencies/LoopKit/LoopKit/CarbKit/CachedCarbObject+CoreDataClass.swift b/Dependencies/LoopKit/LoopKit/CarbKit/CachedCarbObject+CoreDataClass.swift index 1c4970a02f..c7372d9144 100644 --- a/Dependencies/LoopKit/LoopKit/CarbKit/CachedCarbObject+CoreDataClass.swift +++ b/Dependencies/LoopKit/LoopKit/CarbKit/CachedCarbObject+CoreDataClass.swift @@ -10,7 +10,6 @@ import Foundation import CoreData import HealthKit - class CachedCarbObject: NSManagedObject { var absorptionTime: TimeInterval? { get { @@ -139,11 +138,11 @@ extension CachedCarbObject { // HealthKit func update(from sample: HKQuantitySample, replacing object: CachedCarbObject, on date: Date = Date()) { - precondition(!object.createdByCurrentApp) - precondition(sample.createdByCurrentApp == object.createdByCurrentApp) - precondition(sample.provenanceIdentifier == object.provenanceIdentifier) - precondition(object.syncIdentifier != nil) - precondition(sample.syncIdentifier == object.syncIdentifier) +// precondition(!object.createdByCurrentApp) +// precondition(sample.createdByCurrentApp == object.createdByCurrentApp) +// precondition(sample.provenanceIdentifier == object.provenanceIdentifier) +// precondition(object.syncIdentifier != nil) +// precondition(sample.syncIdentifier == object.syncIdentifier) self.absorptionTime = sample.absorptionTime self.createdByCurrentApp = sample.createdByCurrentApp diff --git a/Dependencies/LoopKit/LoopKit/CarbKit/CarbStore.swift b/Dependencies/LoopKit/LoopKit/CarbKit/CarbStore.swift index 6c61daaf21..806ec56aba 100644 --- a/Dependencies/LoopKit/LoopKit/CarbKit/CarbStore.swift +++ b/Dependencies/LoopKit/LoopKit/CarbKit/CarbStore.swift @@ -206,7 +206,8 @@ public final class CarbStore: HealthKitSampleStore { calculationDelta: TimeInterval = 5 /* minutes */ * 60, effectDelay: TimeInterval = 10 /* minutes */ * 60, carbAbsorptionModel: CarbAbsorptionModel = .nonlinear, - provenanceIdentifier: String + provenanceIdentifier: String, + test_currentDate: Date? = nil ) { self.storeEntriesToHealthKit = storeEntriesToHealthKit self.cacheStore = cacheStore @@ -229,8 +230,9 @@ public final class CarbStore: HealthKitSampleStore { observeHealthKitSamplesFromCurrentApp: true, observeHealthKitSamplesFromOtherApps: observeHealthKitSamplesFromOtherApps, type: carbType, - observationStart: Date(timeIntervalSinceNow: -self.observationInterval), - observationEnabled: observationEnabled) + observationStart: (test_currentDate ?? Date()).addingTimeInterval(-self.observationInterval), + observationEnabled: observationEnabled, + test_currentDate: test_currentDate) // Carb model settings based on the selected absorption model switch self.carbAbsorptionModel { @@ -242,28 +244,18 @@ public final class CarbStore: HealthKitSampleStore { self.settings = CarbModelSettings(absorptionModel: PiecewiseLinearAbsorption(), initialAbsorptionTimeOverrun: 1.0, adaptiveAbsorptionRateEnabled: true, adaptiveRateStandbyIntervalFraction: 0.2) } - let semaphore = DispatchSemaphore(value: 0) cacheStore.onReady { (error) in guard error == nil else { - semaphore.signal() return } cacheStore.fetchAnchor(key: CarbStore.healthKitQueryAnchorMetadataKey) { (anchor) in self.queue.async { - self.queryAnchor = anchor - - if !self.authorizationRequired { - self.createQuery() - } - + self.setInitialQueryAnchor(anchor) self.migrateLegacyCarbEntryKeys() - - semaphore.signal() } } } - semaphore.wait() } // Migrate modifiedCarbEntries and deletedCarbEntryIDs @@ -291,18 +283,12 @@ public final class CarbStore: HealthKitSampleStore { // MARK: - HealthKitSampleStore - override func queryAnchorDidChange() { - cacheStore.storeAnchor(queryAnchor, key: CarbStore.healthKitQueryAnchorMetadataKey) + override func storeQueryAnchor(_ anchor: HKQueryAnchor) { + cacheStore.storeAnchor(anchor, key: CarbStore.healthKitQueryAnchorMetadataKey) } override func processResults(from query: HKAnchoredObjectQuery, added: [HKSample], deleted: [HKDeletedObject], anchor: HKQueryAnchor, completion: @escaping (Bool) -> Void) { queue.async { - guard anchor != self.queryAnchor else { - self.log.default("Skipping processing results from anchored object query, as anchor was already processed") - completion(true) - return - } - var changed = false var error: CarbStoreError? @@ -803,7 +789,7 @@ extension CarbStore { extension CarbStore { public var earliestCacheDate: Date { - return Date(timeIntervalSinceNow: -cacheLength) + return currentDate(timeIntervalSinceNow: -cacheLength) } private func purgeExpiredCachedCarbObjects() { diff --git a/Dependencies/LoopKit/LoopKit/CarbKit/CarbStoreError.swift b/Dependencies/LoopKit/LoopKit/CarbKit/CarbStoreError.swift index a88b022b31..60bc4320d4 100644 --- a/Dependencies/LoopKit/LoopKit/CarbKit/CarbStoreError.swift +++ b/Dependencies/LoopKit/LoopKit/CarbKit/CarbStoreError.swift @@ -5,6 +5,7 @@ // Copyright © 2018 LoopKit Authors. All rights reserved. // +import Foundation extension CarbStore.CarbStoreError: LocalizedError { public var errorDescription: String? { diff --git a/Dependencies/LoopKit/LoopKit/DeviceManager/PumpManagerError.swift b/Dependencies/LoopKit/LoopKit/DeviceManager/PumpManagerError.swift index 9c618b5daf..7dfde2a300 100644 --- a/Dependencies/LoopKit/LoopKit/DeviceManager/PumpManagerError.swift +++ b/Dependencies/LoopKit/LoopKit/DeviceManager/PumpManagerError.swift @@ -5,6 +5,7 @@ // Copyright © 2018 LoopKit Authors. All rights reserved. // +import Foundation public enum PumpManagerError: Error { /// The manager isn't configured correctly diff --git a/Dependencies/LoopKit/Extensions/ClosedRange.swift b/Dependencies/LoopKit/LoopKit/Extensions/ClosedRange.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/ClosedRange.swift rename to Dependencies/LoopKit/LoopKit/Extensions/ClosedRange.swift diff --git a/Dependencies/LoopKit/Extensions/Collection.swift b/Dependencies/LoopKit/LoopKit/Extensions/Collection.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/Collection.swift rename to Dependencies/LoopKit/LoopKit/Extensions/Collection.swift diff --git a/Dependencies/LoopKit/Extensions/Comparable.swift b/Dependencies/LoopKit/LoopKit/Extensions/Comparable.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/Comparable.swift rename to Dependencies/LoopKit/LoopKit/Extensions/Comparable.swift diff --git a/Dependencies/LoopKit/Extensions/NSData.swift b/Dependencies/LoopKit/LoopKit/Extensions/Data.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/NSData.swift rename to Dependencies/LoopKit/LoopKit/Extensions/Data.swift diff --git a/Dependencies/LoopKit/Extensions/NSDateFormatter.swift b/Dependencies/LoopKit/LoopKit/Extensions/DateFormatter.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/NSDateFormatter.swift rename to Dependencies/LoopKit/LoopKit/Extensions/DateFormatter.swift diff --git a/Dependencies/LoopKit/LoopKit/Extensions/Double.swift b/Dependencies/LoopKit/LoopKit/Extensions/Double.swift index 059eefccbf..349c65a222 100644 --- a/Dependencies/LoopKit/LoopKit/Extensions/Double.swift +++ b/Dependencies/LoopKit/LoopKit/Extensions/Double.swift @@ -6,6 +6,7 @@ // Copyright © 2016 Nathan Racklyeft. All rights reserved. // +import Foundation extension Double: RawRepresentable { public typealias RawValue = Double diff --git a/Dependencies/LoopKit/LoopKit/Extensions/FloatingPoint.swift b/Dependencies/LoopKit/LoopKit/Extensions/FloatingPoint.swift index 7466cf8b1b..41d23a510a 100644 --- a/Dependencies/LoopKit/LoopKit/Extensions/FloatingPoint.swift +++ b/Dependencies/LoopKit/LoopKit/Extensions/FloatingPoint.swift @@ -6,6 +6,8 @@ // Copyright © 2020 LoopKit Authors. All rights reserved. // +import Foundation + extension Double { public func matchingOrTruncatedValue(from supportedValues: [Double], withinDecimalPlaces precision: Int) -> Double { let nearestSupportedValue = roundedToNearest(of: supportedValues) diff --git a/Dependencies/LoopKit/Extensions/Guardrail+Settings.swift b/Dependencies/LoopKit/LoopKit/Extensions/Guardrail+Settings.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/Guardrail+Settings.swift rename to Dependencies/LoopKit/LoopKit/Extensions/Guardrail+Settings.swift diff --git a/Dependencies/LoopKit/LoopKit/Extensions/HKUnit.swift b/Dependencies/LoopKit/LoopKit/Extensions/HKUnit.swift new file mode 100644 index 0000000000..a5f77cdd06 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Extensions/HKUnit.swift @@ -0,0 +1,61 @@ +// +// HKUnit.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/17/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import HealthKit + + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let milligramsPerDeciliterPerMinute: HKUnit = { + return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) + }() + + static let millimolesPerLiterPerMinute: HKUnit = { + return HKUnit.millimolesPerLiter.unitDivided(by: .minute()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + + static let gramsPerUnit: HKUnit = { + return HKUnit.gram().unitDivided(by: .internationalUnit()) + }() + + var foundationUnit: Unit? { + if self == HKUnit.milligramsPerDeciliter { + return UnitConcentrationMass.milligramsPerDeciliter + } + + if self == HKUnit.millimolesPerLiter { + return UnitConcentrationMass.millimolesPerLiter(withGramsPerMole: HKUnitMolarMassBloodGlucose) + } + + if self == HKUnit.gram() { + return UnitMass.grams + } + + return nil + } + + /// The smallest value expected to be visible on a chart + var chartableIncrement: Double { + if self == .milligramsPerDeciliter { + return 1 + } else { + return 1 / 25 + } + } +} diff --git a/Dependencies/LoopKit/Extensions/MutableCollection.swift b/Dependencies/LoopKit/LoopKit/Extensions/MutableCollection.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/MutableCollection.swift rename to Dependencies/LoopKit/LoopKit/Extensions/MutableCollection.swift diff --git a/Dependencies/LoopKit/LoopKit/Extensions/NSUserActivity+CarbKit.swift b/Dependencies/LoopKit/LoopKit/Extensions/NSUserActivity+CarbKit.swift index 5b7bd582f7..1a7743acc6 100644 --- a/Dependencies/LoopKit/LoopKit/Extensions/NSUserActivity+CarbKit.swift +++ b/Dependencies/LoopKit/LoopKit/Extensions/NSUserActivity+CarbKit.swift @@ -8,11 +8,13 @@ import Foundation +// FIXME: this class should be in Loop now that the carb entry flow is there /// Conveniences for activity handoff and restoration of creating a carb entry extension NSUserActivity { public static let newCarbEntryActivityType = "NewCarbEntry" public static let newCarbEntryUserInfoKey = "NewCarbEntry" + public static let carbEntryIsMissedMealUserInfoKey = "CarbEntryIsMissedMeal" public class func forNewCarbEntry() -> NSUserActivity { let activity = NSUserActivity(activityType: newCarbEntryActivityType) @@ -20,10 +22,11 @@ extension NSUserActivity { return activity } - public func update(from entry: NewCarbEntry?) { + public func update(from entry: NewCarbEntry?, isMissedMeal: Bool = false) { if let rawValue = entry?.rawValue { addUserInfoEntries(from: [ - NSUserActivity.newCarbEntryUserInfoKey: rawValue + NSUserActivity.newCarbEntryUserInfoKey: rawValue, + NSUserActivity.carbEntryIsMissedMealUserInfoKey: isMissedMeal ]) } else { userInfo = nil @@ -37,4 +40,12 @@ extension NSUserActivity { return NewCarbEntry(rawValue: rawValue) } + + public var entryisMissedMeal: Bool { + guard newCarbEntry != nil else { + return false + } + + return userInfo?[NSUserActivity.carbEntryIsMissedMealUserInfoKey] as? Bool ?? false + } } diff --git a/Dependencies/LoopKit/LoopKit/Extensions/NumberFormatter.swift b/Dependencies/LoopKit/LoopKit/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..6d9d3ab787 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Extensions/NumberFormatter.swift @@ -0,0 +1,49 @@ +// +// NSNumberFormatter.swift +// Loop +// +// Created by Nate Racklyeft on 9/5/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation +import HealthKit + + +extension NumberFormatter { + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } + + func string(from number: Double, unit: String, style: Formatter.UnitStyle = .medium, avoidLineBreaking: Bool = true) -> String? { + guard let stringValue = string(from: number) else { + return nil + } + + let separator: String + switch style { + case .long: + separator = " " + case .medium: + separator = avoidLineBreaking ? .nonBreakingSpace : " " + case .short: + fallthrough + @unknown default: + separator = avoidLineBreaking ? .wordJoiner : "" + } + + let unit = avoidLineBreaking ? unit.replacingOccurrences(of: "/", with: "\(String.wordJoiner)/\(String.wordJoiner)") : unit + + return String( + format: LocalizedString("%1$@%2$@%3$@", comment: "String format for value with units (1: value, 2: separator, 3: units)"), + stringValue, + separator, + unit + ) + } +} + +public extension String { + static let nonBreakingSpace = "\u{00a0}" + static let wordJoiner = "\u{2060}" +} diff --git a/Dependencies/LoopKit/LoopKit/Extensions/OSLog.swift b/Dependencies/LoopKit/LoopKit/Extensions/OSLog.swift new file mode 100644 index 0000000000..ac86a5b73b --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Extensions/OSLog.swift @@ -0,0 +1,50 @@ +// +// OSLog.swift +// Loop +// +// Copyright © 2017 LoopKit Authors. All rights reserved. +// + +import os.log + + +extension OSLog { + convenience init(category: String) { + self.init(subsystem: "com.loopkit.LoopKit", category: category) + } + + func debug(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .debug, args) + } + + func info(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .info, args) + } + + func `default`(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .default, args) + } + + func error(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .error, args) + } + + private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { + switch args.count { + case 0: + os_log(message, log: self, type: type) + case 1: + os_log(message, log: self, type: type, args[0]) + case 2: + os_log(message, log: self, type: type, args[0], args[1]) + case 3: + os_log(message, log: self, type: type, args[0], args[1], args[2]) + case 4: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) + case 5: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) + default: + os_log(message, log: self, type: type, args) + } + } +} diff --git a/Dependencies/LoopKit/Extensions/Sequence.swift b/Dependencies/LoopKit/LoopKit/Extensions/Sequence.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/Sequence.swift rename to Dependencies/LoopKit/LoopKit/Extensions/Sequence.swift diff --git a/Dependencies/LoopKit/LoopKit/Extensions/TimeInterval.swift b/Dependencies/LoopKit/LoopKit/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..a568b77b8e --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Extensions/TimeInterval.swift @@ -0,0 +1,36 @@ +// +// NSTimeInterval.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +extension TimeInterval { + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } +} diff --git a/Dependencies/LoopKit/Extensions/TimeZone.swift b/Dependencies/LoopKit/LoopKit/Extensions/TimeZone.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/TimeZone.swift rename to Dependencies/LoopKit/LoopKit/Extensions/TimeZone.swift diff --git a/Dependencies/LoopKit/Extensions/UUID.swift b/Dependencies/LoopKit/LoopKit/Extensions/UUID.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/UUID.swift rename to Dependencies/LoopKit/LoopKit/Extensions/UUID.swift diff --git a/Dependencies/LoopKit/LoopKit/GlucoseEffectVelocity.swift b/Dependencies/LoopKit/LoopKit/GlucoseEffectVelocity.swift index c35d447e99..eb39a24bef 100644 --- a/Dependencies/LoopKit/LoopKit/GlucoseEffectVelocity.swift +++ b/Dependencies/LoopKit/LoopKit/GlucoseEffectVelocity.swift @@ -39,4 +39,26 @@ extension GlucoseEffectVelocity { ) ) } + + /// The integration of the velocity span from `start` to `end` + public func effect(from start: Date, to end: Date) -> GlucoseEffect? { + guard + start <= end, + startDate <= start, + end <= endDate + else { + return nil + } + + let duration = end.timeIntervalSince(start) + let velocityPerSecond = quantity.doubleValue(for: GlucoseEffectVelocity.perSecondUnit) + + return GlucoseEffect( + startDate: end, + quantity: HKQuantity( + unit: .milligramsPerDeciliter, + doubleValue: velocityPerSecond * duration + ) + ) + } } diff --git a/Dependencies/LoopKit/LoopKit/GlucoseKit/GlucoseStore.swift b/Dependencies/LoopKit/LoopKit/GlucoseKit/GlucoseStore.swift index bb0f949f84..8c0289e57f 100644 --- a/Dependencies/LoopKit/LoopKit/GlucoseKit/GlucoseStore.swift +++ b/Dependencies/LoopKit/LoopKit/GlucoseKit/GlucoseStore.swift @@ -132,44 +132,29 @@ public final class GlucoseStore: HealthKitSampleStore { observationStart: Date(timeIntervalSinceNow: -self.observationInterval), observationEnabled: observationEnabled) - let semaphore = DispatchSemaphore(value: 0) cacheStore.onReady { (error) in guard error == nil else { - semaphore.signal() return } cacheStore.fetchAnchor(key: GlucoseStore.healthKitQueryAnchorMetadataKey) { (anchor) in self.queue.async { - self.queryAnchor = anchor - - if !self.authorizationRequired { - self.createQuery() - } + self.setInitialQueryAnchor(anchor) self.updateLatestGlucose() - - semaphore.signal() } } } - semaphore.wait() } // MARK: - HealthKitSampleStore - override func queryAnchorDidChange() { - cacheStore.storeAnchor(queryAnchor, key: GlucoseStore.healthKitQueryAnchorMetadataKey) + override func storeQueryAnchor(_ anchor: HKQueryAnchor) { + cacheStore.storeAnchor(anchor, key: GlucoseStore.healthKitQueryAnchorMetadataKey) } override func processResults(from query: HKAnchoredObjectQuery, added: [HKSample], deleted: [HKDeletedObject], anchor: HKQueryAnchor, completion: @escaping (Bool) -> Void) { queue.async { - guard anchor != self.queryAnchor else { - self.log.default("Skipping processing results from anchored object query, as anchor was already processed") - completion(true) - return - } - var changed = false var error: Error? diff --git a/Dependencies/LoopKit/LoopKit/HealthKitSampleStore.swift b/Dependencies/LoopKit/LoopKit/HealthKitSampleStore.swift index 029cbcd19f..979bf3364b 100644 --- a/Dependencies/LoopKit/LoopKit/HealthKitSampleStore.swift +++ b/Dependencies/LoopKit/LoopKit/HealthKitSampleStore.swift @@ -23,7 +23,6 @@ public enum HealthKitSampleStoreResult { public class HealthKitSampleStore { - private let observerQueryUpdateHandlerQueue: DispatchQueue public enum StoreError: Error { case authorizationDenied @@ -48,15 +47,19 @@ public class HealthKitSampleStore { /// For unit testing only. internal var testQueryStore: HKSampleQueryTestable? + /// Current date. Will return the unit-test configured date if set, or the current date otherwise. + internal var currentDate: Date { + test_currentDate ?? Date() + } + /// Allows for controlling uses of the system date in unit testing internal var test_currentDate: Date? internal func currentDate(timeIntervalSinceNow: TimeInterval = 0) -> Date { - let date = test_currentDate ?? Date() - return date.addingTimeInterval(timeIntervalSinceNow) + return currentDate.addingTimeInterval(timeIntervalSinceNow) } - /// Allows unit test to inject a mock for HKObserverQuery + /// Declaring this as a var allows unit test to inject a mock for HKObserverQuery internal var createObserverQuery: (HKSampleType, NSPredicate?, @escaping (HKObserverQuery, @escaping HKObserverQueryCompletionHandler, Error?) -> Void) -> HKObserverQuery = { (sampleType, predicate, updateHandler) in return HKObserverQuery(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) } @@ -84,11 +87,9 @@ public class HealthKitSampleStore { self.observationStart = observationStart self.observationEnabled = observationEnabled self.test_currentDate = test_currentDate - self.lockedQueryAnchor = Locked(nil) + self.lockedQueryState = Locked(QueryState(anchorState: .uninitialized, authorizationDetermined: false)) self.log = OSLog(category: String(describing: Swift.type(of: self))) - - self.observerQueryUpdateHandlerQueue = DispatchQueue(label: "com.loopkit.HealthKitSampleStore.observerQueryUpdateHandlerQueue.\(Swift.type(of: self))", qos: .utility) } deinit { @@ -111,9 +112,10 @@ public class HealthKitSampleStore { /// - result: The authorization result public func authorize(toShare: Bool = true, read: Bool = true, _ completion: @escaping (_ result: HealthKitSampleStoreResult) -> Void) { healthStore.requestAuthorization(toShare: toShare ? [sampleType] : [], read: read ? [sampleType] : []) { (completed, error) -> Void in - if completed && !self.sharingDenied { - self.log.default("Authorize completed: creating HK query") - self.createQuery() + if completed { + self.mutateQueryState { state in + state.authorizationDetermined = true + } completion(.success(true)) } else { let authError: StoreError @@ -127,8 +129,6 @@ public class HealthKitSampleStore { completion(.failure(authError)) } - NotificationCenter.default.post(name: .StoreAuthorizationStatusDidChange, object: self) - // Do not remove this log: it actually triggers a query by calling preferredUnit, and can update the cache // And trigger a unit change notification after authorization happens. self.log.default("Checking units after authorization: %{public}@", String(describing: self.preferredUnit)) @@ -157,7 +157,21 @@ public class HealthKitSampleStore { // If we are now looking farther back, then reset the query if oldValue > observationStart { log.default("observationStart changed: creating HK query") - createQuery() + createQuery(from: "observartionStart") + } + } + } + + private enum QueryAnchorState: Equatable { + case uninitialized + case initializationComplete(HKQueryAnchor?) + + var anchor: HKQueryAnchor? { + switch self { + case .uninitialized: + return nil + case.initializationComplete(let anchor): + return anchor } } } @@ -165,25 +179,79 @@ public class HealthKitSampleStore { /// The last-retreived anchor from an anchored object query internal var queryAnchor: HKQueryAnchor? { get { - return lockedQueryAnchor.value + if case .initializationComplete(let anchor) = queryState.anchorState { + return anchor + } else { + return nil + } } set { - var changed: Bool = false - lockedQueryAnchor.mutate { (anchor) in - if anchor != newValue { - anchor = newValue - changed = true - } - } - if changed { - queryAnchorDidChange() + mutateQueryState { state in + state.anchorState = .initializationComplete(newValue) + state.authorizationDetermined = !authorizationRequired } } } - private let lockedQueryAnchor: Locked - func queryAnchorDidChange() { - // Subclasses can override + private struct QueryState: Equatable { + var anchorState: QueryAnchorState + var authorizationDetermined: Bool + + // ObserverQuery will fail if HKAuthorizationStatus is undetermined + var readyToQuery: Bool { + return anchorState != .uninitialized && authorizationDetermined + } + } + + private let lockedQueryState: Locked + + private var queryState: QueryState { + return lockedQueryState.value + } + + @discardableResult + private func mutateQueryState(_ changes: (_ state: inout QueryState) -> Void) -> QueryState { + return setQueryStateWithResult({ (state) -> QueryState in + changes(&state) + return state + }) + } + + private func setQueryStateWithResult(_ changes: (_ state: inout QueryState) -> ReturnType) -> ReturnType { + var oldValue: QueryState! + var returnType: ReturnType! + let newValue = lockedQueryState.mutate { (state) in + oldValue = state + returnType = changes(&state) + } + + guard oldValue != newValue else { + return returnType + } + + if let anchor = newValue.anchorState.anchor, anchor != oldValue.anchorState.anchor { + storeQueryAnchor(anchor) + } + + if !oldValue.readyToQuery && newValue.readyToQuery { + createQuery(from: "main") + } + + if !oldValue.authorizationDetermined && newValue.authorizationDetermined { + NotificationCenter.default.post(name: .StoreAuthorizationStatusDidChange, object: self) + } + + return returnType + } + + + // Observation will not start until this is called. Pass nil to receive all the matching samples and recently deleted objects + func setInitialQueryAnchor(_ anchor: HKQueryAnchor?) { + queryAnchor = anchor + } + + func storeQueryAnchor(_ anchor: HKQueryAnchor) { + // Subclasses should override } /// Called in response to an update by the observer query @@ -191,64 +259,78 @@ public class HealthKitSampleStore { /// - Parameters: /// - query: The query which triggered the update /// - error: An error during the update, if one occurred - internal final func observeUpdates(to query: HKObserverQuery, completionHandler: @escaping HKObserverQueryCompletionHandler, error: Error?) { + internal final func observerQueryHandler(query: HKObserverQuery, observerQueryCompletionHandler: @escaping HKObserverQueryCompletionHandler, error: Error?) { if let error = error { - self.log.error("Observer query %@ notified of error: %{public}@", query, String(describing: error)) - completionHandler() + log.error("Observer query %{public}@ notified of error: %{public}@", query, String(describing: error)) + observerQueryCompletionHandler() return } - self.log.default("observeUpdates invoked - queueing handling") + log.default("%{public}@ notified with changes. Fetching from: %{public}@", query, queryAnchor.map(String.init(describing:)) ?? "0") + executeAnchorQuery(observerQuery: query, observerQueryCompletionHandler: observerQueryCompletionHandler) + } - observerQueryUpdateHandlerQueue.async { + internal final func executeAnchorQuery(observerQuery: HKObserverQuery, observerQueryCompletionHandler: @escaping HKObserverQueryCompletionHandler) { - let queryAnchor = self.queryAnchor - - self.log.default("%@ notified with changes. Fetching from: %{public}@", query, queryAnchor.map(String.init(describing:)) ?? "0") - - let semaphore = DispatchSemaphore(value: 0) + let batchSize = 500 + + let anchoredObjectQuery = createAnchoredObjectQuery(sampleType, observerQuery.predicate, queryAnchor, batchSize) { [weak self] (query, newSamples, deletedSamples, anchor, error) in - let anchoredObjectQuery = self.createAnchoredObjectQuery(self.sampleType, query.predicate, queryAnchor, HKObjectQueryNoLimit) { [weak self] (query, newSamples, deletedSamples, anchor, error) in - - if let self = self { - self.anchoredObjectQueryResultsHandler(query: query, newSamples: newSamples, deletedSamples: deletedSamples, anchor: anchor, error: error) { - completionHandler() - semaphore.signal() + guard let self else { + return + } + + if let error = error { + self.log.error("HKQuery: Error from anchoredObjectQuery: anchor: %{public}@ error: %{public}@", String(describing: anchor), String(describing: error)) + observerQueryCompletionHandler() + return + } + + guard let newSamples else { + self.log.error("HKQuery: Error from anchoredObjectQuery: newSamples is nil") + observerQueryCompletionHandler() + return + } + + guard let deletedSamples else { + self.log.error("HKQuery: Error from anchoredObjectQuery: deletedSamples is nil") + observerQueryCompletionHandler() + return + } + + guard let anchor = anchor else { + self.log.error("HKQuery: anchoredObjectQueryResultsHandler called with no anchor") + observerQueryCompletionHandler() + return + } + + self.log.default("AnchorQuery results new: %{public}d deleted: %{public}d anchor: %{public}@", newSamples.count, deletedSamples.count, anchor.description) + + guard anchor != self.queryAnchor else { + self.log.default("Skipping processing results from anchored object query, as anchor was already processed") + observerQueryCompletionHandler() + return + } + + self.processResults(from: query, added: newSamples, deleted: deletedSamples, anchor: anchor) { (success) in + if success { + // Do not advance anchor if we failed to update local cache + self.queryAnchor = anchor + + if newSamples.count + deletedSamples.count >= batchSize { + self.executeAnchorQuery(observerQuery: observerQuery, observerQueryCompletionHandler: observerQueryCompletionHandler) + } else { + observerQueryCompletionHandler() } } else { - completionHandler() - semaphore.signal() + observerQueryCompletionHandler() } } - self.healthStore.execute(anchoredObjectQuery) - - semaphore.wait() - } - } - - private func anchoredObjectQueryResultsHandler(query: HKAnchoredObjectQuery, newSamples: [HKSample]?, deletedSamples: [HKDeletedObject]?, anchor: HKQueryAnchor?, error: Error?, completion: @escaping () -> Void) { - if let error = error { - self.log.error("Error from anchoredObjectQuery: anchor: %{public}@ error: %{public}@", String(describing: anchor), String(describing: error)) - completion() - return - } - - self.log.default("anchoredObjectQuery.resultsHandler: new: %{public}d deleted: %{public}d anchor: %{public}@", newSamples?.count ?? 0, deletedSamples?.count ?? 0, String(describing: anchor)) - - guard let anchor = anchor else { - self.log.error("anchoredObjectQueryResultsHandler called with no anchor") - completion() - return } - self.processResults(from: query, added: newSamples ?? [], deleted: deletedSamples ?? [], anchor: anchor) { (success) in - if success { - // Do not advance anchor if we failed to update local cache - self.queryAnchor = anchor - } - completion() - } + log.default("HKQuery: Executing anchored object query") + healthStore.execute(anchoredObjectQuery) } /// Called in response to new results from an anchored object query @@ -318,7 +400,8 @@ extension HealthKitSampleStore { // MARK: - Observation extension HealthKitSampleStore { - internal func createQuery() { + internal func createQuery(from: String) { + log.debug("%@ [from: %@]", #function, from) log.debug("%@ [sampleType: %@]", #function, sampleType) log.debug("%@ [observationEnabled: %d]", #function, observationEnabled) log.debug("%@ [observeHealthKitSamplesFromCurrentApp: %d]", #function, observeHealthKitSamplesFromCurrentApp) @@ -333,8 +416,10 @@ extension HealthKitSampleStore { return } + // Assigning observerQuery here starts the query observerQuery = createObserverQuery(sampleType, predicate) { [weak self] (query, completionHandler, error) in - self?.observeUpdates(to: query, completionHandler: completionHandler, error: error) + // This is the HKObserverQueryCompletionHandler + self?.observerQueryHandler(query: query, observerQueryCompletionHandler: completionHandler, error: error) } enableBackgroundDelivery { (result) in diff --git a/Dependencies/LoopKit/LoopKit/Insulin/ExponentialInsulinModelPreset.swift b/Dependencies/LoopKit/LoopKit/Insulin/ExponentialInsulinModelPreset.swift index 56817503f0..df2b51e213 100644 --- a/Dependencies/LoopKit/LoopKit/Insulin/ExponentialInsulinModelPreset.swift +++ b/Dependencies/LoopKit/LoopKit/Insulin/ExponentialInsulinModelPreset.swift @@ -5,6 +5,8 @@ // Copyright © 2017 LoopKit Authors. All rights reserved. // +import Foundation + public enum ExponentialInsulinModelPreset: String, Codable { case rapidActingAdult case rapidActingChild diff --git a/Dependencies/LoopKit/LoopKit/InsulinKit/DoseStore.swift b/Dependencies/LoopKit/LoopKit/InsulinKit/DoseStore.swift index 534a633dfa..7494c49c9e 100644 --- a/Dependencies/LoopKit/LoopKit/InsulinKit/DoseStore.swift +++ b/Dependencies/LoopKit/LoopKit/InsulinKit/DoseStore.swift @@ -182,6 +182,7 @@ public final class DoseStore { /// Window for retrieving historical doses that might be used to reconcile current events private let pumpEventReconciliationWindow = TimeInterval(hours: 24) + // MARK: - /// Initializes and configures a new store @@ -201,6 +202,7 @@ public final class DoseStore { /// - syncVersion: A version number for determining resolution in de-duplication /// - lastPumpEventsReconciliation: The date the PumpManger last reconciled with the pump /// - provenanceIdentifier: An id to store with new doses, indicating the provenance of the dose, usually the app's bundle identifier. + /// - readyCallback: A closure that will be called after initialization. /// - test_currentDate: Used for testing to mock current time public init( healthStore: HKHealthStore, @@ -217,6 +219,7 @@ public final class DoseStore { syncVersion: Int = 1, lastPumpEventsReconciliation: Date? = nil, provenanceIdentifier: String, + onReady: ((DoseStoreError?) -> Void)? = nil, test_currentDate: Date? = nil ) { self.insulinDeliveryStore = InsulinDeliveryStore( @@ -243,6 +246,7 @@ public final class DoseStore { persistenceController.onReady { (error) -> Void in guard error == nil else { + onReady?(.init(error: error)) return } @@ -259,6 +263,8 @@ public final class DoseStore { // Validate the state of the stored reservoir data. self.validateReservoirContinuity() + + onReady?(nil) } } } @@ -993,6 +999,7 @@ extension DoseStore { return } + self.log.debug("Overlaying basal schedule for %d doses starting at %@", doses.count, String(describing: startingAt)) let reconciledDoses = doses.overlayBasalSchedule(basalSchedule, startingAt: startingAt, insertingBasalEntries: !self.pumpRecordsBasalProfileStartEvents) completion(.success(reconciledDoses)) } @@ -1443,7 +1450,7 @@ extension DoseStore { self.getPumpEventDoseEntriesForSavingToInsulinDeliveryStore(startingAt: firstPumpEventDate, completion: { (result) in report.append("") - report.append("### getNormalizedPumpEventDoseEntriesOverlaidWithBasalEntries") + report.append("### getPumpEventDoseEntriesForSavingToInsulinDeliveryStore") switch result { case .failure(let error): diff --git a/Dependencies/LoopKit/LoopKit/InsulinKit/DoseType.swift b/Dependencies/LoopKit/LoopKit/InsulinKit/DoseType.swift index c58285f0e1..3c6a83f486 100644 --- a/Dependencies/LoopKit/LoopKit/InsulinKit/DoseType.swift +++ b/Dependencies/LoopKit/LoopKit/InsulinKit/DoseType.swift @@ -19,15 +19,15 @@ public enum DoseType: String, CaseIterable { public var localizedDescription: String { switch self { case .basal: - return NSLocalizedString("Basal", comment: "Title for basal dose type") + return LocalizedString("Basal", comment: "Title for basal dose type") case .bolus: - return NSLocalizedString("Bolus", comment: "Title for bolus dose type") + return LocalizedString("Bolus", comment: "Title for bolus dose type") case .tempBasal: - return NSLocalizedString("Temp Basal", comment: "Title for temp basal dose type") + return LocalizedString("Temp Basal", comment: "Title for temp basal dose type") case .suspend: - return NSLocalizedString("Suspended", comment: "Title for suspend dose type") + return LocalizedString("Suspended", comment: "Title for suspend dose type") case .resume: - return NSLocalizedString("Resumed", comment: "Title for resume dose type") + return LocalizedString("Resumed", comment: "Title for resume dose type") } } } diff --git a/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinDeliveryStore.swift b/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinDeliveryStore.swift index 9bfaa34f76..7156c12abd 100644 --- a/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinDeliveryStore.swift +++ b/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinDeliveryStore.swift @@ -90,44 +90,32 @@ public class InsulinDeliveryStore: HealthKitSampleStore { test_currentDate: test_currentDate ) - let semaphore = DispatchSemaphore(value: 0) cacheStore.onReady { (error) in guard error == nil else { - semaphore.signal() return } + self.queue.sync { + self.updateLastImmutableBasalEndDate() + } + cacheStore.fetchAnchor(key: InsulinDeliveryStore.healthKitQueryAnchorMetadataKey) { (anchor) in self.queue.async { - self.queryAnchor = anchor - - if !self.authorizationRequired { - self.createQuery() - } - - self.updateLastImmutableBasalEndDate() - - semaphore.signal() + self.setInitialQueryAnchor(anchor) } } } - semaphore.wait() } // MARK: - HealthKitSampleStore - override func queryAnchorDidChange() { - cacheStore.storeAnchor(queryAnchor, key: InsulinDeliveryStore.healthKitQueryAnchorMetadataKey) + override func storeQueryAnchor(_ anchor: HKQueryAnchor) { + cacheStore.storeAnchor(anchor, key: InsulinDeliveryStore.healthKitQueryAnchorMetadataKey) + self.log.default("stored query anchor %{public}@", String(describing: anchor)) } override func processResults(from query: HKAnchoredObjectQuery, added: [HKSample], deleted: [HKDeletedObject], anchor: HKQueryAnchor, completion: @escaping (Bool) -> Void) { queue.async { - guard anchor != self.queryAnchor else { - self.log.default("Skipping processing results from anchored object query, as anchor was already processed") - completion(true) - return - } - var changed = false var error: Error? @@ -295,7 +283,7 @@ extension InsulinDeliveryStore { completion(.success(date)) case .none: // TODO: send a proper error - completion(.failure(DoseStore.DoseStoreError.configurationError)) + completion(.failure(DoseStore.DoseStoreError.initializationError(description: "lastImmutableBasalEndDate has not been set", recoverySuggestion: "Avoid accessing InsulinDeliveryStore until initialization is complete"))) } } } @@ -336,7 +324,7 @@ extension InsulinDeliveryStore { /// - entries: The new dose entries to add to the store. /// - device: The optional device used for the new dose entries. /// - syncVersion: The sync version used for the new dose entries. - /// - resolveMutable: Whether to update or delete any pre-existing mutable dose entries based upon any matching incoming mutable dose entries. + /// - resolveMutable: Whether to update or delete any pre-existing mutable dose entries based upon any matching incoming mutable dose entries. Any previously stored mutable doses that are not also included in entries will be marked as deleted. /// - completion: A closure called once the dose entries have been stored. /// - result: Success or error. func addDoseEntries(_ entries: [DoseEntry], from device: HKDevice?, syncVersion: Int, resolveMutable: Bool = false, completion: @escaping (_ result: Result) -> Void) { diff --git a/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinMath.swift b/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinMath.swift index 6efd2bdda3..29c7053c43 100644 --- a/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinMath.swift +++ b/Dependencies/LoopKit/LoopKit/InsulinKit/InsulinMath.swift @@ -300,6 +300,7 @@ extension DoseEntry { syncIdentifier: syncIdentifier, scheduledBasalRate: scheduledBasalRate, insulinType: insulinType, + automatic: automatic, isMutable: isMutable, wasProgrammedByPumpUI: wasProgrammedByPumpUI ) @@ -352,7 +353,7 @@ extension DoseEntry { return self } } - return DoseEntry(type: type, startDate: startDate, endDate: endDate, value: value, unit: unit, deliveredUnits: resolvedUnits, description: description, syncIdentifier: syncIdentifier, scheduledBasalRate: scheduledBasalRate, insulinType: insulinType, isMutable: isMutable, wasProgrammedByPumpUI: wasProgrammedByPumpUI) + return DoseEntry(type: type, startDate: startDate, endDate: endDate, value: value, unit: unit, deliveredUnits: resolvedUnits, description: description, syncIdentifier: syncIdentifier, scheduledBasalRate: scheduledBasalRate, insulinType: insulinType, automatic: automatic, isMutable: isMutable, wasProgrammedByPumpUI: wasProgrammedByPumpUI) } } @@ -393,6 +394,7 @@ extension Collection where Element == DoseEntry { description: suspend.description ?? dose.description, syncIdentifier: suspend.syncIdentifier, insulinType: suspend.insulinType, + automatic: suspend.automatic, isMutable: suspend.isMutable, wasProgrammedByPumpUI: suspend.wasProgrammedByPumpUI )) @@ -412,6 +414,7 @@ extension Collection where Element == DoseEntry { description: suspend.description ?? dose.description, syncIdentifier: suspend.syncIdentifier, insulinType: suspend.insulinType, + automatic: suspend.automatic, isMutable: suspend.isMutable, wasProgrammedByPumpUI: suspend.wasProgrammedByPumpUI )) @@ -452,6 +455,7 @@ extension Collection where Element == DoseEntry { description: last.description, syncIdentifier: last.syncIdentifier, insulinType: last.insulinType, + automatic: last.automatic, isMutable: last.isMutable, wasProgrammedByPumpUI: last.wasProgrammedByPumpUI )) @@ -596,7 +600,7 @@ extension Collection where Element == DoseEntry { if insertingBasalEntries { // Create a placeholder entry at our start date, so we know the correct duration of the // inserted basal entries - lastBasal = DoseEntry(resumeDate: start) + lastBasal = DoseEntry(resumeDate: start, automatic: true) } for dose in self { diff --git a/Dependencies/LoopKit/LoopKit/LocalizedString.swift b/Dependencies/LoopKit/LoopKit/LocalizedString.swift new file mode 100644 index 0000000000..f0ecbc502a --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/LocalizedString.swift @@ -0,0 +1,29 @@ +// +// LocalizedString.swift +// LoopKit +// +// Created by Retina15 on 8/6/18. +// Copyright © 2018 LoopKit Authors. All rights reserved. +// + +import Foundation + +class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle(for: LocalBundle.self).resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKit_LoopKit.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/LoopKit/LoopKit/LoopMath.swift b/Dependencies/LoopKit/LoopKit/LoopMath.swift index cf39bf38f2..2760ba1e80 100644 --- a/Dependencies/LoopKit/LoopKit/LoopMath.swift +++ b/Dependencies/LoopKit/LoopKit/LoopMath.swift @@ -46,6 +46,35 @@ public enum LoopMath { } } + /** + Calculates a range of time in `delta`-value intervals + + - parameter start: The range start date + - parameter end: The range end date + - parameter delta: The time differential for items in the returned range + + - returns: An array of dates + */ + public static func simulationDateRange( + from start: Date, + to end: Date, + delta: TimeInterval + ) -> [Date] { + let flooredStart = start.dateFlooredToTimeInterval(delta) + let ceiledEnd = end.dateCeiledToTimeInterval(delta) + + var output: [Date] = [] + var curr = flooredStart + repeat { + output.append(curr) + + let new = curr.addingTimeInterval(delta) + curr = new + } while curr <= ceiledEnd + + return output + } + /** Calculates a timeline of predicted glucose values from a variety of effects timelines. diff --git a/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationCategory.swift b/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationCategory.swift index 47bf68951b..d4979d6c62 100644 --- a/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationCategory.swift +++ b/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationCategory.swift @@ -23,4 +23,5 @@ public enum LoopNotificationCategory: String { case remoteCommandExpired case remoteCarbs case remoteCarbsFailure + case missedMeal } diff --git a/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationUserInfoKey.swift b/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationUserInfoKey.swift index 3df3e07256..3e83d25066 100644 --- a/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationUserInfoKey.swift +++ b/Dependencies/LoopKit/LoopKit/Notification/LoopNotificationUserInfoKey.swift @@ -12,4 +12,7 @@ public enum LoopNotificationUserInfoKey: String { case bolusActivationType case alertTypeID case managerIDForAlert + case missedMealTime + case missedMealCarbAmount + case expirationDate } diff --git a/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Model.xcdatamodel/contents b/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Model.xcdatamodel/contents index 085ecf56e2..1dbd2ce732 100644 --- a/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Model.xcdatamodel/contents +++ b/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Model.xcdatamodel/contents @@ -1,5 +1,5 @@ - + @@ -133,12 +133,4 @@ - - - - - - - - \ No newline at end of file diff --git a/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Modelv4.xcdatamodel/contents b/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Modelv4.xcdatamodel/contents index e2c44ededb..90e0eb4025 100644 --- a/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Modelv4.xcdatamodel/contents +++ b/Dependencies/LoopKit/LoopKit/Persistence/Model.xcdatamodeld/Modelv4.xcdatamodel/contents @@ -1,6 +1,6 @@ - - + + @@ -18,7 +18,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -144,7 +144,7 @@ - + @@ -153,7 +153,7 @@ - + diff --git a/Dependencies/LoopKit/LoopKit/Persistence/PersistenceController.swift b/Dependencies/LoopKit/LoopKit/Persistence/PersistenceController.swift index 7d5da12d2c..e9187b3bd9 100644 --- a/Dependencies/LoopKit/LoopKit/Persistence/PersistenceController.swift +++ b/Dependencies/LoopKit/LoopKit/Persistence/PersistenceController.swift @@ -52,6 +52,19 @@ public final class PersistenceController { } } + internal let managedObjectContext: NSManagedObjectContext + + public let isReadOnly: Bool + + public let directoryURL: URL + + public weak var delegate: PersistenceControllerDelegate? + + private let log = OSLog(category: "PersistenceController") + + private var queue = DispatchQueue(label: "com.loopkit.PersistenceController", qos: .utility) + + // MARK: - ReadyState private enum ReadyState { case waiting case ready @@ -60,15 +73,22 @@ public final class PersistenceController { public typealias ReadyCallback = (_ error: PersistenceControllerError?) -> Void - internal let managedObjectContext: NSManagedObjectContext - - public let isReadOnly: Bool - - public let directoryURL: URL + private var readyCallbacks: [ReadyCallback] = [] - public weak var delegate: PersistenceControllerDelegate? + private var readyState: ReadyState = .waiting - private let log = OSLog(category: "PersistenceController") + func onReady(_ callback: @escaping ReadyCallback) { + queue.async { + switch self.readyState { + case .waiting: + self.readyCallbacks.append(callback) + case .ready: + callback(nil) + case .error(let error): + callback(error) + } + } + } /// Initializes a new persistence controller in the specified directory /// @@ -81,7 +101,7 @@ public final class PersistenceController { isReadOnly: Bool = false ) { - guard let url = Bundle(for: PersistenceController.self).url(forResource: "Model", withExtension: "momd") else { + guard let url = LocalBundle.main.url(forResource: "Model", withExtension: "momd") else { log.error("Could not find Model url") fatalError("Unable to find Model url") } @@ -101,25 +121,6 @@ public final class PersistenceController { initializeStack(inDirectory: directoryURL, model: model) } - private var readyCallbacks: [ReadyCallback] = [] - - private var readyState: ReadyState = .waiting - - private var queue = DispatchQueue(label: "com.loopkit.PersistenceController", qos: .utility) - - func onReady(_ callback: @escaping ReadyCallback) { - queue.async { - switch self.readyState { - case .waiting: - self.readyCallbacks.append(callback) - case .ready: - callback(nil) - case .error(let error): - callback(error) - } - } - } - @discardableResult func save(_ completion: ((_ error: PersistenceControllerError?) -> Void)? = nil) -> PersistenceControllerError? { var error: PersistenceControllerError? @@ -193,15 +194,20 @@ public final class PersistenceController { let storeURL = directoryURL.appendingPathComponent("Model.sqlite") + var options: [AnyHashable : Any] = [ + NSMigratePersistentStoresAutomaticallyOption: true, + NSInferMappingModelAutomaticallyOption: true + ] + +#if os(iOS) + options[NSPersistentStoreFileProtectionKey] = FileProtectionType.completeUntilFirstUserAuthentication +#endif + do { try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeURL, - options: [ - NSMigratePersistentStoresAutomaticallyOption: true, - NSInferMappingModelAutomaticallyOption: true, - NSPersistentStoreFileProtectionKey: FileProtectionType.completeUntilFirstUserAuthentication - ] + options: options ) } catch let storeError as NSError { self.log.error("Failed to initialize persistenceController: %{public}@", storeError) @@ -263,10 +269,11 @@ extension PersistenceController { if let encoded = value as? Data { let anchor = try? NSKeyedUnarchiver.unarchivedObject(ofClass: HKQueryAnchor.self, from: encoded) if anchor == nil { - self.log.error("Decoding anchor from %{public} failed.", String(describing: encoded)) + self.log.error("Decoding anchor from %{public}@ failed.", String(describing: encoded)) } completion(anchor) } else { + self.log.error("Anchor metadata invalid %{public}@.", String(describing: value)) completion(nil) } } diff --git a/Dependencies/LoopKit/LoopKit/Prescription.swift b/Dependencies/LoopKit/LoopKit/Prescription.swift index 7db6c49a1b..2e300eb857 100644 --- a/Dependencies/LoopKit/LoopKit/Prescription.swift +++ b/Dependencies/LoopKit/LoopKit/Prescription.swift @@ -6,6 +6,8 @@ // Copyright © 2020 LoopKit Authors. All rights reserved. // +import Foundation + public protocol Prescription { /// Date prescription was prescribed var datePrescribed: Date { get } diff --git a/Dependencies/LoopKit/LoopKit/Base.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/Base.lproj/Localizable.strings similarity index 100% rename from Dependencies/LoopKit/LoopKit/Base.lproj/Localizable.strings rename to Dependencies/LoopKit/LoopKit/Resources/Base.lproj/Localizable.strings diff --git a/Dependencies/LoopKit/LoopKit/Resources/ar.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..71b003f50f --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,43 @@ +/* Title text for basal rates */ +"Basal Rates" = "الضخ المستمر"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "معاملات الكارب"; + +/* Title text for glucose target range */ +"Correction Range" = "نطاق التصحيح"; + +/* Title text for delivery limits */ +"Delivery Limits" = "حدود الضخ"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "نوع الأنسولين"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "حساسية الأنسولين"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* Sensor state description for the valid state */ +"OK" = "موافق"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-Meal"; + +/* The short unit display string for international units of insulin */ +"U" = "وحدة"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "وحدة لكل ساعة"; + +/* Title for workout mode */ +"Workout" = "التمارين"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/cs.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..2c2c9053bd --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Title text for basal rates */ +"Basal Rates" = "Úrovně bazálu"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podávání"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Title for suspend dose type */ +"Suspended" = "Pozastaveno"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/da.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..12418864b5 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/da.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ område"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ vil kun afgive basal og anbefale bolus, hvis blodsukkeret forventes at være over denne grænse i de næste tre timer."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "En værdi, du har angivet, er højere end den, der typisk anbefales til de fleste."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "En værdi, du har angivet, er lavere end den, der typisk anbefales til de fleste."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza er en ultrahurtigt virkende måltidsinsulin, som indåndes gennem lungerne ved hjælp af en oral inhalator og fremstilles af MannKind."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulin glulisin)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulin glulisine) er en hurtigtvirkende insulin fremstillet af Sanofi-aventis "; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Tilladelse nægtet"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Basalrater"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Kulhydratforhold"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Tilladelse nægtet"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Dette eksempel kan slettes fra appen Sundhed"; + +/* Generic pump error description */ +"Communication Failure" = "Kommunikationsfejl"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Kommunikation afbrudt under insulinafgivelse (kommando)."; + +/* Generic pump error description */ +"Connection Failure" = "Forbindelsesfejl"; + +/* Title text for glucose target range */ +"Correction Range" = "Korrektionsområde"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Korrektionsområdet er det blodsukkerinterval som du vil have %1$@ til at sigte efter, når din basal justeres og hjælper dig med at beregne bolus."; + +/* Description of critical software update needed */ +"Critical Update" = "Kritisk opdatering"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Insulingrænser"; + +/* Generic pump error description */ +"Device Refused" = "Enhed nægtet"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Sørg for, at kulhydratdata findes for den angivne dato"; + +/* Glucose trend down */ +"Falling" = "Falder"; + +/* Glucose trend down-down */ +"Falling fast" = "Falder hurtigt"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Falder meget hurtigt"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp er et måltidsinsulin aspart med tilsætning af nicotinamid (vitamin B3) fremstillet af Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Flad"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "For hurtigt virkende insulin, %1$@ antager det arbejder aktivt i 6 timer. Du kan vælge mellem forskellige modeller til spidsbelastningsaktiviteten."; + +/* The short unit display string for grams per U */ +"g/U" = "g/E"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Sikkerhedsgrænse for blodsukker"; + +/* The long unit display string for a singular hour */ +"Hour" = "Time"; + +/* The long unit display string for hours */ +"Hours" = "Timer"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulin lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulin lispro) er et hurtigtvirkende insulin fremstillet af Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulinmodel"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulinfølsomheder"; + +/* Generic pump error description */ +"Invalid Configuration" = "Forkert indstilling"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev er en måltidsinsulin lispro med tilsætning af citrat og treprostinil fremstillet af Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Sørg for, at din pumpe er tæt på din telefon."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maksimal basalrate"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Maksimal basalrate er den højeste midlertidige basalhastighed, som %1$@ har lov til at indstille."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maksimal bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maksimal bolus er den højeste bolus mængde, du kan afgive på én gang, i forbindelse med indtastning af kulhydrater eller en korrektionsbolus."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/E"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/E"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Handling påkrævet"; + +/* Description of no software update needed */ +"No Update" = "Ingen opdatering"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Ingen værdier fundet"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulin aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulin aspart) er et hurtigtvirkende insulin fremstillet af Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "En eller flere af de værdier, du har indtastet, er udenfor hvad der generelt anbefales."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Venligst gen-aktiver deling i Sundhed"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Før-måltid"; + +/* Description of supported software update needed */ +"Recommended Update" = "Anbefalet opdatering"; + +/* Title for resume dose type */ +"Resumed" = "Genoptaget"; + +/* Glucose trend up */ +"Rising" = "Stiger"; + +/* Glucose trend up-up */ +"Rising fast" = "Stiger hurtigt"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Stiger meget hurtigt"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Nogle af de værdier, du har angivet, ligger uden for det, der typisk anbefales til de fleste."; + +/* Title for suspend dose type */ +"Suspended" = "Suspenderet"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Midlertidig basal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Sænker midlertidigt dit blodsukker mål før et måltid for at modvirke stigning i blodsukker efter måltidet."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Hæver midlertidigt dit blodsukkermål før, under eller efter fysisk aktivitet for at reducere risikoen for lavt blodsukker."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "En værdi, du har angivet, er højere end den, der typisk anbefales til de fleste."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "En værdi, du har angivet, er lavere end den, der typisk anbefales til de fleste."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Nogle af de værdier, du har angivet, ligger uden for det, der typisk anbefales til de fleste."; + +/* The short unit display string for international units of insulin */ +"U" = "E"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "E/t"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Usikker indgivelse"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Enhed"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Enhed/time"; + +/* The long unit display string for international units of insulin */ +"Units" = "Enheder"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Enheder/time"; + +/* Description of informational software update needed */ +"Update Available" = "Opdatering tilgængelig"; + +/* Title for workout mode */ +"Workout" = "Motion"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "En basalrate, er det antal af enheder i timen, som du skal bruge for at dække dit basale insulinbehov."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Kulhydratforhold er antallet af kulhydrater i gram, der dækkes af én enhed insulin."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Insulinfølsomhed henviser til det fald i blodsukker, der forventes fra én insulinenhed."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/de.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..837fad9c2d --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/de.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Bereich"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ gibt nur dann Basalinsulin ab und empfiehlt Bolusinsulin, wenn Dein Blutzucker voraussichtlich in den nächsten drei Stunden über diesem Grenzwert liegen wird."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Ein eingegebener Wert liegt über dem, was normalerweise für die meisten Menschen empfohlen wird."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Ein eingegebener Wert liegt unter dem, was normalerweise für die meisten Menschen empfohlen wird."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza ist ein ultraschnell wirkendes Mahlzeiteninsulin, das mit einem oralen Inhalator durch Ihre Lungen eingeatmet wird und von MannKind hergestellt wird."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (Insulinglulisin)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (Insulinglulisin) ist ein schnell wirkendes Insulin, das von Sanofi-aventis hergestellt wird"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorisierung verweigert"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Basalrate"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "KH-Verhältnis"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisierung verweigert"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Dieses Beispiel kann in der Health-App gelöscht werden."; + +/* Generic pump error description */ +"Communication Failure" = "Kommunikationsfehler"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Die Kommunikation wurde während der Insulinabgabe unterbrochen."; + +/* Generic pump error description */ +"Connection Failure" = "Verbindungsfehler"; + +/* Title text for glucose target range */ +"Correction Range" = "Korrekturbereich"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Der Korrekturbereich ist der Blutzuckerbereich, den %1$@ bei der Anpassung Deines Basalinsulins anstreben und Dir bei der Berechnung der Boli helfen soll."; + +/* Description of critical software update needed */ +"Critical Update" = "Kritisches Update"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Abgabelimits"; + +/* Generic pump error description */ +"Device Refused" = "Gerät verweigert"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Stelle sicher, das die Kohlenhydrate für den ausgewählten Zeitraum eingegeben wurden"; + +/* Glucose trend down */ +"Falling" = "Fällt"; + +/* Glucose trend down-down */ +"Falling fast" = "Fällt schnell"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Fällt sehr schnell"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp ist eine von Novo Nordisk hergestellte Insulin aspart-Variante zur Mahlzeit mit dem Zusatz von Nicotinamid (Vitamin B3)."; + +/* Glucose trend flat */ +"Flat" = "Gleichbleibend"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Bei schnell wirkendem Insulin geht %1$@ davon aus, dass es 6 Stunden lang wirkt. Du kannst aus verschiedenen Modellen für die Spitzenaktivität wählen."; + +/* The short unit display string for grams per U */ +"g/U" = "g/IE"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Blutzuckersicherheitsgrenze"; + +/* The long unit display string for a singular hour */ +"Hour" = "Stunde"; + +/* The long unit display string for hours */ +"Hours" = "Stunden"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (Insulin Lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (Insulin Lispro) ist ein schnell wirkendes Insulin, das von Eli Lilly hergestellt wird"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulin-Modell"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulinempfindlichkeit"; + +/* Generic pump error description */ +"Invalid Configuration" = "Fehlerhafte Konfiguration"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev ist eine Insulin-Lispro-Variante zur Mahlzeit mit dem Zusatz von Citrat und Treprostinil, hergestellt von Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Stelle sicher, dass sich Deine Pumpe in Kommunikationsreichweite Deines Telefons befindet."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maximale Basalrate"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Die maximale Basalrate ist die höchste temporäre Basalrate, die %1$@ einstellen darf."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maximaler Bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maximaler Bolus ist die höchste Bolusmenge, die Du auf einmal abgeben kannst, um Kohlenhydrate abzudecken oder hohe Blutzuckerwerte zu senken."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/IE"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/IE"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Erfordert Aufmerksamkeit"; + +/* Description of no software update needed */ +"No Update" = "Kein Update"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Keine Werte gefunden"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (Insulin Aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (Insulin Aspart) ist ein schnell wirkendes Insulin von Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Mindestens einer der eingegebenen Werte liegt außerhalb dessen, was normalerweise für die meisten Menschen empfohlen wird."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Bitte aktiviere das Teilen in HealthKit erneut"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Vor dem Essen"; + +/* Description of supported software update needed */ +"Recommended Update" = "Empfohlenes Update"; + +/* Title for resume dose type */ +"Resumed" = "Wiederaufgenommen"; + +/* Glucose trend up */ +"Rising" = "Steigt"; + +/* Glucose trend up-up */ +"Rising fast" = "Steigt schnell"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Steigt sehr schnell"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Einige der eingegebenen Werte liegen außerhalb dessen, was normalerweise für die meisten Menschen empfohlen wird."; + +/* Title for suspend dose type */ +"Suspended" = "Unterbrochen"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Temporäre Basalrate"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Senke Deinen Blutzuckerziel vor einer Mahlzeit vorübergehend ab, um Blutzuckerspitzen nach der Mahlzeit auszugleichen."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Erhöhe Dein Blutzuckerziel vorübergehend vor, während oder nach körperlicher Aktivität, um das Risiko von Ereignissen mit niedrigem Blutzucker zu verringern."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Der eingegebene Wert liegt über dem, was normalerweise für die meisten Menschen empfohlen wird."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Der eingegebene Wert liegt unter dem, was normalerweise für die meisten Menschen empfohlen wird."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Die eingegebenen Werte liegen außerhalb der für die meisten Menschen empfohlenen Werte."; + +/* The short unit display string for international units of insulin */ +"U" = "IE"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "IE/h"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Unsichere Abgabe"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Einheit"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Einheit/Std."; + +/* The long unit display string for international units of insulin */ +"Units" = "Einheiten"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Einheiten/Stunde"; + +/* Description of informational software update needed */ +"Update Available" = "Update verfügbar"; + +/* Title for workout mode */ +"Workout" = "Training"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Deine Basalrate ist die Anzahl der Einheiten pro Stunde, die Du verwenden möchtest, um Deinen Hintergrund-Insulinbedarf zu decken."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Dein Kohlenhydratverhältnis ist die Anzahl an Kohlenhydraten in Gramm, die von einer Insulineinheit abgedeckt wird."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Deine Insulinempfindlichkeit bezieht sich auf den Abfall des Blutzuckers, der von einer Einheit Insulin erwartet wird."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/en.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..2b8af5a791 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/en.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* + Localizable.strings + LoopKit + + Created by Pete Schwamb on 3/19/23. + Copyright © 2023 LoopKit Authors. All rights reserved. +*/ diff --git a/Dependencies/LoopKit/LoopKit/Resources/es.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..63956522ff --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/es.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Rango"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ administrará insulina basal y bolo recomendado solo si se prevé que tu nivel de glucosa estará por encima de este límite durante las próximas tres horas."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "El valor introducido es superior al recomendado para la mayoría de las personas."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "El valor introducido es inferior al recomendado para la mayoría de las personas."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza es una insulina de acción ultrarrápida que se inhala a través de los pulmones mediante un inhalador oral, fabricado por MannKind."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulina glulisina)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulina glulisina) es una insulina de acción rápida fabricada por Sanofi-aventis"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorización Denegada"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Tasas basales"; + +/* Title for bolus dose type */ +"Bolus" = "Bolo"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Ratios de carbohidratos"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorización Denegada"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Esta muestra se puede eliminar de la aplicación Salud"; + +/* Generic pump error description */ +"Communication Failure" = "Falla de Comunicación"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Comunicaciones interrumpidas durante el comando de administración de insulina."; + +/* Generic pump error description */ +"Connection Failure" = "Falla de Conexión"; + +/* Title text for glucose target range */ +"Correction Range" = "Rango de Corrección"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "El Rango de Corrección es el valor de glucosa (o rango de valores) al que %1$@ debe apuntar para ajustar su insulina basal y ayudarle a calcular sus bolos."; + +/* Description of critical software update needed */ +"Critical Update" = "Actualización crítica"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Límites de Administración de Insulina"; + +/* Generic pump error description */ +"Device Refused" = "Dispositivo Rechazado"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Asegurar que los datos de carbohidratos existen para la fecha especificada"; + +/* Glucose trend down */ +"Falling" = "Descendiendo"; + +/* Glucose trend down-down */ +"Falling fast" = "Descendiendo rápido"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Descendiendo muy rápido"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp es una formulación de insulina Aspart con nicotinamida (vitamina B3) fabricada por Novo Nordisk."; + +/* Glucose trend flat */ +"Flat" = "Estable"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "En el caso de la insulina de acción rápida, %1$@ asume que actúa activamente durante 6 horas. Puedes elegir entre modelos diferentes para que la aplicación mida el pico de actividad de la insulina."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Límite de seguridad de glucosa"; + +/* The long unit display string for a singular hour */ +"Hour" = "Hora"; + +/* The long unit display string for hours */ +"Hours" = "Horas"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulina lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulina lispro) es una insulina de acción rápida fabricada por Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Modelo de Insulina"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Sensibilidad a la insulina"; + +/* Generic pump error description */ +"Invalid Configuration" = "Configuración no Válida"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev es una formulación de insulina Lispro que incluye la adición de citrato y treprostinil fabricada por Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Asegúrate de que tu bomba esté dentro del rango de comunicación de tu teléfono."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Perfil Basal Máximo"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Tasa Basal Máxima es la tasa basal temporal más alta que %1$@ puede establecer."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Bolo Máximo"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "El bolo máximo es la maxima cantidad de insulina bolo que se puede administrar en una sola toma para cubrir los carbohidratos o bajar un nivel de glucosa alta."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Necesita Atención"; + +/* Description of no software update needed */ +"No Update" = "Sin actualización"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "No hay datos"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulina aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulina Aspart) es una insulina de acción rápida fabricada por Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Uno o más de los valores que ha introducido están fuera de lo que se suele recomendar para la mayoría de las personas."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Por favor, vuelva a habilitar compartir en Salud"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-Comida"; + +/* Description of supported software update needed */ +"Recommended Update" = "Actualización recomendada"; + +/* Title for resume dose type */ +"Resumed" = "Reanudado"; + +/* Glucose trend up */ +"Rising" = "Ascendiendo"; + +/* Glucose trend up-up */ +"Rising fast" = "Ascendiendo rápido"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Ascendiendo muy rápido"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Algunos de los valores que ingresó están fuera de lo que normalmente se recomienda para la mayoría de las personas."; + +/* Title for suspend dose type */ +"Suspended" = "Suspendido"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Insulina basal temporal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduzca temporalmente su objetivo de glucosa antes de una comida para reducir los picos de glucosa después de las comidas."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Aumente temporalmente su objetivo de glucosa antes, durante o después de la actividad física para reducir el riesgo de tener eventos de glucosa baja."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "El valor que ha introducido es superior al que se suele recomendar para la mayoría de las personas."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "El valor que ha introducido es inferior al que se suele recomendar para la mayoría de las personas."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Los valores que ha introducido están fuera de lo que normalmente se recomienda para la mayoría de las personas."; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/hra"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Entrega incierta"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unidad"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unidad/hora"; + +/* The long unit display string for international units of insulin */ +"Units" = "Unidades"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Unidades/hora"; + +/* Description of informational software update needed */ +"Update Available" = "Actualización disponible"; + +/* Title for workout mode */ +"Workout" = "Ejercicio"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Su tasa basal de insulina es la cantidad de unidades por hora que desea usar para cubrir sus necesidades de insulina de fondo, no relacionadas con las comidas."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "El ratio de carbohidratos es el número de gramos de carbohidratos que cubre una unidad de insulina."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Su sensibilidad a la insulina se refiere a la disminución en los niveles de glucosa esperados por una unidad de insulina."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/fi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..b691616557 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,223 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ -tavoite"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ annostelee basaalia ja suosittelee bolusinsuliinia vain, jos glukoosin ennustetaan ylittävän tämän rajan seuraavien kolmen tunnin aikana."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Antamasi arvo on suurempi kuin useimmille ihmisille yleensä suositeltava arvo."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Antamasi arvo on pienempi kuin useimmille ihmisille yleensä suositeltava arvo."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (glulisinsuliini)"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Valtuutus hylättiin"; + +/* Title for basal dose type */ +"Basal" = "Basaali"; + +/* Title text for basal rates */ +"Basal Rates" = "Basaalitasot"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Hiilihydraattisuhteet"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Valtuutus hylättiin"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Tämä näyte voidaan poistaa Terveys-sovelluksesta"; + +/* Generic pump error description */ +"Communication Failure" = "Kommunikaatiovirhe"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Yhteys katkesi insuliinin annostelu -toiminnon aikana."; + +/* Generic pump error description */ +"Connection Failure" = "Yhteysvirhe"; + +/* Title text for glucose target range */ +"Correction Range" = "Korjausalue"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Korjausalue tarkoittaa glukoosiarvoa (tai arvoaluetta), johon %1$@ tähtää säätäessään basaalia ja auttaessaan boluslaskelmissa."; + +/* Title text for delivery limits */ +"Delivery Limits" = "Annostelurajat"; + +/* Generic pump error description */ +"Device Refused" = "Laite hylättiin"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Varmista, että hiilihydraattitiedot ovat olemassa määritettynä ajankohtana"; + +/* Glucose trend down */ +"Falling" = "Laskeva"; + +/* Glucose trend down-down */ +"Falling fast" = "Nopeasti laskeva"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Erittäin nopeasti laskeva"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp on Novo Nordiskin valmistama aterianaikainen aspartinsuliinivalmiste, johon on lisätty nikotiiniamidia (B3-vitamiini)"; + +/* Glucose trend flat */ +"Flat" = "Tasainen"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "%1$@ olettaa, että nopeavaikutteinen insuliini vaikuttaa aktiivisesti 6 tuntia. Vaikutushuipulle on valittavissa erilaisia malleja."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Glukoosin turvaraja"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (lisproinsuliini)"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insuliinimalli"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insuliiniherkkyydet"; + +/* Generic pump error description */ +"Invalid Configuration" = "Virheellinen määritys"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Varmista, että pumppu on puhelimen yhteysalueen sisällä."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Suurin sallittu basaalitaso"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Suurin sallittu bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Suurin sallittu bolus tarkoittaa suurinta insuliiniannosta, jonka voi annostella yhdellä kertaa kattamaan hiilihydraatteja tai alentamaan korkeaa glukoosia."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Tarvitsee huomiota"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Arvoja ei löydy"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novorapid"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novorapid (aspartinsuliini)"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Yksi tai useampi antamistasi arvoista on sen ulkopuolella, mitä useimmille ihmisille yleensä suositellaan."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Ota jakaminen uudelleen käyttöön Terveys-sovelluksessa"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Ennen ateriaa"; + +/* Title for resume dose type */ +"Resumed" = "Jatkettu"; + +/* Glucose trend up */ +"Rising" = "Nouseva"; + +/* Glucose trend up-up */ +"Rising fast" = "Nopeasti nouseva"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Erittäin nopeasti nouseva"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Jotkut antamistasi arvoista on sen ulkopuolella, mitä useimmille ihmisille yleensä suositellaan."; + +/* Title for suspend dose type */ +"Suspended" = "Pysäytetty"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Tilapäinen basaali"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Laske glukoositavoitetta väliaikaisesti ennen ateriaa vaikuttaaksesi aterian jälkeiseen glukoosin nousuun."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Nosta glukoositavoitetta väliaikaisesti ennen liikuntaa, sen aikana tai sen jälkeen, jotta matalan glukoosin riski pienenee."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Antamasi arvo on suurempi kuin useimmille ihmisille yleensä suositellaan."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Antamasi arvo on pienempi kuin useimmille ihmisille yleensä suositellaan."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Antamasi arvot ovat useimmille ihmisille yleensä suositeltujen arvojen ulkopuolella."; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/h"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Epävarma annostelu"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Yksikkö"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Yksikkö/tunti"; + +/* The long unit display string for international units of insulin */ +"Units" = "Yksikköä"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Yksikköä/tunnissa"; + +/* Title for workout mode */ +"Workout" = "Liikunta"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Basaalitaso tarkoittaa sitä yksikkömäärää insuliinia tunnissa, jonka tarvitset insuliinin perustarpeen kattamiseen."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Hiilihydraattisuhde tarkoittaa sitä, kuinka monta grammaa hiilihydraatteja yksi insuliiniyksikkö kattaa."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Insuliiniherkkyys tarkoittaa sitä, kuinka paljon glukoosi laskee yhdellä insuliiniyksiköllä."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/fr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..7dc1491598 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Plage"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ ne délivrera de l'insuline basale et ne recommandera un bolus que si la projection de glycémie est supérieure à cette limite au cours des trois prochaines heures."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Une valeur a été entrée qui est supérieure ce qui est typiquement recommandé pour la majorité des personnes."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Une valeur a été entrée qui est inférieure à ce qui est typiquement recommandé pour la majorité des personnes."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza est une insuline prandiale à action ultra rapide qui est inhalée par vos poumons à l'aide d'un inhalateur oral et fabriquée par MannKind."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insuline glulisine)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insuline glulisine) est une insuline à action rapide fabriquée par Sanofi-Aventis "; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorisation refusée"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Débits basaux"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Ratios Insuline-Glucides"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisation refusée"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Cette entrée peut être supprimée de l'application Health"; + +/* Generic pump error description */ +"Communication Failure" = "Échec de la communication"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Communications interrompues pendant la commande d’administration d’insuline."; + +/* Generic pump error description */ +"Connection Failure" = "Échec de connexion"; + +/* Title text for glucose target range */ +"Correction Range" = "Plage de correction"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "La plage de correction est la valeur de glucose (ou la plage de valeurs) que vous voulez que %1$@ vise en ajustant votre insuline basale et en vous aidant à calculer vos bolus."; + +/* Description of critical software update needed */ +"Critical Update" = "Mise à jour critique"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limites d'Administration"; + +/* Generic pump error description */ +"Device Refused" = "Dispositif refusé"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "S'assurer que les données sur les glucides existent pour la date spécifiée"; + +/* Glucose trend down */ +"Falling" = "Diminue"; + +/* Glucose trend down-down */ +"Falling fast" = "Diminue rapidement"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Diminue très rapidement"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp est une formulation d'insuline asparte prandiale avec ajout de nicotinamide (vitamine B3) qui est produite par Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Stable"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Pour l'insuline à action rapide, %1$@ suppose qu'elle agit activement pendant 6 heures. Vous pouvez choisir parmi différents modèles pour le pic d'activité."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Limite de sécurité pour la glycémie"; + +/* The long unit display string for a singular hour */ +"Hour" = "Heure"; + +/* The long unit display string for hours */ +"Hours" = "Heures"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulin lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insuline lispro) est une insuline à action rapide fabriquée par Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Modèle d'insuline"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Facteurs de sensibilité à l'insuline"; + +/* Generic pump error description */ +"Invalid Configuration" = "Configuration invalide"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev est une formulation d'insuline lispro prandiale avec ajout de citrate et de tréprostinil fabriqué par Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Assurez-vous que votre pompe soit à portée de communication de votre téléphone."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Débit Basal Maximum"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Le débit basal maximum est le débit de base temporaire le plus élevé que %1$@ est autorisé à définir."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Bolus Maximum"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Le bolus maximum est la quantité de bolus la plus élevée que vous pouvez délivrer en une fois pour couvrir les glucides ou abaisser le taux de glucose élevé."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Demande votre attention"; + +/* Description of no software update needed */ +"No Update" = "Pas de mise à jour"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Aucune entrée trouvée"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insuline asparte)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insuline asparte) est une insuline à action rapide fabriquée par Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Une ou plusieurs des valeurs que vous avez entrées sont en dehors de ce qui est généralement recommandé pour la plupart des personnes."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Veuillez réactiver le partage dans l'application Santé"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pré-Repas"; + +/* Description of supported software update needed */ +"Recommended Update" = "Mise à jour recommandée"; + +/* Title for resume dose type */ +"Resumed" = "Reprendre"; + +/* Glucose trend up */ +"Rising" = "Augmente"; + +/* Glucose trend up-up */ +"Rising fast" = "Augmente rapidement"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Augmente très rapidement"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Des valeurs que vous avez entrées sont en dehors de ce qui est généralement recommandé pour la plupart des personnes."; + +/* Title for suspend dose type */ +"Suspended" = "Suspendu"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Débit basal temporaire"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Diminue temporairement votre cible de glycémie avant un repas pour influer sur les pics d'hyperglycémie post-repas."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Augmente temporairement votre cible de glycémie avant, pendant ou après l'activité physique pour réduire le risque d'hypoglycémie."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "La valeur que vous avez saisie est supérieure à ce qui est généralement recommandé pour la plupart des personnes."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "La valeur que vous avez saisie est inférieure à ce qui est généralement recommandé pour la plupart des personnes."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Les valeurs que vous avez saisies sont en dehors de ce qui est généralement recommandé pour la plupart des personnes."; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/h"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Administration incertaine"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unité"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "unité / heure"; + +/* The long unit display string for international units of insulin */ +"Units" = "Unités"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "unités / heure"; + +/* Description of informational software update needed */ +"Update Available" = "Mise à jour disponible"; + +/* Title for workout mode */ +"Workout" = "Exercice"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Votre débit basal d'insuline est le nombre d'unités par heure que vous souhaitez utiliser pour couvrir vos besoins vitaux d'insuline."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Votre ratio insuline-glucides est le nombre de grammes de glucides couverts par une unité d'insuline."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Vos sensibilités à l'insuline se réfèrent à la baisse de glycémie prévue entrainée par une unité d'insuline."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/he.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..e1ace64f09 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/he.lproj/Localizable.strings @@ -0,0 +1,130 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Authorization Denied"; + +/* Title text for basal rates */ +"Basal Rates" = "Basal Rates"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Carb Ratios"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; + +/* Generic pump error description */ +"Communication Failure" = "Communication Failure"; + +/* Generic pump error description */ +"Connection Failure" = "Connection Failure"; + +/* Title text for glucose target range */ +"Correction Range" = "Correction Range"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Delivery Limits"; + +/* Generic pump error description */ +"Device Refused" = "Device Refused"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; + +/* Glucose trend down */ +"Falling" = "Falling"; + +/* Glucose trend down-down */ +"Falling fast" = "Falling fast"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Falling very fast"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Glucose trend flat */ +"Flat" = "Flat"; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulin Model"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulin Sensitivities"; + +/* Generic pump error description */ +"Invalid Configuration" = "Invalid Configuration"; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maximum Basal Rate"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maximum Bolus"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Needs Attention"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "No values found"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-Meal"; + +/* Glucose trend up */ +"Rising" = "Rising"; + +/* Glucose trend up-up */ +"Rising fast" = "Rising fast"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Rising very fast"; + +/* Title for suspend dose type */ +"Suspended" = "Suspended"; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/hr"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unit"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unit/hour"; + +/* The long unit display string for international units of insulin */ +"Units" = "Units"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Units/hour"; + +/* Title for workout mode */ +"Workout" = "Workout"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/it.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..3cb4481f5b --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/it.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Intervallo"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ erogherà l'insulina basale e consiglierà il bolo solo se si prevede che il tuo glucosio sarà superiore a questo limite per le prossime tre ore."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Il valore inserito è superiore a quello tipicamente consigliato per la maggior parte delle persone."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Il valore inserito è inferiore a quello tipicamente consigliato per la maggior parte delle persone."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza è un'insulina prandiale ad azione ultra rapida che viene inalata attraverso i polmoni utilizzando un inalatore orale e prodotta da MannKind"; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulina glulisina)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulina glulisina) è un'insulina ad azione rapida prodotta da Sanofi-aventis"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorizzazione negata"; + +/* Title for basal dose type */ +"Basal" = "Basale"; + +/* Title text for basal rates */ +"Basal Rates" = "Velocità basali"; + +/* Title for bolus dose type */ +"Bolus" = "Bolo"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Rapporti carboidrati"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorizzazione negata"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Questo campione puo essere cancellato dall’ app Salute"; + +/* Generic pump error description */ +"Communication Failure" = "Errore di comunicazione"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Comunicazioni interrotte durante il comando di erogazione dell'insulina."; + +/* Generic pump error description */ +"Connection Failure" = "Errore di connessione"; + +/* Title text for glucose target range */ +"Correction Range" = "Intervallo Glicemico"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Intervallo di correzione è il valore glicemico (o l'intervallo di valori) a cui vuoi che %1$@ miri per regolare l'insulina basale e aiutarti a calcolare i boli."; + +/* Description of critical software update needed */ +"Critical Update" = "Aggiornamento critico"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limiti Erogazione"; + +/* Generic pump error description */ +"Device Refused" = "Il dispositivo è stato rifiutato"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Assicurati che i dati sui carboidrati esistano per la data specificata"; + +/* Glucose trend down */ +"Falling" = "Abbassamento"; + +/* Glucose trend down-down */ +"Falling fast" = "Abbassamento veloce"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Abbassamento molto veloce"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp è una formulazione di insulina ad azione rapida con un l'aggiunta di Nicotinamide (vitamina B3) prodotta da Novo Nordisk. "; + +/* Glucose trend flat */ +"Flat" = "Piatto"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Per l'insulina ad azione veloce,%1$@ si presume che sarà attiva per 6 ore. Si può scegliere fra modelli diversi a seconda dei rispettivi picchi d'azione."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Limite Glicemico di Sicurezza"; + +/* The long unit display string for a singular hour */ +"Hour" = "Ora"; + +/* The long unit display string for hours */ +"Hours" = "Ore"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulina lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulin Lispro) è una insulina ad azione rapida prodotta dalla Ely Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Modello di azione dell'Insulina"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Sensibilità Insulinica"; + +/* Generic pump error description */ +"Invalid Configuration" = "Configurazione non valida"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev e' una formulazione veloce di insulina lispro (humalog) con due additivi: un citrato e Treprostinil, prodotta dalla compagnia Eli Lilly "; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Fare sicuro che il microinfusore e' nel cerchio di comunicazione del cellulare"; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Profilo Basale Massimo"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Velocità Basale Massima è la velocità basale temporanea più alta che %1$@ può impostare."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Bolo Massimo"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Il bolo massimo e' il valore piu' alto di bolo che puo'essere erogato tutto in una volta per coprire i carboidrati inseriti o per abbassare una iperglicemia"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Esige Attenzione"; + +/* Description of no software update needed */ +"No Update" = "Nessun aggiornamento"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Nessun valore trovato"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulina aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulina aspart) è un'insulina ad azione rapida prodotta da Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Uno o più dei valori inseriti non rientrano in quelli generalmente consigliati per la maggior parte delle persone."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Per favore, riattiva la condivisione in Salute"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-Pasto"; + +/* Description of supported software update needed */ +"Recommended Update" = "Aggiornamento consigliato"; + +/* Title for resume dose type */ +"Resumed" = "Ripresa"; + +/* Glucose trend up */ +"Rising" = "Crescente"; + +/* Glucose trend up-up */ +"Rising fast" = "Crescente veloce"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Crescente molto veloce"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Alcuni dei Valori Inseriti sono al di fuori dei parametri che generalmente sono raccomandati per la maggior parte degli Utenti."; + +/* Title for suspend dose type */ +"Suspended" = "Sospeso"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Basale Temporanea"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Abbassa temporaneamente il tuo target glicemico prima di un pasto per influenzare i picchi glicemici postprandiali."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Aumentare temporaneamente il target glicemico prima, durante o dopo l'attività fisica per ridurre il rischio di eventi ipoglicemici."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Il valore inserito è superiore a quello generalmente consigliato per la maggior parte delle persone."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Il valore inserito è inferiore a quello generalmente consigliato per la maggior parte delle persone."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "I valori che hai inserito non rientrano in quelli generalmente consigliati per la maggior parte delle persone."; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/ora"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Consegna incerta"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unità"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unità/ora"; + +/* The long unit display string for international units of insulin */ +"Units" = "Unità"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Unità/ora"; + +/* Description of informational software update needed */ +"Update Available" = "Aggiornamento disponibile"; + +/* Title for workout mode */ +"Workout" = "Allenarsi"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "La velocità basale d'insulina è il numero di unità all'ora che si desidera utilizzare per coprire il tuo fabbisogno d'insulina basale."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Il tuo rapporto carboidrati è il numero di grammi di carboidrati coperti da un'unità di insulina."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "La tua sensibilità all'insulina si riferisce al calo di glucosio previsto da un'unità d'insulina."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/ja.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..2612cea56b --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,130 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "認証が拒否されました"; + +/* Title text for basal rates */ +"Basal Rates" = "基礎レート"; + +/* Title for bolus dose type */ +"Bolus" = "ボーラス"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Carb Ratios"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "認証が拒否されました"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; + +/* Generic pump error description */ +"Communication Failure" = "通信エラー"; + +/* Generic pump error description */ +"Connection Failure" = "接続エラー"; + +/* Title text for glucose target range */ +"Correction Range" = "ターゲット範囲"; + +/* Title text for delivery limits */ +"Delivery Limits" = "注入限度"; + +/* Generic pump error description */ +"Device Refused" = "機器拒否"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "指定した日に糖質のデータがあるか確認してください"; + +/* Glucose trend down */ +"Falling" = "降下"; + +/* Glucose trend down-down */ +"Falling fast" = "急降下"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "超急降下"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Glucose trend flat */ +"Flat" = "平坦"; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "インスリンモデル"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "インスリン効果値"; + +/* Generic pump error description */ +"Invalid Configuration" = "コンフィグレーションが無効"; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "最大基礎レート"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "最大ボーラス"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "注意してください"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "値が見つかりません"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "ヘルスケアの共有を有効にしてください"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "食前"; + +/* Glucose trend up */ +"Rising" = "上昇"; + +/* Glucose trend up-up */ +"Rising fast" = "急上昇"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "超急上昇"; + +/* Title for suspend dose type */ +"Suspended" = "一時停止"; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/時"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unit"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unit/hour"; + +/* The long unit display string for international units of insulin */ +"Units" = "単位"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "U/時"; + +/* Title for workout mode */ +"Workout" = "運動"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/nb.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..8adc928532 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Målområde"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ vil levere basal og anbefale bolusinsulin bare hvis blodsukkeret ditt forventes å være over denne grensen de neste tre timene."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "En verdi du har lagt inn er høyere enn det som vanligvis anbefales for de fleste."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "En verdi du har lagt inn er lavere enn det som vanligvis anbefales for de fleste."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza er et ultrahurtigvirkende måltidsinsulin som pustes inn gjennom lungene ved hjelp av en oral inhalator og laget av MannKind"; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulin glulisin)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulin glulisin) er et hurtigvirkende insulin laget av Sanofi-aventis"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorisasjon avslått"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Basal-satser"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Karb forhold"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisasjon avslått"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Denne testen kan slettes fra Helse-appen"; + +/* Generic pump error description */ +"Communication Failure" = "Kommunikasjonsfeil"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Kommunikasjonen ble avbrutt ved administrasjon av insulin."; + +/* Generic pump error description */ +"Connection Failure" = "Tilkoblingsfeil"; + +/* Title text for glucose target range */ +"Correction Range" = "Korreksjonsområde"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Korreksjonsområde er blodsukkerverdien (eller verdiområdet) som du vil at %1$@ skal sikte på for å justere basalinsulinet og hjelpe deg med å beregne bolusene dine."; + +/* Description of critical software update needed */ +"Critical Update" = "Kritisk oppdatering"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Leveringsgrenser"; + +/* Generic pump error description */ +"Device Refused" = "Enheten nektet"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Verifiser at karbohydratoppføring eksisterer for den valgte datoen"; + +/* Glucose trend down */ +"Falling" = "Synker"; + +/* Glucose trend down-down */ +"Falling fast" = "Synker raskt"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Synker veldig raskt"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp er en måltidsformulering av insulin aspart i tillegg til nikotinamid (vitamin B3) laget av Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Flatt"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "For hurtigvirkende insulin antar %1$@ at det virker aktivt i 6 timer. Du kan velge mellom ulike modeller for toppaktiviteten."; + +/* The short unit display string for grams per U */ +"g/U" = "g/E"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Sikkerhetsgrense for blodsukker"; + +/* The long unit display string for a singular hour */ +"Hour" = "Time"; + +/* The long unit display string for hours */ +"Hours" = "Timer"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulin lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulin lispro) er et hurtigvirkende insulin laget av Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulin modell"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulinsensitivitet"; + +/* Generic pump error description */ +"Invalid Configuration" = "Ugyldig konfigurasjon"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev er en insulin lispro-formulering for måltider med tillegg av citrat og treprostinil laget av Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Kontroller at pumpen er innenfor kommunikasjonsområdet til telefonen."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maks basalgrense"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Maksimal basaldose er den høyeste midlertidige basaldosen %1$@ er tillatt å angi."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maks bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maksimal bolus er den høyeste bolusmengden du kan gi på en gang for å dekke karbohydrater eller redusere høyt blodsukker."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/E"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/E"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Trenger tilsyn"; + +/* Description of no software update needed */ +"No Update" = "Ingen oppdatering"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Ingen verdier funnet"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulin aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulin aspart) er et hurtigvirkende insulin laget av Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "Ok"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "En verdi du har lagt inn er lavere enn det som vanligvis anbefales for de fleste."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Vennligst aktiver deling i Helse-appen på nytt"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-måltid"; + +/* Description of supported software update needed */ +"Recommended Update" = "Anbefalt oppdatering"; + +/* Title for resume dose type */ +"Resumed" = "Gjenopptatt"; + +/* Glucose trend up */ +"Rising" = "Stiger"; + +/* Glucose trend up-up */ +"Rising fast" = "Stiger fort"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Stiger veldig fort"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Noen av verdiene du har lagt inn er utenfor det som vanligvis anbefales for de fleste."; + +/* Title for suspend dose type */ +"Suspended" = "Suspendert"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Midlertidig basal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduser blodsukkermålet ditt midlertidig før et måltid for å påvirke blodsukkertoppene etter måltidet."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Øk blodsukkermålet ditt midlertidig før, under eller etter fysisk aktivitet for å redusere risikoen for hendelser med lavt blodsukker."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Verdien du har lagt inn er høyere enn det som vanligvis anbefales for de fleste."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Verdien du har lagt inn er lavere enn det som vanligvis anbefales for de fleste."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Verdiene du har lagt inn er utenfor det som vanligvis anbefales for de fleste."; + +/* The short unit display string for international units of insulin */ +"U" = "E"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "E/t"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Usikker levering"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Enhet"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Enhet/time"; + +/* The long unit display string for international units of insulin */ +"Units" = "Enheter"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Enheter/time"; + +/* Description of informational software update needed */ +"Update Available" = "Oppdatering tilgjengelig"; + +/* Title for workout mode */ +"Workout" = "Trening"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Din basaldose av insulin er antall enheter per time du vil bruke for å dekke ditt bakgrunnsinsulinbehov."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Karbforholdet ditt er antall gram karbohydrater som dekkes av én enhet insulin."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Din insulinfølsomhet refererer til fallet i blodsukker som forventes fra én enhet insulin."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/nl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..90214f2177 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ bereik"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ zal alleen een basaal geven en een bolusinsuline aanbevelen als je glucose de komende drie uur hoger zal zijn dan deze limiet."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Een waarde die je hebt ingevoerd is hoger dan wat gebruikelijk voor de meeste mensen wordt aanbevolen."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Een waarde die je hebt ingevoerd is lager dan wat gebruikelijk voor de meeste mensen wordt aanbevolen."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza is een ultrasnelwerkende maaltijdinsuline die via je longen wordt ingeademd met een orale inhalator en wordt gemaakt door MannKind"; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insuline glulisine)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insuline glulisine) is een snelwerkende insuline gemaakt door Sanofi-aventis"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorisatie Geweigerd"; + +/* Title for basal dose type */ +"Basal" = "Basaal"; + +/* Title text for basal rates */ +"Basal Rates" = "Basaalsnelheden"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Koolhydraatratio's"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisatie Geweigerd"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Dit voorbeeld kan verwijderd worden uit de app Gezondheid"; + +/* Generic pump error description */ +"Communication Failure" = "Communicatiefout"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Communicatie onderbroken tijdens het commando voor insulinetoediening."; + +/* Generic pump error description */ +"Connection Failure" = "Verbindingsfout"; + +/* Title text for glucose target range */ +"Correction Range" = "Correctiebereik"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Correctiebereik is de glucosewaarde (of een bereik van waarden) waar je wilt dat %1$@ naar streeft bij het aanpassen van je basale insuline en het berekenen van je bolussen."; + +/* Description of critical software update needed */ +"Critical Update" = "Kritieke Update"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Toedieningslimieten"; + +/* Generic pump error description */ +"Device Refused" = "Apparaat Geweigerd"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Zorg ervoor dat er koolhydraten gegevens bestaan voor de opgegeven datum"; + +/* Glucose trend down */ +"Falling" = "Dalend"; + +/* Glucose trend down-down */ +"Falling fast" = "Snel dalend"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Zeer snel dalend"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp is een maaltijdinsuline aspart formule met de toevoeging van nicotinamide (vitamine B3) gemaakt door Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Gelijk"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Voor snelwerkende insuline gaat %1$@ ervan uit dat het 6 uur lang actief is. Je kunt kiezen uit verschillende modellen voor de piekactiviteit."; + +/* The short unit display string for grams per U */ +"g/U" = "g/E"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Glucoseveiligheidslimiet"; + +/* The long unit display string for a singular hour */ +"Hour" = "Uur"; + +/* The long unit display string for hours */ +"Hours" = "Uur"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulin lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insuline lispro) is een snelwerkende insuline gemaakt door Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulinemodel"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulinegevoeligheden"; + +/* Generic pump error description */ +"Invalid Configuration" = "Ongeldige Configuratie"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev is een maaltijdinsuline lispro formule met de toevoeging van citraat en treprostinil gemaakt door Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Zorg ervoor dat je pomp binnen het communicatiebereik van je telefoon ligt."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maximale Basaalsnelheid"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Maximale Basaalsnelheid is de maximale tijdelijke basaalsnelheid die %1$@ mag instellen."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maximale Bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maximale Bolus is de hoogste bolushoeveelheid die je in één keer kunt toedienen om koolhydraten te dekken of om een hoge glucose te verlagen."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/E"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/E"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Aandacht Nodig"; + +/* Description of no software update needed */ +"No Update" = "Geen Update"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Geen waarden gevonden"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulin aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insuline aspart) is een snelwerkende insuline gemaakt door Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "Ok"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Een of meer van de waarden die je hebt ingevoerd valt buiten wat algemeen wordt aanbevolen."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Stel delen opnieuw in in Gezondheid, alsjeblieft"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pre-Meal"; + +/* Description of supported software update needed */ +"Recommended Update" = "Aanbevolen Update"; + +/* Title for resume dose type */ +"Resumed" = "Hervatten"; + +/* Glucose trend up */ +"Rising" = "Stijgend"; + +/* Glucose trend up-up */ +"Rising fast" = "Snel stijgend"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Zeer snel stijgend"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Sommige van de waarden die u hebt ingevoerd vallen buiten wat algemeen wordt aanbevolen."; + +/* Title for suspend dose type */ +"Suspended" = "Onderbroken"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Tijdelijk Basaal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Tijdelijk verlagen van je glucosedoel vóór de maaltijd om de kans op post-maaltijd glucosepieken te verkleinen."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Verhoog tijdelijk je glucosedoel voor, gedurende of na fysieke activiteit om het risico van lage glucosewaarden te verminderen."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Een waarde die je hebt ingevoerd is hoger dan wat algemeen voor de meeste mensen wordt aanbevolen."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Een waarde die je hebt ingevoerd is lager dan wat algemeen voor de meeste mensen wordt aanbevolen."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Sommige van de waarden die u hebt ingevoerd vallen buiten wat algemeen wordt aanbevolen."; + +/* The short unit display string for international units of insulin */ +"U" = "E"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "E/uur"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Toediening Onzeker"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Eenheid"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Eenheid/uur"; + +/* The long unit display string for international units of insulin */ +"Units" = "Eenheden"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Eenheden/uur"; + +/* Description of informational software update needed */ +"Update Available" = "Update Beschikbaar"; + +/* Title for workout mode */ +"Workout" = "Training"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Je basale insulinesnelheid is het aantal eenheden per uur dat je wilt toedienen om in je basale insulinebehoefte te voorzien."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Je koolhydraatratio is het aantal gram koolhydraten dat wordt verwerkt door één eenheid insuline."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Je Insulinegevoeligheid is de daling van de glucose verwacht van één eenheid insuline."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/pl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..fd86aaad0e --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Zakres"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ będzie dostarczać insulinę podstawową i zalecaną w bolusie tylko wtedy, gdy przewiduje się, że poziom glukozy przekroczy ten limit przez następne trzy godziny."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Wprowadzona wartość jest wyższa niż zwykle zalecana dla większości osób."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Wprowadzona wartość jest niższa niż zwykle zalecana dla większości osób."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza to ultraszybko działająca doposiłkowa insulina wziewna, którą wdycha się przy użyciu doustnego inhalatora, wytwarzana przez firmę MannKind."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulina glulizynowa)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulina glulizynowa) to szybko działająca insulina firmy Sanofi-Aventis."; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Odmowa autoryzacji"; + +/* Title for basal dose type */ +"Basal" = "Dawka podstawowa"; + +/* Title text for basal rates */ +"Basal Rates" = "Dawka Podstawowa (Baza)"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Współczynniki węglowodanowe"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Odmowa autoryzacji"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Ten wynik może być usunięty z aplikacji Zdrowie"; + +/* Generic pump error description */ +"Communication Failure" = "Błąd komunikacji"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Komunikacja przerwana podczas polecenia podania insuliny."; + +/* Generic pump error description */ +"Connection Failure" = "Błąd połączenia"; + +/* Title text for glucose target range */ +"Correction Range" = "Zakres docelowy"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Zakres docelowy (zakres korekty) to wartość glukozy (lub zakres wartości), do której chcesz dążyć %1$@ podczas dostosowywania insuliny bazowej i pomagania w obliczaniu bolusów."; + +/* Description of critical software update needed */ +"Critical Update" = "Krytyczna aktualizacja"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podawania"; + +/* Generic pump error description */ +"Device Refused" = "Urządzenie odmówiło"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Upewnij się, że wartość istnieje w tej dacie"; + +/* Glucose trend down */ +"Falling" = "Spadek"; + +/* Glucose trend down-down */ +"Falling fast" = "Szybki spadek"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Bardzo szybki spadek"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp to insulina aspart do posiłków z dodatkiem nikotynamidu (witaminy B3) firmy Novo Nordisk."; + +/* Glucose trend flat */ +"Flat" = "Powolna zmiana"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "W przypadku szybko działającej insuliny %1$@ zakłada jej działanie przez 6 godzin. Możesz wybrać spośród różnych modeli szczytowej aktywności."; + +/* The short unit display string for grams per U */ +"g/U" = "g/J"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Granica bezpiecznego poziomu glukozy"; + +/* The long unit display string for a singular hour */ +"Hour" = "Godzina"; + +/* The long unit display string for hours */ +"Hours" = "Godziny"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulina lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulina lispro) to szybko działająca insulina firmy Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Model insuliny"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Wrażliwość na insulinę (ISF)"; + +/* Generic pump error description */ +"Invalid Configuration" = "Nieprawidłowa konfiguracja"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev to preparat insuliny lispro do posiłków z dodatkiem cytrynianu i treprostinilu wyprodukowany przez firmę Eli Lilly."; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Upewnij się, że pompa jest połączona z Twoim telefonem."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maksymalna dawka podstawowa"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Maksymalna dawka podstawowa to najwyższa tymczasowa dawka podstawowa, jaką %1$@ może ustawić."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maksymalny bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maksymalny bolus to największa wielkość bolusa, jaką można podać w jednym czasie, aby pokryć węglowodany lub obniżyć wysoki poziom glukozy."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/J"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/J"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Potrzebuje uwagi"; + +/* Description of no software update needed */ +"No Update" = "Brak aktualizacji"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Nie znaleziono wartości"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulina aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulina aspart) to szybko działająca insulina firmy Novo Nordisk."; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Co najmniej jedna z wprowadzonych wartości wykracza poza to, co jest zwykle zalecane dla większości osób."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Włącz ponownie udostępnianie w aplikacji Zdrowie"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Przed posiłkiem"; + +/* Description of supported software update needed */ +"Recommended Update" = "Zalecana aktualizacja"; + +/* Title for resume dose type */ +"Resumed" = "Wznowione"; + +/* Glucose trend up */ +"Rising" = "Wzrost"; + +/* Glucose trend up-up */ +"Rising fast" = "Szybki wzrost"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Bardzo szybki wzrost"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Niektóre z wprowadzonych wartości wykraczają poza to, co jest zwykle zalecane dla większości osób."; + +/* Title for suspend dose type */ +"Suspended" = "Wstrzymane"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Tymczasowa dawka podstawowa"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Tymczasowo obniż docelowy poziom glukozy przed posiłkiem, aby ograniczyć gwałtowny wzrost glukozy po posiłku."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Tymczasowo zwiększ docelowy poziom glukozy przed, w trakcie lub po aktywności fizycznej, aby zmniejszyć ryzyko wystąpienia niskiego poziomu glukozy (Hipoglikemia)."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Wprowadzona wartość jest wyższa niż zwykle zalecana dla większości osób."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Wprowadzona wartość jest niższa niż zwykle zalecana dla większości osób."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Wprowadzone wartości wykraczają poza to, co jest zwykle zalecane dla większości osób."; + +/* The short unit display string for international units of insulin */ +"U" = "J"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "J/godz"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Niepewne podanie"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Jednostka"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Jednostka/godzinę"; + +/* The long unit display string for international units of insulin */ +"Units" = "Jednostki"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Jednostki/godzinę"; + +/* Description of informational software update needed */ +"Update Available" = "Dostępna aktualizacja"; + +/* Title for workout mode */ +"Workout" = "Wysiłek fizyczny"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Dawka podstawowa insuliny to liczba jednostek na godzinę, którą chcesz wykorzystać do pokrycia podstawowego zapotrzebowania na insulinę."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Twój Współczynnik Węglowodanowy to liczba gramów węglowodanów rekompensowanych przez jedną jednostkę insuliny."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Wrażliwość na insulinę odnosi się do oczekiwanego spadku glukozy po jednej jednostce insuliny."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..c3a402cf9b --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,130 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorização negada"; + +/* Title text for basal rates */ +"Basal Rates" = "Taxas Basais"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Taxas de Carbs"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorização negada"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Este exemplo pode ser excluído do app Saúde"; + +/* Generic pump error description */ +"Communication Failure" = "Falha de Comunicação"; + +/* Generic pump error description */ +"Connection Failure" = "Falha na Conexão"; + +/* Title text for glucose target range */ +"Correction Range" = "Faixa de Correção"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limites de Entrega"; + +/* Generic pump error description */ +"Device Refused" = "Dispositivo Recusado"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Verifique se os dados de carboidratos existem na data especificada"; + +/* Glucose trend down */ +"Falling" = "Caindo"; + +/* Glucose trend down-down */ +"Falling fast" = "Caindo rápido"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Caindo muito rápido"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Glucose trend flat */ +"Flat" = "Estável"; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Modelo de Insulina"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Sensibilidades a Insulina"; + +/* Generic pump error description */ +"Invalid Configuration" = "Configuração Inválida"; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Taxa Basal Máxima"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Bolus Máximo"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Precisa de Atenção"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Nenhum valor encontrado"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Reative o compartilhamento no app Saúde"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Pré-Refeição"; + +/* Glucose trend up */ +"Rising" = "Subindo"; + +/* Glucose trend up-up */ +"Rising fast" = "Subindo rápido"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Subindo muito rápido"; + +/* Title for suspend dose type */ +"Suspended" = "Suspenso"; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/hr"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unidade"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unidade/hora"; + +/* The long unit display string for international units of insulin */ +"Units" = "Unidades"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Unidades/hora"; + +/* Title for workout mode */ +"Workout" = "Exercício"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/ro.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..038e0eea3e --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Interval"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ va livra bazala şi bolusul recomandat numai dacă glucoza este estimată a fi peste această limită pentru următoarele trei ore."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Valoarea pe care ați introdus-o este mai mare decât cea recomandată de obicei pentru majoritatea oamenilor."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Valoarea pe care ați introdus-o este mai mica decât cea recomandată de obicei pentru majoritatea oamenilor."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza este o insulină cu acțiune ultra rapidă în timpul mesei, care este inspirată prin plămâni folosind un inhalator oral și produsă de MannKind."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulină glulisine)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insulina glulizină) este o insulină cu acțiune rapidă produsă de Sanofi-aventis"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Autorizare refuzată"; + +/* Title for basal dose type */ +"Basal" = "Bazală"; + +/* Title text for basal rates */ +"Basal Rates" = "Rate bazale"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Raport carbohidrați/insulină"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorizare refuzată"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Acest exemplu poate fi șters din aplicația Sănătate"; + +/* Generic pump error description */ +"Communication Failure" = "Eroare de comunicare"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Comunicații întrerupte în timpul comenzii de livrare a insulinei."; + +/* Generic pump error description */ +"Connection Failure" = "Eroare de conectare"; + +/* Title text for glucose target range */ +"Correction Range" = "Interval țintă pentru corecție"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Intervalul de corecție este valoarea glicemiei (sau intervalul de valori) spre care doriți ca %1$@ să țintească în ajustarea insulinei bazale și în calculul bolusurilor."; + +/* Description of critical software update needed */ +"Critical Update" = "Actualizare critică"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limite de livrare"; + +/* Generic pump error description */ +"Device Refused" = "Dispozitiv refuzat"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Asigurați-vă că există date despre carbohidrați pentru data specificată"; + +/* Glucose trend down */ +"Falling" = "În scădere"; + +/* Glucose trend down-down */ +"Falling fast" = "În scădere rapidă"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "În scădere foarte rapidă"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp este o formă de insulină aspart administrată în timpul mesei, cu adaos de nicotinamidă (vitamina B3) produsă de Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Constantă"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Pentru insulina cu acțiune rapida, %1$@ presupune ca funcționează activ timp de 6 ore. Poți alege dintre modele diferite pentru vârful acțiunii."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Limita de siguranță a glicemiei"; + +/* The long unit display string for a singular hour */ +"Hour" = "Oră"; + +/* The long unit display string for hours */ +"Hours" = "Ore"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulină lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insulina lispro) este o insulină cu acțiune rapidă produsă de Eli Lilly"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Modelul de insulină"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Factor de sensibilitate la insulină"; + +/* Generic pump error description */ +"Invalid Configuration" = "Configurație invalidă"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev este o formulă de insulină lispro la masă, cu adaos de citrat și treprostinil, produse de Eli Lilly"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Asigură-te că pompa ta se află în raza de comunicare a telefonului."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Rată bazală maximă"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Rata bazală maximă este cea mai mare rată bazală temporară pe care %1$@ are voie să o seteze."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Bolus maxim"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Bolusul maxim este cea mai mare cantitate de insulina pe care o poți livra instantaneu pentru a acoperi carbohidrați sau pentru a corecta o glicemie mare."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Necesită atenție"; + +/* Description of no software update needed */ +"No Update" = "Nicio actualizare"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Nu s-au găsit valori"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulină aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insulină aspart) este o insulină cu acțiune rapidă produsă de Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Unele dintre valorile introduse sunt în afara a ceea ce este recomandat de obicei pentru majoritatea oamenilor."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Vă rugăm să re-activați partajarea datelor în Sănătate"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Preprandial"; + +/* Description of supported software update needed */ +"Recommended Update" = "Actualizare recomandată"; + +/* Title for resume dose type */ +"Resumed" = "Reluat"; + +/* Glucose trend up */ +"Rising" = "În creștere"; + +/* Glucose trend up-up */ +"Rising fast" = "În creștere rapidă"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "În creștere foarte rapidă"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Câteva dintre valorile introduse sunt în afara a ceea ce este recomandat de obicei pentru majoritatea oamenilor."; + +/* Title for suspend dose type */ +"Suspended" = "Suspendat"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Bazală temporară"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduceți temporar glicemia țintă înainte de masă pentru a avea un impact asupra vârfurilor postprandiale."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Creșteți temporar valoarea ținta a glicemiei înainte, în timpul sau după activitatea fizică pentru a reduce riscul de apariție a hipoglicemiei."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Valoarea pe care ați introdus-o este mai mare decât cea recomandată de obicei pentru majoritatea oamenilor."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Valoarea pe care ați introdus-o este mai mica decât cea recomandată de obicei pentru majoritatea oamenilor."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Valorile introduse sunt în afara a ceea ce este recomandat de obicei pentru majoritatea oamenilor."; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/oră"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Livrare incertă"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unități"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unități/oră"; + +/* The long unit display string for international units of insulin */ +"Units" = "Unități"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Unități/oră"; + +/* Description of informational software update needed */ +"Update Available" = "Actualizare disponibilă"; + +/* Title for workout mode */ +"Workout" = "Activitate sportivă"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Rata bazală de insulină este numărul de unități pe oră pe care doriți să le utilizați pentru a acoperi necesarul bazal de insulina al organismului."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Raportul carbohidrați/insulina este numărul de grame de carbohidrați acoperiți de o unitate de insulină."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Factorul de sensibilitate la insulină se referă la scăderea glicemiei determinata de o unitate de insulină."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/ru.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..1400252661 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Диапазон"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ будет вводить базу и рекомендовать болюсы, только если прогнозируется, что уровень глюкозы будет выше этого предела в течение следующих трех часов."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Введенное вами значение выше, чем обычно рекомендуется для большинства людей."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Введенное вами значение ниже того, которое обычно рекомендуется для большинства людей."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza - это инсулин сверхбыстрого действия во время еды, который вдыхается через легкие с помощью перорального ингалятора и производится MannKind"; + +/* Brand name for apidra insulin type */ +"Apidra" = "Апидра"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Апидра (инсулин глюлизин)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Апидра (инсулин глюлизин) - это инсулин быстрого действия, производимый Sanofi-aventis "; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Авторизация не состоялась"; + +/* Title for basal dose type */ +"Basal" = "Базал"; + +/* Title text for basal rates */ +"Basal Rates" = "Скорости базала"; + +/* Title for bolus dose type */ +"Bolus" = "Болюс"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Соотношения углеводов"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Авторизация не состоялась"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Этот экземпляр может быть удален из приложения Здоровье"; + +/* Generic pump error description */ +"Communication Failure" = "Ошибка связи"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Связь прервана во время подачи команды на введение инсулина."; + +/* Generic pump error description */ +"Connection Failure" = "Ошибка соединения"; + +/* Title text for glucose target range */ +"Correction Range" = "Диапазон коррекции"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Диапазон коррекции - это значение глюкозы (или диапазон значений), к которому вы хотите, чтобы %1$@ стремился при корректировке ВБС и расчете болюсов."; + +/* Description of critical software update needed */ +"Critical Update" = "Критическое обновление"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Пределы подачи"; + +/* Generic pump error description */ +"Device Refused" = "Устройство отклонено"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Убедитесь, что данные об углеводах имеются на указанную дату"; + +/* Glucose trend down */ +"Falling" = "Падение"; + +/* Glucose trend down-down */ +"Falling fast" = "Быстрое падение"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Очень быстрое падение"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp - это препарат инсулин аспарт с добавлением никотинамида (витамина B3) производства Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Стабильно"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Для быстродействующего инсулина %1$@ предполагается, что он активно работает в течение 6 часов. Вы можете выбрать различные модели для пика активности."; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Безопасный предел глюкозы"; + +/* The long unit display string for a singular hour */ +"Hour" = "Час"; + +/* The long unit display string for hours */ +"Hours" = "Часы"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Хумалог"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Хумалог (инсулин лизпро)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Хумалог (инсулин лизпро) - это инсулин быстрого действия, производимый компанией Eli Lilly."; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Модель инсулина"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Факторы чувствительности инсулина"; + +/* Generic pump error description */ +"Invalid Configuration" = "Неверная конфигурация"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev представляет собой лекарственную форму инсулина лизпро для приема пищи с добавлением цитрата и трепростинила производства Eli Lilly."; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Убедитесь, что помпа находится в пределах досягаемости вашего телефона."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Максимальная скорость базала"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Максимальная базальная скорость — это самая высокая ВБС, которую может установить %1$@."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Максимальный Болюс"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Максимальный болюс - это наибольший болюс, который вы можете ввести за один раз, чтобы покрыть углеводы или снизить высокий уровень глюкозы."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Требует внимания"; + +/* Description of no software update needed */ +"No Update" = "Нет обновлений"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Данные не найдены"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Новолог"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Новолог (инсулин аспарт)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (инсулин аспарт) - инсулин быстрого действия производства Novo Nordisk"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Одно или несколько введенных вами значений выходят за рамки того, что обычно рекомендуется для большинства людей."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Пожалуйста повторно разрешите совместное использование в разделе Здоровье"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "До еды"; + +/* Description of supported software update needed */ +"Recommended Update" = "Рекомендуемое обновление"; + +/* Title for resume dose type */ +"Resumed" = "Возобновлено"; + +/* Glucose trend up */ +"Rising" = "Повышение"; + +/* Glucose trend up-up */ +"Rising fast" = "Быстрое повышение"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Очень быстрое повышение"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Некоторые из введенных вами значений выходят за рамки того, что обычно рекомендуется для большинства людей."; + +/* Title for suspend dose type */ +"Suspended" = "Остановлено"; + +/* Title for temp basal dose type */ +"Temp Basal" = "ВБС"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Временно понизьте целевое значение уровня глюкозы перед едой, чтобы уменьшить пики глюкозы после еды."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Временно повышайте целевой уровень глюкозы до, во время или после физической активности, чтобы снизить риск развития событий, связанных с низким уровнем глюкозы."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Введенное вами значение выше, чем то, которое обычно рекомендуется для большинства людей."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Введенное вами значение ниже того, которое обычно рекомендуется для большинства людей."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Введенные вами значения выходят за рамки того, что обычно рекомендуется для большинства людей."; + +/* The short unit display string for international units of insulin */ +"U" = "ед"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/hr"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Неопределенная подача"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unit"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unit/hour"; + +/* The long unit display string for international units of insulin */ +"Units" = "Единицы"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Units/hour"; + +/* Description of informational software update needed */ +"Update Available" = "Доступно обновление"; + +/* Title for workout mode */ +"Workout" = "Физическая нагрузка"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Ваша базальная норма инсулина - это количество единиц в час, которое вы хотите использовать для покрытия своих фоновых потребностей в инсулине."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Ваш углеводный коэффициент - это количество граммов углеводов, покрываемых одной единицей инсулина."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Ваша чувствительность к инсулину означает снижение уровня глюкозы, ожидаемое от одной единицы инсулина."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/sk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..ab2d9b4a2f --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,36 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Title text for basal rates */ +"Basal Rates" = "Bazálne dávky"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Inzulínovo sacharidový pomer"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podávania"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Inzulínový model"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Title for suspend dose type */ +"Suspended" = "Pozastavené"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Dočasný bazál"; + +/* The short unit display string for international units of insulin */ +"U" = "j"; + +/* The long unit display string for international units of insulin */ +"Units" = "jednotky"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/sv.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..bf276ff8d4 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,223 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@sintervall"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ kommer att tillföra basal och rekommendera insulin endast om ditt blodsocker förväntas ligga över denna gräns under de kommande tre timmarna."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Det värde du har angett är högre än vad som normalt rekommenderas för de flesta."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Det värde du har angett är lägre än vad som normalt rekommenderas för de flesta."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insulinglulisin)"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Auktorisation nekad"; + +/* Title for basal dose type */ +"Basal" = "Basal"; + +/* Title text for basal rates */ +"Basal Rates" = "Basaldoser"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Insulinkvoter"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Auktorisation nekad"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Detta värde kan raderas från Hälsa-appen"; + +/* Generic pump error description */ +"Communication Failure" = "Kommunikationsfel"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "Kommunikation avbruten under insulintillförselkommando."; + +/* Generic pump error description */ +"Connection Failure" = "Anslutningsfel"; + +/* Title text for glucose target range */ +"Correction Range" = "Målvärde"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Målvärde är det ideala blodsockerintervall som du vill att %1$@ ska hålla dig inom."; + +/* Title text for delivery limits */ +"Delivery Limits" = "Maxdoser"; + +/* Generic pump error description */ +"Device Refused" = "Enhet vägrade"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Kontrollera att kolhydratvärde finns"; + +/* Glucose trend down */ +"Falling" = "Sjunker"; + +/* Glucose trend down-down */ +"Falling fast" = "Sjunker snabbt"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Sjunker väldigt snabbt"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp är ett snabbverkande insulin-aspart med tillägg av nikotinamid (vitamin B3) från Novo Nordisk"; + +/* Glucose trend flat */ +"Flat" = "Jämnt"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Får snabbverkande insulin, antar %1$@ ett insulin med 6 timmars verkan. Du kan välja mellan olika modeller med olika tid för insulinets maximala blodsockersänkande effekt i minuter."; + +/* The short unit display string for grams per U */ +"g/U" = "g/E"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "Tröskelvärde för blodsocker"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Humalog (insulin lispro)"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Insulinmodell"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Insulinkänslighet"; + +/* Generic pump error description */ +"Invalid Configuration" = "Ogiltig konfiguration"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Säkerställ att din pump är inom räckvidd för kommunikation med telefon."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maximal basaldos"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maximal bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maximal bolus är den högsta bolusmängd som kan ges vid ett tillfälle för att täcka kolhydrater eller ett högt blodsocker."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dl/E"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/E"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Kräver uppmärksamhet"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Inga värden funna"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insulin aspart)"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Ett eller flera av de värden du har angett är utanför vad som generellt rekommenderas."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Tillåt delning i Hälsa igen"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Före måltid"; + +/* Title for resume dose type */ +"Resumed" = "Återupptagen"; + +/* Glucose trend up */ +"Rising" = "Stiger"; + +/* Glucose trend up-up */ +"Rising fast" = "Stiger snabbt"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Stiger väldigt snabbt"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Ett eller flera av de värden du har angett är utanför vad som generellt rekommenderas."; + +/* Title for suspend dose type */ +"Suspended" = "Pausad"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Temporär basal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Sänker tillfälligt ditt målvärde före en måltid för att motverka postprandiella hyperglykemier (stegrade blodsocker efter en måltid)."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Höj tillfälligt ditt målvärde före, under eller efter fysisk aktivitet för att minska risken för låga blodsockervärden."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Det värde du har angett är högre än vad som normalt rekommenderas för de flesta."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Det värde du har angett är lägre än vad som normalt rekommenderas för de flesta."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Ett eller flera av de värden du har angett är utanför vad som generellt rekommenderas."; + +/* The short unit display string for international units of insulin */ +"U" = "E"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "E/timme"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Oklart ifall bolus administrerats"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Enhet"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Enhet/timme"; + +/* The long unit display string for international units of insulin */ +"Units" = "Eheter"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Enhet/timme"; + +/* Title for workout mode */ +"Workout" = "Träning"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Din bassaldos är det antal enheter insulin per timme som krävs för din basala ämnesomsättning."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Din insulinkvot är det antal gram kolhydrater som svarar mot en enhet insulin."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "Insulinkänslighet är ett mått på hur mycket ditt blodsocker sänks av en enhet insulin."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/tr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..0d0003d73e --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,267 @@ +/* Format for correction range override therapy setting card */ +"%@ Range" = "%@ Aralık"; + +/* Descriptive format string for glucose safety limit (1: app name) */ +"%1$@ will deliver basal and recommend bolus insulin only if your glucose is predicted to be above this limit for the next three hours." = "%1$@ bazal insülin verecek ve yalnızca KŞ'nizin önümüzdeki üç saat boyunca bu sınırın üzerinde olacağı tahmin ediliyorsa bolus insülin önerecektir."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"A value you have entered is higher than what is typically recommended for most people." = "Girdiğiniz bir değer, çoğu insan için tipik olarak önerilenden daha yüksektir."; + +/* Descriptive text for guardrail low value warning for schedule interface */ +"A value you have entered is lower than what is typically recommended for most people." = "Girdiğiniz bir değer, çoğu insan için tipik olarak önerilenden daha düşüktür."; + +/* Brand name for afrezza insulin type + Title for Afrezza insulin type */ +"Afrezza" = "Afrezza"; + +/* Description for afrezza insulin type */ +"Afrezza is an ultra rapid-acting mealtime insulin that is breathed in through your lungs using an oral inhaler and made by MannKind" = "Afrezza, oral bir inhaler kullanılarak akciğerlerinizden solunan ve MannKind tarafından üretilen ultra hızlı etkili bir öğün insülinidir."; + +/* Brand name for apidra insulin type */ +"Apidra" = "Apidra"; + +/* Title for Apidra insulin type */ +"Apidra (insulin glulisine)" = "Apidra (insülin glulisin)"; + +/* Description for apidra insulin type */ +"Apidra (insulin glulisine) is a rapid-acting insulin made by Sanofi-aventis " = "Apidra (insülin glulisine) Sanofi-aventis tarafından üretilen hızlı etkili bir insülindir"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Yetkilendirme Reddedildi"; + +/* Title for basal dose type */ +"Basal" = "Bazal"; + +/* Title text for basal rates */ +"Basal Rates" = "Bazal Oranlar"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Karbonhidrat Oranları"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Yetkilendirme Reddedildi"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Bu örnek Health uygulamasından silinebilir"; + +/* Generic pump error description */ +"Communication Failure" = "İletişim Hatası"; + +/* Failure reason for uncertain delivery */ +"Communications interrupted during insulin delivery command." = "İnsülin iletim komutu sırasında iletişim kesildi."; + +/* Generic pump error description */ +"Connection Failure" = "Bağlantı hatası"; + +/* Title text for glucose target range */ +"Correction Range" = "Düzeltme Aralığı"; + +/* Descriptive text for glucose target range (1: app name) */ +"Correction Range is the glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin and helping you calculate your boluses." = "Düzeltme Aralığı, bazal insülininizi ayarlamak ve boluslarınızı hesaplamanıza yardımcı olmak için %1$@ 'ın hedeflemesini istediğiniz KŞ değeridir (veya değer aralığıdır)."; + +/* Description of critical software update needed */ +"Critical Update" = "Kritik Güncelleme"; + +/* Title text for delivery limits */ +"Delivery Limits" = "İletim Limitleri"; + +/* Generic pump error description */ +"Device Refused" = "Cihaz Reddedildi"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Belirtilen tarih için karbonhidrat verilerinin var olduğundan emin olun"; + +/* Glucose trend down */ +"Falling" = "Düşüyor"; + +/* Glucose trend down-down */ +"Falling fast" = "Hızlı Düşüyor"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Çok Hızlı Düşüyor"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Description for fiasp insulin type */ +"Fiasp is a mealtime insulin aspart formulation with the addition of nicotinamide (vitamin B3) made by Novo Nordisk" = "Fiasp, Novo Nordisk tarafından üretilen nikotinamid (B3 vitamini) ilaveli bir öğün insülin aspart formülasyonudur"; + +/* Glucose trend flat */ +"Flat" = "Sabit"; + +/* Descriptive text for fast acting insulin model (1: app name) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from different models for the peak activity." = "Hızlı etkili insülin için, %1$@ 6 saat boyunca aktif olarak çalıştığını varsayar. En yüksek etki için farklı modeller arasından seçim yapabilirsiniz."; + +/* The short unit display string for grams per U */ +"g/U" = "gr/Ü"; + +/* Title text for glucose safety limit */ +"Glucose Safety Limit" = "KŞ Güvenlik Limiti"; + +/* The long unit display string for a singular hour */ +"Hour" = "Saat"; + +/* The long unit display string for hours */ +"Hours" = "Saat"; + +/* Brand name for humalog insulin type */ +"Humalog" = "Humalog"; + +/* Title for Humalog insulin type */ +"Humalog (insulin lispro)" = "Hümalog (insülin lispro)"; + +/* Description for humalog insulin type */ +"Humalog (insulin lispro) is a rapid-acting insulin made by Eli Lilly" = "Humalog (insülin lispro), Eli Lilly tarafından üretilen hızlı etkili bir insülindir"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "İnsülin Modeli"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "İnsülin Duyarlılığı"; + +/* Generic pump error description */ +"Invalid Configuration" = "Geçersiz Konfigürasyon"; + +/* Brand name for lyumjev insulin type + Title for Lyumjev insulin type */ +"Lyumjev" = "Lyumjev"; + +/* Description for lyumjev insulin type */ +"Lyumjev is a mealtime insulin lispro formulation with the addition of citrate and treprostinil made by Eli Lilly" = "Lyumjev, Eli Lilly tarafından üretilen sitrat ve treprostinil ilaveli bir öğün insülin lispro formülasyonudur"; + +/* Recovery suggestion for uncertain delivery */ +"Make sure your pump is within communication range of your phone." = "Pompanızın telefonunuzun iletişim menzilinde olduğundan emin olun."; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Maksimum Bazal Oranı"; + +/* Descriptive text for maximum basal rate (1: app name) */ +"Maximum Basal Rate is the highest temporary basal rate %1$@ is allowed to set." = "Maksimum Bazal Oranı, %1$@ 'ın ayarlamasına izin verilen en yüksek geçici bazal orandır."; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Maksimum Bolus"; + +/* Descriptive text for maximum bolus */ +"Maximum Bolus is the highest bolus amount you can deliver at one time to cover carbs or bring down high glucose." = "Maksimum Bolus, karbonhidratları karşılamak veya yüksek KŞ'ni düşürmek için tek seferde verebileceğiniz en yüksek bolus miktarıdır."; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/Ü"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/Ü"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "İlgilenmeniz gerekiyor"; + +/* Description of no software update needed */ +"No Update" = "Güncelleme yok"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Değer bulunamadı"; + +/* Brand name for novolog insulin type */ +"Novolog" = "Novolog"; + +/* Title for Novolog insulin type */ +"Novolog (insulin aspart)" = "Novolog (insülin aspart)"; + +/* Description for novolog insulin type */ +"NovoLog (insulin aspart) is a rapid-acting insulin made by Novo Nordisk" = "NovoLog (insülin aspart), Novo Nordisk tarafından üretilen hızlı etkili bir insülindir."; + +/* Sensor state description for the valid state */ +"OK" = "Tamam"; + +/* Descriptive text for saving settings outside the recommended range */ +"One or more of the values you have entered is outside of what is typically recommended for most people." = "Girdiğiniz değerlerden biri veya daha fazlası, çoğu insan için tipik olarak önerilen değerlerin dışındadır."; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Lütfen Health paylaşımı yeniden etkinleştirin"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Yemek öncesi"; + +/* Description of supported software update needed */ +"Recommended Update" = "Önerilen Güncelleme"; + +/* Title for resume dose type */ +"Resumed" = "Devam ettirildi"; + +/* Glucose trend up */ +"Rising" = "Yükseliyor"; + +/* Glucose trend up-up */ +"Rising fast" = "Hızlı yükseliyor"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Çok hızlı yükseliyor"; + +/* Descriptive text for guardrail high value warning for schedule interface */ +"Some of the values you have entered are outside of what is typically recommended for most people." = "Girdiğiniz değerlerden bazıları, çoğu insan için tipik olarak önerilen değerlerin dışındadır."; + +/* Title for suspend dose type */ +"Suspended" = "Askıya alındı"; + +/* Title for temp basal dose type */ +"Temp Basal" = "Geçici Bazal"; + +/* Descriptive text for pre-meal correction range override */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Yemek sonrası KŞ artışlarını engellemek için yemekten önce KŞ hedefinizi geçici olarak düşürün."; + +/* Descriptive text for workout correction range override */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Düşük KŞ riskini azaltmak için fiziksel aktivite öncesinde, sırasında veya sonrasında KŞ hedefinizi geçici olarak yükseltin."; + +/* Descriptive text for guardrail high value warning */ +"The value you have entered is higher than what is typically recommended for most people." = "Girdiğiniz değer, çoğu insan için tipik olarak önerilenden daha yüksektir."; + +/* Descriptive text for guardrail low value warning */ +"The value you have entered is lower than what is typically recommended for most people." = "Girdiğiniz değer, çoğu insan için tipik olarak önerilenden daha düşüktür."; + +/* Descriptive text for guardrail high value warning */ +"The values you have entered are outside of what is typically recommended for most people." = "Girdiğiniz değerler, çoğu insan için tipik olarak önerilen değerlerin dışındadır."; + +/* The short unit display string for international units of insulin */ +"U" = "Ü"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "Ü/sa"; + +/* Error description for uncertain delivery */ +"Uncertain Delivery" = "Belirsiz İletim"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Ünite"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Ünite/saat"; + +/* The long unit display string for international units of insulin */ +"Units" = "Ünite"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Ünite/saat"; + +/* Description of informational software update needed */ +"Update Available" = "Güncelleme Mevcut"; + +/* Title for workout mode */ +"Workout" = "Egzersiz"; + +/* Descriptive text for basal rate */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Bazal İnsülin Oranınız, arka plan insülin ihtiyaçlarınızı karşılamak için kullanmak istediğiniz saat başına ünite miktarıdır."; + +/* Descriptive text for carb ratio */ +"Your Carb Ratio is the number of grams of carbohydrates covered by one unit of insulin." = "Karbonhidrat İnsülin Oranınız, bir ünite insülinin kaç gram karbonhidrat karşılayacağını ifade eder."; + +/* Descriptive text for insulin sensitivity */ +"Your Insulin Sensitivities refer to the drop in glucose expected from one unit of insulin." = "İnsülin Duyarlılık faktörünüz, bir ünite insülinden beklenen KŞ düşüşünü ifade eder."; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/vi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..0b3a07e707 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,130 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "Cấp quyền bị từ chối"; + +/* Title text for basal rates */ +"Basal Rates" = "Lịch biểu tiêm liều nền"; + +/* Title for bolus dose type */ +"Bolus" = "Bolus"; + +/* Title text for carb ratios */ +"Carb Ratios" = "Carb Ratios"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Cấp quyền bị từ chối"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Mẫu này có thể bị xóa khỏi ứng dụng Health"; + +/* Generic pump error description */ +"Communication Failure" = "Liên lạc thất bại"; + +/* Generic pump error description */ +"Connection Failure" = "Kết nối thất bại"; + +/* Title text for glucose target range */ +"Correction Range" = "Phạm vi liều Bổ sung"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Giới hạn liều tiêm"; + +/* Generic pump error description */ +"Device Refused" = "Thiết bị bị từ chối"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "Đảm bảo dữ liệu carb tồn tại cho ngày cụ thể"; + +/* Glucose trend down */ +"Falling" = "Đang hạ"; + +/* Glucose trend down-down */ +"Falling fast" = "Đang hạ nhanh"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "Đang hạ rất nhanh"; + +/* Brand name for fiasp insulin type + Title for Fiasp insulin type */ +"Fiasp" = "Fiasp"; + +/* Glucose trend flat */ +"Flat" = "Flat"; + +/* The short unit display string for grams per U */ +"g/U" = "g/U"; + +/* Title text for fast acting insulin model */ +"Insulin Model" = "Chủng loại Insulin"; + +/* Title text for insulin sensitivity */ +"Insulin Sensitivities" = "Độ nhạy của Insulin"; + +/* Generic pump error description */ +"Invalid Configuration" = "Cấu hình không hiệu lực"; + +/* Title text for maximum basal rate configuration */ +"Maximum Basal Rate" = "Lượng Basal tối đa"; + +/* Title text for maximum bolus configuration */ +"Maximum Bolus" = "Liều Bolus tối đa"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "mg/dL/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "mmol/L"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "mmol/L/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "Cần chú ý"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "Không tìm thấy giá trị nào"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "Xin hãy cấp quyền chia sẻ lại trong ứng dụng Health"; + +/* Title for pre-meal mode */ +"Pre-Meal" = "Trước bữa ăn"; + +/* Glucose trend up */ +"Rising" = "Đang tăng"; + +/* Glucose trend up-up */ +"Rising fast" = "Đang tăng nhanh"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "Đang tăng rất nhanh"; + +/* Title for suspend dose type */ +"Suspended" = "Đã tạm ngưng"; + +/* The short unit display string for international units of insulin */ +"U" = "U"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/giờ"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "Unit"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "Unit/giờ"; + +/* The long unit display string for international units of insulin */ +"Units" = "Units"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "Units/giờ"; + +/* Title for workout mode */ +"Workout" = "Workout"; + diff --git a/Dependencies/LoopKit/LoopKit/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..df749fdc09 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,93 @@ +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The error description describing when Health sharing was denied */ +"Authorization Denied" = "没有权限"; + +/* Title text for basal rates */ +"Basal Rates" = "基础率"; + +/* The description of an error returned when attempting to delete a sample not shared by the current app */ +"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "没有权限"; + +/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ +"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "该样本可以从HealthKit中删除"; + +/* Generic pump error description */ +"Communication Failure" = "通信失败"; + +/* Generic pump error description */ +"Connection Failure" = "连接失败"; + +/* Title text for delivery limits */ +"Delivery Limits" = "输注限制"; + +/* Generic pump error description */ +"Device Refused" = "设备拒绝连接"; + +/* Recovery suggestion for a no data error */ +"Ensure carb data exists for the specified date" = "确认当天存在碳水化合物记录"; + +/* Glucose trend down */ +"Falling" = "下降"; + +/* Glucose trend down-down */ +"Falling fast" = "快速下降"; + +/* Glucose trend down-down-down */ +"Falling very fast" = "非常快速下降"; + +/* Glucose trend flat */ +"Flat" = "平稳"; + +/* The short unit display string for grams per U */ +"g/U" = "克/U"; + +/* Generic pump error description */ +"Invalid Configuration" = "无效配置"; + +/* The short unit display string for milligrams per deciliter per U */ +"mg/dL/U" = "毫克/分升/U"; + +/* The short unit display string for millimoles per liter */ +"mmol/L" = "毫摩尔/升"; + +/* The short unit display string for millimoles per liter per U */ +"mmol/L/U" = "毫摩尔/升/U"; + +/* Sensor state description for the non-valid state */ +"Needs Attention" = "请注意"; + +/* Describes an error for no data found in a CarbStore request */ +"No values found" = "未发现数据"; + +/* The error recovery suggestion when Health sharing was denied */ +"Please re-enable sharing in Health" = "请先在Health Kit中允许Loop读写数据"; + +/* Glucose trend up */ +"Rising" = "上升"; + +/* Glucose trend up-up */ +"Rising fast" = "快速上升"; + +/* Glucose trend up-up-up */ +"Rising very fast" = "非常快速上升"; + +/* Title for suspend dose type */ +"Suspended" = "暂停"; + +/* The short unit display string for international units of insulin per hour */ +"U/hr" = "U/小时"; + +/* The long unit display string for a singular international unit of insulin */ +"Unit" = "单位"; + +/* The long unit display string for a singular international unit of insulin per hour */ +"Unit/hour" = "单位/小时"; + +/* The long unit display string for international units of insulin */ +"Units" = "单位"; + +/* The long unit display string for international units of insulin per hour */ +"Units/hour" = "单位/小时"; + diff --git a/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/Action.swift b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/Action.swift new file mode 100644 index 0000000000..433b3de775 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/Action.swift @@ -0,0 +1,16 @@ +// +// Action.swift +// LoopKit +// +// Created by Bill Gestrich on 12/25/22. +// Copyright © 2022 LoopKit Authors. All rights reserved. +// + +import Foundation + +public enum Action: Codable { + case temporaryScheduleOverride(OverrideAction) + case cancelTemporaryOverride(OverrideCancelAction) + case bolusEntry(BolusAction) + case carbsEntry(CarbAction) +} diff --git a/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/BolusAction.swift b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/BolusAction.swift new file mode 100644 index 0000000000..3a56d81eb5 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/BolusAction.swift @@ -0,0 +1,18 @@ +// +// BolusAction.swift +// LoopKit +// +// Created by Bill Gestrich on 12/25/22. +// Copyright © 2022 LoopKit Authors. All rights reserved. +// + +import Foundation + +public struct BolusAction: Codable { + + public let amountInUnits: Double + + public init(amountInUnits: Double) { + self.amountInUnits = amountInUnits + } +} diff --git a/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/CarbAction.swift b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/CarbAction.swift new file mode 100644 index 0000000000..38659897ae --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/CarbAction.swift @@ -0,0 +1,24 @@ +// +// CarbAction.swift +// LoopKit +// +// Created by Bill Gestrich on 12/25/22. +// Copyright © 2022 LoopKit Authors. All rights reserved. +// + +import Foundation + +public struct CarbAction: Codable{ + + public let amountInGrams: Double + public let absorptionTime: TimeInterval? + public let foodType: String? + public let startDate: Date? + + public init(amountInGrams: Double, absorptionTime: TimeInterval? = nil, foodType: String? = nil, startDate: Date? = nil) { + self.amountInGrams = amountInGrams + self.absorptionTime = absorptionTime + self.foodType = foodType + self.startDate = startDate + } +} diff --git a/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideAction.swift b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideAction.swift new file mode 100644 index 0000000000..bc4f7589a0 --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideAction.swift @@ -0,0 +1,23 @@ +// +// OverrideAction.swift +// LoopKit +// +// Created by Bill Gestrich on 12/25/22. +// Copyright © 2022 LoopKit Authors. All rights reserved. +// + +import Foundation + +public struct OverrideAction: Codable { + + public let name: String + public let durationTime: TimeInterval? + public let remoteAddress: String + + public init(name: String, durationTime: TimeInterval? = nil, remoteAddress: String) { + self.name = name + self.durationTime = durationTime + self.remoteAddress = remoteAddress + } + +} diff --git a/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideCancelAction.swift b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideCancelAction.swift new file mode 100644 index 0000000000..a0cf02e81d --- /dev/null +++ b/Dependencies/LoopKit/LoopKit/Service/Remote/Actions/OverrideCancelAction.swift @@ -0,0 +1,19 @@ +// +// OverrideCancelAction.swift +// LoopKit +// +// Created by Bill Gestrich on 12/25/22. +// Copyright © 2022 LoopKit Authors. All rights reserved. +// + +import Foundation + +public struct OverrideCancelAction: Codable { + + let remoteAddress: String + + public init(remoteAddress: String) { + self.remoteAddress = remoteAddress + } + +} diff --git a/Dependencies/LoopKit/LoopKit/Service/RemoteDataService.swift b/Dependencies/LoopKit/LoopKit/Service/RemoteDataService.swift index 8bb6e9f84e..4e49d84400 100644 --- a/Dependencies/LoopKit/LoopKit/Service/RemoteDataService.swift +++ b/Dependencies/LoopKit/LoopKit/Service/RemoteDataService.swift @@ -9,6 +9,9 @@ /** Protocol for a remote data service. */ + +import Foundation + public protocol RemoteDataService: Service { /// The maximum number of alert data to upload to the remote data service at one time. diff --git a/Dependencies/LoopKit/LoopKit/Service/Service.swift b/Dependencies/LoopKit/LoopKit/Service/Service.swift index e1d2742d36..f9f9865cf0 100644 --- a/Dependencies/LoopKit/LoopKit/Service/Service.swift +++ b/Dependencies/LoopKit/LoopKit/Service/Service.swift @@ -6,7 +6,15 @@ // Copyright © 2019 LoopKit Authors. All rights reserved. // -public protocol ServiceDelegate: AnyObject { +public protocol PluginHost { + /// An identifier for the host of this service. Usually something that identifies the app. Example: "com.loopkit.Loop", or "org.tidepool.Loop" + var hostIdentifier: String { get } + + /// The version of the host of this service. + var hostVersion: String { get } +} + +public protocol ServiceDelegate: AnyObject, PluginHost { /// Informs the delegate that the state of the specified service was updated and the delegate should persist the service. May /// be invoked prior to the service completing setup. /// @@ -19,6 +27,7 @@ public protocol ServiceDelegate: AnyObject { /// - Parameters: /// - service: The service that wants deletion. func serviceWantsDeletion(_ service: Service) + } public protocol Service: AnyObject { diff --git a/Dependencies/LoopKit/LoopKit/TemporaryScheduleOverrideHistory.swift b/Dependencies/LoopKit/LoopKit/TemporaryScheduleOverrideHistory.swift index 7b3bed7100..5720d9ee15 100644 --- a/Dependencies/LoopKit/LoopKit/TemporaryScheduleOverrideHistory.swift +++ b/Dependencies/LoopKit/LoopKit/TemporaryScheduleOverrideHistory.swift @@ -271,6 +271,9 @@ public final class TemporaryScheduleOverrideHistory { // Wipe only conflicting overrides to retain as much history as possible. recentEvents.removeAll(at: invalidOverrideIndices) + // Store the history without the conflicting overrides + delegate?.temporaryScheduleOverrideHistoryDidUpdate(self) + // Crash deliberately to notify something has gone wrong. preconditionFailure("No overrides should overlap.") } diff --git a/Dependencies/LoopKit/LoopKit/VersionUpdate.swift b/Dependencies/LoopKit/LoopKit/VersionUpdate.swift index 3ad5e91f1c..0f43a39b30 100644 --- a/Dependencies/LoopKit/LoopKit/VersionUpdate.swift +++ b/Dependencies/LoopKit/LoopKit/VersionUpdate.swift @@ -6,6 +6,8 @@ // Copyright © 2021 LoopKit Authors. All rights reserved. // +import Foundation + // Note: order is important for VersionUpdate. Later version updates are more critical than earlier ones. Do not reorder! public enum VersionUpdate: Comparable, CaseIterable { /// No version update needed. @@ -49,13 +51,13 @@ extension VersionUpdate { public var localizedDescription: String { switch self { case .none: - return NSLocalizedString("No Update", comment: "Description of no software update needed") + return LocalizedString("No Update", comment: "Description of no software update needed") case .available: - return NSLocalizedString("Update Available", comment: "Description of informational software update needed") + return LocalizedString("Update Available", comment: "Description of informational software update needed") case .recommended: - return NSLocalizedString("Recommended Update", comment: "Description of supported software update needed") + return LocalizedString("Recommended Update", comment: "Description of supported software update needed") case .required: - return NSLocalizedString("Critical Update", comment: "Description of critical software update needed") + return LocalizedString("Critical Update", comment: "Description of critical software update needed") } } } diff --git a/Dependencies/LoopKit/LoopKit/ar.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/ar.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/ar.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/ca.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/ca.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/ca.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/da.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/da.lproj/Localizable.strings deleted file mode 100644 index 11f3620d99..0000000000 --- a/Dependencies/LoopKit/LoopKit/da.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ E bolus fejlede"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ E bolus er måske ikke gennemført"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Tilladelse Nægtet"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check pumpen før du prøver igen"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Tilladelse Nægtet"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Kommunikations Fejl"; - -/* Generic pump error description */ -"Connection Failure" = "Forbindelses Fejl"; - -/* Generic pump error description */ -"Device Refused" = "Enhed Nægtet"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Sørg for at kulhydrat data findes for den angivne dato"; - -/* Glucose trend down */ -"Falling" = "Falder"; - -/* Glucose trend down-down */ -"Falling fast" = "Falder hurtigt"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falder meget hurtigt"; - -/* Glucose trend flat */ -"Flat" = "Flad"; - -/* The short unit display string for grams per U */ -"g/U" = "g/E"; - -/* Generic pump error description */ -"Invalid Configuration" = "Forkert Indstilling"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Det er sikkert at forsøge igen"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/E"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/E"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Behøver Opmærksomhed"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Ingen værdier fundet"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Venligst gen-aktiver deling i Sundhed"; - -/* Glucose trend up */ -"Rising" = "Stiger"; - -/* Glucose trend up-up */ -"Rising fast" = "Stiger hurtigt"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Stiger meget hurtigt"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "E/t"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Enhed"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Enhed/time"; - -/* The long unit display string for international units of insulin */ -"Units" = "Enheder"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Enheder/time"; diff --git a/Dependencies/LoopKit/LoopKit/de.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/de.lproj/Localizable.strings deleted file mode 100644 index a6a27ce4da..0000000000 --- a/Dependencies/LoopKit/LoopKit/de.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ IE Bolus fehlgeschlagen"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ IE Bolus möglicherweise nicht abgegeben"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorisierung verweigert"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Prüfe deine Pumpe, bevor du es erneut versuchst"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisierung verweigert"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Dieses Beispiel kann in der Health-App gelöscht werden."; - -/* Generic pump error description */ -"Communication Failure" = "Kommunikationsfehler"; - -/* Generic pump error description */ -"Connection Failure" = "Verbindungsfehler"; - -/* Generic pump error description */ -"Device Refused" = "Gerät abgelehnt"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Stelle sicher, dass die Kohlenhydrate für den ausgewählten Zeitraum eingegeben wurden"; - -/* Glucose trend down */ -"Falling" = "Fällt"; - -/* Glucose trend down-down */ -"Falling fast" = "Fällt schnell"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Fällt sehr schnell"; - -/* Glucose trend flat */ -"Flat" = "Gleichbleibend"; - -/* The short unit display string for grams per U */ -"g/U" = "g/IE"; - -/* Generic pump error description */ -"Invalid Configuration" = "Fehlerhafte Konfiguration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Ein erneuter Versuch ist gefahrlos möglich"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/IE"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/IE"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Erfordert Aufmerksamkeit"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Keine Einträge gefunden"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Bitte aktiviere die Freigabe in der Health-App wieder"; - -/* Glucose trend up */ -"Rising" = "Steigt"; - -/* Glucose trend up-up */ -"Rising fast" = "Steigt schnell"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Steigt sehr schnell"; - -/* The short unit display string for international units of insulin */ -"U" = " IE"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "IE/Std"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Einheit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Einheit/Std."; - -/* The long unit display string for international units of insulin */ -"Units" = "Einheiten"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Einheiten/Stunde"; diff --git a/Dependencies/LoopKit/LoopKit/en.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/en.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/en.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/es.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/es.lproj/Localizable.strings deleted file mode 100644 index eecf044f8e..0000000000 --- a/Dependencies/LoopKit/LoopKit/es.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolo falló"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolo puede no haber tenido exito"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorización Denegada"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Revise la microinfusora antes de reintentar"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorización Denegada"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Esta muestra se puede eliminar de la aplicación Salud"; - -/* Generic pump error description */ -"Communication Failure" = "Falla de Comunicación"; - -/* Generic pump error description */ -"Connection Failure" = "Falla de Conexión"; - -/* Generic pump error description */ -"Device Refused" = "Dispositivo Rechazado"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Asegurar que los datos de carbohidratos existen para la fecha especificada"; - -/* Glucose trend down */ -"Falling" = "Descendiendo"; - -/* Glucose trend down-down */ -"Falling fast" = "Descendiendo rápido"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Descendiendo muy rápido"; - -/* Glucose trend flat */ -"Flat" = "Estable"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Configuración no Válida"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Es seguro reintentar"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Necesita Atención"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No hay datos"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Por favor, vuelva a habilitar compartir en Salud"; - -/* Glucose trend up */ -"Rising" = "Ascendiendo"; - -/* Glucose trend up-up */ -"Rising fast" = "Ascendiendo rápido"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Ascendiendo muy rápido"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/h"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unidad"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unidad/hora"; - -/* The long unit display string for international units of insulin */ -"Units" = "Unidades"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Unidades/hora"; diff --git a/Dependencies/LoopKit/LoopKit/fi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/fi.lproj/Localizable.strings deleted file mode 100644 index f80c34e6b2..0000000000 --- a/Dependencies/LoopKit/LoopKit/fi.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus epäonnistui"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus ei ehkä onnistunut"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Valtuutus hylättiin"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Tarkista pumppu ennen kuin yrität uudelleen"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Valtuutus hylättiin"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Tämä näyte voidaan poistaa Terveys-sovelluksesta"; - -/* Generic pump error description */ -"Communication Failure" = "Kommunikaatiovirhe"; - -/* Generic pump error description */ -"Connection Failure" = "Yhteysvirhe"; - -/* Generic pump error description */ -"Device Refused" = "Laite hylättiin"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Varmista, että hiilihydraattitiedot ovat olemassa määritettynä ajankohtana"; - -/* Glucose trend down */ -"Falling" = "Laskeva"; - -/* Glucose trend down-down */ -"Falling fast" = "Nopeasti laskeva"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Erittäin nopeasti laskeva"; - -/* Glucose trend flat */ -"Flat" = "Tasainen"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Virheellinen määritys"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "On turvallista yrittää uudelleen"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Tarvitsee huomiota"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Arvoja ei löydy"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Ota jakaminen uudelleen käyttöön Terveys-sovelluksessa"; - -/* Glucose trend up */ -"Rising" = "Nouseva"; - -/* Glucose trend up-up */ -"Rising fast" = "Nopeasti nouseva"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Erittäin nopeasti nouseva"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Yksikkö"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Yksikkö/tunti"; - -/* The long unit display string for international units of insulin */ -"Units" = "Yksikköä"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Yksikköä/tunnissa"; diff --git a/Dependencies/LoopKit/LoopKit/fr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/fr.lproj/Localizable.strings deleted file mode 100644 index 85e20652ec..0000000000 --- a/Dependencies/LoopKit/LoopKit/fr.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "Échec du bolus de %1$@ U"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "Le bolus de %1$@ U a peut-être échoué"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorisation refusée"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Vérifiez votre pompe avant de réessayer"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisation refusée"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Cette entrée peut être supprimée de l'application Health"; - -/* Generic pump error description */ -"Communication Failure" = "Échec de la communication"; - -/* Generic pump error description */ -"Connection Failure" = "Échec de connexion"; - -/* Generic pump error description */ -"Device Refused" = "Dispositif refusé"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "S'assurer que les données sur les glucides existent pour la date spécifiée"; - -/* Glucose trend down */ -"Falling" = "Diminue"; - -/* Glucose trend down-down */ -"Falling fast" = "Diminue rapidement"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Diminue très rapidement"; - -/* Glucose trend flat */ -"Flat" = "Stable"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Configuration non valide"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Il est prudent de réessayer"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Nécessite de l'attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Aucune entrée trouvée"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Veuillez réactiver le partage dans l'application Santé"; - -/* Glucose trend up */ -"Rising" = "Augmente"; - -/* Glucose trend up-up */ -"Rising fast" = "Augmente rapidement"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Augmente très rapidement"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/h"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unité"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "unité / heure"; - -/* The long unit display string for international units of insulin */ -"Units" = "Unités"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "unités / heure"; diff --git a/Dependencies/LoopKit/LoopKit/he.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/he.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/he.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/it.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/it.lproj/Localizable.strings deleted file mode 100644 index 30fff80366..0000000000 --- a/Dependencies/LoopKit/LoopKit/it.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolo fallito"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolo potrebbe non aver avuto successo"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorizzazione negata"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Controlla il tuo microinfusore prima di riprovare"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorizzazione negata"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Questo campione puo essere cancellato dall’ app Salute"; - -/* Generic pump error description */ -"Communication Failure" = "Errore di comunicazione"; - -/* Generic pump error description */ -"Connection Failure" = "Errore di connessione"; - -/* Generic pump error description */ -"Device Refused" = "Il dispositivo è stato rifiutato"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Assicurati che i dati dei carboidrati esistano per la data specificata"; - -/* Glucose trend down */ -"Falling" = "Cadendo"; - -/* Glucose trend down-down */ -"Falling fast" = "In discesa veloce"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Abbassamento molto veloce"; - -/* Glucose trend flat */ -"Flat" = "Piatto"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Configurazione non valida"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "E sicuro riprovare"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Esige Attenzione"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Nessun valore trovato"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Per favore, riattiva la condivisione in Salute"; - -/* Glucose trend up */ -"Rising" = "Crescente"; - -/* Glucose trend up-up */ -"Rising fast" = "Crescente veloce"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Crescente molto veloce"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "Unità/ora"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unità"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unità/ora"; - -/* The long unit display string for international units of insulin */ -"Units" = "Unità"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Unità/ora"; diff --git a/Dependencies/LoopKit/LoopKit/ja.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/ja.lproj/Localizable.strings deleted file mode 100644 index 5b7f75a5c0..0000000000 --- a/Dependencies/LoopKit/LoopKit/ja.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U のボーラスが不成功"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U のボーラスが成功していないかもしれません"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "認証が拒否されました"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "やり直す前にポンプを確認してください"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "認証が拒否されました"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "通信エラー"; - -/* Generic pump error description */ -"Connection Failure" = "接続エラー"; - -/* Generic pump error description */ -"Device Refused" = "機器拒否"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "指定した日に糖質のデータがあるか確認してください"; - -/* Glucose trend down */ -"Falling" = "降下"; - -/* Glucose trend down-down */ -"Falling fast" = "急降下"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "超急降下"; - -/* Glucose trend flat */ -"Flat" = "平坦"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "コンフィグレーションが無効"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "やり直せます"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "注意してください"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "値が見つかりません"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "ヘルスケアの共有を有効にしてください"; - -/* Glucose trend up */ -"Rising" = "上昇"; - -/* Glucose trend up-up */ -"Rising fast" = "急上昇"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "超急上昇"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/時"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "単位"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "U/時"; - diff --git a/Dependencies/LoopKit/LoopKit/nb.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/nb.lproj/Localizable.strings deleted file mode 100644 index 720e83ec1a..0000000000 --- a/Dependencies/LoopKit/LoopKit/nb.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ E bolus feilet"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ E bolus kan ha feilet"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorisasjon avslått"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Sjekk pumpa før du fortsetter"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisasjon avslått"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Denne testen kan slettes fra Health-appen"; - -/* Generic pump error description */ -"Communication Failure" = "Kommunikasjonsfeil"; - -/* Generic pump error description */ -"Connection Failure" = "Tilkoblingsfeil"; - -/* Generic pump error description */ -"Device Refused" = "Enheten nektet"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Verifiser at karbohydratoppføring eksisterer for den valgte datoen"; - -/* Glucose trend down */ -"Falling" = "Faller"; - -/* Glucose trend down-down */ -"Falling fast" = "Faller raskt"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Faller veldig raskt"; - -/* Glucose trend flat */ -"Flat" = "Flatt"; - -/* The short unit display string for grams per U */ -"g/U" = "g/E"; - -/* Generic pump error description */ -"Invalid Configuration" = "Ugyldig konfigurasjon"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Det er trygt å prøve igjen"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/E"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/E"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Trenger tilsyn"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Ingen verdier funnet"; - -/* Sensor state description for the valid state */ -"OK" = "Ok"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Vennligst aktiver deling i Health på nytt"; - -/* Glucose trend up */ -"Rising" = "Stiger"; - -/* Glucose trend up-up */ -"Rising fast" = "Stiger fort"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Stiger veldig fort"; - -/* The short unit display string for international units of insulin */ -"U" = "E"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "E/t"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Enhet"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Enhet/time"; - -/* The long unit display string for international units of insulin */ -"Units" = "Enheter"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Enheter/time"; diff --git a/Dependencies/LoopKit/LoopKit/nl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/nl.lproj/Localizable.strings deleted file mode 100644 index 2376a15c15..0000000000 --- a/Dependencies/LoopKit/LoopKit/nl.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ E bolus mislukt"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ E bolus is mogelijk niet geslaagd"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorisatie geweigerd"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Controleer je pomp voordat je het nogmaals probeert"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorisatie geweigerd"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Dit voorbeeld kan verwijderd worden uit de Gezondheid"; - -/* Generic pump error description */ -"Communication Failure" = "Communicatiefout"; - -/* Generic pump error description */ -"Connection Failure" = "Verbindingsfout"; - -/* Generic pump error description */ -"Device Refused" = "Apparaat geweigerd"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Zorg ervoor dat er koolhydraten gegevens bestaan voor de opgegeven datum"; - -/* Glucose trend down */ -"Falling" = "Dalend"; - -/* Glucose trend down-down */ -"Falling fast" = "Snel dalend"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Zeer snel dalend"; - -/* Glucose trend flat */ -"Flat" = "Gelijk"; - -/* The short unit display string for grams per U */ -"g/U" = "g/E"; - -/* Generic pump error description */ -"Invalid Configuration" = "Ongeldige configuratie"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Veilig om opnieuw te proberen"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/E"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/l"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/E"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Aandacht nodig"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Geen waardes gevonden"; - -/* Sensor state description for the valid state */ -"OK" = "Ok"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Stel sharing opnieuw in bij Gezondheid, alstublieft"; - -/* Glucose trend up */ -"Rising" = "Stijgend"; - -/* Glucose trend up-up */ -"Rising fast" = "Snel stijgend"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Zeer snel stijgend"; - -/* The short unit display string for international units of insulin */ -"U" = "E"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "E/uur"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Eenheden"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/pl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/pl.lproj/Localizable.strings deleted file mode 100644 index 6e8854b5b9..0000000000 --- a/Dependencies/LoopKit/LoopKit/pl.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ J bolusa nie zostało podane"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ J bolusa mogło nie zostać podane"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Odmowa autoryzacji"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Sprawdź pompę zanim spróbujesz ponownie"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Odmowa autoryzacji"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Ten wynik może być usunięty z aplikacji Zdrowie"; - -/* Generic pump error description */ -"Communication Failure" = "Błąd komunikacji"; - -/* Generic pump error description */ -"Connection Failure" = "Błąd połączenia"; - -/* Generic pump error description */ -"Device Refused" = "Urządzenie odmówiło"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Upewnij się, że wartość istnieje w tej dacie"; - -/* Glucose trend down */ -"Falling" = "Spadek"; - -/* Glucose trend down-down */ -"Falling fast" = "Szybki spadek"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Bardzo szybki spadek"; - -/* Glucose trend flat */ -"Flat" = "Powolna zmiana"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Nieprawidłowa konfiguracja"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Można bezpiecznie ponowić podanie bolusa"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/J"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/J"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Potrzebuje uwagi"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Nie znaleziono wartości"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Włącz ponownie udostępnianie w aplikacji Zdrowie"; - -/* Glucose trend up */ -"Rising" = "Wzrost"; - -/* Glucose trend up-up */ -"Rising fast" = "Szybki wzrost"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Bardzo szybki wzrost"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Jednostka"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Jednostka/godzinę"; - -/* The long unit display string for international units of insulin */ -"Units" = "Jednostki"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Jednostki/godzinę"; diff --git a/Dependencies/LoopKit/LoopKit/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/pt-BR.lproj/Localizable.strings deleted file mode 100644 index d15b886839..0000000000 --- a/Dependencies/LoopKit/LoopKit/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U de bolus falhou"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U de bolus pode não ter tido sucesso"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorização negada"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Verifique sua bomba antes de tentar novamente"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorização negada"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Este exemplo pode ser excluído do app Saúde"; - -/* Generic pump error description */ -"Communication Failure" = "Falha de Comunicação"; - -/* Generic pump error description */ -"Connection Failure" = "Falha na Conexão"; - -/* Generic pump error description */ -"Device Refused" = "Dispositivo Recusado"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Verifique se os dados de carboidratos existem na data especificada"; - -/* Glucose trend down */ -"Falling" = "Caindo"; - -/* Glucose trend down-down */ -"Falling fast" = "Caindo rápido"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Caindo muito rápido"; - -/* Glucose trend flat */ -"Flat" = "Estável"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Configuração Inválida"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "É seguro tentar novamente"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Precisa de Atenção"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Nenhum valor encontrado"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Reative o compartilhamento no app Saúde"; - -/* Glucose trend up */ -"Rising" = "Subindo"; - -/* Glucose trend up-up */ -"Rising fast" = "Subindo rápido"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Subindo muito rápido"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unidade"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unidade/hora"; - -/* The long unit display string for international units of insulin */ -"Units" = "Unidades"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Unidades/hora"; diff --git a/Dependencies/LoopKit/LoopKit/pt-PT.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/pt-PT.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/pt-PT.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/ro.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/ro.lproj/Localizable.strings deleted file mode 100644 index d2001374a6..0000000000 --- a/Dependencies/LoopKit/LoopKit/ro.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "bolus eșuat de %1$@ U"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "bolusul de %1$@ U s-ar putea să fi eșuat"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Autorizare refuzată"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Verificați pompa înainte de a încerca din nou"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Autorizare refuzată"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Acest exemplu poate fi șters din aplicația Sănătate"; - -/* Generic pump error description */ -"Communication Failure" = "Eroare de comunicare"; - -/* Generic pump error description */ -"Connection Failure" = "Eroare de conectare"; - -/* Generic pump error description */ -"Device Refused" = "Dispozitiv refuzat"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Asigurați-vă că există date despre carbohidrați pentru data specificată"; - -/* Glucose trend down */ -"Falling" = "În scădere"; - -/* Glucose trend down-down */ -"Falling fast" = "În scădere rapidă"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "În scădere foarte rapidă"; - -/* Glucose trend flat */ -"Flat" = "Constantă"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Configurație invalidă"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Puteți încerca fără riscuri"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Necesită atenție"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Nu s-au găsit valori"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Vă rugăm să re-activați partajarea datelor în Sănătate"; - -/* Glucose trend up */ -"Rising" = "În creștere"; - -/* Glucose trend up-up */ -"Rising fast" = "În creștere rapidă"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "În creștere foarte rapidă"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/oră"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unități"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unități/oră"; - -/* The long unit display string for international units of insulin */ -"Units" = "Unități"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Unități/oră"; - diff --git a/Dependencies/LoopKit/LoopKit/ru.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/ru.lproj/Localizable.strings deleted file mode 100644 index 4c833cfa36..0000000000 --- a/Dependencies/LoopKit/LoopKit/ru.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ ед Болюс не состоялся "; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ ед. возможная неудача подачи болюса"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Авторизация не состоялась"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Проверьте помпу перед повторением"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Авторизация не состоялась"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Этот экземпляр может быть удален из приложения Здоровье"; - -/* Generic pump error description */ -"Communication Failure" = "Ошибка связи"; - -/* Generic pump error description */ -"Connection Failure" = "Ошибка соединения"; - -/* Generic pump error description */ -"Device Refused" = "Устройство отклонено"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Убедитесь, что данные об углеводах имеются на указанную дату"; - -/* Glucose trend down */ -"Falling" = "Падение"; - -/* Glucose trend down-down */ -"Falling fast" = "Быстрое падение"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Очень быстрое падение"; - -/* Glucose trend flat */ -"Flat" = "Стабильно"; - -/* The short unit display string for grams per U */ -"g/U" = "г/Eд"; - -/* Generic pump error description */ -"Invalid Configuration" = "Неверная конфигурация"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Можно повторить"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "ммоль/л"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Требует внимания"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Данные не найдены"; - -/* Sensor state description for the valid state */ -"OK" = "ОК"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Пожалуйста повторно разрешите совместное использование в разделе Здоровье"; - -/* Glucose trend up */ -"Rising" = "Повышение"; - -/* Glucose trend up-up */ -"Rising fast" = "Быстрое повышение"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Очень быстрое повышение"; - -/* The short unit display string for international units of insulin */ -"U" = "Ед"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "Ед/ч"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Единицы"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/sk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/sk.lproj/Localizable.strings deleted file mode 100644 index 39dc4ee396..0000000000 --- a/Dependencies/LoopKit/LoopKit/sk.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U bolus failed"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U bolus may not have succeeded"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Authorization Denied"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Check your pump before retrying"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Authorization Denied"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "This sample can be deleted from the Health app"; - -/* Generic pump error description */ -"Communication Failure" = "Communication Failure"; - -/* Generic pump error description */ -"Connection Failure" = "Connection Failure"; - -/* Generic pump error description */ -"Device Refused" = "Device Refused"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Ensure carb data exists for the specified date"; - -/* Glucose trend down */ -"Falling" = "Falling"; - -/* Glucose trend down-down */ -"Falling fast" = "Falling fast"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Falling very fast"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Invalid Configuration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "It is safe to retry"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Needs Attention"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "No values found"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Please re-enable sharing in Health"; - -/* Glucose trend up */ -"Rising" = "Rising"; - -/* Glucose trend up-up */ -"Rising fast" = "Rising fast"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Rising very fast"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/hr"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/sv.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/sv.lproj/Localizable.strings deleted file mode 100644 index aabe948aac..0000000000 --- a/Dependencies/LoopKit/LoopKit/sv.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ E bolus misslyckades"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ E bolus kan ha misslyckats"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Auktorisation nekad"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Kontrollera pump och försök igen"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Auktorisation nekad"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Detta värde kan raderas från Hälsa-appen"; - -/* Generic pump error description */ -"Communication Failure" = "Kommunikationsfel"; - -/* Generic pump error description */ -"Connection Failure" = "Anslutningsfel"; - -/* Generic pump error description */ -"Device Refused" = "Enhet vägrade"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Kontrollera att kolhydratvärde finns"; - -/* Glucose trend down */ -"Falling" = "Sjunker"; - -/* Glucose trend down-down */ -"Falling fast" = "Sjunker snabbt"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Sjunker väldigt snabbt"; - -/* Glucose trend flat */ -"Flat" = "Jämnt"; - -/* The short unit display string for grams per U */ -"g/U" = "g/IE"; - -/* Generic pump error description */ -"Invalid Configuration" = "Ogiltig konfiguration"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Det är säkert att försöka igen"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dl/E"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/l"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/E"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Kräver uppmärksamhet"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Inga värden funna"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Tillåt delning i Hälsa igen"; - -/* Glucose trend up */ -"Rising" = "Stiger"; - -/* Glucose trend up-up */ -"Rising fast" = "Stiger snabbt"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Stiger väldigt snabbt"; - -/* The short unit display string for international units of insulin */ -"U" = "IE"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "IE/h"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Enhet"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Enhet/timme"; - -/* The long unit display string for international units of insulin */ -"Units" = "Enheter"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Enhet/timme"; diff --git a/Dependencies/LoopKit/LoopKit/tr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/tr.lproj/Localizable.strings deleted file mode 100644 index 41b93e5e35..0000000000 --- a/Dependencies/LoopKit/LoopKit/tr.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ Ü bolus başarısız"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ Ü bolus başarılı olmayabilir"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Yetkilendirme Reddedildi"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Yeniden denemeden önce pompanızı kontrol edin"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Yetkilendirme Reddedildi"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Bu örnek Health uygulamasından silinebilir"; - -/* Generic pump error description */ -"Communication Failure" = "İletişim Hatası"; - -/* Generic pump error description */ -"Connection Failure" = "Bağlantı Hatası"; - -/* Generic pump error description */ -"Device Refused" = "Aygıt Reddedildi"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Belirtilen tarih için karbonhidrat verilerinin mevcut olduğundan emin olun"; - -/* Glucose trend down */ -"Falling" = "Düşmekte"; - -/* Glucose trend down-down */ -"Falling fast" = "Hızlı düşmekte"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Çok hızlı düşmekte"; - -/* Glucose trend flat */ -"Flat" = "Değişmeyen"; - -/* The short unit display string for grams per U */ -"g/U" = "g/Ü"; - -/* Generic pump error description */ -"Invalid Configuration" = "Geçersiz Yapılandırma"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Tekrar denemek güvenlidir"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/Ü"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/Ü"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Dikkat Gerekli"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Değer bulunamadı"; - -/* Sensor state description for the valid state */ -"OK" = "Tamam"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Lütfen Health paylaşımı yeniden etkinleştirin"; - -/* Glucose trend up */ -"Rising" = "Yükselmekte"; - -/* Glucose trend up-up */ -"Rising fast" = "Hızlı yükselmekte"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Çok hızlı yükselmekte"; - -/* The short unit display string for international units of insulin */ -"U" = "Ü"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "Ü/Sa"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Ünite"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Ünite/saat"; - -/* The long unit display string for international units of insulin */ -"Units" = "Ünite"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Ünite/saat"; diff --git a/Dependencies/LoopKit/LoopKit/uk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/uk.lproj/Localizable.strings deleted file mode 100644 index 4feb0a89de..0000000000 --- a/Dependencies/LoopKit/LoopKit/uk.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ од Болюс не відбувся"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ од. можлива невдача подачі болюса"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "В авторизації відмовлено"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Перевірте свою помпу перед повторною спробою"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "В авторизації відмовлено"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Цей приклад можна видалити з додатка Health App"; - -/* Generic pump error description */ -"Communication Failure" = "Помилка з’єднання"; - -/* Generic pump error description */ -"Connection Failure" = "Помилка з’єднання"; - -/* Generic pump error description */ -"Device Refused" = "Пристрій відхилено"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Переконайтесь, що данні про вуглеводи є на зазначену дату"; - -/* Glucose trend down */ -"Falling" = "Падіння"; - -/* Glucose trend down-down */ -"Falling fast" = "Швидке падіння"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Дуже швидке падіння"; - -/* Glucose trend flat */ -"Flat" = "Стабільний"; - -/* The short unit display string for grams per U */ -"g/U" = "гр/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Недопустима конфігурація"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "Можна спробувати ще раз"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "ммол/Л"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Потребує уваги"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Не знайдено значень"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Будь ласка, повторно увімкніть спільний доступ до історії Heaith"; - -/* Glucose trend up */ -"Rising" = "Зростаючий"; - -/* Glucose trend up-up */ -"Rising fast" = "Швидко зростає"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Дуже швидко зростає"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/год"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/hour"; - -/* The long unit display string for international units of insulin */ -"Units" = "Одиниці"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/hour"; diff --git a/Dependencies/LoopKit/LoopKit/vi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/vi.lproj/Localizable.strings deleted file mode 100644 index 185faf3755..0000000000 --- a/Dependencies/LoopKit/LoopKit/vi.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U liều bolus bị lỗi"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U liều bolus không thành công"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "Cấp quyền bị từ chối"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "Kiểm tra lại bơm trước khi thử lại"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "Cấp quyền bị từ chối"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "Mẫu này có thể bị xóa khỏi ứng dụng Health"; - -/* Generic pump error description */ -"Communication Failure" = "Liên lạc thất bại"; - -/* Generic pump error description */ -"Connection Failure" = "Kết nối thất bại"; - -/* Generic pump error description */ -"Device Refused" = "Thiết bị bị từ chối"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "Đảm bảo dữ liệu carb tồn tại cho ngày cụ thể"; - -/* Glucose trend down */ -"Falling" = "Đang hạ"; - -/* Glucose trend down-down */ -"Falling fast" = "Đang hạ nhanh"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "Đang hạ rất nhanh"; - -/* Glucose trend flat */ -"Flat" = "Flat"; - -/* The short unit display string for grams per U */ -"g/U" = "g/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "Cấu hình không hiệu lực"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "An toàn để thử lại"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "mg/dL/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "mmol/L/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "Cần chú ý"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "Không tìm thấy giá trị nào"; - -/* Sensor state description for the valid state */ -"OK" = "OK"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "Xin hãy cấp quyền chia sẻ lại trong ứng dụng Health"; - -/* Glucose trend up */ -"Rising" = "Đang tăng"; - -/* Glucose trend up-up */ -"Rising fast" = "Đang tăng nhanh"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "Đang tăng rất nhanh"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/giờ"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "Unit"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "Unit/giờ"; - -/* The long unit display string for international units of insulin */ -"Units" = "Units"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "Units/giờ"; diff --git a/Dependencies/LoopKit/LoopKit/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKit/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 89cfc8c935..0000000000 --- a/Dependencies/LoopKit/LoopKit/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Describes a certain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus failed" = "%1$@ U大剂量未成功输注"; - -/* Describes an uncertain bolus failure (1: size of the bolus in units) */ -"%1$@ U bolus may not have succeeded" = "%1$@ U大剂量可能未成功输注"; - -/* The error description describing when Health sharing was denied */ -"Authorization Denied" = "没有权限"; - -/* Recovery instruction for an uncertain bolus failure */ -"Check your pump before retrying" = "请先检查胰岛素泵,然后再重试"; - -/* The description of an error returned when attempting to delete a sample not shared by the current app */ -"com.loudnate.CarbKit.deleteCarbEntryUnownedErrorDescription" = "没有权限"; - -/* The error recovery suggestion when attempting to delete a sample not shared by the current app */ -"com.loudnate.carbKit.sharingDeniedErrorRecoverySuggestion" = "该样本可以从HealthKit中删除"; - -/* Generic pump error description */ -"Communication Failure" = "通信失败"; - -/* Generic pump error description */ -"Connection Failure" = "连接失败"; - -/* Generic pump error description */ -"Device Refused" = "设备拒绝连接"; - -/* Recovery suggestion for a no data error */ -"Ensure carb data exists for the specified date" = "确认当天存在碳水化合物记录"; - -/* Glucose trend down */ -"Falling" = "下降"; - -/* Glucose trend down-down */ -"Falling fast" = "快速下降"; - -/* Glucose trend down-down-down */ -"Falling very fast" = "非常快速下降"; - -/* Glucose trend flat */ -"Flat" = "平稳"; - -/* The short unit display string for grams per U */ -"g/U" = "克/U"; - -/* Generic pump error description */ -"Invalid Configuration" = "无效配置"; - -/* Recovery instruction for a certain bolus failure */ -"It is safe to retry" = "重试"; - -/* The short unit display string for milligrams per deciliter per U */ -"mg/dL/U" = "毫克/分升/U"; - -/* The short unit display string for millimoles per liter */ -"mmol/L" = "mmol/L"; - -/* The short unit display string for millimoles per liter per U */ -"mmol/L/U" = "毫摩尔/升/U"; - -/* Sensor state description for the non-valid state */ -"Needs Attention" = "请注意"; - -/* Describes an error for no data found in a CarbStore request */ -"No values found" = "未发现数据"; - -/* Sensor state description for the valid state */ -"OK" = "Ok"; - -/* The error recovery suggestion when Health sharing was denied */ -"Please re-enable sharing in Health" = "请先在Health Kit中允许Loop读写数据"; - -/* Glucose trend up */ -"Rising" = "上升"; - -/* Glucose trend up-up */ -"Rising fast" = "快速上升"; - -/* Glucose trend up-up-up */ -"Rising very fast" = "非常快速上升"; - -/* The short unit display string for international units of insulin */ -"U" = "U"; - -/* The short unit display string for international units of insulin per hour */ -"U/hr" = "U/小时"; - -/* The long unit display string for a singular international unit of insulin */ -"Unit" = "单位"; - -/* The long unit display string for a singular international unit of insulin per hour */ -"Unit/hour" = "单位/小时"; - -/* The long unit display string for international units of insulin */ -"Units" = "单位"; - -/* The long unit display string for international units of insulin per hour */ -"Units/hour" = "单位/小时"; diff --git a/Dependencies/LoopKit/LoopKitHostedTests/CarbStoreHKQueryTests.swift b/Dependencies/LoopKit/LoopKitHostedTests/CarbStoreHKQueryTests.swift index cd4fe57f11..29846eeb4e 100644 --- a/Dependencies/LoopKit/LoopKitHostedTests/CarbStoreHKQueryTests.swift +++ b/Dependencies/LoopKit/LoopKitHostedTests/CarbStoreHKQueryTests.swift @@ -50,9 +50,18 @@ class CarbStoreHKQueryTestsAuthorized: CarbStoreHKQueryTestsBase { } func testObserverQueryStartup() { - // Check that an observer query was registered even before authorize() is called. + // Check that an observer query is registered when authorization is already determined. XCTAssertFalse(carbStore.authorizationRequired); - XCTAssertNotNil(carbStore.observerQuery); + + let observerQueryCreated = expectation(description: "observer query created") + + carbStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in + let observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() + return observerQuery + } + + waitForExpectations(timeout: 2) } } @@ -64,8 +73,11 @@ class CarbStoreHKQueryTests: CarbStoreHKQueryTestsBase { XCTAssert(carbStore.authorizationRequired); XCTAssertNil(carbStore.observerQuery); + let observerQueryCreated = expectation(description: "observer query created") + carbStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() return observerQuery! } @@ -115,15 +127,16 @@ class CarbStoreHKQueryTests: CarbStoreHKQueryTestsBase { observationInterval: .hours(1), provenanceIdentifier: Bundle.main.bundleIdentifier!) - let newAuthorizationCompletion = expectation(description: "authorization completion") - observerQuery = nil + let newObserverQueryCreated = expectation(description: "new observer query created") newCarbStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + newObserverQueryCreated.fulfill() return observerQuery! } + let newAuthorizationCompletion = expectation(description: "authorization completion") newCarbStore.authorize { (result) in newAuthorizationCompletion.fulfill() } diff --git a/Dependencies/LoopKit/LoopKitHostedTests/GlucoseStoreTests.swift b/Dependencies/LoopKit/LoopKitHostedTests/GlucoseStoreTests.swift index 727e14a7d9..9e5a0191f3 100644 --- a/Dependencies/LoopKit/LoopKitHostedTests/GlucoseStoreTests.swift +++ b/Dependencies/LoopKit/LoopKitHostedTests/GlucoseStoreTests.swift @@ -95,15 +95,48 @@ class GlucoseStoreTestsAuthorizationRequired: GlucoseStoreTestsBase { XCTAssert(glucoseStore.authorizationRequired); XCTAssertNil(glucoseStore.observerQuery); + let observerQueryCreated = expectation(description: "observer query created") + + glucoseStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in + let observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() + return observerQuery + } + + let authorizationCompletion = expectation(description: "authorization completion") glucoseStore.authorize { (result) in authorizationCompletion.fulfill() } + waitForExpectations(timeout: 10) XCTAssertNotNil(glucoseStore.observerQuery); } } +class GlucoseStoreStoreTestsAuthorized: GlucoseStoreTestsBase { + override func setUp() { + authorizationStatus = .sharingAuthorized + super.setUp() + } + + func testObserverQueryStartup() { + // Check that an observer query is registered when authorization is already determined. + XCTAssertFalse(glucoseStore.authorizationRequired); + + let observerQueryCreated = expectation(description: "observer query created") + + glucoseStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in + let observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() + return observerQuery + } + + waitForExpectations(timeout: 2) + } +} + + class GlucoseStoreTests: GlucoseStoreTestsBase { override func setUp() { authorizationStatus = .sharingAuthorized @@ -118,10 +151,12 @@ class GlucoseStoreTests: GlucoseStoreTestsBase { // Check that an observer query was registered even without authorize() being called. XCTAssertFalse(glucoseStore.authorizationRequired); - XCTAssertNotNil(glucoseStore.observerQuery); + + let observerQueryCreated = expectation(description: "observer query created") glucoseStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() return observerQuery! } @@ -171,8 +206,11 @@ class GlucoseStoreTests: GlucoseStoreTestsBase { observerQuery = nil + let newObserverQueryCreated = expectation(description: "new observer query created") + newGlucoseStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + newObserverQueryCreated.fulfill() return observerQuery! } diff --git a/Dependencies/LoopKit/LoopKitHostedTests/InsulinDeliveryStoreTests.swift b/Dependencies/LoopKit/LoopKitHostedTests/InsulinDeliveryStoreTests.swift index b18e90752f..fea1619c2b 100644 --- a/Dependencies/LoopKit/LoopKitHostedTests/InsulinDeliveryStoreTests.swift +++ b/Dependencies/LoopKit/LoopKitHostedTests/InsulinDeliveryStoreTests.swift @@ -51,19 +51,19 @@ class InsulinDeliveryStoreTestsBase: PersistenceControllerTestCase { override func setUp() { super.setUp() - let semaphore = DispatchSemaphore(value: 0) - cacheStore.onReady { error in - XCTAssertNil(error) - semaphore.signal() - } - semaphore.wait() - healthStore = HKHealthStoreMock() healthStore.authorizationStatus = authorizationStatus insulinDeliveryStore = InsulinDeliveryStore(healthStore: healthStore, cacheStore: cacheStore, cacheLength: .hours(1), provenanceIdentifier: HKSource.default().bundleIdentifier) + + let semaphore = DispatchSemaphore(value: 0) + cacheStore.onReady { error in + XCTAssertNil(error) + semaphore.signal() + } + semaphore.wait() } override func tearDown() { @@ -88,9 +88,18 @@ class InsulinDeliveryStoreTestsAuthorized: InsulinDeliveryStoreTestsBase { } func testObserverQueryStartup() { - // Check that an observer query was registered even before authorize() is called. + // Check that an observer query is registered when authorization is already determined. XCTAssertFalse(insulinDeliveryStore.authorizationRequired); - XCTAssertNotNil(insulinDeliveryStore.observerQuery); + + let observerQueryCreated = expectation(description: "observer query created") + + insulinDeliveryStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in + let observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() + return observerQuery + } + + waitForExpectations(timeout: 2) } } @@ -104,8 +113,11 @@ class InsulinDeliveryStoreTests: InsulinDeliveryStoreTestsBase { XCTAssert(insulinDeliveryStore.authorizationRequired); XCTAssertNil(insulinDeliveryStore.observerQuery); + let observerQueryCreated = expectation(description: "observer query created") + insulinDeliveryStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + observerQueryCreated.fulfill() return observerQuery! } @@ -114,7 +126,7 @@ class InsulinDeliveryStoreTests: InsulinDeliveryStoreTestsBase { authorizationCompletion.fulfill() } - waitForExpectations(timeout: 10) + waitForExpectations(timeout: 2) XCTAssertNotNil(observerQuery) @@ -144,6 +156,7 @@ class InsulinDeliveryStoreTests: InsulinDeliveryStoreTestsBase { XCTAssertNotNil(insulinDeliveryStore.queryAnchor) + // Allow any managedObjectContext tasks to complete, like storing the anchor cacheStore.managedObjectContext.performAndWait {} // Create a new glucose store, and ensure it uses the last query anchor @@ -155,8 +168,11 @@ class InsulinDeliveryStoreTests: InsulinDeliveryStoreTestsBase { observerQuery = nil + let newObserverQueryCreationExpectation = expectation(description: "new observer query created") + newInsulinDeliveryStore.createObserverQuery = { (sampleType, predicate, updateHandler) -> HKObserverQuery in observerQuery = HKObserverQueryMock(sampleType: sampleType, predicate: predicate, updateHandler: updateHandler) + newObserverQueryCreationExpectation.fulfill() return observerQuery! } diff --git a/Dependencies/LoopKit/LoopKitTests/BasalRateScheduleTests.swift b/Dependencies/LoopKit/LoopKitTests/BasalRateScheduleTests.swift index 097cc75eb3..e526c057b1 100644 --- a/Dependencies/LoopKit/LoopKitTests/BasalRateScheduleTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/BasalRateScheduleTests.swift @@ -9,6 +9,18 @@ import XCTest @testable import LoopKit +private class TestingBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle(for: TestingBundle.self).resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKit_LoopKitTests.bundle")) + { + return bundle + } + return Bundle(for: TestingBundle.self) + }() +} + func ==(lhs: RepeatingScheduleValue, rhs: RepeatingScheduleValue) -> Bool { return lhs.startTime == rhs.startTime && lhs.value == rhs.value @@ -41,7 +53,7 @@ class BasalRateScheduleTests: XCTestCase { override func setUp() { super.setUp() - let path = Bundle(for: type(of: self)).path(forResource: "basal", ofType: "json")! + let path = TestingBundle.main.path(forResource: "basal", ofType: "json")! let fixture = try! JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: path)), options: []) as! [JSONDictionary] items = fixture.map { diff --git a/Dependencies/LoopKit/LoopKitTests/CarbStoreTests.swift b/Dependencies/LoopKit/LoopKitTests/CarbStoreTests.swift index 5adf47f608..c0e449a774 100644 --- a/Dependencies/LoopKit/LoopKitTests/CarbStoreTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/CarbStoreTests.swift @@ -28,6 +28,13 @@ class CarbStorePersistenceTests: PersistenceControllerTestCase, CarbStoreDelegat provenanceIdentifier: Bundle.main.bundleIdentifier!) carbStore.testQueryStore = healthStore carbStore.delegate = self + + let semaphore = DispatchSemaphore(value: 0) + cacheStore.onReady { (error) in + semaphore.signal() + } + semaphore.wait() + } override func tearDown() { @@ -1019,6 +1026,13 @@ class CarbStoreQueryTests: PersistenceControllerTestCase { defaultAbsorptionTimes: (fast: .minutes(30), medium: .hours(3), slow: .hours(5)), observationInterval: 0, provenanceIdentifier: Bundle.main.bundleIdentifier!) + + let semaphore = DispatchSemaphore(value: 0) + cacheStore.onReady { (error) in + semaphore.signal() + } + semaphore.wait() + completion = expectation(description: "Completion") queryAnchor = CarbStore.QueryAnchor() limit = Int.max diff --git a/Dependencies/LoopKit/LoopKitTests/DailyQuantityScheduleTests.swift b/Dependencies/LoopKit/LoopKitTests/DailyQuantityScheduleTests.swift index ba3b60b50a..4adcfde629 100644 --- a/Dependencies/LoopKit/LoopKitTests/DailyQuantityScheduleTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/DailyQuantityScheduleTests.swift @@ -7,7 +7,7 @@ // import XCTest -import LoopKit +@testable import LoopKit class DailyQuantityScheduleCodableTests: XCTestCase { func testCodableDouble() throws { diff --git a/Dependencies/LoopKit/LoopKitTests/DoseStoreTests.swift b/Dependencies/LoopKit/LoopKitTests/DoseStoreTests.swift index 702df7831b..09247a82cc 100644 --- a/Dependencies/LoopKit/LoopKitTests/DoseStoreTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/DoseStoreTests.swift @@ -24,7 +24,7 @@ class DoseStoreTests: PersistenceControllerTestCase { func defaultStore(testingDate: Date? = nil) -> DoseStore { let healthStore = HKHealthStoreMock() - return DoseStore( + let doseStore = DoseStore( healthStore: healthStore, cacheStore: cacheStore, observationEnabled: false, @@ -36,6 +36,14 @@ class DoseStoreTests: PersistenceControllerTestCase { provenanceIdentifier: Bundle.main.bundleIdentifier!, test_currentDate: testingDate ) + + let semaphore = DispatchSemaphore(value: 0) + cacheStore.onReady { (error) in + semaphore.signal() + } + semaphore.wait() + + return doseStore } let testingDateFormatter = DateFormatter.descriptionFormatter @@ -203,21 +211,29 @@ class DoseStoreTests: PersistenceControllerTestCase { // 1. Create a DoseStore let healthStore = HKHealthStoreMock() + let doseStoreInitialization = expectation(description: "Expect DoseStore to finish initialization") + let doseStore = DoseStore( healthStore: healthStore, cacheStore: cacheStore, observationEnabled: false, insulinModelProvider: StaticInsulinModelProvider(WalshInsulinModel(actionDuration: .hours(4))), longestEffectDuration: .hours(4), - basalProfile: BasalRateSchedule(rawValue: ["timeZone": -28800, "items": [["value": 0.75, "startTime": 0.0], ["value": 0.8, "startTime": 10800.0], ["value": 0.85, "startTime": 32400.0], ["value": 1.0, "startTime": 68400.0]]]), + basalProfile: BasalRateSchedule(rawValue: ["timeZone": -28800, "items": [ // Timezone = -0800 + ["value": 0.75, "startTime": 0.0], // 0000 - Midnight + ["value": 0.8, "startTime": 10800.0], // 0300 - 3am + ["value": 0.85, "startTime": 32400.0], // 0900 - 9am + ["value": 1.0, "startTime": 68400.0]]]), // 1900 - 7pm insulinSensitivitySchedule: InsulinSensitivitySchedule(rawValue: ["unit": "mg/dL", "timeZone": -28800, "items": [["value": 40.0, "startTime": 0.0], ["value": 35.0, "startTime": 21600.0], ["value": 40.0, "startTime": 57600.0]]]), syncVersion: 1, provenanceIdentifier: Bundle.main.bundleIdentifier!, + onReady: { _ in doseStoreInitialization.fulfill() }, // Set the current date test_currentDate: f("2018-12-12 18:07:14 +0000") ) + waitForExpectations(timeout: 3) // 2. Add a temp basal which has already ended. It should be saved to Health let pumpEvents1 = [ @@ -314,6 +330,8 @@ class DoseStoreTests: PersistenceControllerTestCase { // Create a DoseStore let healthStore = HKHealthStoreMock() + let doseStoreInitialization = expectation(description: "Expect DoseStore to finish initialization") + let doseStore = DoseStore( healthStore: healthStore, cacheStore: cacheStore, @@ -325,9 +343,14 @@ class DoseStoreTests: PersistenceControllerTestCase { syncVersion: 1, provenanceIdentifier: Bundle.main.bundleIdentifier!, + onReady: { _ in doseStoreInitialization.fulfill() }, + // Set the current date (5 minutes later) test_currentDate: f("2018-11-29 11:04:27 +0000") ) + + waitForExpectations(timeout: 3) + doseStore.pumpRecordsBasalProfileStartEvents = false doseStore.insulinDeliveryStore.test_lastImmutableBasalEndDate = f("2018-11-29 10:54:28 +0000") @@ -481,6 +504,9 @@ class DoseStoreTests: PersistenceControllerTestCase { return formatter.date(from: input)! } + let doseStoreInitialization = expectation(description: "Expect DoseStore to finish initialization") + + // 1. Create a DoseStore let doseStore = DoseStore( healthStore: HKHealthStoreMock(), @@ -493,9 +519,12 @@ class DoseStoreTests: PersistenceControllerTestCase { syncVersion: 1, provenanceIdentifier: Bundle.main.bundleIdentifier!, + onReady: { _ in doseStoreInitialization.fulfill() }, + // Set the current date test_currentDate: f("2018-12-12 18:07:14 +0000") ) + waitForExpectations(timeout: 3) // 2. Add a temp basal which has already ended. It should persist in InsulinDeliveryStore. @@ -554,12 +583,75 @@ class DoseStoreTests: PersistenceControllerTestCase { } + func testBasalInsertionBetweenTempBasals() { + + + let start = testingDate("2018-12-12 17:00:00 +0000") + let now = start.addingTimeInterval(.minutes(20)) + + let doseStore = defaultStore(testingDate: now) + + doseStore.insulinDeliveryStore.test_lastImmutableBasalEndDate = start + + + // 2. Add a temp basal which has already ended. It should persist in InsulinDeliveryStore. + let pumpEvents1 = [ + NewPumpEvent( + date: start, + dose: DoseEntry( + type: .tempBasal, + startDate: start, + endDate: start.addingTimeInterval(.minutes(5)), + value: 1.5, + unit: .unitsPerHour, + automatic: true), + raw: Data(hexadecimalString: "01")!, + title: "First Temp", + type: .tempBasal), + NewPumpEvent( + date: start.addingTimeInterval(.minutes(10)), + dose: DoseEntry( + type: .tempBasal, + startDate: start.addingTimeInterval(.minutes(10)), + endDate: start.addingTimeInterval(.minutes(15)), + value: 1.5, + unit: .unitsPerHour, + automatic: true), + raw: Data(hexadecimalString: "02")!, + title: "Second Temp", + type: .tempBasal) + ] + + let addPumpEvents = expectation(description: "addPumpEvents") + doseStore.addPumpEvents(pumpEvents1, lastReconciliation: now) { (error) in + XCTAssertNil(error) + doseStore.insulinDeliveryStore.getDoseEntries(start: start, end: start.addingTimeInterval(.minutes(20))) { result in + switch result { + case .failure: + XCTFail() + case .success(let doseEntries): + XCTAssertEqual(doseEntries.count, 3) + XCTAssertTrue(doseEntries[0].automatic!) + XCTAssertTrue(doseEntries[1].automatic!) + XCTAssertTrue(doseEntries[2].automatic!) + } + addPumpEvents.fulfill(); + } + } + + waitForExpectations(timeout: 3) + + } + func testAddPumpEventsPurgesMutableDosesFromInsulinDeliveryStore() { let formatter = DateFormatter.descriptionFormatter let f = { (input) in return formatter.date(from: input)! } + let doseStoreInitialization = expectation(description: "Expect DoseStore to finish initialization") + + // 1. Create a DoseStore let doseStore = DoseStore( healthStore: HKHealthStoreMock(), @@ -572,10 +664,12 @@ class DoseStoreTests: PersistenceControllerTestCase { syncVersion: 1, provenanceIdentifier: Bundle.main.bundleIdentifier!, + onReady: { _ in doseStoreInitialization.fulfill() }, // Set the current date test_currentDate: f("2018-12-12 18:07:14 +0000") ) + waitForExpectations(timeout: 3) // 2. Add a temp basal which has already ended. It should persist in InsulinDeliveryStore. let pumpEvents1 = [ @@ -1026,6 +1120,13 @@ class DoseStoreQueryTests: PersistenceControllerTestCase { basalProfile: basalProfile, insulinSensitivitySchedule: insulinSensitivitySchedule, provenanceIdentifier: Bundle.main.bundleIdentifier!) + + let semaphore = DispatchSemaphore(value: 0) + cacheStore.onReady { (error) in + semaphore.signal() + } + semaphore.wait() + completion = expectation(description: "Completion") queryAnchor = DoseStore.QueryAnchor() limit = Int.max diff --git a/Dependencies/LoopKit/LoopKitTests/Extensions/HKHealthStoreMock.swift b/Dependencies/LoopKit/LoopKitTests/Extensions/HKHealthStoreMock.swift index 2fb2fc7b6a..cb5c953b02 100644 --- a/Dependencies/LoopKit/LoopKitTests/Extensions/HKHealthStoreMock.swift +++ b/Dependencies/LoopKit/LoopKitTests/Extensions/HKHealthStoreMock.swift @@ -11,11 +11,13 @@ import Foundation class HKHealthStoreMock: HKHealthStore { + var saveError: Error? var deleteError: Error? var queryResults: (samples: [HKSample]?, error: Error?)? var lastQuery: HKQuery? var authorizationStatus: HKAuthorizationStatus? + let authorizationRequestUserResponse: Result = .success(true) private var saveHandler: ((_ objects: [HKObject], _ success: Bool, _ error: Error?) -> Void)? private var deleteObjectsHandler: ((_ objectType: HKObjectType, _ predicate: NSPredicate, _ success: Bool, _ count: Int, _ error: Error?) -> Void)? @@ -56,8 +58,17 @@ class HKHealthStoreMock: HKHealthStore { } override func requestAuthorization(toShare typesToShare: Set?, read typesToRead: Set?, completion: @escaping (Bool, Error?) -> Void) { - DispatchQueue.main.async { - completion(true, nil) + switch authorizationRequestUserResponse { + + case .success(let authorized): + authorizationStatus = authorized ? .sharingAuthorized : .sharingDenied + DispatchQueue.main.async { + completion(true, nil) + } + case .failure(let error): + DispatchQueue.main.async { + completion(false, error) + } } } diff --git a/Dependencies/LoopKit/LoopKitTests/InsulinMathTests.swift b/Dependencies/LoopKit/LoopKitTests/InsulinMathTests.swift index bdbd4991a2..290ac9b2e9 100644 --- a/Dependencies/LoopKit/LoopKitTests/InsulinMathTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/InsulinMathTests.swift @@ -842,8 +842,8 @@ class InsulinMathTests: XCTestCase { ] let scheduledBasalRate = HKQuantity(unit: .internationalUnitsPerHour, doubleValue: 1.2) - let reconciledWithBasal = [ - DoseEntry(type: .basal, startDate: f("2018-07-11 04:00:00 +0000"), endDate: f("2018-07-11 04:07:15 +0000"), value: 1.2, unit: .unitsPerHour, syncIdentifier: "BasalRateSchedule 2018-07-11T04:00:00Z 2018-07-11T04:07:15Z", scheduledBasalRate: scheduledBasalRate), + let expected = [ + DoseEntry(type: .basal, startDate: f("2018-07-11 04:00:00 +0000"), endDate: f("2018-07-11 04:07:15 +0000"), value: 1.2, unit: .unitsPerHour, syncIdentifier: "BasalRateSchedule 2018-07-11T04:00:00Z 2018-07-11T04:07:15Z", scheduledBasalRate: scheduledBasalRate, automatic: true), DoseEntry(type: .tempBasal, startDate: f("2018-07-11 04:07:15 +0000"), endDate: f("2018-07-11 04:12:15 +0000"), value: 0.67500000000000004, unit: .unitsPerHour), DoseEntry(type: .basal, startDate: f("2018-07-11 04:12:15 +0000"), endDate: f("2018-07-11 04:31:55 +0000"), value: 1.2, unit: .unitsPerHour, syncIdentifier: "BasalRateSchedule 2018-07-11T04:12:15Z 2018-07-11T04:31:55Z", scheduledBasalRate: scheduledBasalRate), DoseEntry(type: .suspend, startDate: f("2018-07-11 04:31:55 +0000"), endDate: f("2018-07-11 05:01:14 +0000"), value: 0.0, unit: .units), @@ -853,7 +853,15 @@ class InsulinMathTests: XCTestCase { let basalSchedule = BasalRateSchedule(dailyItems: [RepeatingScheduleValue(startTime: 0, value: 1.2)]) - XCTAssertEqual(reconciledWithBasal, reconciled.overlayBasalSchedule(basalSchedule!, startingAt: f("2018-07-11 04:00:00 +0000"), endingAt: f("2018-07-11 05:32:15 +0000"), insertingBasalEntries: true)) + let overlaid = reconciled.overlayBasalSchedule(basalSchedule!, startingAt: f("2018-07-11 04:00:00 +0000"), endingAt: f("2018-07-11 05:32:15 +0000"), insertingBasalEntries: true) + + XCTAssertEqual(expected.count, overlaid.count) + + XCTAssertEqual(expected[0], overlaid[0]) + XCTAssertEqual(expected[1], overlaid[1]) + XCTAssertEqual(expected[2], overlaid[2]) + XCTAssertEqual(expected[3], overlaid[3]) + XCTAssertEqual(expected[4], overlaid[4]) } func testAppendedUnionOfPumpEvents() { diff --git a/Dependencies/LoopKit/LoopKitTests/LoopMathTests.swift b/Dependencies/LoopKit/LoopKitTests/LoopMathTests.swift index 64a1c2ea04..9c675af7b4 100644 --- a/Dependencies/LoopKit/LoopKitTests/LoopMathTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/LoopMathTests.swift @@ -438,5 +438,58 @@ class LoopMathTests: XCTestCase { XCTAssertEqual(expected, calculated) } - + func testDateRange() { + let formatter = DateFormatter.descriptionFormatter + let f = { (input) in + return formatter.date(from: input)! + } + + let expected = [ + f("2018-08-16 01:00:00 +0000"), + f("2018-08-16 01:05:00 +0000"), + f("2018-08-16 01:10:00 +0000"), + f("2018-08-16 01:15:00 +0000"), + f("2018-08-16 01:20:00 +0000"), + f("2018-08-16 01:25:00 +0000"), + f("2018-08-16 01:30:00 +0000"), + f("2018-08-16 01:35:00 +0000"), + f("2018-08-16 01:40:00 +0000"), + f("2018-08-16 01:45:00 +0000"), + f("2018-08-16 01:50:00 +0000"), + f("2018-08-16 01:55:00 +0000"), + f("2018-08-16 02:00:00 +0000"), + f("2018-08-16 02:05:00 +0000"), + f("2018-08-16 02:10:00 +0000"), + f("2018-08-16 02:15:00 +0000"), + f("2018-08-16 02:20:00 +0000"), + f("2018-08-16 02:25:00 +0000"), + f("2018-08-16 02:30:00 +0000"), + f("2018-08-16 02:35:00 +0000"), + f("2018-08-16 02:40:00 +0000"), + f("2018-08-16 02:45:00 +0000"), + f("2018-08-16 02:50:00 +0000"), + f("2018-08-16 02:55:00 +0000"), + f("2018-08-16 03:00:00 +0000"), + f("2018-08-16 03:05:00 +0000"), + f("2018-08-16 03:10:00 +0000") + ] + + let roundedStartDate = f("2018-08-16 01:00:00 +0000") + let unroundedStartDate = f("2018-08-16 01:04:13 +0000") + + let roundedEndDate = f("2018-08-16 03:10:00 +0000") + let unroundedEndDate = f("2018-08-16 03:06:29 +0000") + + let roundedOutput = LoopMath.simulationDateRange(from: roundedStartDate, to: roundedEndDate, delta: .minutes(5)) + XCTAssertEqual(expected, roundedOutput) + + let unroundedOutput = LoopMath.simulationDateRange(from: unroundedStartDate, to: unroundedEndDate, delta: .minutes(5)) + XCTAssertEqual(expected, unroundedOutput) + + let differentDeltaExpected = expected + .enumerated() + .compactMap { $0.offset.isMultiple(of: 2) ? $0.element : nil } + let differentDeltaOutput = LoopMath.simulationDateRange(from: unroundedStartDate, to: unroundedEndDate, delta: .minutes(10)) + XCTAssertEqual(differentDeltaExpected, differentDeltaOutput) + } } diff --git a/Dependencies/LoopKit/LoopKitTests/NewPumpEventTests.swift b/Dependencies/LoopKit/LoopKitTests/NewPumpEventTests.swift index 1a543d9c99..9fa94d17b4 100644 --- a/Dependencies/LoopKit/LoopKitTests/NewPumpEventTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/NewPumpEventTests.swift @@ -8,7 +8,7 @@ import XCTest import HealthKit -import LoopKit +@testable import LoopKit class NewPumpEventRawRepresentableTests: XCTestCase { func testNewPumpEventRawRepresentable() { diff --git a/Dependencies/LoopKit/LoopKitTests/NotificationSettingsTests.swift b/Dependencies/LoopKit/LoopKitTests/NotificationSettingsTests.swift index d50e5e8e9b..0d05742596 100644 --- a/Dependencies/LoopKit/LoopKitTests/NotificationSettingsTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/NotificationSettingsTests.swift @@ -8,7 +8,7 @@ import XCTest import Foundation -import LoopKit +@testable import LoopKit class NotificationSettingsCodableTests: XCTestCase { func testCodable() throws { diff --git a/Dependencies/LoopKit/LoopKitTests/Persistence/CachedCarbObjectTests.swift b/Dependencies/LoopKit/LoopKitTests/Persistence/CachedCarbObjectTests.swift index c4e067494a..a489c9e821 100644 --- a/Dependencies/LoopKit/LoopKitTests/Persistence/CachedCarbObjectTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/Persistence/CachedCarbObjectTests.swift @@ -29,6 +29,12 @@ class CachedCarbObjectTests: PersistenceControllerTestCase { class CachedCarbObjectEncodableTests: PersistenceControllerTestCase { func testEncodable() throws { + let semaphore = DispatchSemaphore(value: 0) + + cacheStore.onReady { error in + semaphore.signal() + } + semaphore.wait() cacheStore.managedObjectContext.performAndWait { let cachedCarbObject = CachedCarbObject(context: cacheStore.managedObjectContext) cachedCarbObject.absorptionTime = 18000 diff --git a/Dependencies/LoopKit/LoopKitTests/PersistentDeviceLogTests.swift b/Dependencies/LoopKit/LoopKitTests/PersistentDeviceLogTests.swift index b81f0aa415..4ca859aa19 100644 --- a/Dependencies/LoopKit/LoopKitTests/PersistentDeviceLogTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/PersistentDeviceLogTests.swift @@ -7,7 +7,7 @@ // import XCTest -import LoopKit +@testable import LoopKit class PersistentDeviceLogCriticalEventLogTests: XCTestCase { var persistentDeviceLog: PersistentDeviceLog! diff --git a/Dependencies/LoopKit/LoopKitTests/QuantityFormatterTests.swift b/Dependencies/LoopKit/LoopKitTests/QuantityFormatterTests.swift index 89cf0dfc68..99ae63b6e1 100644 --- a/Dependencies/LoopKit/LoopKitTests/QuantityFormatterTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/QuantityFormatterTests.swift @@ -7,7 +7,7 @@ import XCTest import HealthKit -import LoopKit +@testable import LoopKit class QuantityFormatterTests: XCTestCase { diff --git a/Dependencies/LoopKit/LoopKitTests/TherapySettingsTests.swift b/Dependencies/LoopKit/LoopKitTests/TherapySettingsTests.swift index 22aff95739..0ae51b6e03 100644 --- a/Dependencies/LoopKit/LoopKitTests/TherapySettingsTests.swift +++ b/Dependencies/LoopKit/LoopKitTests/TherapySettingsTests.swift @@ -8,7 +8,7 @@ import XCTest import HealthKit -import LoopKit +@testable import LoopKit class TherapySettingsCodableTests: XCTestCase { private let dateFormatter = ISO8601DateFormatter() diff --git a/Dependencies/LoopKit/LoopKitUI/CarbKit/FoodEmojiDataSource.swift b/Dependencies/LoopKit/LoopKitUI/CarbKit/FoodEmojiDataSource.swift index 35f1dd2b31..03cfe95118 100644 --- a/Dependencies/LoopKit/LoopKitUI/CarbKit/FoodEmojiDataSource.swift +++ b/Dependencies/LoopKit/LoopKitUI/CarbKit/FoodEmojiDataSource.swift @@ -13,11 +13,37 @@ public func CarbAbsorptionInputController() -> EmojiInputController { private class FoodEmojiDataSource: EmojiDataSource { private static let fast: [String] = { var fast = [ - "🍭", "🍬", "🍯", - "🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", - "🍎", "🍏", "🍐", "🍑", "🍒", "🍓", "🥝", - "🌽", "🍿", "🍘", "🍡", "🍦", "🍧", "🎂", "🥠", - "☕️", + "🍭", // lollipop + "🧃", // juice box + "🥤", // cup with straw (soda) + "🍬", // candy + "🍯", // honey pot + "🍇", // grapes + "🫐", // blueberries + "🍈", // melon + "🍉", // watermelon + "🍊", // tangerine + "🍋", // lemon + "🍌", // banana + "🍍", // pineapple + "🍎", // red apple + "🍏", // green apple + "🍐", // pear + "🍑", // peach + "🍒", // cherries + "🍓", // strawberry + "🥝", // kiwi fruit + "🥭", // mango + "🌽", // ear of corn + "🍿", // popcorn + "🍘", // rice cracker + "🍡", // dango + "🍦", // soft ice cream + "🍧", // shaved ice + "🎂", // birthday cake + "🥠", // fortune cookie + "☕️", // coffee + "🫖" // tea ] return fast @@ -25,13 +51,65 @@ private class FoodEmojiDataSource: EmojiDataSource { private static let medium: [String] = { var medium = [ - "🌮", "🍟", "🍳", "🍲", "🍱", "🍛", - "🍜", "🍠", "🍤", "🍥", - "🥪", "🥫", "🥟", "🥡", "🍢", "🍣", - "🍅", "🥔", "🥕", "🌶", "🥒", "🥗", "🍄", "🥦", - "🍆", "🥥", "🍞", "🥐", "🥖", "🥨", "🥞", "🍙", "🍚", - "🍼", "🥛", "🍮", "🥧", - "🍨", "🍩", "🍪", "🍰", "🍫", + "🌮", // taco + "🍟", // french fries + "🍳", // cooking + "🍲", // pot of food + "🥘", // pan of food + "🍱", // bento box + "🍛", // curry rice + "🍜", // steaming bowl (ramen / noodle soup) + "🍠", // roasted sweet potato + "🍤", // fried shrimp + "🦪", // oyster + "🍥", // fish cake with swirl + "🥪", // sandwich + "🥙", // pita sandwich + "🧆", // falafel + "🫔", // tamale + "🥫", // canned food + "🥟", // dumpling + "🥡", // takeout box + "🍢", // oden + "🍣", // sushi + "🍅", // tomato + "🥔", // potato + "🥕", // carrot + "🌶", // hot pepper + "🫑", // bell pepper + "🧅", // onion + "🧄", // garlic + "🥔", // potato + "🥒", // cucumber + "🥗", // green salad + "🥬", // leafy green + "🍄", // mushroom + "🥦", // broccoli + "🍆", // eggplant + "🫘", // beans + "🥥", // coconut + "🍞", // bread + "🥐", // croissant + "🥖", // baguette bread + "🥯", // bagel + "🫓", // flat bread + "🥨", // pretzel + "🥞", // pancakes + "🧇", // waffle + "🍙", // rice ball + "🍚", // cooked rice + "🍼", // baby bottle + "🥛", // glass of milk + "🍮", // custard + "🥧", // pie + "🍨", // ice cream + "🍩", // doughnut + "🍪", // cookie + "🧁", // cupcake + "🥮", // moon cake + "🍰", // shortcake + "🍫", // chocolate bar + "🧋", // bubble tea ] return medium @@ -39,8 +117,23 @@ private class FoodEmojiDataSource: EmojiDataSource { private static let slow: [String] = { var slow = [ - "🍕", "🥑", "🥜", "🌰", "🧀", "🍖", "🍗", "🥓", - "🍔", "🌭", "🌯", "🍝", "🥩" + "🍕", // pizza + "🥑", // avocado + "🥚", // egg + "🥜", // peanuts + "🌰", // chestnut + "🧀", // cheese wedge + "🫕", // fondue + "🍖", // meat on bone + "🍗", // poultry leg + "🥓", // bacon + "🍔", // hamburger + "🌭", // hot dog + "🌯", // burrito + "🍝", // spaghetti + "🥩", // cut of meat + "🧈", // butter + "🦴", // bone ] return slow @@ -48,8 +141,27 @@ private class FoodEmojiDataSource: EmojiDataSource { private static let other: [String] = { var other = [ - "🍶", "🍾", "🍷", "🍸", "🍺", "🍻", "🥂", "🥃", - "🍹", "🥣", "🥤", "🥢", "🍵", + "🍶", // sake + "🍾", // bottle with popping cork + "🍷", // wine glass + "🍸", // cocktail glass + "🍺", // beer mug + "🍻", // clinking beer mugs + "🥂", // clinking glasses + "🥃", // tumbler glass + "🍹", // tropical drink + "🧉", // mate + "🫗", // pouring liquid + "🥣", // bowl with spoon + "🥤", // cup with straw + "🥢", // chopsticks + "🍵", // teacup without handle + "🍴", // fork and knife + "🍽", // fork and knife with plate + "🥄", // spoon + "🫙", // jar + "🧊", // ice cube + "🧂", // salt "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟" ] diff --git a/Dependencies/LoopKit/LoopKitUI/Charts/GlucoseChart.swift b/Dependencies/LoopKit/LoopKitUI/Charts/GlucoseChart.swift index f84944ba4f..009ca80db3 100644 --- a/Dependencies/LoopKit/LoopKitUI/Charts/GlucoseChart.swift +++ b/Dependencies/LoopKit/LoopKitUI/Charts/GlucoseChart.swift @@ -10,7 +10,6 @@ import HealthKit import LoopKit import SwiftCharts - open class GlucoseChart { public init() { } diff --git a/Dependencies/LoopKit/LoopKitUI/Charts/InsulinModelChart.swift b/Dependencies/LoopKit/LoopKitUI/Charts/InsulinModelChart.swift index cb87b26f7a..5fc421eec0 100644 --- a/Dependencies/LoopKit/LoopKitUI/Charts/InsulinModelChart.swift +++ b/Dependencies/LoopKit/LoopKitUI/Charts/InsulinModelChart.swift @@ -8,7 +8,7 @@ import Foundation import LoopKit import SwiftCharts - +import UIKit public class InsulinModelChart: GlucoseChart, ChartProviding { /// The chart points for the selected model diff --git a/Dependencies/LoopKit/LoopKitUI/DeviceManagerUI.swift b/Dependencies/LoopKit/LoopKitUI/DeviceManagerUI.swift index 426bd69c16..b7a98d1daa 100644 --- a/Dependencies/LoopKit/LoopKitUI/DeviceManagerUI.swift +++ b/Dependencies/LoopKit/LoopKitUI/DeviceManagerUI.swift @@ -7,6 +7,7 @@ // import LoopKit +import UIKit public protocol DeviceManagerUI: DeviceManager { /// An image representing a generalized device. Used during onboarding. diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/ChartLineModel+LoopKitUI.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/ChartLineModel+LoopKitUI.swift index 346de2b871..20e5fe826e 100644 --- a/Dependencies/LoopKit/LoopKitUI/Extensions/ChartLineModel+LoopKitUI.swift +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/ChartLineModel+LoopKitUI.swift @@ -6,7 +6,7 @@ // import SwiftCharts - +import UIKit extension ChartLineModel { /// Creates a model configured with the dashed prediction line style diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/Collection.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Collection.swift new file mode 100644 index 0000000000..c37a84c4e3 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/Collection.swift @@ -0,0 +1,98 @@ +// +// Collection.swift +// LoopKit +// +// Created by Michael Pangburn on 2/14/19. +// Copyright © 2019 LoopKit Authors. All rights reserved. +// + +/// Returns the cartesian product of a sequence and a collection. +/// +/// O(1), but O(_n_*_m_) on iteration. +/// - Note: Don't mind the scary return type; it's just a lazy sequence. +func product(_ s: S, _ c: C) -> LazySequence>>> { + return s.lazy.flatMap { first in + c.lazy.map { second in + (first, second) + } + } +} + +extension Collection { + /// Returns a sequence containing adjacent pairs of elements in the ordered collection. + func adjacentPairs() -> Zip2Sequence { + return zip(self, dropFirst()) + } +} + +extension Collection { + func chunked(into size: Int) -> [SubSequence] { + precondition(size > 0, "Chunk size must be greater than zero") + var start = startIndex + return stride(from: 0, to: count, by: size).map {_ in + let end = index(start, offsetBy: size, limitedBy: endIndex) ?? endIndex + defer { start = end } + return self[start.. LazyMapSequence>>>, (Element, Element)> { + return product(indices, indices).filter(<).map { + (self[$0], self[$1]) + } + } +} + +extension RangeReplaceableCollection where Index: Hashable { + /// Removes the elements at all of the given indices. + /// + /// O(_n_*_m_) + mutating func removeAll(at indices: S) where S.Element == Index { + let arranged = Set(indices).sorted(by: >) + for index in arranged { + remove(at: index) + } + } +} + +// Source: https://github.com/apple/swift/blob/master/stdlib/public/core/CollectionAlgorithms.swift#L476 +extension Collection { + /// Returns the index of the first element in the collection that matches + /// the predicate. + /// + /// The collection must already be partitioned according to the predicate. + /// That is, there should be an index `i` where for every element in + /// `collection[.. Bool + ) rethrows -> Index { + var n = count + var l = startIndex + + while n > 0 { + let half = n / 2 + let mid = index(l, offsetBy: half) + if try predicate(self[mid]) { + n = half + } else { + l = index(after: mid) + n -= half + 1 + } + } + return l + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/Color.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Color.swift index 008ef141ce..5f23f3ace8 100644 --- a/Dependencies/LoopKit/LoopKitUI/Extensions/Color.swift +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/Color.swift @@ -8,13 +8,21 @@ import SwiftUI -private class FrameworkBundle { - static let main = Bundle(for: FrameworkBundle.self) +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKitUI_LoopKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() } extension Color { init?(frameworkColor name: String) { - self.init(name, bundle: FrameworkBundle.main) + self.init(name, bundle: LocalBundle.main) } } diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/Comparable.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Comparable.swift new file mode 100644 index 0000000000..8ffc4dcaa2 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/Comparable.swift @@ -0,0 +1,23 @@ +// +// Comparable.swift +// LoopKit +// +// Created by Michael Pangburn on 11/20/18. +// Copyright © 2018 LoopKit Authors. All rights reserved. +// + +extension Comparable { + func clamped(to range: ClosedRange) -> Self { + if self < range.lowerBound { + return range.lowerBound + } else if self > range.upperBound { + return range.upperBound + } else { + return self + } + } + + mutating func clamp(to range: ClosedRange) { + self = clamped(to: range) + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/Data.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Data.swift new file mode 100644 index 0000000000..e92db39218 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/Data.swift @@ -0,0 +1,56 @@ +// +// NSData.swift +// LoopKit +// +// Created by Nate Racklyeft on 8/26/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +// String conversion methods, adapted from https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 +extension Data { + init?(hexadecimalString: String) { + self.init(capacity: hexadecimalString.utf16.count / 2) + + // Convert 0 ... 9, a ... f, A ...F to their decimal value, + // return nil for all other input characters + func decodeNibble(u: UInt16) -> UInt8? { + switch u { + case 0x30 ... 0x39: // '0'-'9' + return UInt8(u - 0x30) + case 0x41 ... 0x46: // 'A'-'F' + return UInt8(u - 0x41 + 10) // 10 since 'A' is 10, not 0 + case 0x61 ... 0x66: // 'a'-'f' + return UInt8(u - 0x61 + 10) // 10 since 'a' is 10, not 0 + default: + return nil + } + } + + var even = true + var byte: UInt8 = 0 + for c in hexadecimalString.utf16 { + guard let val = decodeNibble(u: c) else { return nil } + if even { + byte = val << 4 + } else { + byte += val + self.append(byte) + } + even = !even + } + guard even else { return nil } + } + + var hexadecimalString: String { + return map { String(format: "%02hhx", $0) }.joined() + } +} + +extension Data { + static func newPumpEventIdentifier() -> Data { + return Data(UUID().uuidString.utf8) + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/HKUnit.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/HKUnit.swift new file mode 100644 index 0000000000..a5f77cdd06 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/HKUnit.swift @@ -0,0 +1,61 @@ +// +// HKUnit.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/17/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import HealthKit + + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let milligramsPerDeciliterPerMinute: HKUnit = { + return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) + }() + + static let millimolesPerLiterPerMinute: HKUnit = { + return HKUnit.millimolesPerLiter.unitDivided(by: .minute()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + + static let gramsPerUnit: HKUnit = { + return HKUnit.gram().unitDivided(by: .internationalUnit()) + }() + + var foundationUnit: Unit? { + if self == HKUnit.milligramsPerDeciliter { + return UnitConcentrationMass.milligramsPerDeciliter + } + + if self == HKUnit.millimolesPerLiter { + return UnitConcentrationMass.millimolesPerLiter(withGramsPerMole: HKUnitMolarMassBloodGlucose) + } + + if self == HKUnit.gram() { + return UnitMass.grams + } + + return nil + } + + /// The smallest value expected to be visible on a chart + var chartableIncrement: Double { + if self == .milligramsPerDeciliter { + return 1 + } else { + return 1 / 25 + } + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/IdentifiableClass.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/IdentifiableClass.swift new file mode 100644 index 0000000000..d0bf7f2976 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/IdentifiableClass.swift @@ -0,0 +1,21 @@ +// +// IdentifiableClass.swift +// Naterade +// +// Created by Nathan Racklyeft on 2/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +protocol IdentifiableClass: AnyObject { + static var className: String { get } +} + + +extension IdentifiableClass { + static var className: String { + return NSStringFromClass(self).components(separatedBy: ".").last! + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/Image.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Image.swift index 2c7065513f..2e7dc84f40 100644 --- a/Dependencies/LoopKit/LoopKitUI/Extensions/Image.swift +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/Image.swift @@ -8,16 +8,24 @@ import SwiftUI -private class FrameworkBundle { - static let main = Bundle(for: FrameworkBundle.self) +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKitUI_LoopKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() } extension Image { init(frameworkImage name: String, decorative: Bool = false) { if decorative { - self.init(decorative: name, bundle: FrameworkBundle.main) + self.init(decorative: name, bundle: LocalBundle.main) } else { - self.init(name, bundle: FrameworkBundle.main) + self.init(name, bundle: LocalBundle.main) } } } diff --git a/Dependencies/LoopKit/Extensions/Math.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/Math.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/Math.swift rename to Dependencies/LoopKit/LoopKitUI/Extensions/Math.swift diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/NSTimeInterval.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/NSTimeInterval.swift new file mode 100644 index 0000000000..a568b77b8e --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/NSTimeInterval.swift @@ -0,0 +1,36 @@ +// +// NSTimeInterval.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +extension TimeInterval { + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } +} diff --git a/Dependencies/LoopKit/Extensions/NibLoadable.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/NibLoadable.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/NibLoadable.swift rename to Dependencies/LoopKit/LoopKitUI/Extensions/NibLoadable.swift diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/NumberFormatter.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..6d9d3ab787 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/NumberFormatter.swift @@ -0,0 +1,49 @@ +// +// NSNumberFormatter.swift +// Loop +// +// Created by Nate Racklyeft on 9/5/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation +import HealthKit + + +extension NumberFormatter { + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } + + func string(from number: Double, unit: String, style: Formatter.UnitStyle = .medium, avoidLineBreaking: Bool = true) -> String? { + guard let stringValue = string(from: number) else { + return nil + } + + let separator: String + switch style { + case .long: + separator = " " + case .medium: + separator = avoidLineBreaking ? .nonBreakingSpace : " " + case .short: + fallthrough + @unknown default: + separator = avoidLineBreaking ? .wordJoiner : "" + } + + let unit = avoidLineBreaking ? unit.replacingOccurrences(of: "/", with: "\(String.wordJoiner)/\(String.wordJoiner)") : unit + + return String( + format: LocalizedString("%1$@%2$@%3$@", comment: "String format for value with units (1: value, 2: separator, 3: units)"), + stringValue, + separator, + unit + ) + } +} + +public extension String { + static let nonBreakingSpace = "\u{00a0}" + static let wordJoiner = "\u{2060}" +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/TimeZone.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/TimeZone.swift new file mode 100644 index 0000000000..4b912b912f --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/TimeZone.swift @@ -0,0 +1,16 @@ +// +// TimeZone.swift +// LoopKit +// +// Created by Nate Racklyeft on 10/2/16. +// Copyright © 2016 LoopKit Authors. All rights reserved. +// + +import Foundation + + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/UIFont.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/UIFont.swift index 09055cd335..e7d40cacee 100644 --- a/Dependencies/LoopKit/LoopKitUI/Extensions/UIFont.swift +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/UIFont.swift @@ -6,6 +6,8 @@ // Copyright © 2020 LoopKit Authors. All rights reserved. // +import UIKit + extension UIFont { public static var titleFontGroupedInset: UIFont { return UIFontMetrics(forTextStyle: .title1).scaledFont(for: systemFont(ofSize: 28, weight: .semibold)) diff --git a/Dependencies/LoopKit/LoopKitUI/Extensions/UIImage.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/UIImage.swift index d52490aed2..fbf28cc6aa 100644 --- a/Dependencies/LoopKit/LoopKitUI/Extensions/UIImage.swift +++ b/Dependencies/LoopKit/LoopKitUI/Extensions/UIImage.swift @@ -8,12 +8,20 @@ import UIKit -private class FrameworkBundle { - static let main = Bundle(for: FrameworkBundle.self) +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKitUI_LoopKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() } extension UIImage { convenience init?(frameworkImage name: String) { - self.init(named: name, in: FrameworkBundle.main, with: nil) + self.init(named: name, in: LocalBundle.main, with: nil) } } diff --git a/Dependencies/LoopKit/Extensions/UITableViewCell.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/UITableViewCell.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/UITableViewCell.swift rename to Dependencies/LoopKit/LoopKitUI/Extensions/UITableViewCell.swift diff --git a/Dependencies/LoopKit/Extensions/UITextField.swift b/Dependencies/LoopKit/LoopKitUI/Extensions/UITextField.swift similarity index 100% rename from Dependencies/LoopKit/Extensions/UITextField.swift rename to Dependencies/LoopKit/LoopKitUI/Extensions/UITextField.swift diff --git a/Dependencies/LoopKit/LoopKitUI/HUDProvider.swift b/Dependencies/LoopKit/LoopKitUI/HUDProvider.swift index 7e34c5263e..eb32657ce8 100644 --- a/Dependencies/LoopKit/LoopKitUI/HUDProvider.swift +++ b/Dependencies/LoopKit/LoopKitUI/HUDProvider.swift @@ -7,6 +7,7 @@ // import Foundation +import UIKit public enum HUDTapAction { case presentViewController(UIViewController & CompletionNotifying) diff --git a/Dependencies/LoopKit/LoopKitUI/InsulinKit/LegacyInsulinDeliveryTableViewController.swift b/Dependencies/LoopKit/LoopKitUI/InsulinKit/LegacyInsulinDeliveryTableViewController.swift index 3b0156aec1..52f736e39d 100644 --- a/Dependencies/LoopKit/LoopKitUI/InsulinKit/LegacyInsulinDeliveryTableViewController.swift +++ b/Dependencies/LoopKit/LoopKitUI/InsulinKit/LegacyInsulinDeliveryTableViewController.swift @@ -35,8 +35,8 @@ public final class LegacyInsulinDeliveryTableViewController: UITableViewControll didSet { let titleFont = UIFont.systemFont(ofSize: 15, weight: .semibold) dataSourceSegmentedControl.setTitleTextAttributes([NSAttributedString.Key.font: titleFont], for: .normal) - dataSourceSegmentedControl.setTitle(NSLocalizedString("Event History", comment: "Segmented button title for insulin delivery log event history"), forSegmentAt: 0) - dataSourceSegmentedControl.setTitle(NSLocalizedString("Reservoir", comment: "Segmented button title for insulin delivery log reservoir history"), forSegmentAt: 1) + dataSourceSegmentedControl.setTitle(LocalizedString("Event History", comment: "Segmented button title for insulin delivery log event history"), forSegmentAt: 0) + dataSourceSegmentedControl.setTitle(LocalizedString("Reservoir", comment: "Segmented button title for insulin delivery log reservoir history"), forSegmentAt: 1) } } @@ -377,7 +377,7 @@ public final class LegacyInsulinDeliveryTableViewController: UITableViewControll let volume = NumberFormatter.localizedString(from: NSNumber(value: entry.unitVolume), number: .decimal) let time = timeFormatter.string(from: entry.startDate) - cell.textLabel?.text = String(format: NSLocalizedString("%1$@ U", comment: "Reservoir entry (1: volume value)"), volume) + cell.textLabel?.text = String(format: LocalizedString("%1$@ U", comment: "Reservoir entry (1: volume value)"), volume) cell.textLabel?.textColor = .label cell.detailTextLabel?.text = time cell.accessoryType = .none @@ -512,14 +512,14 @@ extension DoseEntry { if let deliveredUnits = deliveredUnits, deliveredUnits != programmedUnits { - description = String(format: NSLocalizedString("Interrupted %1$@: %2$@ of %3$@ %4$@", comment: "Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit)"), type.localizedDescription, numberFormatter.string(from: deliveredUnits) ?? "?", numberFormatter.string(from: programmedUnits) ?? "?", DoseEntry.units.shortLocalizedUnitString()) + description = String(format: LocalizedString("Interrupted %1$@: %2$@ of %3$@ %4$@", comment: "Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit)"), type.localizedDescription, numberFormatter.string(from: deliveredUnits) ?? "?", numberFormatter.string(from: programmedUnits) ?? "?", DoseEntry.units.shortLocalizedUnitString()) } else { - description = String(format: NSLocalizedString("%1$@: %2$@ %3$@", comment: "Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit)"), type.localizedDescription, numberFormatter.string(from: programmedUnits) ?? "?", DoseEntry.units.shortLocalizedUnitString()) + description = String(format: LocalizedString("%1$@: %2$@ %3$@", comment: "Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit)"), type.localizedDescription, numberFormatter.string(from: programmedUnits) ?? "?", DoseEntry.units.shortLocalizedUnitString()) } return createAttributedDescription(from: description, with: font) case .basal, .tempBasal: - let description = String(format: NSLocalizedString("%1$@: %2$@ %3$@", comment: "Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit)"), type.localizedDescription, numberFormatter.string(from: unitsPerHour) ?? "?", DoseEntry.unitsPerHour.shortLocalizedUnitString()) + let description = String(format: LocalizedString("%1$@: %2$@ %3$@", comment: "Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit)"), type.localizedDescription, numberFormatter.string(from: unitsPerHour) ?? "?", DoseEntry.unitsPerHour.shortLocalizedUnitString()) return createAttributedDescription(from: description, with: font) case .suspend, .resume: let attributes: [NSAttributedString.Key: Any] = [ diff --git a/Dependencies/LoopKit/LoopKitUI/LocalizedString.swift b/Dependencies/LoopKit/LoopKitUI/LocalizedString.swift new file mode 100644 index 0000000000..c6ad455c40 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/LocalizedString.swift @@ -0,0 +1,29 @@ +// +// LocalizedString.swift +// LoopKit +// +// Created by Retina15 on 8/6/18. +// Copyright © 2018 LoopKit Authors. All rights reserved. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKitUI_LoopKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Apidra.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Apidra.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Apidra.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Apidra.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Checkmark.imageset/Checkmark.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Checkmark.imageset/Checkmark.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Checkmark.imageset/Checkmark.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Checkmark.imageset/Checkmark.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Checkmark.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Checkmark.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Checkmark.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Checkmark.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Darkened Insulin.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Darkened Insulin.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Darkened Insulin.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Darkened Insulin.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Delete@2x.png b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Delete@2x.png similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Delete@2x.png rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Delete@2x.png diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Delete@3x.png b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Delete@3x.png similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete-Left.imageset/Delete@3x.png rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete-Left.imageset/Delete@3x.png diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Delete.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Delete.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Fiasp.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Fiasp.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Fiasp.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Fiasp.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Humalog.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Humalog.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Humalog.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Humalog.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Invalid.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Invalid.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Invalid.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Invalid.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Lightened Insulin.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Lightened Insulin.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Lightened Insulin.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Lightened Insulin.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Lyumjev.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Lyumjev.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Lyumjev.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Lyumjev.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Novolog.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Novolog.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Novolog.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Novolog.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Oval Selection Dark.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Oval Selection Dark.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Oval Selection Dark.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Oval Selection Dark.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Oval Selection.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Oval Selection.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Oval Selection.imageset/Oval Selection.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Oval Selection.imageset/Oval Selection.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Pre-Meal.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Pre-Meal.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Pre-Meal.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Pre-Meal.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Pre-Meal.imageset/Pre-Meal.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Pre-Meal.imageset/Pre-Meal.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Pre-Meal.imageset/Pre-Meal.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Pre-Meal.imageset/Pre-Meal.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Warning.colorset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Warning.colorset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/Warning.colorset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/Warning.colorset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/play-button.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/play-button.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/play-button.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/play-button.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/play-button.imageset/play-button.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/play-button.imageset/play-button.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/play-button.imageset/play-button.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/play-button.imageset/play-button.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/vial_stroke_dark.svg b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/vial_stroke_dark.svg similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/vial_stroke_dark.svg rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/vial_stroke_dark.svg diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/vial_stroke_light.svg b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/vial_stroke_light.svg similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial.imageset/vial_stroke_light.svg rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial.imageset/vial_stroke_light.svg diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial_color.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial_color.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial_color.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial_color.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial_color.imageset/vial_color.svg b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial_color.imageset/vial_color.svg similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/vial_color.imageset/vial_color.svg rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/vial_color.imageset/vial_color.svg diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/workout.imageset/Contents.json b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/workout.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/workout.imageset/Contents.json rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/workout.imageset/Contents.json diff --git a/Dependencies/LoopKit/LoopKitUI/Assets.xcassets/workout.imageset/workout.pdf b/Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/workout.imageset/workout.pdf similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Assets.xcassets/workout.imageset/workout.pdf rename to Dependencies/LoopKit/LoopKitUI/Resources/Assets.xcassets/workout.imageset/workout.pdf diff --git a/Dependencies/LoopKit/LoopKitUI/Base.lproj/InsulinKit.storyboard b/Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/InsulinKit.storyboard similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Base.lproj/InsulinKit.storyboard rename to Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/InsulinKit.storyboard diff --git a/Dependencies/LoopKit/LoopKitUI/Base.lproj/LegacyInsulinDeliveryTableViewController.storyboard b/Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/LegacyInsulinDeliveryTableViewController.storyboard similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Base.lproj/LegacyInsulinDeliveryTableViewController.storyboard rename to Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/LegacyInsulinDeliveryTableViewController.storyboard diff --git a/Dependencies/LoopKit/LoopKitUI/Base.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/Localizable.strings similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/Base.lproj/Localizable.strings rename to Dependencies/LoopKit/LoopKitUI/Resources/Base.lproj/Localizable.strings diff --git a/Dependencies/LoopKit/LoopKitUI/EmojiInputController.storyboard b/Dependencies/LoopKit/LoopKitUI/Resources/EmojiInputController.storyboard similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/EmojiInputController.storyboard rename to Dependencies/LoopKit/LoopKitUI/Resources/EmojiInputController.storyboard diff --git a/Dependencies/LoopKit/LoopKitUI/OverrideSelectionViewController.storyboard b/Dependencies/LoopKit/LoopKitUI/Resources/OverrideSelectionViewController.storyboard similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/OverrideSelectionViewController.storyboard rename to Dependencies/LoopKit/LoopKitUI/Resources/OverrideSelectionViewController.storyboard diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/InsulinKit.strings new file mode 100644 index 0000000000..66d8a03c8d --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/InsulinKit.strings @@ -0,0 +1,12 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "عنوان"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "تفاصيل"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "الخزان"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "توصيل الأنسولين"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..66d8a03c8d --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,12 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "عنوان"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "تفاصيل"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "الخزان"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "توصيل الأنسولين"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..3a2f272363 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,67 @@ +/* The detail text representing no value */ +"–" = "—"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Add Carb Entry"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "الضخ المستمر"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "إلغاء"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "معاملات الكارب"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "موافق"; + +/* The title for the custom override entry screen */ +"Custom Override" = "تجاوز مخصص"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "حدود الضخ"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Title text for insulin model */ +"Insulin Model" = "نوع الأنسولين"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "حساسية الأنسولين"; + +/* The title text for the override presets screen */ +"Override Presets" = "تخطي الإعدادات المسبقة"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-Meal"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "التأثيرالسريع - كبار"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "التأثيرالسريع - أطفال"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "الخزان"; + +/* The text for the override preset name field placeholder */ +"Running" = "Running"; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "النموذج المستخدم بالتطبيق، يسمح بتخصيص مدة الفعالية."; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Unknown"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title for the workout override range */ +"Workout" = "التمارين"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/cs.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..3372566f8d --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,60 @@ +/* Separator between min and max glucose values */ +"-" = "-"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ předpokládá, že inzulín, který podal, aktivně pracuje na snížení hladiny glukózy po dobu 6 hodin. Toto nastavení nelze změnit."; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Přidat účet"; + +/* Back navigation button title */ +"Back" = "Zpět"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Úrovně bazálu"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušit"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Title of the setup button to continue */ +"Continue" = "Pokračovat"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Smazat účet"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limity podávání"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Hotovo"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Maximální bazální dávka je maximální automaticky upravená bazální dávka, kterou může %1$@ podat, aby vás dostal do vašeho korekčního rozsahu."; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maximální bolus je nejvyšší hodnota bolusu, kterou umožníte %1$@ najednou doporučit na pokrytí sacharidů nebo snížení vysoké hladiny glukózy."; + +/* The text for the override preset name setting */ +"Name" = "Název"; + +/* The default placeholder string for a credential */ +"Required" = "Povinné"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Uložit"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Ukládám..."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Klepnutím nastavit"; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Můžete si vybrat, jak %1$@ měří nejvyšší aktivitu rychle působícího inzulínu podle jednoho z těchto dvou inzulínových modelů."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/InsulinKit.strings new file mode 100644 index 0000000000..b36cc0fcca --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalje"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "E IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Ingen pumpe konfigureret"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "E Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Hændelseshistorik"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Ikke-pumpe insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulintilførsel"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..25a0610a54 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalje"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "E IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Ingen pumpe konfigureret"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "E Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Hændelseshistorik"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulintilførsel"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..decc22994b --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/da.lproj/Localizable.strings @@ -0,0 +1,715 @@ +/* Information about workout range relative to correction range */ +" higher " = " højere "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " lavere "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% of normal insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ antager, at den insulin, der er leveret, arbejder aktivt på at sænke din glukose i 6 timer. Denne indstilling kan ikke ændres."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ eller din glukose sikkerhedsgrænse afhængigt af, hvad der er højest"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheder tilbage på %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 før-måltid"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Træning"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Et kort hvis tekst vil ombryde til flere linjer, hvis jeg fortsætter med at skrive længe nok - denne længde bør gøre"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Et korrektionsområde er anderledes. Dette vil være et snævere interval."; + +/* No comment provided by engineer. */ +"A simple card" = "Et simpelt kort"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "En værdi på 0 E/time betyder, at du ikke vil modtage basal i den angivende tidesperiode."; + +/* No comment provided by engineer. */ +"Above the save button" = "Over gem knappen"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Absorptionstid"; + +/* No comment provided by engineer. */ +"Action Button" = "Handlingsknap"; + +/* The text for the override history duration */ +"Active Duration" = "Aktiv varighed"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivitet"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Tilføj"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Tilføj konto"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Tilføj kulhydrater"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Er du sikker på at du vil slette alle gamle indtastninger?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Er du sikker på at du vil slette alle reservoirværdier?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Godkend for at gemme behandlingsindstilling"; + +/* Back navigation button title */ +"Back" = "Tilbage"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basalrater"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal-, bolus- og korrektionsinsulindoser er sænket med %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal-, bolus- og korrektionsinsulindoser er forøget med %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal-, bolus- og korrektionsinsulindoser er uændrede."; + +/* No comment provided by engineer. */ +"Bottom component" = "Nederst komponent"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuller"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Annuller Override"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annuller midlertidig basal"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Kulhydratforhold"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Ændringer gælder kun ved denne Override. Standardindstillingerne af %@ bliver ikke påvirket."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Ændringerne gælder kun denne Override. Standardindstillingerne af %@ bliver ikke påvirket."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Vælg en længere absorptionstid ved større måltider, eller dem med fedt og proteiner. Det er blot hjælp til algoritmen og behøver ikke være nøjagtig."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Luk"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "ved %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "siden %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "ved %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "siden %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Fuldført."; + +/* The title for the override emoji condition section */ +"Condition" = "Tilstand"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Bekræft indstillingerne"; + +/* No comment provided by engineer. */ +"content" = "indhold"; + +/* Title of the setup button to continue */ +"Continue" = "Fortsæt"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Korrektionsinterval er det blodsukkerinterval, du gerne vil have Loop til at korrigere imod."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Korrektionværdier"; + +/* The text for a custom override */ +"Custom" = "Brugerdefineret"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Brugerdefineret Override"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Brugerdefineret forudindstilling"; + +/* Title of the carb entry date picker cell */ +"Date" = "Dato"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Slet"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Slet konto"; + +/* Button title to delete all objects */ +"Delete All" = "Slet alle"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Insulingrænser"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Insulingrænser er sikkerhedsgrænser for insulinafgivelsen."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Deaktiver forudindstilling"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Udført"; + +/* The text for the override duration setting */ +"Duration" = "Varighed"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Rediger"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Rediger kulhydrater"; + +/* The title for the override editing screen */ +"Edit Override" = "Rediger Override"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Ændringer gælder kun den aktuelle Override. Standardindstillingerne af %@ bliver ikke påvirket."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Ændringer forbliver kun gældende, indtil forindstillingen deaktiveres. Standardindstillingerne for %@ påvirkes ikke."; + +/* The button text for enabling a temporary override */ +"Enable" = "Aktiver"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Aktiver på ubestemt tid"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Aktiveret"; + +/* The text for the override start time */ +"End Time" = "Sluttidstid"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Angiv %1$@ værdi"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Indtast antal enheder"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Indtast en mængde i enheder pr time"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Hændelseshistorik"; + +/* No comment provided by engineer. */ +"Example" = "Eksempel"; + +/* Section title for fast absorbing food */ +"Fast" = "Hurtig"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "%1$@ antager, at insulin er aktivt i 6 timer. Du kan vælge mellem %2$@ forskellige modeller for, hvordan Loop bruger insulinets maksimale effekt i sine beregninger."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "For dette område skal du vælge det specifikke blodsukker (eller interval), som du vil have %1$@ til at sigte efter, når din basal justeres."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Få hjælp til indstillinger"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Gå tilbage"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Høj basalrate"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Høj kulhydratforhold"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Høj korrektionsværdi"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Høj sikkerhedsgrænse for blodsukker"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Høj insulinfølsomhed"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Høj maksimal basalrate"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Maksimal bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Høj før-måltid værdi"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Høj træningsværdi"; + +/* The text for the override history */ +"History" = "Historik"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Hvis indstillingerne er korrekte, skal du trykke på \"Gem indstillinger\" for at fortsætte."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Hvis du har brugt en CGM tidligere, er du sandsynligvis bekendt med at få advarsler ud fra et blodsukkerinterval, såsom 5-10 mmol/L eller 6-12 mmol/L."; + +/* Title text for insulin model */ +"Insulin Model" = "Insulinmodel"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulinfølsomheder"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinfølsomhed beskriver hvordan dit blodsukker påvirkes af 1 enhed insulin. Mindre værdier betyder, at mere insulin vil blive givet, når blodsukkeret er over målet. Værdier der er for små, kan forårsage faretruende lavt blodsukker."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Afbrudt %1$@: %2$@ af %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Det kan sættes så lavt som %1$@. Det kan sættes så højt som %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Lav basalrate"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Lav kulhydratforhold"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Lav korrektionsværdi"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Lav sikkerhedsgrænse for blodsukker"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Lav insulinfølsomhed"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Lav maksimal basalrate"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Lav maksimal bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Lav før-måltid værdi"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Lav træningsværdi"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maksimal basalrate"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Maksimal basalrate er den maksimale automatisk justerede basalrate, som %1$@ har lov til at sætte for at hjælpe med at nå dit korrektionsområde."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maksimal bolus"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maksimal bolus er den højeste bolus, som du vil tillade %1$@ at anbefale på én gang for at dække kulhydrater eller nedbringe højt blodsukker."; + +/* Section title for medium absorbing food */ +"Medium" = "Medium"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "yderligere indhold"; + +/* Alert action title to open error help */ +"More Info" = "Mere Info"; + +/* The text for the override preset name setting */ +"Name" = "Navn"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Ny indtastning"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Ny Forudindstilling"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Ingen basalinsulin"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Anden"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Totalt Insulinbehov"; + +/* Title for override history view */ +"Override History" = "Override historik"; + +/* The title text for the override presets screen */ +"Override Presets" = "Override forudindstillinger"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Forudindstillinger for Overrides kan sættes op i 'Konfigurations\"-delen af Indstillingsskærmen."; + +/* The section title of glucose overrides */ +"Overrides" = "Overrides"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Før-måltid"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Værdier før-måltid"; + +/* title for prescription section */ +"Prescription" = "Recept"; + +/* The section header text override presets */ +"PRESETS" = "FORUDINSTILLINGER"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Status."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pumpe-hændelse"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pumpe ubrugelig"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Hurtigt-virkende (Rapid) – Voksne"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Hurtigt-virkende (Rapid) – Børn"; + +/* The default placeholder string for a credential */ +"Required" = "Påkrævet"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Fortsæt indgivelse"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Fortsætter"; + +/* title for summary description section */ +"Review and Save Settings" = "Gennemse og gem indstillinger"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Gennemgå dine behandlingsindstillinger nedenfor. Hvis du vil redigere en af disse indstillinger, skal du trykke på \"Tilbage\" for at gå tilbage til denne skærm."; + +/* The text for the override preset name field placeholder */ +"Running" = "Løber"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Gem"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Gem basalrater?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Gem kulhydratforhold?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Gem korrektionsområde(er)?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Gem insulin-grænser?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Gem sikkerhedsgrænse for blodsukker?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Gem insulinfølsomheder?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Gem før-måltid område?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Vil du gemme træningsområdet?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Gemmer..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "PLANLAGT OVERRIDE"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PLANLAGT FORUDINDSTILLING"; + +/* Section title for slow absorbing food */ +"Slow" = "Langsom"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Nogle brugere vælger en værdi 2, 3 eller 4 gange deres højeste basalrate."; + +/* The text for the override start time */ +"Start Time" = "Starttidspunkt"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starter midlertidig basal"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Indsendt af %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Support"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Afbryd insulintilførsel"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Afbryder"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Skift forhåndsvisningstilstand"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Tryk på '+' for at oprette en ny brugerdefineret forudindstilling."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Tryk for at gemme"; + +/* The text for the override target range setting */ +"Target Range" = "Målområde"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Sænker midlertidigt dit blodsukker mål før et måltid for at modvirke stigning i blodsukker efter måltidet."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Hæver midlertidigt dit blodsukkermål før, under eller efter fysisk aktivitet for at reducere risikoen for lavt blodsukker."; + +/* The title for the override selection screen */ +"Temporary Override" = "Midlertidig Override"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "end dit korrektionsområde."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Den aktuelt valgte hurtigtvirkende insulinmodel anvendes som standard."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Ældre model, der bruges af Loop, og som gør det muligt at tilpasse insulinens varighed."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Den maksimale absorptionstid er %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Den maksimalt tilladte mængde er %@ gram"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Den hurtigvirkende insulinmodel for voksne antager maksimal effekt ved 75 minutter."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Den hurtigvirkende insulinmodel for voksne antager maksimal effekt ved 65 minutter."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Tidsplanen starter ved midnat og kan ikke indeholde en dosis på 0 E/time."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Behandlingsindstillinger"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Placeholder for behandlingsindstillinger"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Denne model forudsætter peak insulinaktivitet på 19 minutter."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Denne model forudsætter peak insulinaktivitet på 55 minutter."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Denne model forudsætter maksimal effekt ved 65 minutter."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Denne model forudsætter maksimal effekt ved 75 minutter."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Dette vil typisk være"; + +/* Label for offset from midnight picker */ +"Time" = "Tid"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Tider i %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Ikke implementeret"; + +/* No comment provided by engineer. */ +"Top component" = "Top-komponent"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Total"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "E/dag"; + +/* The unit string for units per hour */ +"U/hour" = "E/time"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Kunne ikke gemme"; + +/* The unit string for units */ +"Units" = "Enheder"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Ukendt"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Ikke-indstillet"; + +/* Placeholder text until value is entered */ +"Value" = "Værdi"; + +/* Label indicating validation is occurring */ +"Verifying" = "Validerer"; + +/* The title for the override editing screen */ +"View Override" = "Vis override"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Advarsel"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Arbejd sammen med sundhedspersonalet om at vælge en værdi, der er højere end din højeste planlagte basalrate, men så konservativ eller aggressiv som du føler dig tryg ved."; + +/* Title for the workout override range */ +"Workout" = "Motion"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Træningsområde er den blodsukkerværdi eller værdiinterval, du ønsker %1$@ at målrette under aktivitet. Dette interval vil bruges, når du aktiverer knappen som Preset for træning."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Værdier for træning"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Du kan tilføje forskellige kulhydratforhold for forskellige tidspunkter af dagen ved hjælp af ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Du kan tilføje forskellige insulinfølsomheder for forskellige tidspunkter af dagen ved at bruge ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Du kan tilføje forskellige intervaller for forskellige tidspunkter af dagen ved at bruge ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Du kan tilføje forskellige poster for forskellige tidspunkter af dagen ved at bruge ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Du kan vælge, hvordan %1$@ måler hurtigtvirkende insulins maksimale aktivitet i henhold til en af disse to insulinmodeller."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Du kan redigere en indstilling ved at trykke på en linje."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Du kan redigere indstillingen ved at trykke på linjen."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "En basalrate, er det antal af enheder i timen, som du skal bruge for at dække dit basale insulinbehov."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "din sikkerhedsgrænse for blodsukker"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Din læge kan hjælpe dig med at vælge et korrektionsområde, der passer til dig."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Insulinfølsomhed (ISF) henviser til det fald i blodsukkeret, der forventes fra én insulinenhed."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Dit før-måltid-område bør være den glukoseværdi (eller værdiinterval), du vil have %1$@ til at målrette efter det tidspunkt, du starter med at spise. Dette interval vil bruges, når du aktiverer knappen før-måltid."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/InsulinKit.strings new file mode 100644 index 0000000000..bd02fdf3fb --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "IE IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "IE Gesamt"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Ereignisverlauf"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Externes Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..11ac3138c0 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "IE IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Ereignisverlauf"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..f89d914a0c --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/de.lproj/Localizable.strings @@ -0,0 +1,721 @@ +/* Information about workout range relative to correction range */ +" higher " = " höher "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " niedriger "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% von normalem Insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ nimmt an, dass das abgegebene Insulin für 6 Stunden wirkt, um den Blutzucker zu senken. Diese Einstellung kann nicht geändert werden."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ oder Deine Sicherheitsgrenze, je nachdem, welcher Wert höher ist"; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ unterstützt 1 bis %2$@ Raten pro Tag."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ IE"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ IE verbleibend bei %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Vor dem Essen"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Training"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Eine Karte, deren Text in mehrere Zeilen umbrochen wird, wenn ich lange genug einsetze – diese Länge sollte"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Der Korrekturbereich ist anders als der Zielbereich und wird enger sein."; + +/* No comment provided by engineer. */ +"A simple card" = "Eine einfache Karte"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Ein Wert von 0 IE/h heißt, dass Sie in dieser Zeit kein Basalinsulin erhalten."; + +/* No comment provided by engineer. */ +"Above the save button" = "Über dem Speichern-Knopf"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Resorptionsdauer"; + +/* No comment provided by engineer. */ +"Action Button" = "Aktions-Knopf"; + +/* The text for the override history duration */ +"Active Duration" = "Dauer"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivität"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Hinzufügen"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Konto hinzufügen"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Kohlenhydrate hinzufügen"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Möchtest Du wirklich alle Verlaufseinträge löschen?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Möchtest Du wirklich alle Reservoirwerte löschen?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Authentisiere Dich zum Speichern der Therapieeinstellungen"; + +/* Back navigation button title */ +"Back" = "Zurück"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basalrate"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal-, Bolus- und Korrekturinsulinmengen werden verringert um %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal-, Bolus- und Korrekturinsulinmengen werden erhöht um %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal-, Bolus- und Korrekturinsulindosismengen bleiben unverändert."; + +/* No comment provided by engineer. */ +"Bottom component" = "Unterseitenkomponente"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Abbrechen"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Override abbrechen"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Temporäre Basalrate abbrechen"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "KH-Verhältnis"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Änderungen werden nur dann wirksam, wenn Du die Voreinstellung aktivierst. Die Standardeinstellungen von %@ werden nicht beeinflusst."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Änderungen gelten nur, wenn Sie die Voreinstellung aktivieren. Die Standardeinstellungen von %@ werden nicht beeinflusst."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Wähle eine längere Resorptionsdauer für größere Mahlzeiten, oder welche die viel Fett und Proteine beinhalten. Dies ist eine Unterstützung für den Algorithmus und muss nicht genau sein."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Schliessen"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "um %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "seit %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "um %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "seit %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Fertig."; + +/* The title for the override emoji condition section */ +"Condition" = "Bedingung"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Bestätige die Einstellungen"; + +/* No comment provided by engineer. */ +"content" = "Inhalt"; + +/* Title of the setup button to continue */ +"Continue" = "Weiter"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Der Korrekturbereich ist der Blutzuckerbereich, auf den Loop korrigieren soll."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Korrekturwerte"; + +/* The text for a custom override */ +"Custom" = "Benutzerdefiniert"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Benutzerdefinierter Override"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Voreinstellung"; + +/* Title of the carb entry date picker cell */ +"Date" = "Datum"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Löschen"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Konto löschen"; + +/* Button title to delete all objects */ +"Delete All" = "Alle löschen"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Abgabelimits"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Abgabelimits sind Leitplanken für Deine Insulinabgabe."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Deaktiviere Voreinstellung"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Fertig"; + +/* The text for the override duration setting */ +"Duration" = "Dauer"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Bearbeiten"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "KH-Eintrag bearbeiten"; + +/* The title for the override editing screen */ +"Edit Override" = "Bearbeite Voreinstellung"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Die Bearbeitung wirkt sich nur auf die aktive Voreinstellung aus. Die Standardeinstellungen von %@ werden nicht beeinflusst."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Änderungen bleiben nur bestehen, bis die Voreinstellung deaktiviert wird. Die Standardeinstellungen von %@ werden nicht beeinflusst."; + +/* The button text for enabling a temporary override */ +"Enable" = "Aktivieren"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Aktiviere unbegrenzt"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Aktiviert"; + +/* The text for the override start time */ +"End Time" = "Endzeit"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Wert für %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Eingabe der Einheiten"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Eingabe Rate in Einheiten pro Stunde"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Ereignisverlauf"; + +/* No comment provided by engineer. */ +"Example" = "Beispiel"; + +/* Section title for fast absorbing food */ +"Fast" = "Schnell"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Bei schnell wirkendem Insulin geht %1$@ davon aus, dass es 6 Stunden lang wirkt. Du kannst aus %2$@ verschiedenen Modellen wählen, wie die App die Spitzenaktivität des Insulins misst."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Wähle für diesen Bereich den spezifischen Blutzucker (oder Wertebereich) aus, den %1$@ bei der Anpassung Deines Basalinsulins anstreben soll."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Bekomme Unterstützung bei den Therapieeinstellungen"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Zurück"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Hohe Basalrate"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Hohes Kohlenhydratverhältnis"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Hoher Korrekturwert"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Hohe Blutzuckersicherheitsgrenze"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Hohe Insulinempfindlichkeit"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Hohe maximale Basalrate"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Hoher maximaler Bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Hoher Vor dem Essen Wert"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Hoher Trainings Wert"; + +/* The text for the override history */ +"History" = "Historie"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Wenn diese Einstellungen für Dich gut aussehen, tippe auf Einstellungen speichern, um fortzufahren."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Wenn Du bereits ein CGM verwendest, bist Du wahrscheinlich mit einem Zielbereich vertraut, den Du für Deinen Blutzuckeralarm verwendest, z. B. 70–180 mg/dL oder 90–200 mg/dL."; + +/* Title text for insulin model */ +"Insulin Model" = "Insulin-Modell"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulinempfindlichkeit"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Die Insulinempfindlichkeit beschreibt, wie Dein Blutzucker auf die Insulindosis von 1 Einheit reagiert. Kleinere Werte bedeuten, dass mehr Insulin verabreicht wird, wenn der Blutzucker über dem Ziel liegt. Zu kleine Werte können gefährlich niedrige Blutzuckerwerte verursachen."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "%1$@ unterbrochen: %2$@ von %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Es kann auf %1$@ eingestellt werden. Es kann bis zu %2$@ eingestellt werden."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Niedrige Basalrate"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Niedriges Kohlenhydratverhältnis"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Niedriger Korrekturwert"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Niedrige Blutzuckersicherheistgrenze"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Niedrige Insulinempfindlichkeit"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Niedrige maximale Basalrate"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Niedriger maximaler Bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Niedriger Vor dem Essen Wert"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Niedriger Trainings Wert"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maximale Basalrate"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Die maximale Basalrate ist die maximale automatisch angepasste Basalrate, die %1$@ anwenden darf, um Deinen Korrekturbereich zu erreichen."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maximaler Bolus"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maximaler Bolus ist die höchste Bolusmenge, die Du %1$@ auf einmal erlaubst zu geben, um Kohlenhydrate abzudecken oder hohe Glukosewerte zu senken."; + +/* Section title for medium absorbing food */ +"Medium" = "Mittlere"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "mehr Inhalt"; + +/* Alert action title to open error help */ +"More Info" = "Weitere Info"; + +/* The text for the override preset name setting */ +"Name" = "Name"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Neuer Eintrag"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Neue Voreinstellung"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Kein Basal Insulin"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Andere"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Gesamtinsulinbedarf"; + +/* Title for override history view */ +"Override History" = "Historie"; + +/* The title text for the override presets screen */ +"Override Presets" = "Voreinstellungen"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Voreinstellungen der Overrides können im Abschnitt Konfiguration des Einstellungsbildschirms eingerichtet werden."; + +/* The section title of glucose overrides */ +"Overrides" = "Overrides"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Vor dem Essen"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Vor dem Essen Wert"; + +/* title for prescription section */ +"Prescription" = "Verschreibung"; + +/* The section header text override presets */ +"PRESETS" = "VOREINSTELLUNGEN"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Verarbeite…"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pumpen-Ereignis"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pumpe funktionsunfähig"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Schnellwirkend - Erwachsene"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Schnellwirkend - Kinder"; + +/* The default placeholder string for a credential */ +"Required" = "Erforderlich"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Abgabe fortsetzen"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Fortsetzen"; + +/* title for summary description section */ +"Review and Save Settings" = "Überprüfen und Speichern"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Überprüfe Deine Therapieeinstellungen. Wenn Du eine dieser Einstellungen bearbeiten möchtest, tippe auf Zurück, um zum Bearbeiten-Bildschirm zurückzukehren."; + +/* The text for the override preset name field placeholder */ +"Running" = "Laufen"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Speichern"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Basalrate speichern?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Kohlenhydrateverhältnis speichern?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Korrekturbereich(e) speichern?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Abgabelimits speichern?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Blutzuckersicherheitsgrenze speichern?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Insulinempfindlöichkeit speichern?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Vor dem Essen speichern?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Trainingsbereich speichern?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Speichere…"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "GEPLANTER OVERRIDE"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "GEPLANTE VOREINSTELLUNG"; + +/* Section title for slow absorbing food */ +"Slow" = "Langsam"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Manche Benutzer wählen einen Wert, der dem 2-, 3- oder 4-fachen ihrer höchsten geplanten Basalrate entspricht."; + +/* The text for the override start time */ +"Start Time" = "Startzeit"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starten der temporären Basalrate"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Abgegeben von %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Unterstützung"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Abgabe unterbrechen"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Unterbrechen"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Vorschaustatus wechseln"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Tippe '+' um eine Benutzer definierte Voreinstellung zu erstellen."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Klicken zum setzten"; + +/* The text for the override target range setting */ +"Target Range" = "Zielbereich"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Senke Deinen Blutzuckerziel vor einer Mahlzeit vorübergehend ab, um Blutzuckerspitzen nach der Mahlzeit auszugleichen."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Erhöhe Dein Blutzuckerziel vorübergehend vor, während oder nach körperlicher Aktivität, um das Risiko von Ereignissen mit niedrigem Blutzucker zu verringern."; + +/* The title for the override selection screen */ +"Temporary Override" = "Vorübergehende Override"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "als Ihr Korrekturbereich."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Das aktuell ausgewählte schnell wirkende Insulinmodell wird als Standard verwendet."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Das von Loop verwendete Legacy-Modell, das die Anpassung der Aktionsdauer ermöglicht."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Die maximale Resorptionszeit beträgt %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Die maximale Anzahl an Gramm is %@ grams"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Das schnell wirkende Erwachsenenmodell geht von einer maximalen Aktivität nach 75 Minuten aus."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Das schnell wirkende Kindermodell geht von einer Spitzenaktivität nach 65 Minuten aus."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Der Zeitplan beginnt um Mitternacht und darf keine Rate von 0 IE/h enthalten."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Therapieeinstellungen"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Therapieeinstellungen"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Dieses Modell geht von einer maximalen Insulinaktivität nach 19 Minuten aus."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Dieses Modell geht von einer maximalen Insulinaktivität nach 55 Minuten aus."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Dieses Modell geht von einer maximalen Insulinaktivität nach 65 Minuten aus."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Dieses Modell geht von einer maximalen Insulinaktivität nach 75 Minuten aus."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Diese Einstellung bestimmt auch eine Sicherheitsgrenze für die automatische Dosierung. %1$@ begrenzt die automatische Abgabe, um die Menge an aktivem Insulin unter dem Doppelten Deines maximalen Bolus zu halten."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Ist in der Regel "; + +/* Label for offset from midnight picker */ +"Time" = "Zeit"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Zeit in %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Zu implementieren"; + +/* No comment provided by engineer. */ +"Top component" = "Oben Komponente"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Gesamt"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "IE/Tag"; + +/* The unit string for units per hour */ +"U/hour" = "IE/Stunde"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Speichern fehlgeschlagen"; + +/* The unit string for units */ +"Units" = "Einheiten"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Unbekannt"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "nicht gesetzt"; + +/* Placeholder text until value is entered */ +"Value" = "Wert"; + +/* Label indicating validation is occurring */ +"Verifying" = "Überprüfen"; + +/* The title for the override editing screen */ +"View Override" = "Zeige Voreinstellung"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Warnung"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Arbeite mit Deinem medizinischen Betreuer zusammen, um einen Wert zu finden, der höher ist als Deine höchste geplante Basalrate, aber so konservativ oder aggressiv, sodass Du Dich damit wohlfühlst."; + +/* Title for the workout override range */ +"Workout" = "Training"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Trainingsbereich ist der Blutzuckerzielbereich, den %1$@ während der Aktivität anstreben soll. Dieser Bereich wird wirksam, wenn Du die Trainingsvoreinstellungstaste aktivierst."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Trainingswerte"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Mit ➕ kannst Du unterschiedliche Kohlenhydratverhältnisse für verschiedene Tageszeiten hinzufügen."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Mit ➕ kannst Du unterschiedliche Insulinempfindlichkeiten für verschiedene Tageszeiten hinzufügen."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Mit ➕ kannst Du unterschiedliche Bereiche für verschiedene Tageszeiten hinzufügen."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Mit ➕ kannst Du Einträge für verschieden Tageszeiten hinzufügen."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Du kannst wählen, wie %1$@ die Spitzenaktivität des schnell wirkenden Insulins gemäß einem dieser beiden Insulinmodelle misst."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Du kannst eine Einstellung bearbeiten, indem Du auf eine beliebige Zeile tippst."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Du kannst die Einstellung bearbeiten, indem Du auf die Zeile tippst."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Deine Basalrate ist die Anzahl der Einheiten pro Stunde, die Du verwenden möchtest, um Deinen Hintergrund-Insulinbedarf zu decken."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "Deine Blutzuckersicherheitsgrenze"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Ihr medizinischer Betreuer kann Ihnen bei der Auswahl eines für Sie geeigneten Korrekturbereichs behilflich sein."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Der Insulinempfindlichkeitsfaktor (ISF) ist der Blutzuckerabfall, der von einer Einheit Insulin erwartet wird."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Der Bereich vor dem Essen sollte der Blutzucker sein, den %1$@ bis zum ersten Bissen Deiner Mahlzeit anstreben soll. Dieser Bereich wird wirksam, wenn Du die Voreinstellungstaste vor dem Essen aktivierst."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..d0c49cd62c --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,3 @@ +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..9099ee8b0c --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/en.lproj/Localizable.strings @@ -0,0 +1,8 @@ +/* + Localizable.strings + LoopKit + + Created by Pete Schwamb on 3/19/23. + Copyright © 2023 LoopKit Authors. All rights reserved. +*/ + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/InsulinKit.strings new file mode 100644 index 0000000000..348dd7270f --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Título"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalle"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservorio"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historial de Eventos"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Insulina sin bomba"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..838e3c9ff5 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Título"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalle"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservorio"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historial de Eventos"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..56eef4bad9 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/es.lproj/Localizable.strings @@ -0,0 +1,703 @@ +/* Information about workout range relative to correction range */ +" higher " = "más alta"; + +/* Information about pre-meal range relative to correction range */ +" lower " = " inferior "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% de insulina normal"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ asume que la insulina que ha administrado está trabajando activamente para reducir el nivel de glucosa durante 6 horas. Esta configuración no se puede cambiar."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ o su Límite de Seguridad de Glucosa, el que sea mayor"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "quedan %1$@ unidades a las %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Pre-Comida"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Ejercicio"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Un Rango de Corrección es diferente. Este será un rango más estrecho."; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Un valor de 0 U/hora significa que se programará que no reciba insulina basal."; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Tiempo de Absorción"; + +/* No comment provided by engineer. */ +"Action Button" = "Botón de acción"; + +/* The text for the override history duration */ +"Active Duration" = "Duración activa"; + +/* The title for the override emoji activity section */ +"Activity" = "Actividad"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Agregar"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Agregar Cuenta"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Agregar Entrada de Carb"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "¿Estás seguro de querer eliminar todos las entradas históricas?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "¿Estás seguro de querer eliminar todos los datos del reservorio?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Autenticarse para guardar la configuración de la terapia"; + +/* Back navigation button title */ +"Back" = "Atrás"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Tasas basales"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolos y cantidades de corrección de insulina serán reducidos de %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolos y cantidades de corrección de insulina serán aumentados de %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolos y cantidades de corrección de insulina sin cambio."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Cancelar de Sobreescritura"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Cancelación de basal temporal"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Ratios de carbohidratos"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Los cambios sólo se aplicarán cuando habilite la sobreescritura. Los valores por defecto de %@ no seran afectados."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Los cambios sólo se aplicarán esta vez cuando habilite el Ajuste Preestablecido. Los valores por defecto de %@ no seran afectados."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Elija un tiempo de absorción más largo para comidas más grandes, o aquellas que contienen grasas y proteínas. Esta es solo una guía para el algoritmo y no necesita ser exacta."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Cerrar"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "a %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "hace %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "a %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "hace %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Completado."; + +/* The title for the override emoji condition section */ +"Condition" = "Condición"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Confirmar ajuste"; + +/* No comment provided by engineer. */ +"content" = "contenido"; + +/* Title of the setup button to continue */ +"Continue" = "Continuar"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "El rango de corrección es el rango de glucosa en sangre al que usted le gustaría que Loop corrigiera."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Valores de corrección"; + +/* The text for a custom override */ +"Custom" = "Personalizado"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Sobreescritura personalizada"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Ajuste Preestablecido personalizado"; + +/* Title of the carb entry date picker cell */ +"Date" = "Fecha"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Eliminar"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Eliminar Cuenta"; + +/* Button title to delete all objects */ +"Delete All" = "Eliminar Todos"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Límites de Administración de Insulina"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Los límites de administración es un mecanismo de seguridad para la administración de su insulina."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Desactivar preselección"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Completado"; + +/* The text for the override duration setting */ +"Duration" = "Duración"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Editar"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Editar Entrada de Carb"; + +/* The title for the override editing screen */ +"Edit Override" = "Editar sobreescritura"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "La edición afecta sólo a la sobreescritura activa. Los ajustes preestablecidos de %@ no se modificarán."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Las ediciones persisten solo hasta que se deshabilita el ajuste preestablecido. La configuración predeterminada de %@ no se verá afectada."; + +/* The button text for enabling a temporary override */ +"Enable" = "Activar"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Habilitar indefinidamente"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Habilitado"; + +/* The text for the override start time */ +"End Time" = "Hora de finalización"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Introduzca el valor %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Ingrese una cantidad de unidades"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Ingrese una tasa de unidade por hora"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Historial de Eventos"; + +/* No comment provided by engineer. */ +"Example" = "Ejemplo"; + +/* Section title for fast absorbing food */ +"Fast" = "Rápido"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "En el caso de la insulina de acción rápida, %1$@ asume que actúa activamente durante 6 horas. Puedes elegir entre %2$@ modelos diferentes para que la aplicación mida el pico de actividad de la insulina."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Para este rango, elija el valor de glucosa específico (o el rango de valores) que desea que %1$@ tenga como objetivo para ajustar su insulina basal."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Obtener ayuda con la Configuración de la Terapia"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Volver atrás"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Tasa basal alta"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Alto ratio de carbohidratos"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Alto valor de corrección"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Límite de seguridad de glucosa alta"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Alta sensibilidad a la insulina"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Tasa basal máxima alta"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Bolo máximo alto"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Alto valor antes de la comida"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Alto valor para actividad física"; + +/* The text for the override history */ +"History" = "Historial"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Si estos ajustes le parecen bien, pulse Guardar configuración para continuar."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Si ha usado un CGM anteriormente, probablemente esté familiarizado con el rango objetivo como un amplio rango de valores que le gustaría para sus alertas de notificación de glucosa, como 70-180 mg/dL o 90-200 mg/dL."; + +/* Title text for insulin model */ +"Insulin Model" = "Modelo de Insulina"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Sensibilidad a la insulina"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "La sensibilidad a la insulina describe cómo responde su glucemia a 1 unidad de insulina. Valores menores implican que se administrará más insulina."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "%1$@ interrumpido: %2$@ de %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Se puede configurar tan bajo como %1$@. \nSe puede configurar tan alto como %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Tasa basal baja"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Ratio bajo para carbohidratos"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "El Valor de Corrección es bajo"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "El valor de Límite de seguridad de Glucosa es bajo"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "El valor de Sensibilidad a la Insulina es bajo"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Tasa basal máxima baja"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "El valor de Bolo Máximo es bajo"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "El valor de Pre-Comidas es bajo"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "El valor para actividad física es bajo"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Perfil Basal Máximo"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "La Tasa Basal Máxima es el máximo ajuste automático que %1$@ tiene permitido habilitar para ayudar a alcanzar tu rango de corrección."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Bolo Máximo"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "El Bolo Máximo es la cantidad de bolo más alta que permitirá que %1$@ recomiende de una sola vez para cubrir los carbohidratos o reducir los niveles altos de glucosa."; + +/* Section title for medium absorbing food */ +"Medium" = "Medio"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "más contenido"; + +/* Alert action title to open error help */ +"More Info" = "Más Info"; + +/* The text for the override preset name setting */ +"Name" = "Nombre"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Nueva entrada"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nueva sobreescritura preestablecida"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Sin insulina basal"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Otro"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Necesidades de insulina"; + +/* Title for override history view */ +"Override History" = "Historial de sobreescrituras"; + +/* The title text for the override presets screen */ +"Override Presets" = "Sobreescrituras preestablecidas"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Las sobreescrituras preestablecidas pueden configurarse en la sección de Configuración de la pantalla de ajustes."; + +/* The section title of glucose overrides */ +"Overrides" = "Sobreescrituras"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-Comida"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Valores Pre-Comidas"; + +/* title for prescription section */ +"Prescription" = "Prescripción"; + +/* The section header text override presets */ +"PRESETS" = "PREESTABLECIDAS"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Progresando."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Evento de microinfusadora"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Bomba inoperable"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Acción Rápida — Adultos"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Acción Rápida — Niños"; + +/* The default placeholder string for a credential */ +"Required" = "Requerido"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservorio"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Resumir la infusión"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Resumiendo"; + +/* title for summary description section */ +"Review and Save Settings" = "Revisar y guardar la configuración"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Revisa los ajustes de tu terapia a continuación. Si desea modificar alguno de estos ajustes, pulse Atrás para volver a esa pantalla."; + +/* The text for the override preset name field placeholder */ +"Running" = "Correr"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Agregar"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "¿Guardar tasas de insulina basal?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "¿Guardar ratios de carbohidratos?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "¿Guardar rango(s) de corrección?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "¿Guardar límites de administración?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "¿Guardar límite de seguridad de glucosa?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "¿Guardar sensibilidades a la insulina?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "¿Guardar rango antes de las comidas?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "¿Guardar rango para actividad física?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Guardando..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SOBREESCRITURA PROGRAMADA"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PRESELECCIÓN PROGRAMADA"; + +/* Section title for slow absorbing food */ +"Slow" = "Lento"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Algunos usuarios eligen un valor 2, 3 o 4 veces su tasa basal programada más alta."; + +/* The text for the override start time */ +"Start Time" = "Tiempo de inicio"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Inicio de basal temporal"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Enviado por %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Ayuda"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspender la infusión"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspendiendo"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Cambiar Estado de Vista Previa"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Símbolo"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Pulsa \"+\" para crear un nuevo preajuste personalizado."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Toca para definir"; + +/* The text for the override target range setting */ +"Target Range" = "Rango objetivo"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduzca temporalmente su objetivo de glucosa antes de una comida para reducir los picos de glucosa después de las comidas."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Aumente temporalmente su objetivo de glucosa antes, durante o después de la actividad física para reducir el riesgo de tener eventos de glucosa baja."; + +/* The title for the override selection screen */ +"Temporary Override" = "Sobreescritura temporal"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "que su Rango de Corrección."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Se utilizará por defecto el modelo de insulina de acción rápida actualmente seleccionado."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "El modelo heredado utilizado por Loop, que permite personalizar la duración de la acción de la insulina."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "El tiempo máximo de absorción es %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "La cantidad máxima permitida es %@ gramos"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "El modelo de adultos de acción rápida supone un pico de efecto a los 75 minutos."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "El modelo para niños de acción rápida supone un pico de efecto a los 65 minutos."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "El horario comienza a medianoche y no puede contener una tasa de 0 U/h."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Ajustes de la Terapia"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Marcador de ayuda para la configuracion de terapia"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Este modelo asume la actividad máxima de la insulina a los 19 minutos."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Este modelo asume la actividad máxima de la insulina a los 55 minutos."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Este modelo asume la actividad máxima de la insulina a los 65 minutos."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Este modelo asume como pico de la insulina a los 75 minutos."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Esto será típicamente"; + +/* Label for offset from midnight picker */ +"Time" = "Hora"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Horario in %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Por desarrollarse"; + +/* No comment provided by engineer. */ +"Top component" = "Componente superior"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Total"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "U/día"; + +/* The unit string for units per hour */ +"U/hour" = "U/hora"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "No se puede guardar"; + +/* The unit string for units */ +"Units" = "Unidades"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Desconocido"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Sin configurar"; + +/* Placeholder text until value is entered */ +"Value" = "Valor"; + +/* Label indicating validation is occurring */ +"Verifying" = "Verificando"; + +/* The title for the override editing screen */ +"View Override" = "Ver la sobreescritura"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Aviso"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Trabaje con su proveedor de atención médica para elegir un valor que sea más alto que su tasa basal programada más alta, pero que sea tan conservadora o agresiva segun su preferencia."; + +/* Title for the workout override range */ +"Workout" = "Ejercicio"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Rango de ejercicio físico es el valor de glucosa o el rango de valores que desea que %1$@ tenga como objetivo durante la realización de ejercicio físico. Este rango entrará en vigencia cuando active el botón Preajuste de Ejercicio Físico."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Valores de ejercicio físico"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Puede añadir diferentes proporciones de carbohidratos para diferentes momentos del día utilizando la ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Puede agregar diferentes sensibilidades de insulina para diferentes momentos del día usando el ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Puede agregar diferentes rangos para diferentes momentos del día usando el ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Puede agregar entradas para diferentes momentos del día usando el ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Puedes elegir cómo %1$@ mide el pico del efecto de la insulina de acción rápida en función de uno de estos dos modelos de insulina."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Puede editar una configuración tocando cualquier elemento de línea."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Puede editar la configuración pulsando sobre la linea."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Su tasa basal de insulina es la cantidad de unidades por hora que desea usar para cubrir sus necesidades de insulina de fondo, no relacionadas con las comidas."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "su Límite de Seguridad de Glucosa"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Su proveedor de atención médica puede ayudarlo a elegir un rango de corrección adecuado para usted."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Su Factor de Sensibilidad a la Insulina (ISF, por sus siglas en inglés) es la caída de glucosa que se espera por la administracion de una unidad de insulina."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Su rango previo a la comida debe ser el valor de glucosa (o el rango de valores) que desea que %1$@ tenga como objetivo para cuando tome su primer bocado de su comida. Este rango entrará en vigencia cuando active el botón Pre-Comida Preajuste."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/InsulinKit.strings new file mode 100644 index 0000000000..d21f234c49 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Säiliö"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Tapahtumahistoria"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..663d866239 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Säiliö"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Tapahtumahistoria"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..4e26c87929 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,679 @@ +/* Information about workout range relative to correction range */ +" higher " = " korkeampi "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " matalampi "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% norm. insuliinista"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ tai glukoosin turvaraja riippuen siitä, kumpi on korkeampi"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ yksikköä jäljellä klo %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Ennen ateriaa"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Liikunta"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Kortti, jonka teksti rivittyy usealle riville, jos jatkan kirjoittamista riittävän kauan – tämän pituuden pitäisi riittää"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Korjausalue tarkoittaa eri asiaa. Se on kapeampi alue."; + +/* No comment provided by engineer. */ +"A simple card" = "Yksinkertainen kortti"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Arvo 0 U/t tarkoittaa, että et saa lainkaan basaali-insuliinia."; + +/* No comment provided by engineer. */ +"Above the save button" = "Tallenna-painikkeen yläpuolella"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Imeytymisaika"; + +/* No comment provided by engineer. */ +"Action Button" = "Toimintopainike"; + +/* The text for the override history duration */ +"Active Duration" = "Aktiivinen kesto"; + +/* The title for the override emoji activity section */ +"Activity" = "Liikunta"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Lisää"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Lisää tili"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Lisää hiilihydraatteja"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Haluatko varmasti poistaa kaikki historiatiedot?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Haluatko varmasti poistaa kaikki säiliön arvot?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Varmenna tallentaaksesi hoitoasetukset"; + +/* Back navigation button title */ +"Back" = "Takaisin"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basaalitasot"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määriä vähennetään %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määriä lisätään %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määrät pysyvät ennallaan."; + +/* No comment provided by engineer. */ +"Bottom component" = "Alaosan komponentti"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Kumoa"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Kumoa tilapäisasetus"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Kumotaan tilapäinen basaali"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Hiilihydraattisuhteet"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Muutokset otetaan käyttöön vain tällä kertaa, kun otat tilapäisasetuksen käyttöön. Alkuperäiset %@-asetukset pysyvät ennallaan."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Muutokset ovat voimassa vain tällä kertaa, kun esiasetus otetaan käyttöön. Tämä ei vaikuta alkuperäisiin %@ -asetuksiin."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Valitse pidempi imeytymisaika isoille tai paljon rasvaa ja proteiineja sisältäville aterioille. Tämä on suuntaa antava ohje, eikä sen tarvitse olla tarkka."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Sulje"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "klo %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "%1$@ jälkeen"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "klo %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "%1$@ jälkeen"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Valmis."; + +/* The title for the override emoji condition section */ +"Condition" = "Vointi"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Vahvista asetus"; + +/* No comment provided by engineer. */ +"content" = "sisältö"; + +/* Title of the setup button to continue */ +"Continue" = "Jatka"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Korjausalue on glukoositavoitealue, johon haluat Loopin korjaavan."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Korjausarvot"; + +/* The text for a custom override */ +"Custom" = "Mukautettu"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Mukautettu tilapäisasetus"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Mukautettu esiasetus"; + +/* Title of the carb entry date picker cell */ +"Date" = "Aika"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Poista"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Poista tili"; + +/* Button title to delete all objects */ +"Delete All" = "Poista kaikki"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Annostelurajat"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Annostelurajoilla tarkoitetaan insuliinin annostelun turvarajoja."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Poista esiasetus käytöstä"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Valmis"; + +/* The text for the override duration setting */ +"Duration" = "Kesto"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Muokkaa"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Muokkaa hiilihydraatteja"; + +/* The title for the override editing screen */ +"Edit Override" = "Muokkaa tilapäisasetusta"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Muokkaus vaikuttaa vain aktiiviseen tilapäisasetukseen. Alkuperäiset %@-asetukset säilyvät ennallaan."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Muokkaukset säilyvät siihen asti, kun esiasetus poistetaan käytöstä. Tämä ei vaikuta alkuperäisiin %@ -asetuksiin."; + +/* The button text for enabling a temporary override */ +"Enable" = "Ota käyttöön"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Ilman aikarajaa"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Käytössä"; + +/* The text for the override start time */ +"End Time" = "Päättymisaika"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Syötä %1$@ arvo"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Syötä yksikkömäärä"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Syötä nopeus yksiköinä tunnissa"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Tapahtumahistoria"; + +/* No comment provided by engineer. */ +"Example" = "Esimerkki"; + +/* Section title for fast absorbing food */ +"Fast" = "Nopea"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "%1$@ olettaa, että nopeavaikutteinen insuliini vaikuttaa aktiivisesti 6 tuntia. Valittavana on %2$@ eri mallia siitä, miten sovellus mittaa insuliinin vaikutushuipun."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Valitse tähän glukoosiarvo (tai arvoalue), jota %1$@ tavoittelee säätäessään basaalin määrää."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Apua hoitoasetuksiin"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Takaisin"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Korkea basaalitaso"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Korkea hiilihydraattisuhde"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Korkea korjausarvo"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Korkea glukoosin turvaraja"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Korkea insuliiniherkkyys"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Korkea suurin sallittu basaalitaso"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Korkea suurin sallittu bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Korkea Ennen ateriaa -arvo"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Korkea liikuntatilan arvo"; + +/* The text for the override history */ +"History" = "Historia"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Jos nämä asetukset näyttävät sopivilta, jatka napauttamalla Tallenna asetukset."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Jos olet käyttänyt jatkuvaa glukoosinseurantaa aiemmin, tavoitealue on todennäköisesti tuttu laajana glukoosiarvoalueena, jonka haluat hälytyksille, esimerkiksi 4–10 mmol/L tai 5–11 mmol/L."; + +/* Title text for insulin model */ +"Insulin Model" = "Insuliinimalli"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insuliiniherkkyydet"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insuliiniherkkyys kuvaa sitä, kuinka paljon verensokerisi laskee yhdellä insuliiniyksiköllä. Liian pienet arvot voivat johtaa vaarallisen matalaan verensokeriin."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Keskeytetty %1$@: %2$@ / %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Se voidaan asettaa alimmillaan %1$@ ja korkeimmillaan %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Matala basaalitaso"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Matala hiilihydraattisuhde"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Matala korjausarvo"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Matala glukoosin turvaraja"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Matala insuliiniherkkyys"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Matala suurin sallittu basaalitaso"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Matala suurin sallittu bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Matala Ennen ateriaa -arvo"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Matala liikuntatilan arvo"; + +/* Placeholder for maximum value in glucose range */ +"max" = "maks."; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Suurin sallittu basaalitaso"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Suurin sallittu bolus"; + +/* Section title for medium absorbing food */ +"Medium" = "Keskiverto"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min."; + +/* No comment provided by engineer. */ +"more content" = "lisää sisältöä"; + +/* Alert action title to open error help */ +"More Info" = "Lisätietoa"; + +/* The text for the override preset name setting */ +"Name" = "Nimi"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Uusi merkintä"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Uusi esiasetus"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Ei basaali-insuliinia"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Muu"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Kokonaisinsuliinitarve"; + +/* Title for override history view */ +"Override History" = "Tilapäisasetushistoria"; + +/* The title text for the override presets screen */ +"Override Presets" = "Tilapäisasetukset"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Tilapäisasetuksia voidaan luoda Asetukset-näkymän Määritykset-osiossa."; + +/* The section title of glucose overrides */ +"Overrides" = "Tilapäisasetukset"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Ennen ateriaa"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Ennen ateriaa -arvot"; + +/* title for prescription section */ +"Prescription" = "Resepti"; + +/* The section header text override presets */ +"PRESETS" = "ESIASETUKSET"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Edistyminen."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pumpputapahtuma"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pumppu ei toiminnassa"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Nopeavaikutteinen – aikuiset"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Nopeavaikutteinen – lapset"; + +/* The default placeholder string for a credential */ +"Required" = "Pakollinen"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Säiliö"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Jatka annostelua"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Jatketaan"; + +/* title for summary description section */ +"Review and Save Settings" = "Tarkista ja tallenna asetukset"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Tarkista alla olevat hoitoasetukset. Jos haluat muokata jotakin näistä asetuksista, napauta Takaisin."; + +/* The text for the override preset name field placeholder */ +"Running" = "Juoksu"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Tallenna"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Tallenna basaalitasot?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Tallenna hiilihydraattisuhteet?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Tallenna korjausalue(et)?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Tallenna annostelurajat?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Tallenna glukoosin turvaraja?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Tallenna insuliiniherkkyydet?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Tallenna Ennen ateriaa -alue?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Tallenna liikuntatila-alue?"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "AJASTETTU TILAPÄISASETUS"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "AJASTETTU ESIASETUS"; + +/* Section title for slow absorbing food */ +"Slow" = "Hidas"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Useimmat käyttäjät valitsevat omaa korkeinta basaalitasoa 2, 3 tai 4 kertaa suuremman arvon."; + +/* The text for the override start time */ +"Start Time" = "Alkaa"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Aloitetaan tilapäinen basaali"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Lähettänyt %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Tuki"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pysäytä annostelu"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pysäytetään"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Vaihda esikatselutila"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symboli"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Luo uusi mukautettu esiasetus napauttamalla '+'."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Napauta asettaaksesi"; + +/* The text for the override target range setting */ +"Target Range" = "Tavoitealue"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Laske glukoositavoitetta väliaikaisesti ennen ateriaa vaikuttaaksesi aterian jälkeiseen glukoosin nousuun."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Nosta glukoositavoitetta väliaikaisesti ennen liikuntaa, sen aikana tai sen jälkeen, jotta matalan glukoosin riski pienenee."; + +/* The title for the override selection screen */ +"Temporary Override" = "Tilapäisasetus"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "kuin korjausalue."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Loopin vanha insuliinimalli, jossa voi muokata insuliinin vaikutusaikaa."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Pisin sallittu imeytymisaika on %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Suurin sallittu määrä on %@ grammaa"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Nopeavaikutteinen aikuisten malli olettaa vaikutushuippua 75 minuutissa."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Nopeavaikutteinen lasten malli olettaa vaikutushuippua 65 minuutissa."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Aikataulu alkaa keskiyöstä, eikä se voi sisältää basaalitasoa 0 U/t."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Hoitoasetukset"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Hoitoasetusten tuen paikkamerkki"; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Tässä mallissa oletetaan, että insuliinin vaikutushuippu on 55 minuutissa."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Tässä mallissa oletetaan, että insuliinin vaikutushuippu on 65 minuutissa."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Tässä mallissa oletetaan, että insuliinin vaikutushuippu on 75 minuutissa."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Tämä on yleensä"; + +/* Label for offset from midnight picker */ +"Time" = "Aika"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Aika %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Toteutettava"; + +/* No comment provided by engineer. */ +"Top component" = "Ylin komponentti"; + +/* The unit string for units per hour */ +"U/hour" = "U/tunti"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Ei voitu tallentaa"; + +/* The unit string for units */ +"Units" = "Yksikköä"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Tuntematon"; + +/* Placeholder text until value is entered */ +"Value" = "Arvo"; + +/* Label indicating validation is occurring */ +"Verifying" = "Tarkistetaan"; + +/* The title for the override editing screen */ +"View Override" = "Näytä tilapäisasetus"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Varoitus"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Keskustele terveydenhuollon ammattilaisen kanssa valitaksesi arvon, joka on korkeampi kuin korkein ohjelmoitu basaalitasosi, mutta niin konservatiivinen tai aggressiivinen, että tunnet olosi mukavaksi."; + +/* Title for the workout override range */ +"Workout" = "Liikunta"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Liikuntatila on glukoosiarvo tai arvoalue, johon %1$@ tähtää liikunnan aikana. Tämä alue tulee voimaan, kun aktivoit Liikuntatila-painikkeen."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Liikuntatilan arvot"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Voit lisätä erilaisia hiilihydraattisuhteita eri aikoihin päivästä napauttamalla ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Voit lisätä erilaisia insuliiniherkkyyksiä eri aikoihin päivästä napauttamalla ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Voit lisätä erilaisia korjausalueita eri aikoihin päivästä napauttamalla ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Voit lisätä merkintöjä eri aikoihin päivästä napauttamalla ➕."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Voit muokata asetusta napauttamalla mitä tahansa riviä."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Voit muokata asetusta napauttamalla riviä."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Basaalitaso tarkoittaa sitä yksikkömäärää insuliinia tunnissa, jonka tarvitset insuliinin perustarpeen kattamiseen."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "glukoosin turvarajasi"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Terveydenhuollon ammattilainen voi auttaa sinua valitsemaan sinulle sopivan korjausalueen."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Insuliiniherkkyys (ISF) tarkoittaa sitä, kuinka paljon glukoosin odotetaan laskevan yhdellä insuliiniyksiköllä."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Ennen ateriaa -alueen tulisi olla glukoosiarvo (tai arvoalue), johon %1$@ tähtää insuliinin annosteluhetkestä aterian alkuun. Tämä alue tulee voimaan, kun aktivoit Ennen ateriaa -painikkeen."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/InsulinKit.strings new file mode 100644 index 0000000000..3db74fd11e --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Détail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Totaux"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Réservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historique des événements"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Insuline ne venant pas de la pompe"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Administration de l'insuline"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..9ab00e1af2 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Détail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Réservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historique des événements"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Administration de l'insuline"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..264c0402bd --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,700 @@ +/* Information about workout range relative to correction range */ +" higher " = " plus élevé "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " moins élevé "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% de l’insuline de base"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ ou votre limite de sécurité pour la glycémie, la valeur la plus élevée étant retenue"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unités restantes à %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Pré-Repas"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "Exercice"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Une carte dont le texte va retourner sur plusieurs lignes si je continue à tapper assez longtemps. Ceci devrait suffire."; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Une plage de correction est différente. Il s'agit d'une plage plus étroite."; + +/* No comment provided by engineer. */ +"A simple card" = "Une carte simple"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Une valeur de 0 U/hr veut dire que vous ne recevrez aucune insuline basale."; + +/* No comment provided by engineer. */ +"Above the save button" = "Au dessus du bouton sauvegarder"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Durée d’absorption"; + +/* No comment provided by engineer. */ +"Action Button" = "Bouton Action"; + +/* The text for the override history duration */ +"Active Duration" = "Durée active"; + +/* The title for the override emoji activity section */ +"Activity" = "Activité"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Ajouter"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Ajouter un compte"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Ajouter des glucides"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Voulez-vous vraiment supprimer toutes les entrées de l’historique?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Voulez-vous vraiment supprimer toutes les valeurs de réservoir?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Authentifier pour enregistrer les paramètres thérapeutiques"; + +/* Back navigation button title */ +"Back" = "Retour"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Débits basaux"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Le débit basal, les bolus, et le niveau de l’insuline de correction sont diminués par %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Le débit de basal, les bolus, et le niveau de l’insuline de correction sont augmentés par %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Le débit de basal, les bolus, et le niveau de l’insuline de correction ne sont pas affectés."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuler"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Annuler l'ajustement"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annulation du débit basal temporaire"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Ratios Insuline-Glucides"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Les modifications effectuées que la fois où vous activerez l'ajustement. Les réglages par défaut de %@ ne seront pas affectés."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Les modifications effectuées que la fois où vous activerez préréglage. Les réglages par défaut de %@ ne seront pas affectés."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choisissez un temps d’absorption plus long pour les gros repas ou ceux contenant des graisses et des protéines. Ceci est seulement un guide pour l'algorithme et n'a pas besoin d'être exact."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Fermer"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "à %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "depuis %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "à %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "depuis %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Terminé."; + +/* The title for the override emoji condition section */ +"Condition" = "Condition"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Confirmer le réglage"; + +/* No comment provided by engineer. */ +"content" = "contenu"; + +/* Title of the setup button to continue */ +"Continue" = "Continuer"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "La plage de correction est la plage de glycémie vers laquelle vous voudriez que Loop vous corrige."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Valeurs de correction"; + +/* The text for a custom override */ +"Custom" = "Personnalisé"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Ajustement personnalisé"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Préréglage personnalisé"; + +/* Title of the carb entry date picker cell */ +"Date" = "Date"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Supprimer"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Supprimer le compte"; + +/* Button title to delete all objects */ +"Delete All" = "Supprimer tout"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limites d'Administration"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Les limites d'administration sont des garde-fous de sécurité de l'administration de l’insuline."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Désactiver le préréglage"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Terminé"; + +/* The text for the override duration setting */ +"Duration" = "Durée"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Éditer"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Modifier l’entrée des glucides"; + +/* The title for the override editing screen */ +"Edit Override" = "Éditer l'ajustement"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "La modification n'affecte que l'ajustement actuel. Les réglages par défaut de %@ ne seront pas affectés."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Les modifications ne persistent que jusqu'à ce que le préréglage soit désactivé. Les réglages par défaut de %@ ne seront pas affectés."; + +/* The button text for enabling a temporary override */ +"Enable" = "Activer"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Activer indéfiniment"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Activé"; + +/* The text for the override start time */ +"End Time" = "Heure de fin"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Entrez la valeur %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Entrez un nombre d'unités"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Entrez un débit en unités par heure"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Historique des événements"; + +/* No comment provided by engineer. */ +"Example" = "Exemple"; + +/* Section title for fast absorbing food */ +"Fast" = "Rapide"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Pour l'insuline à action rapide, %1$@ suppose qu'elle agit activement pendant 6 heures. Vous pouvez choisir parmi différents modèles pour le pic d'activité mesuré par l'application."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Pour cette plage, choisissez la valeur de glycémie (ou la plage de valeurs) spécifique que %1$@ va viser en ajustant votre insuline basale."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Obtenir de l'aide avec les paramètres de thérapie"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Retour"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Débit basal élevé"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Ratio de glucide élevé"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Valeur de correction élevée"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Limite de sécurité pour la glycémie élevé"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Sensibilité à l'insuline élevée"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Débit basal maximum élevé"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Bolus maximum élevé"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Valeur pré-repas élevée"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Valeur d'exercice haute"; + +/* The text for the override history */ +"History" = "Historique"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Si ces paramètres vous semblent bons, appuyez sur Enregistrer les paramètres pour continuer."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Si vous avez déjà utilisé un CGM, vous êtes probablement familiers avec la plage cible comme étant une large plage de valeurs pour lesquelles vous voudriez recevoir des notifications d'alertes, tel que 70-180 mg/dl ou 90-200 mg/dl."; + +/* Title text for insulin model */ +"Insulin Model" = "Modèle d'insuline"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Facteurs de sensibilité à l'insuline"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Le facteur de sensibilité à l’insuline décrit comment votre taux de glycémie doit réagir à 1 unité d’insuline. Les valeurs plus petites signifie que davantage d’insuline sera administrée quand votre taux de glycémie est au-dessus de la cible. Des valeurs trop faibles peuvent entraîner des hypoglycémies dangereuses."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Interrompu %1$@: %2$@ de %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Il peut être défini aussi bas que %1$@. Il peut être défini aussi haut que %2$@ ."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Valeur débit basal basse"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Ratios insuline-glucides bas"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Valeur correction basse"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Valeur de Glycémie basse"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Sensibilité à l'insuline faible"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Valeur Max débit basal basse"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Valeur Bolus basse"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Valeur de pré-repas basse"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Valeur basse exercice"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Débit Basal Maximum"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Bolus Maximum"; + +/* Section title for medium absorbing food */ +"Medium" = "Moyen"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "plus de contenu"; + +/* Alert action title to open error help */ +"More Info" = "Plus d'informations"; + +/* The text for the override preset name setting */ +"Name" = "Nom"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Ajout"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nouveau préréglage"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Pas d'insuline Basal"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Autre"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Besoin total en insuline"; + +/* Title for override history view */ +"Override History" = "Remplacer l'historique"; + +/* The title text for the override presets screen */ +"Override Presets" = "Préréglages ajustement"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Les préréglages d'ajustement peuvent être ajoutés dans la section “Configuration” de l’écran des réglages."; + +/* The section title of glucose overrides */ +"Overrides" = "Ajustements"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pré-Repas"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Objectif de Pré-Repas"; + +/* title for prescription section */ +"Prescription" = "Prescription"; + +/* The section header text override presets */ +"PRESETS" = "PRÉRÉGLAGES"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "En cours de traitement."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Événement pompe"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pompe inutilisable"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Action rapide - Adulte"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Action rapide - Enfant"; + +/* The default placeholder string for a credential */ +"Required" = "Obligatoire"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Réservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Reprendre l'administration"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Reprise en cours"; + +/* title for summary description section */ +"Review and Save Settings" = "Vérifier et enregistrer les paramètres"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Vérifiez vos réglages de thérapie ci-dessous. Si vous souhaitez modifier l'un de ces paramètres, appuyez sur Retour pour revenir à cet écran."; + +/* The text for the override preset name field placeholder */ +"Running" = "En marche"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Sauvegarder"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Enregistrer les débits basaux ?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Enregistrer les Ratios ?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Enregistrer les plages de correction?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Enregistrer les limites d'injection ?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Enregistrer la limite de sécurité de la glycémie ?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Enregistrer les paramètres de sensibilité à l'insuline ?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Enregistrer la zone de pré-repas?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Enregistrer la fourchette exercice ?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Sauvegarde en cours..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "AJUSTEMENT PROGRAMMÉ"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PRÉRÉGLAGE PROGRAMMÉ"; + +/* Section title for slow absorbing food */ +"Slow" = "Lent"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Certains utilisateurs choisissent une valeur 2, 3 ou 4 fois supérieure à leur débit basal programmé le plus élevé."; + +/* The text for the override start time */ +"Start Time" = "Heure de début"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Démarrage basal temporaire"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Soumis par %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Support"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspendre l'administration"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspension en cours"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Changer l'état d'aperçu"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbole"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Appuyez sur '+' pour créer un nouveau préréglage personnalisé."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Appuyez pour définir"; + +/* The text for the override target range setting */ +"Target Range" = "Plage cible"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Diminue temporairement votre cible de glycémie avant un repas pour influer sur les pics d'hyperglycémie post-repas."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Augmente temporairement votre cible de glycémie avant, pendant ou après l'activité physique pour réduire le risque d'hypoglycémie."; + +/* The title for the override selection screen */ +"Temporary Override" = "Ajustement temporaire"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "que votre plage de correction."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Le modèle d'insuline à action rapide actuellement sélectionné sera utilisé par défaut."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Le modèle original utilisé par Loop, permettant de gérer la durée d'action de l'insuline."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Le temps d'absorption maximum est de %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "La quantité maximale autorisée est de %@ grammes"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Ce modèle \"Action rapide-Adulte\" est basé sur une activité maximale de l’insuline vers 75 minutes."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Ce modèle \"Action rapide-Enfant\" est basé sur une activité maximale de l’insuline vers 65 minutes."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "La définition de l'horaire commence à minuit et ne peut pas contenir un taux de 0 U/hr."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Réglages Thérapeutique"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Therapy Settings Support Placeholder"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Ce modèle est basé sur un pic d'activité de l’insuline à 19 minutes."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Ce modèle est basé sur un pic d'activité de l’insuline à 55 minutes."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Ce modèle est basé sur un pic d'activité de l’insuline à 65 minutes."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Ce modèle est basé sur un pic d'activité de l’insuline à 75 minutes."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Il s'agit généralement"; + +/* Label for offset from midnight picker */ +"Time" = "Heure"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Temps dans %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Pas encore implémenté"; + +/* No comment provided by engineer. */ +"Top component" = "Composant supérieur"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Total"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "U/jour"; + +/* The unit string for units per hour */ +"U/hour" = "U/heure"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Impossible d'enregistrer"; + +/* The unit string for units */ +"Units" = "Unités"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Inconnu"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Non sélectionné"; + +/* Placeholder text until value is entered */ +"Value" = "Valeur"; + +/* Label indicating validation is occurring */ +"Verifying" = "En train de vérifier"; + +/* The title for the override editing screen */ +"View Override" = "Voir les ajustements"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Attention"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Travaillez avec votre prestataire de soins pour choisir une valeur supérieure à votre débit basal le plus élevé prévu, mais aussi conservatrice ou agressive que vous le souhaitez."; + +/* Title for the workout override range */ +"Workout" = "Exercice"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "La plage exercice est la valeur de glycémie ou la fourchette de valeurs que vous souhaitez que %1$@ cible pendant l'activité. Cette plage sera effective lorsque vous activez le préréglage exercice."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Valeurs exercice"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Vous pouvez ajouter différents ratios insuline-glucides pour différentes périodes de la journée en utilisant le ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Vous pouvez ajouter différentes sensibilités à l'insuline pour différents moments de la journée en utilisant ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Vous pouvez ajouter différentes plages pour différentes périodes de la journée en utilisant le ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Vous pouvez ajouter différentes entrées pour différentes périodes de la journée en utilisant le ➕."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Vous pouvez modifier une paramètre de l'élément en appuyant n'importe ou sur sa ligne."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Vous pouvez modifier la valeur de l'élément en appuyant n'importe ou sur sa ligne."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Votre débit basal d'insuline est le nombre d'unités par heure que vous souhaitez utiliser pour couvrir vos besoins vitaux d'insuline."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "votre seuil de suspension glycémique"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Votre professionnel de soins de santé peut vous aider à choisir une plage de correction qui vous convient."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Votre facteur de sensibilité à l’insuline (ISF) est la baisse de glycémie attendue avec une unité d’insuline."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Votre plage pré-repas doit correspondre à la valeur (ou fourchette de valeurs) de glycémie que vous souhaitez que %1$@ cible au moment où vous commencez. Cette plage sera en vigueur lorsque vous activerez le préréglage pré-repas."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/InsulinKit.strings new file mode 100644 index 0000000000..cb3cba99e8 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/de.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/LegacyInsulinDeliveryTableViewController.strings similarity index 100% rename from Dependencies/LoopKit/LoopKitUI/de.lproj/LegacyInsulinDeliveryTableViewController.strings rename to Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/LegacyInsulinDeliveryTableViewController.strings diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..8e03685963 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/he.lproj/Localizable.strings @@ -0,0 +1,307 @@ +/* Separator between min and max glucose values */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "-"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% of normal insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for progress accessibility label (1: duration in seconds) */ +"%1$d percent complete." = "%1$d אחוז בוצע"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Absorption Time"; + +/* The title for the override emoji activity section */ +"Activity" = "Activity"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Add Account"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Add Carb Entry"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Are you sure you want to delete all history entries?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Are you sure you want to delete all reservoir values?"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basal Rates"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, and correction insulin dose amounts are decreased by %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, and correction insulin dose amounts are increased by %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, and correction insulin dose amounts are unaffected."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancel"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Cancel Override"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Canceling Temp Basal"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Carb Ratios"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Changes will only apply this time you enable the override. The default settings of %@ will not be affected."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact."; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "at %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "since %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "at %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "since %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* The title for the override emoji condition section */ +"Condition" = "Condition"; + +/* Title of the setup button to continue */ +"Continue" = "Continue"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; + +/* The text for a custom override */ +"Custom" = "Custom"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Custom Override"; + +/* Title of the carb entry date picker cell */ +"Date" = "Date"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Delete Account"; + +/* Button title to delete all objects */ +"Delete All" = "Delete All"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Delivery Limits"; + +/* The text for the override duration setting */ +"Duration" = "Duration"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Edit Carb Entry"; + +/* The title for the override editing screen */ +"Edit Override" = "Edit Override"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Editing affects only the active override. The default settings of %@ will not be affected."; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Enable Indefinitely"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Enabled"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Enter a number of units"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Enter a rate in units per hour"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Event History"; + +/* Section title for fast absorbing food */ +"Fast" = "Fast"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Title text for insulin model */ +"Insulin Model" = "Insulin Model"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulin Sensitivities"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose."; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maximum Basal Rate"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maximum Bolus"; + +/* Section title for medium absorbing food */ +"Medium" = "Medium"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* Alert action title to open error help */ +"More Info" = "More Info"; + +/* The text for the override preset name setting */ +"Name" = "Name"; + +/* The title for the new override preset entry screen */ +"New Preset" = "New Preset"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Other"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Overall Insulin Needs"; + +/* The title text for the override presets screen */ +"Override Presets" = "Override Presets"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; + +/* The section title of glucose overrides */ +"Overrides" = "Overrides"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-Meal"; + +/* The section header text override presets */ +"PRESETS" = "PRESETS"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pump Event"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Rapid-Acting – Adults"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Rapid-Acting – Children"; + +/* The default placeholder string for a credential */ +"Required" = "Required"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Resume Delivery"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Resuming"; + +/* The text for the override preset name field placeholder */ +"Running" = "Running"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Save"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; + +/* Section title for slow absorbing food */ +"Slow" = "Slow"; + +/* The text for the override start time */ +"Start Time" = "Start Time"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starting Temp Basal"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspend Delivery"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspending"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Tap to set"; + +/* The text for the override target range setting */ +"Target Range" = "Target Range"; + +/* The title for the override selection screen */ +"Temporary Override" = "Temporary Override"; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "The legacy model used by Loop, allowing customization of action duration."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "The maximum absorption time is %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; + +/* Label for offset from midnight picker */ +"Time" = "שעה"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; + +/* The unit string for units per hour */ +"U/hour" = "U/hour"; + +/* The unit string for units */ +"Units" = "Units"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Unknown"; + +/* Label indicating validation is occurring */ +"Verifying" = "Verifying"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Warning"; + +/* Title for the workout override range */ +"Workout" = "Workout"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/hi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..79b913118a --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + +/* Title of the setup button to continue */ +"Continue" = "जारी"; + +/* The text for the override preset name setting */ +"Name" = "नाम"; + +/* Label for offset from midnight picker */ +"Time" = "समय"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/InsulinKit.strings new file mode 100644 index 0000000000..0033d608b9 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titolo"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Dettaglio"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Totali"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Serbatoio"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Storia degli Eventi"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Insulina senza Microinfusore"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulina Somministrata"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..4deb78e702 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titolo"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Dettaglio"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Serbatoio"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Storia degli Eventi"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulina Somministrata"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..440425f86b --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/it.lproj/Localizable.strings @@ -0,0 +1,703 @@ +/* Information about workout range relative to correction range */ +" higher " = "più alto"; + +/* Information about pre-meal range relative to correction range */ +" lower " = "minore"; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@ %% d'insulina normale"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ o il limite di sicurezza del glucosio, a seconda di quale sia il più alto"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unità rimanenti alle ore %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@ : %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Pre-Pasto"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Allenamento"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Una carta il cui testo andrà a capo su più righe se continuo a digitare abbastanza a lungo: questa lunghezza dovrebbe andare bene"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Un intervallo di correzione è diverso. Questo sarà un intervallo più ristretto."; + +/* No comment provided by engineer. */ +"A simple card" = "Una carta semplice"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Un valore di 0 U/ora significa che il paziente non riceverà insulina basale."; + +/* No comment provided by engineer. */ +"Above the save button" = "Sopra il pulsante Salva"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Tempo di assorbimento"; + +/* No comment provided by engineer. */ +"Action Button" = "Pulsante di azione"; + +/* The text for the override history duration */ +"Active Duration" = "Durata attiva"; + +/* The title for the override emoji activity section */ +"Activity" = "Attività"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Aggiungi"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Aggiungi Account"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Agg. Carb. Assunti"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Sei sicuro di voler eliminare tutte le voci della cronologia?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Sei sicuro di voler eliminare tutti i valori del serbatoio?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Eseguire l'autenticazione per salvare le Impostazioni di Terapia"; + +/* Back navigation button title */ +"Back" = "Indietro"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Velocità basali"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Le dosi basali, di bolo e di correzione dell’insulina sono calate del %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Le dosi basali, di bolo e di correzione dell’insulina sono aumentate del %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Le dosi basali, di bolo e di correzione dell’insulina sono rimaste invariate."; + +/* No comment provided by engineer. */ +"Bottom component" = "Componente inferiore"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annulla"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Annulla Programma Alternativo"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annullamento Basale Temp"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Rapporti carboidrati"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Le modifiche saranno applicate solo all’attivazione del programma alternativo. Le impostazioni predefinite di %@ rimarranno invariate."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Le modifiche saranno applicate solo quando si attiva la preimpostazione. Le impostazioni predefinite di %@ non vengono modificate."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Scegli un tempo di assorbimento piu lungo per i pasti piu grandi o quelli contenenti grassi e proteine. Questa e solo una guida all’algoritmo e non e necessario che sia esatta."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Chiudi"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "a %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "in %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "a %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "in %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Completato."; + +/* The title for the override emoji condition section */ +"Condition" = "Condizione"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Conferma impostazione"; + +/* No comment provided by engineer. */ +"content" = "contenuto"; + +/* Title of the setup button to continue */ +"Continue" = "Continua"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "L’intervallo di correzione è l’intervallo di glicemia al quale vuoi che si regoli Loop."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Valori di correzione"; + +/* The text for a custom override */ +"Custom" = "Programma"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Progr. Alternativo"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Programmazione"; + +/* Title of the carb entry date picker cell */ +"Date" = "Data"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Cancella"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Cancella Account"; + +/* Button title to delete all objects */ +"Delete All" = "Cancella tutto"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limiti Erogazione"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "I limiti di consegna sono barriere di sicurezza per la somministrazione di insulina."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Disabilita preimpostazione"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Fine"; + +/* The text for the override duration setting */ +"Duration" = "Durata"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Modifica"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Mod. Carb Assunti"; + +/* The title for the override editing screen */ +"Edit Override" = "Mod. Progr. Alternativo"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "La modifica riguarda solo il programma alternativo attivo. Le impostazioni predefinite di %@ resteranno invariate."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Le modifiche persistono solo finché la preimpostazione non viene disattivata. Le impostazioni predefinite di %@ non vengono modificate."; + +/* The button text for enabling a temporary override */ +"Enable" = "Abilita"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Abilita a tempo indeterminato"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Abilitato"; + +/* The text for the override start time */ +"End Time" = "Tempo scaduto"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Inserisci il valore %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Inserisci un numero di unità"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Inserisci velocità U/ora"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Storia degli Eventi"; + +/* No comment provided by engineer. */ +"Example" = "Esempio"; + +/* Section title for fast absorbing food */ +"Fast" = "Veloce"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Per l'insulina ad azione rapida, %1$@ presuppone che funzioni attivamente per 6 ore. Puoi scegliere tra %2$@ diversi modelli per il modo in cui l'app misura il picco di attività dell'insulina."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Per questo intervallo, scegli il valore glicemico specifico (o l'intervallo di valori) a cui vuoi che %1$@ miri per regolare la tua insulina basale."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Ottieni assistenza per le impostazioni della terapia"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Torna indietro"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Velocità Basale Alta"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Rapporto Carboidrati Alto"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Valore di Correzione Alto"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Limite glicemico di sicurezza alto"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Sensibilità all’insulina Alta"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Velocità Basale Massima Alta"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Bolo Massimo Alto"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Valore Pre-Pasto Alto"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Valore Alto Allenamento"; + +/* The text for the override history */ +"History" = "Storia"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Se queste impostazioni ti sembrano valide, tocca Salva impostazioni per continuare."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Se hai già utilizzato un CGM, probabilmente conosci l'intervallo target come un'ampia gamma di valori che desideri per gli avvisi di notifica del glucosio, ad esempio 70-180 mg/dL o 90-200 mg/dL."; + +/* Title text for insulin model */ +"Insulin Model" = "Modello di azione dell'Insulina"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Sensibilità Insulinica"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "La sensibilità all’insulina descrive il modo in cui la tua glicemia dovrebbe rispondere a una dose di insulina pari a 1 Unità. In caso di valori inferiori, al superamento del target verrà somministrata più insulina. Valori troppo bassi possono causare livelli di glicemia pericolosamente bassi."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Interrotto %1$@ : %2$@ di %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Può essere impostato a partire da %1$@ . Può essere impostato fino a %2$@ ."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Velocità basale bassa"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Rapporto Carboidrati basso"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Valore Inferiore di Correzione "; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Limite Inferiore di Salvezza della Glicemia"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Sensibilità all’insulina bassa"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Velocità Basale Massima Bassa"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Bolo Massimo Basso"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Valore Pre-Pasto basso"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Valore Basso Allenamento"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Profilo Basale Massimo"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Bolo Massimo"; + +/* Section title for medium absorbing food */ +"Medium" = "Medio"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "più contenuti"; + +/* Alert action title to open error help */ +"More Info" = "Piu info"; + +/* The text for the override preset name setting */ +"Name" = "Nome"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Nuovo accesso"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nuove impostazioni predefinite"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Nessuna insulina basale"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Altro"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Fabbisogno complessivo di insulina"; + +/* Title for override history view */ +"Override History" = "Storia Programma"; + +/* The title text for the override presets screen */ +"Override Presets" = "Programma Alternativo"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "È possibile configurare le impostazioni predefinite del programma alternativo nella sezione ‘Configurazione' della schermata impostazioni."; + +/* The section title of glucose overrides */ +"Overrides" = "Programmi alternativi"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-Pasto"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Valori Pre-Pasto"; + +/* title for prescription section */ +"Prescription" = "Prescrizione"; + +/* The section header text override presets */ +"PRESETS" = "IMPOSTAZIONI PREDEFINITE"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Avanzamento."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Evento Microinfusore"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pompa non funzionante"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Insulina ultrarapida – Adulti"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Insulina ultrarapida – Bambini"; + +/* The default placeholder string for a credential */ +"Required" = "Necessario"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Serbatoio"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Riprendi erogazione"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Ripresa in corso"; + +/* title for summary description section */ +"Review and Save Settings" = "Rivedi e salva le impostazioni"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Controlla le impostazioni della terapia. Se desideri modificare una di queste impostazioni, tocca Indietro per tornare a quella schermata."; + +/* The text for the override preset name field placeholder */ +"Running" = "Corsa"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Salva"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Salva i valori basali?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Salva Rapporti carboidrati?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Salva intervallo/i di correzione?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Salva i limiti di erogazione?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Salva il limite di sicurezza del glucosio?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Salva la sensibilità insulinica?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Salva l'intervallo Pre-Pasto?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Salvare l'intervallo di allenamento?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Salvataggio..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "PROGRAMMA ALTERNATIVO PIANIFICATO"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "Regolazione Manuale Programmata"; + +/* Section title for slow absorbing food */ +"Slow" = "Lento"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Alcuni utenti scelgono un valore pari a 2, 3 o 4 volte la velocità basale pianificata massima."; + +/* The text for the override start time */ +"Start Time" = "Ora di inizio"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Attivazione velocità basale temporanea in corso"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Inviato da %1$@ , %2$@"; + +/* Title for support section */ +"Support" = "Supporto"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Sospendi erogazione"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Sospensione in corso"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Cambia Stato Anteprima"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Simbolo"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Tocca \"+\" per creare una nuova programmazione."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Imposta"; + +/* The text for the override target range setting */ +"Target Range" = "Intervallo Obiettivo"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Abbassa temporaneamente il tuo target glicemico prima di un pasto per influenzare i picchi glicemici postprandiali."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Aumentare temporaneamente il target glicemico prima, durante o dopo l'attività fisica per ridurre il rischio di eventi ipoglicemici."; + +/* The title for the override selection screen */ +"Temporary Override" = "Programma alternativo temporaneo"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "Il tuo intervallo di correzione"; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Il modello di insulina ad azione rapida attualmente selezionato verrà utilizzato come predefinito."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "ll modello antecedente usato da Loop, che consente la personalizzazione della durata dell'azione."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Il tempo di assorbimento massimo e %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "La massima quantita permessa %@ grams"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Il modello adulto ad azione rapida assume il picco di attività a 75 minuti."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Il modello del bambino ad azione rapida assume il picco di attività a 65 minuti."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Il programma inizia a mezzanotte e non può contenere una velocità di 0 U/ora."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Impostazioni Terapia"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Segnaposto di supporto per le impostazioni di terapia"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Questo modello presuppone il picco di attività insulinica a 19 minuti."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Questo modello presuppone il picco di attività insulinica a 55 minuti."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Questo modello presuppone il picco di attività insulinica a 65 minuti."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Questo modello presuppone il picco di attività insulinica a 75 minuti."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Questo in genere sara'"; + +/* Label for offset from midnight picker */ +"Time" = "Tempo"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Da implementare"; + +/* No comment provided by engineer. */ +"Top component" = "Componente Principale"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Totale"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "U/giorno"; + +/* The unit string for units per hour */ +"U/hour" = "U/ora"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "incapace salvare "; + +/* The unit string for units */ +"Units" = "Unità"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Sconosciuto"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Tempo di azione iniziale"; + +/* Placeholder text until value is entered */ +"Value" = "Valore"; + +/* Label indicating validation is occurring */ +"Verifying" = "Sto verificando"; + +/* The title for the override editing screen */ +"View Override" = "Vedere il programma alternativo"; + +/* Title of insulin model setting */ +"Walsh" = "modello mimetico modificabile di insulina "; + +/* Title of an alert containing a validation warning */ +"Warning" = "Avvertimento"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Collabora con il tuo medico per scegliere un valore superiore alla velocità basale programmata più alta, ma conservativo o aggressivo quanto ti senti a tuo agio."; + +/* Title for the workout override range */ +"Workout" = "Allenarsi"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "L'intervallo di allenamento è il valore glicemico o l'intervallo di valori che vuoi che %1$@ abbia come target durante l'attività. Questo intervallo sarà effettivo quando si attiva il pulsante Preimpostazione allenamento."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Valori Allenamento"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Puoi aggiungere diversi rapporti di carboidrati per diversi momenti della giornata utilizzando ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "È possibile aggiungere diverse sensibilità all'insulina per diversi momenti della giornata utilizzando ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "È possibile aggiungere diversi intervalli per diverse ore del giorno utilizzando ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "È possibile aggiungere valori per le diverse ore del giorno utilizzando ➕."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Per redigere qualsiasi impostazioni basta toccare la linea relativa dell'articolo desiderato "; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Per redigerne le impostazioni basta toccare la linea dell'articolo desiderato "; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "La velocità basale d'insulina è il numero di unità all'ora che si desidera utilizzare per coprire il tuo fabbisogno d'insulina basale."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "il tuo limite di sicurezza del glucosio"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Il tuo medico può aiutarti a scegliere la gamma di correzione adatto a te."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Il fattore di sensibilità all'insulina (ISF) è il calo di glicemia previsto da un'unità di insulina."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Il tuo Intervallo pre-prasto dovrebbe essere il valore glicemico (o l'intervallo di valori) che vuoi che %1$@ abbia come target prima che tu assuma il primo boccone del tuo pasto. Questo intervallo sarà effettivo quando si attiva il pulsante pre-pasto preimpostato."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/InsulinKit.strings new file mode 100644 index 0000000000..cb3cba99e8 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..64e6c32846 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..b5b4c69f7f --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,298 @@ +/* Separator between min and max glucose values */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "—"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% of normal insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%2$@の時点で %1$@ U 残っています"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "吸収時間"; + +/* The title for the override emoji activity section */ +"Activity" = "アクティビティ"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "アカウントを追加"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "糖質の記入を追加"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "入力履歴をすべて削除しますか?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "リザーバの値をすべて削除しますか?"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "基礎レート"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "基礎、ボーラス、補正注入の量が %@%%減ります。"; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "基礎、ボーラス、補正注入の量が %@%%増えます。"; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "基礎、ボーラス、補正注入の量は変わりません。"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "キャンセル"; + +/* The text for the override cancellation button */ +"Cancel Override" = "オーバーライドをキャンセル"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "一時基礎レートをキャンセルします"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Carb Ratios"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "オーバーライドの有効化は今回のみ適用されます。%@ の初期設定は変わりません。"; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "量の多い食事や脂質やたんぱく質を含んだ食事には長い吸収時間を選んでください。これはアルゴリズムのための参考で、厳密である必要はありません。"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "%1$@ 時点"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "%1$@ より"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "%1$@ 時点"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "%1$@ より"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* The title for the override emoji condition section */ +"Condition" = "コンディション"; + +/* Title of the setup button to continue */ +"Continue" = "次へ"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "目標グルコース範囲は、血糖値がこの範囲内に補正されるようループに設定する範囲です。"; + +/* The text for a custom override */ +"Custom" = "カスタム"; + +/* The title for the custom override entry screen */ +"Custom Override" = "カスタムオーバーライド"; + +/* Title of the carb entry date picker cell */ +"Date" = "日付"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "アカウントを削除"; + +/* Button title to delete all objects */ +"Delete All" = "すべて削除"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "注入限度"; + +/* The text for the override duration setting */ +"Duration" = "期間"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "糖質の記入を編集"; + +/* The title for the override editing screen */ +"Edit Override" = "オーバーライドを編集"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "オーバーライドの編集は今回のみ適用されます。%@ の初期設定は変わりません。"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "無期限を有効にする"; + +/* The detail text describing an enabled setting */ +"Enabled" = "有効"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "単位数を入力"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "毎時単位(U/h)を入力"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Event History"; + +/* Section title for fast absorbing food */ +"Fast" = "速め"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Title text for insulin model */ +"Insulin Model" = "インスリンモデル"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "インスリン効果値"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "インスリン効果値は、1単位のインスリンによって血糖値がどれだけ反応するかを表します。この値が小さいほど、測定値がターゲットを超えたときに注入されるインスリンの量が多くなります。値を小さく設定しすぎると低血糖の原因となり危険です。"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "最大基礎レート"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "最大ボーラス"; + +/* Section title for medium absorbing food */ +"Medium" = "中"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* Alert action title to open error help */ +"More Info" = "詳細"; + +/* The text for the override preset name setting */ +"Name" = "プリセット名"; + +/* The title for the new override preset entry screen */ +"New Preset" = "プリセットを設定する"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "その他"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "総インスリン必要量"; + +/* The title text for the override presets screen */ +"Override Presets" = "オーバーライドプリセット"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "オーバーライドプリセットは、設定画面のコンフィグレーションで設定できます。"; + +/* The section title of glucose overrides */ +"Overrides" = "オーバーライド"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "食前"; + +/* The section header text override presets */ +"PRESETS" = "プリセット"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "ポンプイベント"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "超速攻型 - 大人"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "超速攻型 - 子供"; + +/* The default placeholder string for a credential */ +"Required" = "必須"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "注入を再開"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "再開中"; + +/* The text for the override preset name field placeholder */ +"Running" = "動作中"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "保存"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; + +/* Section title for slow absorbing food */ +"Slow" = "遅め"; + +/* The text for the override start time */ +"Start Time" = "開始時間"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "一時基礎を開始"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "注入を一時停止"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "一時停止中"; + +/* The text for the override preset symbol setting */ +"Symbol" = "シンボル"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "タップして確定"; + +/* The text for the override target range setting */ +"Target Range" = "ターゲット範囲"; + +/* The title for the override selection screen */ +"Temporary Override" = "一時的オーバーライト"; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "ループのレガシーモデルで、作用期間をカスタマイズできます。"; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "最大吸収時間: %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "最大量: %@ g"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "時間帯 %1$@%2$@%3$@"; + +/* The unit string for units per hour */ +"U/hour" = "U/時"; + +/* The unit string for units */ +"Units" = "単位"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "不明"; + +/* Label indicating validation is occurring */ +"Verifying" = "確認中"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "警告"; + +/* Title for the workout override range */ +"Workout" = "運動"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/InsulinKit.strings new file mode 100644 index 0000000000..e7ce061117 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Tittel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalj"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "E totalt"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Hendelseshistorie"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Ikke-pumpe insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..3befcb5c01 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Tittel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detalj"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Hendelseshistorie"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..b4481ae94b --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,733 @@ +/* Information about workout range relative to correction range */ +" higher " = "høyere"; + +/* Information about pre-meal range relative to correction range */ +" lower " = " nedre "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "–"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% av normalt insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ antar at insulinet den har levert, jobber aktivt med å senke blodsukkeret i 6 timer. Denne innstillingen kan ikke endres."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ eller din sikkerhetsgrense for blodsukker, avhengig av hva som er høyest"; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ støtter 1 til %2$@ rater per dag."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter gjenstår ved %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@ : %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Før måltid"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃 ♂️ Treningsøkt"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Et kort hvis tekst vil pakkes inn på flere linjer hvis jeg fortsetter å skrive lenge nok – denne lengden bør gjøre det"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Et korreksjonsområde er annerledes. Dette vil være et smalere område."; + +/* No comment provided by engineer. */ +"A simple card" = "Et enkelt kort"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "En verdi på 0 E/time betyr at du ikke vil få noe basalinsulin."; + +/* No comment provided by engineer. */ +"Above the save button" = "Over lagre-knappen"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Absorbsjonstid"; + +/* No comment provided by engineer. */ +"Action Button" = "Handling-knapp"; + +/* The text for the override history duration */ +"Active Duration" = "Aktiv varighet"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivitet"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Legg til"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Legg Til Konto"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Legg til karbohydrater"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Er du sikker på at du vil slette alle historiske innslag?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Er du sikker på at du vil slette alle reservoarverdier?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Autentiser for å lagre behandlingsinnstillingen"; + +/* Back navigation button title */ +"Back" = "Tilbake"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basal-satser"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Insulindoser for basal, bolus og korreksjon er redusert med %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Insulindoser for bassal, bolus og korreksjon er økt med %@%%"; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Insulindoser for basal, bolus og korreksjon er uendret."; + +/* No comment provided by engineer. */ +"Bottom component" = "Nederste komponent"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Avbryt overstyring"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Avbryter midlertidig basal"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Karb forhold"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Endringer vil kun gjelde for denne gangen du aktiverer overstyring. Standardinstillinger for %@ vil ikke bli påvirket."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Endringer vil kun gjelde for denne gangen du aktiverer forhåndsinnstillingen. Standardinnstillingene til %@ vil ikke bli påvirket."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Velg en lengre absorpsjonstid for større måltider, eller de som inneholder fett og proteiner. Dette er bare veiledning til algoritmen og trenger ikke å være nøyaktig."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Lukk"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "kl. %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "siden %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "kl. %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "siden %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Fullført."; + +/* The title for the override emoji condition section */ +"Condition" = "Betingelse"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Bekreft"; + +/* No comment provided by engineer. */ +"content" = "innhold"; + +/* Title of the setup button to continue */ +"Continue" = "Fortsett"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Korreksjonsområde er området du ønsker at Loop skal korrigere blodsukker til."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Korreksjonsverdier"; + +/* The text for a custom override */ +"Custom" = "Tilpasset"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Tilpasset overstyring"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Egendefinert forhåndsinnstilling"; + +/* Title of the carb entry date picker cell */ +"Date" = "Dato"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Slett"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Slett Konto"; + +/* Button title to delete all objects */ +"Delete All" = "Slett alle"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Leveringsgrenser"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Leveringsgrenser er sikkerhetsrekkverk for insulinleveringen."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Deaktiver forhåndsinnstilling"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Ferdig"; + +/* The text for the override duration setting */ +"Duration" = "Varighet"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Rediger"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Rediger karbohydrater"; + +/* The title for the override editing screen */ +"Edit Override" = "Rediger overstyring"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Redigering påvirker kun den aktive overstyringen. Standardinnstillingen %@ vil ikke bbli påvirket."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Endringer gjelder kun til forhåndsinnstillingen er deaktivert. Standardinnstillingene til %@ vil ikke bli påvirket."; + +/* The button text for enabling a temporary override */ +"Enable" = "Aktiver"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Aktiver på ubestemt tid"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Aktivert"; + +/* The text for the override start time */ +"End Time" = "Sluttid"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Skriv inn %1$@ verdi"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Skriv inn antall enheter"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Velg en grense for maks enheter per time"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Hendelseshistorie"; + +/* No comment provided by engineer. */ +"Example" = "Eksempel"; + +/* Section title for fast absorbing food */ +"Fast" = "Rask"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "For hurtigvirkende insulin antar %1$@ at det virker aktivt i 6 timer. Du kan velge mellom %2$@ forskjellige modeller for hvordan appen måler insulinets toppaktivitet."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "For dette området, velg den spesifikke sikkerhets grenseverdien (eller verdiområdet) som du vil at %1$@ skal sikte på for å justere basalinsulinet."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Få hjelp med behandlingsinnstillinger"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Gå tilbake"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Høy basalrate"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Høyt karbohydratforhold"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Høy korreksjonsverdi"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Sikkerhetsgrense for høyt blodsukker"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Høy insulinfølsomhet"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Høy maksimal basalrate"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Høy maksimal bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Høy verdi før måltid"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Høy treningsverdi"; + +/* The text for the override history */ +"History" = "Historie"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Hvis disse innstillingene ser bra ut, trykk på Lagre innstillingene for å fortsette."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Hvis du har brukt en CGM før, er du sannsynligvis kjent med målområdet som et bredt spekter av verdier du vil ha for blodsukkervarslene dine, for eksempel 70-180 mg/dL eller 90-200 mg/dL."; + +/* No comment provided by engineer. */ +"info" = "info"; + +/* Title text for insulin model */ +"Insulin Model" = "Insulin modell"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulinsensitivitet"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinfølsomhet beskriver hvordan blodsukkeret responderer på 1 enhet insulin. Mindre verdier betyr at mer insulin vil bli gitt når man er over målområdet. Verdier som er for små kan føre til farlig lavt blodsukker."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Avbrutt %1$@: %2$@ av %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Den kan stilles inn så lavt som %1$@. Den kan settes så høyt som %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Lav basalrate"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Lavt karbohydratforhold"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Lav korreksjonsverdi"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Sikkerhetsgrense for lavt blodsukker"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Lav insulinfølsomhet"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Lav maksimal basalrate"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Lav maksimal bolus-dose"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Lav verdi før måltid"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Lav treningsverdi"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maks basalgrense"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Maksimal basaldose er den maksimale automatisk justerte basaldosen som %1$@ har lov til å aktivere for å hjelpe deg med å nå ditt korreksjonsområde."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maks bolus"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maksimal bolus er den høyeste bolusmengden du vil tillate %1$@ å anbefale på en gang for å dekke karbohydrater eller redusere høyt blodsukker."; + +/* Section title for medium absorbing food */ +"Medium" = "Medium"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "mer innhold"; + +/* Alert action title to open error help */ +"More Info" = "Mer info"; + +/* The text for the override preset name setting */ +"Name" = "Navn"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Ny oppføring"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Ny forhåndsinstilling"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Ingen basal insulin"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Annet"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Insulinbehov totalt sett"; + +/* Title for override history view */ +"Override History" = "Overstyr historikk"; + +/* The title text for the override presets screen */ +"Override Presets" = "Egendefinerte overstyringer"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Egendefinerte overstyringer kan settes opp under Konfigurasjons-delen av innstillingsskjermen"; + +/* The section title of glucose overrides */ +"Overrides" = "Overstyringer"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-måltid"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Pre-måltids verdier"; + +/* title for prescription section */ +"Prescription" = "Resept"; + +/* The section header text override presets */ +"PRESETS" = "FORHÅNDSINSTILLINGER"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Fremdrift."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pumpehendelse"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pumpe er ute av drift"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Hurtigvirkende - Voksen"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Hurtigvirkende - Barn"; + +/* The default placeholder string for a credential */ +"Required" = "Påkrevd"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoar"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Gjenoppta leveranse"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Gjenopptar"; + +/* title for summary description section */ +"Review and Save Settings" = "Se gjennom og lagre innstillinger"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Se gjennom innstillingene dine nedenfor. Om du vil endre noen av disse, trykk \"Tilbake\" for å gå til det skjermbildet."; + +/* The text for the override preset name field placeholder */ +"Running" = "Løper"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Lagre"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Lagre Basalrate?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Lagre Karbo forhold?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Lagre korrigeringsområde(er)?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Lagre leveringsgrenser?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Lagre sikkerhetsbegrensning for blodsukker?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Lagre Insulinsensitivitet?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Lagre forhåndsmåltid?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Lagre treningsområde?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Lagrer..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "PLANLAGT OVERSTYRING"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PLANLAGT OVERRIDE"; + +/* No comment provided by engineer. */ +"Selected" = "Valgt"; + +/* Section title for slow absorbing food */ +"Slow" = "Langsom"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Noen brukere velger en verdi 2, 3 eller 4 ganger den høyeste planlagte basaldosen."; + +/* The text for the override start time */ +"Start Time" = "Starttidspunkt"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starter temp-basal"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Innsendt av %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Support"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pause leveranse"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pauser"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Bytt forhåndsvisningsstatus"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Trykk på '+' for å opprette en ny 'Override'."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Trykk for å angi"; + +/* The text for the override target range setting */ +"Target Range" = "Målområde"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduser blodsukkermålet ditt midlertidig før et måltid for å påvirke blodsukkertoppene etter måltidet."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Øk blodsukkermålet ditt midlertidig før, under eller etter fysisk aktivitet for å redusere risikoen for hendelser med lavt blodsukker."; + +/* The title for the override selection screen */ +"Temporary Override" = "Midlertidig overstyring"; + +/* No comment provided by engineer. */ +"Test" = "Test"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "enn ditt korreksjonsområde."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Den for øyeblikket valgte hurtigvirkende insulinmodellen vil bli brukt som standard."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Den eldre modellen som brukes av Loop, tillater tilpasning av handlingsvarighet."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Maks absorbsjonstid er %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Maks tillatt mengde er %@ gram"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Den hurtigvirkende modellen for voksne antar maksimal insulinaktivitet etter 75 minutter."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Den hurtigvirkende modellen for barn antar maksimal insulinaktivitet etter 65 minutter."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Tidsplanen starter ved midnatt, og kan ikke inneholde en basalrate på 0 E/time."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Behandlingsinnstillinger"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Therapy Settings Support Placeholder"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Denne modellen antar topp insulinaktivitet etter 19 minutter."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Denne modellen antar maksimal insulinaktivitet etter 55 minutter."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Denne modellen antar maksimal insulinaktivitet etter 65 minutter."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Denne modellen antar maksimal insulinaktivitet etter 75 minutter."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Denne innstillingen vil også bestemme en sikkerhetsgrense for automatisk dosering. %1$@ vil begrense automatisk tilførsel for å holde mengden aktivt insulin under det dobbelte av maksimal bolus."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Dette vil typisk være"; + +/* Label for offset from midnight picker */ +"Time" = "Tid"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Tider i %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Skal implementeres"; + +/* No comment provided by engineer. */ +"Top component" = "Topp komponent"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Total"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "E/dag"; + +/* The unit string for units per hour */ +"U/hour" = "E/timen"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Kunne ikke lagre"; + +/* The unit string for units */ +"Units" = "Enheter"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Ukjent"; + +/* No comment provided by engineer. */ +"Unselected" = "Ikke valgt"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Fjern"; + +/* Placeholder text until value is entered */ +"Value" = "Verdi"; + +/* Label indicating validation is occurring */ +"Verifying" = "Bekrefter"; + +/* The title for the override editing screen */ +"View Override" = "Vis overstyring"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Advarsel"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Samarbeid med helsepersonell for å velge en verdi som er høyere enn din høyeste planlagte basalrate, men så konservativ eller aggressiv som du føler deg komfortabel."; + +/* Title for the workout override range */ +"Workout" = "Trening"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Treningsområde er blodsukkerverdien eller verdiområdet du vil at %1$@ skal målrettes mot under aktivitet. Dette området trer i kraft når du aktiverer knappen Forhåndsinnstilling for treningsøkt."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Verdier for treningsøkt"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Du kan legge til forskjellige karbohydratforhold for forskjellige tider på dagen ved å bruke ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Du kan legge til forskjellige insulinfølsomheter for forskjellige tider på dagen ved å bruke ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Du kan legge til forskjellige områder for forskjellige tider på dagen ved å bruke ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Du kan legge til oppføringer for forskjellige tider på dagen ved å bruke ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Du kan velge hvordan %1$@ måler hurtigvirkende insulins toppaktivitet i henhold til en av disse to insulinmodellene."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Du kan redigere en innstilling ved å trykke på et hvilket som helst linjeelement."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Du kan redigere innstillingen ved å trykke på linjeelementet."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Din basaldose av insulin er antall enheter per time du vil bruke for å dekke ditt bakgrunnsinsulinbehov."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "din sikkerhetsgrense for blodsukker"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Helsepersonellet kan hjelpe deg med å velge et korrigeringsområde som er riktig for deg."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Din insulinsensitivitetsfaktor (ISF) er fallet i blodsukker som forventes fra én enhet insulin."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Pre-Meal Range bør være blodsukkerverdien (eller verdiområdet) du vil at %1$@ skal målrettes mot når du tar din første bit av måltidet. Dette området vil være i kraft når du aktiverer forhåndsinnstillingsknappen før måltid."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/InsulinKit.strings new file mode 100644 index 0000000000..21f451bf3e --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "E IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Geen pomp geconfigureerd"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "E Totaal"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Logboek"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Niet-pompinsuline"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulinetoediening"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..044006280a --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Titel"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "E IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Geen pomp geconfigureerd"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "E Totaal"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Logboek"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulinetoediening"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..75af39d9ba --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,745 @@ +/* Information about workout range relative to correction range */ +" higher " = " hoger "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " lager "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% van normale insuline"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ gaat ervan uit dat de toegediende insuline actief bezig is om uw glucose gedurende 6 uur te verlagen. Deze instelling kan niet worden gewijzigd."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ of je Glucoseveiligheidslimiet, afhankelijk van welke hoger is"; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ ondersteunt 1 tot %2$@ snelheden per dag."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ eenheden over om %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for progress accessibility label (1: duration in seconds) */ +"%1$d percent complete." = "%1$d procent voltooid."; + +/* No comment provided by engineer. */ +"%lld" = "%lld"; + +/* No comment provided by engineer. */ +"%lld, " = "%lld, "; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Pre-Meal"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Training"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Een kaart waarvan de tekst op meerdere regels wordt teruggedrongen als ik lang genoeg blijf typen- Dit zou voldoende moeten zijn"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Een Correctiebereik is anders. Dit zal een kleiner bereik zijn."; + +/* No comment provided by engineer. */ +"A simple card" = "Een eenvoudige kaart"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Een waarde van 0 E/uur betekent dat u geen basale insuline ontvangt."; + +/* No comment provided by engineer. */ +"Above the save button" = "Boven de knop Opslaan"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Opnametijd"; + +/* No comment provided by engineer. */ +"Action Button" = "Actieknop"; + +/* The text for the override history duration */ +"Active Duration" = "Actieduur"; + +/* The title for the override emoji activity section */ +"Activity" = "Activiteit"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Toevoegen"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Voeg account toe"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Kh. Inv. Toevoegen"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Weet je zeker dat je de gehele pompgeschiedenis wilt verwijderen?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Weet je zeker dat je alle waarden van het reservoir wilt verwijderen?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Authenticeer om therapieinstellingen op te slaan"; + +/* Back navigation button title */ +"Back" = "Terug"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basaalsnelheden"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basaal-, bolus- en insulinecorrectiehoeveelheden zijn gereduceerd met %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basaal-, bolus- en insulinecorrectiehoeveelheden zijn verhoogd met %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basaal-, bolus- en insulinecorrectiehoeveelheden zijn onveranderd."; + +/* No comment provided by engineer. */ +"Bottom component" = "Onderste component"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuleer"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Annuleer Override"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Tijdelijk Basaal Annuleren"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Koolhydraatratio's"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Wijzigingen worden alleen nu toegepast wanneer je de override inschakelt. De standaard instellingen van %@ worden niet beïnvloed."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Wijzigingen gelden alleen als je het tijdelijk programma activeert. De standaard instellingen van %@ worden niet veranderd."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Kies een langere opnametijd voor grotere maaltijden of voor maaltijden die vetten en eiwitten bevatten. Dit is alleen een leidraad voor het algoritme en hoeft niet exact te zijn."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Sluiten"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "om %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "sinds %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "om %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "sinds %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Voltooid."; + +/* The title for the override emoji condition section */ +"Condition" = "Gesteldheid"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Bevestig instelling"; + +/* No comment provided by engineer. */ +"content" = "inhoud"; + +/* Title of the setup button to continue */ +"Continue" = "Ga Verder"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Correctiebereik is het bloedglucosebereik waar je Loop naartoe wilt laten corrigeren."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Correctiewaarden"; + +/* The text for a custom override */ +"Custom" = "Aangepast"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Aangepaste Override"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Aangepast Programma"; + +/* Title of the carb entry date picker cell */ +"Date" = "Datum"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Verwijderen"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Verwijder Account"; + +/* Button title to delete all objects */ +"Delete All" = "Verwijder Alles"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Toedieningslimieten"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Toedieningslimieten zijn de beveiliging voor je insulinetoevoer."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Programma Uitschakelen"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Gereed"; + +/* The text for the override duration setting */ +"Duration" = "Duur"; + +/* No comment provided by engineer. */ +"Dynamic component #%lld" = "Dynamische component #%lld"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Bewerken"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Kh. Inv. Bewerken"; + +/* The title for the override editing screen */ +"Edit Override" = "Override Aanpassen"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Veranderingen hebben alleen effect op de actieve override. De standaard instellingen van %@ worden niet beïnvloed."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Aanpassingen blijven van kracht totdat het programma wordt uitgeschakeld. De standaardinstellingen van %@ worden niet beïnvloed."; + +/* The button text for enabling a temporary override */ +"Enable" = "Inschakelen"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Voor onbepaalde tijd inschakelen"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Ingeschakeld"; + +/* The text for the override start time */ +"End Time" = "Eindtijd"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Voer %1$@ waarde in"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Voer aantal eenheden in"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Voer aantal eenheden per uur in"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Logboek"; + +/* No comment provided by engineer. */ +"Example" = "Voorbeeld"; + +/* Section title for fast absorbing food */ +"Fast" = "Snel"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Voor snelwerkende insuline gaat %1$@ ervan uit dat het gedurende 6 uur actief werkt. Je kunt kiezen uit %2$@ verschillende modellen voor hoe de app de piekactiviteit van de insuline meet."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Kies voor dit bereik de specifieke glucosewaarde (of bereik van waarden) waar je wilt dat %1$@ naar streeft bij het aanpassen van je basale insuline."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Krijg hulp bij Therapieinstellingen"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Ga Terug"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Hoge Basaalsnelheid"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Hoge Koolhydraatratio"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Hoge Correctiewaarde"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Hoge Glucoseveiligheidslimiet"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Hoge Insulinegevoeligheid"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Hoge Maximale Basaalsnelheid"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Hoge Maximale Bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Hoge Pre-Meal Waarde"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Hoge Trainingswaarde"; + +/* The text for the override history */ +"History" = "Geschiedenis"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Als deze instellingen er goed uitzien, tik op Instellingen Opslaan om verder te gaan."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Als je al eerder een CGM hebt gebruikt, ben je waarschijnlijk bekend met een streefbereik met een grote spreidingsbreedte die je wilt voor je glucosemeldingswaarschuwingen, zoals 3,9-10,0 mmol/L of 5,0-11,1 mmol/L."; + +/* No comment provided by engineer. */ +"info" = "Informatie"; + +/* Title text for insulin model */ +"Insulin Model" = "Insulinemodel"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulinegevoeligheden"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinegevoeligheid beschrijft hoe de bloedglucose reageert op 1 eenheid insuline. Lagere waarden betekent dat meer insuline gegeven wordt wanneer je boven streefbereik bent. Een te laag ingestelde insulinegevoeligheid kan leiden tot gevaarlijk lage bloedglucosewaarden."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Onderbroken %1$@: %2$@ van %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Het kan zo laag worden ingesteld als %1$@. Het kan zo hoog worden ingesteld als %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Lage Basaalsnelheid"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Lage Koolhydraatratio"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Lage Correctiewaarde"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Lage Glucoseveiligheidslimiet"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Lage Insulinegevoeligheid"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Lage Maximale Basaalsnelheid"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Lage Maximale Bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Lage Pre-Meal Waarde"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Lage Trainingswaarde"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maximale Basaalsnelheid"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Maximale Basaalsnelheid is de maximale automatisch aangepaste basaalsnelheid die %1$@ mag toedienen om te helpen binnen je correctiebereik te komen."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maximale Bolus"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maximale bolus is de hoogste bolus die %1$@ je kan geven om koolhydraten te dekken of hoge bloed glucose te verlagen."; + +/* Section title for medium absorbing food */ +"Medium" = "Middel"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "meer inhoud"; + +/* Alert action title to open error help */ +"More Info" = "Meer Informatie"; + +/* The text for the override preset name setting */ +"Name" = "Naam"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Nieuwe Invoer"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nieuw Programma"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Geen Basale Insuline"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Anders"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Totale Insulinebehoefte"; + +/* Title for override history view */ +"Override History" = "Overridegeschiedenis"; + +/* The title text for the override presets screen */ +"Override Presets" = "Override Programma's"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override programma's kunnen ingesteld worden via het onderdeel 'Instellingen' in het instellingenscherm."; + +/* The section title of glucose overrides */ +"Overrides" = "Override's"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pre-Meal"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Pre-Meal Waarden"; + +/* title for prescription section */ +"Prescription" = "Recepten"; + +/* The section header text override presets */ +"PRESETS" = "PROGRAMMA'S"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Voortgang."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pompgebeurtenis"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pomp Werkt Niet"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Snelwerkend - Volwassenen"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Snelwerkend - Kinderen"; + +/* The default placeholder string for a credential */ +"Required" = "Vereist"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Hervat Toediening"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Hervat"; + +/* title for summary description section */ +"Review and Save Settings" = "Bekijk en Instellingen Opslaan"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Bekijk hieronder je therapieinstellingen. Als je een van deze instellingen wilt aanpassen, tik je op Terug om terug te gaan naar dat scherm."; + +/* The text for the override preset name field placeholder */ +"Running" = "Hardlopen"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Opslaan"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Basaalsnelheden Opslaan?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Koolhydraatratio Opslaan?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Correctiebereik(en) Opslaan?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Toedieningslimieten opslaan?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Glucoseveiligheidlimiet Opslaan?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Insulinegevoeligheden opslaan?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Pre-Meal Bereik Opslaan?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Trainingsbereik Opslaan?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Opslaan..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "GEPLANDE OVERRIDE"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "GEPLAND PROGRAMMA"; + +/* No comment provided by engineer. */ +"Selected" = "Geselecteerd"; + +/* Section title for slow absorbing food */ +"Slow" = "Langzaam"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Sommige gebruikers kiezen een waarde 2, 3 of 4 keer hoger dan hun hoogste ingestelde basaalsnelheid."; + +/* The text for the override start time */ +"Start Time" = "Starttijd"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Tijdelijk Basaal Starten"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Ingediend door %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Ondersteuning"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Onderbreek Toediening"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Onderbreken"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Omschakelen naar Voorbeeldstand"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbool"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Tik op '+' om een nieuw override programma aan te maken."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Instellen…"; + +/* The text for the override target range setting */ +"Target Range" = "Streefbereik"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Tijdelijk verlagen van je glucosedoel vóór de maaltijd om de kans op post-maaltijd glucosepieken te verkleinen."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Verhoog tijdelijk je glucosedoel voor, gedurende of na fysieke activiteit om het risico van lage glucosewaarden te verminderen."; + +/* The title for the override selection screen */ +"Temporary Override" = "Tijdelijke Override"; + +/* No comment provided by engineer. */ +"Test" = "Test"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "zijn dan je Correctiebereik."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Het momenteel geselecteerde snelwerkende insulinemodel wordt als standaard gebruikt."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Het model gebruikt bij Loop, staat verandering van actieduur toe."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "De maximale opnametijd is %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "De maximale toegestane waarde is %@ gram"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Het snelwerkende model voor volwassenen gaat uit van een piekactiviteit op 75 minuten."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Het snelwerkende model voor kinderen gaat uit van een piekactiviteit op 65 minuten."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Het schema begint om middernacht en mag geen snelheid van 0 E/uur hebben."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Therapieinstellingen"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Tijdelijke aanduiding voor Ondersteuning van Therapie-instellingen"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Dit model gaat uit van een piek in de insulineactiviteit op 19 minuten."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Dit model gaat uit van een piek in de insulineactiviteit op 55 minuten."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Dit model gaat uit van een piek in de insulineactiviteit op 65 minuten."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Dit model gaat uit van een piek in de insulineactiviteit op 75 minuten."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Deze instelling bepaalt ook een veiligheidslimiet voor automatische dosering. %1$@ beperkt de automatische toediening om de hoeveelheid actieve insuline onder tweemaal uw maximale bolus te houden."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Over het algemeen is dit"; + +/* Label for offset from midnight picker */ +"Time" = "Tijd"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Tijd in %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Te implementeren"; + +/* No comment provided by engineer. */ +"Top component" = "Bovenste component"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Totaal"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "E/dag"; + +/* The unit string for units per hour */ +"U/hour" = "E/uur"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Kan Niet Opslaan"; + +/* The unit string for units */ +"Units" = "Eenheden"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Onbekend"; + +/* No comment provided by engineer. */ +"Unselected" = "Niet Geselecteerd"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Niet Ingesteld"; + +/* Placeholder text until value is entered */ +"Value" = "Waarde"; + +/* Label indicating validation is occurring */ +"Verifying" = "Verifiëren"; + +/* The title for the override editing screen */ +"View Override" = "Bekijk Override"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Waarschuwing"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Werk samen met je zorgverlener om een waarde te kiezen die hoger is dan je hoogst ingestelde basaalsnelheid, maar zo conservatief of agressief waarbij je jezelf prettig voelt."; + +/* Title for the workout override range */ +"Workout" = "Training"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Trainingsbereik is de glucosewaarde of bereik van waarden waar je wilt dat %1$@ naar streeft tijdens activiteit. Dit bereik geldt wanneer je met de knop het Trainingsprogramma activeert."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Trainingswaarden"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Je kunt verschillende koolhydraatratio's voor verschillende tijdstippen op de dag toevoegen met de ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Je kunt verschillende insulinegevoeligheden voor verschillende tijdstippen op de dag toevoegen met de ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Je kunt verschillende bereiken voor verschillende tijdstippen op de dag toevoegen met de ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Je kunt invoergegevens voor verschillende tijdstippen op de dag toevoegen met de ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Je kunt kiezen hoe %1$@ de piekactiviteit van snelwerkende insuline meet volgens een van deze twee insulinemodellen."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Je kunt een instelling bewerken door op een regelitem te tikken."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Je kunt de instelling bewerken door op het regelitem te tikken."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Je basale insulinesnelheid is het aantal eenheden per uur dat je wilt toedienen om in je basale insulinebehoefte te voorzien."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "je Glucoseveiligheidslimiet"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Je zorgverlener kan je helpen bij het kiezen van een correctiebereik dat bij je past."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Je Insulinegevoeligheidsfactor (ISF) is de daling van de glucosewaarde uitgaande van één eenheid insuline."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Je Pre-Meal Bereik zou de glucosewaarde moeten zijn (of een bereik van waarden) waar je wilt dat %1$@ naar dat streeft tegen de tijd dat je je eerste hap van je maaltijd neemt. Dit bereik wordt actief wanneer je het Pre-Meal Programma met de knop activeert."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/InsulinKit.strings new file mode 100644 index 0000000000..07c9330351 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "J łącznie"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Zbiorniczek"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historia zdarzeń"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Insulina bez pompy"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..8f36c0f6b1 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "J łącznie"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Zbiorniczek"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Historia zdarzeń"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..b82bc1871e --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,745 @@ +/* Information about workout range relative to correction range */ +" higher " = "wyżej"; + +/* Information about pre-meal range relative to correction range */ +" lower " = " niżej "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% normalnej insuliny"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@J"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ przyjmuje, że podana insulina obniża poziom glukozy przez 6 godzin. Nie można zmienić tego ustawienia."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ lub bezpieczny limit stężenia glukozy, w zależności od tego, która wartość jest wyższa."; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ obsługuje od 1 do %2$@ dawek dziennie."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ J"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednostek pozostaje w %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for progress accessibility label (1: duration in seconds) */ +"%1$d percent complete." = "Ukończono %1$d procent."; + +/* No comment provided by engineer. */ +"%lld" = "%lld"; + +/* No comment provided by engineer. */ +"%lld, " = "%lld, "; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Przed posiłkiem"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Trening"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Karta, której tekst zawija się w wiele wierszy, jeśli będę pisać wystarczająco długo — ta długość powinna wystarczyć"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Obecna skala została ograniczona bezpieczniejszą wartością."; + +/* No comment provided by engineer. */ +"A simple card" = "Prosta karta"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Wartość 0 jedn./godz. oznacza, że nie zaplanowano podawania insuliny bazowej."; + +/* No comment provided by engineer. */ +"Above the save button" = "Nad przyciskiem zapisz"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Czas absorpcji"; + +/* No comment provided by engineer. */ +"Action Button" = "Przycisk akcji"; + +/* The text for the override history duration */ +"Active Duration" = "Aktywny czas trwania"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktywność"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Dodaj"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Dodaj konto"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Wprowadź węglowodany"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Czy jesteś pewien, że chcesz usunąć z Loop wszystkie dane historyczne pompy?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Czy jesteś pewien, że chcesz usunąć wszystkie wartości zbiornika?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Uwierzytelnij, aby zapisać ustawienia terapii"; + +/* Back navigation button title */ +"Back" = "Powrót"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Dawka Podstawowa (Baza)"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Dawka podstawowa, bolus i korygująca dawka insuliny zostały zmniejszone o %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Dawka podstawowa, bolus i korygująca dawka insuliny zostały zwiększone o %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Dawka podstawowa, bolus i korygująca dawka insuliny bez zmian."; + +/* No comment provided by engineer. */ +"Bottom component" = "Dolny element"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Anuluj"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Anuluj pominięcie"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Anulowanie tymczasowej dawki podstawowej"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Współczynniki węglowodanowe"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Zmiany będą obowiązywać wyłącznie podczas tego pominięcia. Domyślne ustawienia %@ nie zostaną zmienione."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Zmiany zostaną zastosowane tylko wtedy, gdy włączysz ustawienie wstępne. Domyślne ustawienia %@ nie zostaną naruszone."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Wybierz dłuższy czas absorpcji dla większych, bogatobiałkowych lub wysokotłuszczowych posiłków. To tylko wskazówka dla algorytmu i nie musi być bardzo dokładna."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Zamknij"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "o %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "od %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "o %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "od %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Zakończony."; + +/* The title for the override emoji condition section */ +"Condition" = "Warunek"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Potwierdź ustawienia"; + +/* No comment provided by engineer. */ +"content" = "treść"; + +/* Title of the setup button to continue */ +"Continue" = "Kontynuuj"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Zakres korekty to zakres stężenia glukozy we krwi, względem którego chcesz skorygować algorytm Loop."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Wartości korekty"; + +/* The text for a custom override */ +"Custom" = "Cel na teraz"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Custom Override"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Cel Tymczasowy"; + +/* Title of the carb entry date picker cell */ +"Date" = "Data"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Usunąć"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Usuń konto"; + +/* Button title to delete all objects */ +"Delete All" = "Usuń wszystko"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limity podawania"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Limity podaży są barierami bezpieczeństwa dla podawania insuliny."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Wyłącz ustawienie wstępne"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Gotowe"; + +/* The text for the override duration setting */ +"Duration" = "Czas trwania"; + +/* No comment provided by engineer. */ +"Dynamic component #%lld" = "Składnik dynamiczny #%lld"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Edytuj"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Edytuj wprowadzone węglowodany"; + +/* The title for the override editing screen */ +"Edit Override" = "Edytuj pominięcie"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = " Edycja wpływa wyłącznie na aktywne pominięcie. Domyślne ustawienia %@ nie zostaną zmienione."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Zmiany są zachowywane tylko do momentu wyłączenia ustawienia wstępnego. Domyślne ustawienia %@ nie zostaną naruszone."; + +/* The button text for enabling a temporary override */ +"Enable" = "Włącz"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Włącz na czas nieokreślony"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Włączony"; + +/* The text for the override start time */ +"End Time" = "Koniec czasu"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Wprowadź wartość %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Wprowadź liczbę jednostek"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Maksymalna dawka w jednostkach na godzinę"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Historia zdarzeń"; + +/* No comment provided by engineer. */ +"Example" = "Przykład"; + +/* Section title for fast absorbing food */ +"Fast" = "Szybko"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "W przypadku szybko działającej insuliny %1$@ zakłada, że działa aktywnie przez 6 godzin. Możesz wybierać spośród %2$@ różnych modeli pomiaru szczytowej aktywności insuliny przez aplikację."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Dla tego zakresu wybierz konkretną wartość glukozy (lub zakres wartości), do której chce dążyć %1$@ podczas dostosowywania insuliny bazowej."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Uzyskaj pomoc dotyczącą ustawień terapii"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Wróć"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Wysoka dawka podstawowa"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Wysoki współczynnik węglowodanowy"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Wysoka wartość korekty"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Limit bezpieczeństwa wysokiego stężenia glukozy"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Wysoki Współczynnik Wrażliwości"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Wysoka maksymalna dawka podstawowa"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Wysoki maksymalny bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Wysoka wartość przed posiłkiem"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Wysoka wartość treningu"; + +/* The text for the override history */ +"History" = "Historia"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Jeśli te ustawienia Ci odpowiadają, stuknij Zapisz ustawienia, aby kontynuować."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Jeśli korzystałeś już z CGM, prawdopodobnie znasz zakres docelowy jako szeroki zakres wartości, które chcesz wyświetlać w alertach powiadomień o poziomie glukozy, na przykład 70-180 mg/dl lub 90-200 mg/dl."; + +/* No comment provided by engineer. */ +"info" = "info"; + +/* Title text for insulin model */ +"Insulin Model" = "Model insuliny"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Wrażliwość na insulinę (ISF)"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinowrażliwość opisuje, w jaki sposób stężenie glukozy we krwi powinno reagować na 1 jednostkę insuliny. Mniejsze wartości oznaczają podanie większej ilości insuliny w przypadku wartości powyżej zakresu. Zbyt małe wartości mogą spowodować niebezpiecznie niskie stężenie glukozy we krwi."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Przerwane %1$@ : %2$@ z %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Można go ustawić w zakresie od %1$@ do %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Niska dawka podstawowa"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Niski współczynnik węglowodanów"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Niska wartość korekty"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Limit bezpieczeństwa niskiego poziomu glukozy"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Niski Współczynnik Wrażliwości"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Niska maksymalna dawka podstawowa"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Niski maksymalny bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Niska wartość przed posiłkiem"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Niska wartość treningu"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "maks."; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maksymalna dawka podstawowa"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Maksymalna dawka podstawowa to maksymalna automatycznie dostosowana baza, którą %1$@ może wprowadzić, aby pomóc osiągnąć zakres docelowy."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maksymalny bolus"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Maksymalny bolus to największa wartość bolusa, jaką %1$@ można podać w jednorazowo, aby zrekompensować węglowodany lub obniżyć wysoki poziom glukozy."; + +/* Section title for medium absorbing food */ +"Medium" = "Średnia"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min."; + +/* No comment provided by engineer. */ +"more content" = "więcej treści"; + +/* Alert action title to open error help */ +"More Info" = "Więcej informacji"; + +/* The text for the override preset name setting */ +"Name" = "Nazwa"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Nowy wpis"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nowy Cel Tymczasowy"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Bez insuliny bazowej"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Inne"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Ogólne zapotrzebowanie na insulinę"; + +/* Title for override history view */ +"Override History" = "Historia Celu Tymczasowego"; + +/* The title text for the override presets screen */ +"Override Presets" = "Override Presets"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Wstępne ustawienia pominięcia można skonfigurować w części „Konfiguracja” na ekranie ustawień."; + +/* The section title of glucose overrides */ +"Overrides" = "Pominięcia"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Przed posiłkiem"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Wartości przed posiłkiem"; + +/* title for prescription section */ +"Prescription" = "Recepta"; + +/* The section header text override presets */ +"PRESETS" = "USTAWIENIA WSTĘPNE"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Postęp."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Zdarzenie pompy"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pompa nie działa"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Szybko działające – dorośli"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Szybko działająca – dzieci"; + +/* The default placeholder string for a credential */ +"Required" = "Wymagane"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Zbiorniczek"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Wznów podawanie"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Wznawianie"; + +/* title for summary description section */ +"Review and Save Settings" = "Przejrzyj i zapisz ustawienia"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Przejrzyj ustawienia terapii. Jeśli chcesz edytować dowolne z tych ustawień, kliknij Wróć, aby przejść do poprzedniego ekranu."; + +/* The text for the override preset name field placeholder */ +"Running" = "Pracuje"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Zapisz"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Zapisać Dawkę Podstawową?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Zapisać współczynniki węglowodanowe?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Zapisz Zakres Docelowy?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Zapisać limity podaży?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Zapisać bezpieczny limit glukozy?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Zapisać Współczynnik Wrażliwości na insulinę?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Zapisać zakres przedposiłkowy?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Zapisać zakres treningu?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Zapisywanie..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "ZAPLANOWANE POMINIĘCIE"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "Lista Celów"; + +/* No comment provided by engineer. */ +"Selected" = "Wybrany"; + +/* Section title for slow absorbing food */ +"Slow" = "Wolna"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Niektórzy użytkownicy wybierają wartość 2, 3 lub 4 razy większą niż ich najwyższa zaplanowana dawka podstawowa."; + +/* The text for the override start time */ +"Start Time" = "Czas rozpoczęcia"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Rozpoczynanie tymczasowej dawki podstawowej"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Wprowadzone przez %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Wsparcie"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Wstrzymaj podawanie"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Wstrzymywanie"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Przełącz podgląd"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Stuknij „+”, aby utworzyć nowy Cel Tymczasowy"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Kliknij, aby ustawić"; + +/* The text for the override target range setting */ +"Target Range" = "Zakres docelowy"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Tymczasowo obniż docelowy poziom glukozy przed posiłkiem, aby ograniczyć gwałtowny wzrost glukozy po posiłku."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Tymczasowo zwiększ docelowy poziom glukozy przed, w trakcie lub po aktywności fizycznej, aby zmniejszyć ryzyko wystąpienia niskiego poziomu glukozy (Hipoglikemia)."; + +/* The title for the override selection screen */ +"Temporary Override" = "Pominięcie tymczasowe"; + +/* No comment provided by engineer. */ +"Test" = "Test"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "niż twój zakres docelowy."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Aktualnie wybrany model insuliny szybko działającej zostanie użyty jako domyślny."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Model umożliwiający dostosowanie czasu działania insuliny."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Maksymalny czas absorpcji wynosi %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Maksymalna dozwolona ilość wynosi %@ gramów"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Szybko działający model dla dorosłych zakłada szczytową aktywność po 75 minutach."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Szybko działający model dziecka zakłada szczytową aktywność po 65 minutach."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Harmonogram rozpoczyna się o północy i nie może zawierać dawki 0 J/godz."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Ustawienia terapii"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Opis ustawień terapii"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Model ten zakłada szczytową aktywność insuliny po 19 minutach."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Model ten zakłada szczytową aktywność insuliny po 55 minutach."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Model ten zakłada szczytową aktywność insuliny po 65 minutach."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Model ten zakłada szczytową aktywność insuliny po 75 minutach."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Te ustawienia będą dodatkowo określać bezpieczny limit automatycznych dawek. %1$@ ograniczy automatyczne podawanie, do dwukrotności Twojego maksymalnego bolusa."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Zazwyczaj będzie to "; + +/* Label for offset from midnight picker */ +"Time" = "Czas"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Czas w %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Być realizowane"; + +/* No comment provided by engineer. */ +"Top component" = "Górny składnik"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Łącznie"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "J/dzień"; + +/* The unit string for units per hour */ +"U/hour" = "J/godzinę"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Nie można zapisać"; + +/* The unit string for units */ +"Units" = "Jednostki"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Nieznany"; + +/* No comment provided by engineer. */ +"Unselected" = "Niezaznaczone"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Niewybrano"; + +/* Placeholder text until value is entered */ +"Value" = "Wartość"; + +/* Label indicating validation is occurring */ +"Verifying" = "Weryfikuję"; + +/* The title for the override editing screen */ +"View Override" = "Podgląd Celu Tymczasowego"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Ostrzeżenie"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Współpracuj z lekarzem przy ustalaniu limitu podaży. Limit powinien ustawiony być tak, abyś czuł się bezpiecznie."; + +/* Title for the workout override range */ +"Workout" = "Wysiłek fizyczny"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Zakres treningu to wartość glukozy lub zakres wartości, do których chcesz dążyć %1$@ podczas aktywności. Ten zakres będzie obowiązywać po aktywowaniu przycisku ustawienia wstępnego treningu."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Wartości treningu"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Możesz dodać różne współczynniki węglowodanowe dla różnych pór dnia, używając ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Możesz dodać różne wrażliwości na insulinę dla różnych pór dnia za pomocą ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Możesz dodać różne zakresy dla różnych pór dnia, używając ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Możesz dodać różne współczynniki węglowodanowe dla różnych pór dnia, używając ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Możesz wybrać jak %1$@ prognozuje szczyt działania insuliny szybko działającej spośród dwóch dostępnych modeli insulinowych."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Możesz edytować ustawienie, stukając w pozycję mg/dL"; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Możesz edytować ustawienie, stukając w pozycję mg/dL"; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Dawka podstawowa insuliny to liczba jednostek na godzinę, którą chcesz wykorzystać do pokrycia podstawowego zapotrzebowania na insulinę."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "Bezpieczny Limit Glukozy"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Twój lekarz może pomóc Ci wybrać zakres docelowy odpowiedni dla Ciebie."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Twój współczynnik wrażliwości na insulinę (ISF) to oczekiwany spadek glukozy po podaniu jednej jednostki insuliny."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Twój zakres przed posiłkiem powinien być wartością glukozy (lub zakresem wartości), do którego chcesz dążyć %1$@, zanim zaczniesz spożywać posiłek. Ten zakres będzie obowiązywał po aktywowaniu przycisku Przed Posiłkiem."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/InsulinKit.strings new file mode 100644 index 0000000000..cb3cba99e8 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..64e6c32846 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..f286125e6d --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,295 @@ +/* The detail text representing no value */ +"–" = "—"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% de insulina normal"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unidades restantes em %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Tempo de Absorção"; + +/* The title for the override emoji activity section */ +"Activity" = "Atividade"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Adicionar Conta"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Adicionar Carb"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Tem certeza de que deseja excluir todas as entradas do histórico?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Tem certeza de que deseja excluir todos os valores do reservatório?"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Taxas Basais"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "As quantidades basais, de bolus e de dose de insulina de correção diminuem em %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "As quantidades basais, de bolus e de dose de insulina de correção aumentam em %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "As quantidades basais, de bolus e de dose de insulina de correção não são alteradas."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Cancelar Sobreposição"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Cancelar Basal Temporária"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Taxas de Carbs"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "As alterações serão aplicadas apenas desta vez que você ativar a sobreposição. As configurações padrão de %@ não serão afetadas."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Escolha um tempo de absorção mais longo para refeições maiores ou aquelas que contenham gorduras e proteínas. Esta é apenas uma orientação para o algoritmo e não precisa ser exata."; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "em %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "desde %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "em %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "desde %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* The title for the override emoji condition section */ +"Condition" = "Estado"; + +/* Title of the setup button to continue */ +"Continue" = "Continuar"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "A faixa de correção é o intervalo de glicose no sangue que você gostaria que o Loop corrigisse para."; + +/* The text for a custom override */ +"Custom" = "Personalizado"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Sobreposição Personalizada"; + +/* Title of the carb entry date picker cell */ +"Date" = "Data"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Remover Conta"; + +/* Button title to delete all objects */ +"Delete All" = "Remover Todos"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limites de Entrega"; + +/* The text for the override duration setting */ +"Duration" = "Duração"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Editar Carb"; + +/* The title for the override editing screen */ +"Edit Override" = "Editar Sobreposição"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "A edição afeta apenas a sobreposição ativa. As configurações padrão de %@ não serão afetadas."; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Ativar Indefinidamente"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Ativado"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Digite um número de unidades"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Insira uma taxa em unidades por hora"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Event History"; + +/* Section title for fast absorbing food */ +"Fast" = "Rápida"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Title text for insulin model */ +"Insulin Model" = "Modelo de Insulina"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Sensibilidades a Insulina"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "A sensibilidade à insulina descreve como a glicose no sangue deve responder a uma dose unitária de insulina. Valores menores significam que mais insulina será administrada quando acima do objetivo. Valores muito pequenos podem causar hipoglicemia."; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Taxa Basal Máxima"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Bolus Máximo"; + +/* Section title for medium absorbing food */ +"Medium" = "Média"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* Alert action title to open error help */ +"More Info" = "Mais Info"; + +/* The text for the override preset name setting */ +"Name" = "Nome"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Nova Predefinição"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Outra"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Necessidades Gerais de Insulina"; + +/* The title text for the override presets screen */ +"Override Presets" = "Sobreposições Predefinidas"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "As predefinições de sobreposição podem ser configuradas na seção 'Configuração' da tela de configurações."; + +/* The section title of glucose overrides */ +"Overrides" = "Sobreposições"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Pré-Refeição"; + +/* The section header text override presets */ +"PRESETS" = "PREDEFINIDAS"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Eventos da Bomba"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Ação-Rápida – Adultos"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Ação-Rapida – Crianças"; + +/* The default placeholder string for a credential */ +"Required" = "Obrigatório"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Retomar Entrega"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Retomando"; + +/* The text for the override preset name field placeholder */ +"Running" = "Executando"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Salvar"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SOBREPOSIÇÃO AGENDADA"; + +/* Section title for slow absorbing food */ +"Slow" = "Lenta"; + +/* The text for the override start time */ +"Start Time" = "Hora de Início"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Iniciando Temp Basal"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspender Entrega"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspendendo"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Símbolo"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Toque para Definir"; + +/* The text for the override target range setting */ +"Target Range" = "Intervalo Meta"; + +/* The title for the override selection screen */ +"Temporary Override" = "Sobreposição Temporária"; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "O modelo antigo utilizado pelo Loop permitindo personalização da duração da ação."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "O tempo máximo de absorção é %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "A quantidade máxima permitida é %@ gramas"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Hora em %1$@%2$@%3$@"; + +/* The unit string for units per hour */ +"U/hour" = "U/houra"; + +/* The unit string for units */ +"Units" = "Unidades"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Desconhecido"; + +/* Label indicating validation is occurring */ +"Verifying" = "Verificando"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Aviso"; + +/* Title for the workout override range */ +"Workout" = "Exercício"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/InsulinKit.strings new file mode 100644 index 0000000000..aa34af1cb8 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervor"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Istoric evenimente"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..d58b62b0fe --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervor"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Istoric evenimente"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..e7853e6146 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,745 @@ +/* Information about workout range relative to correction range */ +" higher " = " mai mare "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " mai mic "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% din insulină normală"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ presupune că insulina pe care a livrat-o acționează pentru a vă scădea glicemia timp de 6 ore. Această setare nu poate fi schimbată."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ sau limita dvs. de siguranță, oricare dintre acestea este mai mare"; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ acceptă rate de la 1 la %2$@ pe zi."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unități rămase la %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for progress accessibility label (1: duration in seconds) */ +"%1$d percent complete." = "%1$d la sută complet."; + +/* No comment provided by engineer. */ +"%lld" = "%lld"; + +/* No comment provided by engineer. */ +"%lld, " = "%lld, "; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Preprandial"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Activitate sportivă"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Un card al cărui text se va întinde pe mai multe linii dacă continui să tastez pentru o perioadă suficient de lungă — această lungime ar trebui să o facă"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Un interval de corecție este diferit. Acesta ar trebui sa fie un interval mai îngust."; + +/* No comment provided by engineer. */ +"A simple card" = "Un card simplu"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "O valoare de 0 U/oră înseamnă că nu vei primi insulină bazală."; + +/* No comment provided by engineer. */ +"Above the save button" = "Deasupra butonului de salvare"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Timp de absorbție"; + +/* No comment provided by engineer. */ +"Action Button" = "Buton acțiune"; + +/* The text for the override history duration */ +"Active Duration" = "Durata activă"; + +/* The title for the override emoji activity section */ +"Activity" = "Activitate"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Adaugă"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Adaugă cont"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Adaugă carbohidrați"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Sigur doriți să ștergeți toate înregistrările din istoric?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Sigur doriți să ștergeți toate valorile de rezervor?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Autentifică-te pentru a salva setările terapiei"; + +/* Back navigation button title */ +"Back" = "Înapoi"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Rate bazale"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Dozele de insulină bazale, de bolus și de corecție sunt scăzute cu %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Dozele de insulină bazale, de bolus și de corecție sunt crescute cu %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Dozele de insulină bazale, de bolus și de corecție sunt neafectate."; + +/* No comment provided by engineer. */ +"Bottom component" = "Componenta de jos"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Renunță"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Oprește înlocuirea"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Oprește bazala temporară"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Raport carbohidrați/insulină"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Modificările se vor aplica doar pe durata înlocuirii. Setările implicite de %@ nu vor fi afectate."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Modificările se vor aplica numai de această dată când activați presetarea. Setările implicite %@ nu vor fi afectate."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Alegeți o durată mai lungă de absorbție pentru mese mai mari sau pentru cele care conțin grăsimi și proteine. Nu e necesară o valoare exactă, scopul e să oferim doar o ghidare pentru algoritm."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Închide"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "la %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "de la %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "la %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "de la %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Finalizat."; + +/* The title for the override emoji condition section */ +"Condition" = "Condiție"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Confirmați setările"; + +/* No comment provided by engineer. */ +"content" = "conținut"; + +/* Title of the setup button to continue */ +"Continue" = "Continuă"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Valori corecție"; + +/* The text for a custom override */ +"Custom" = "Personalizată"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Modificare personalizată"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Presetare particularizată"; + +/* Title of the carb entry date picker cell */ +"Date" = "Data"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Șterge"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Șterge cont"; + +/* Button title to delete all objects */ +"Delete All" = "Șterge tot"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limite de livrare"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Limitele de livrare sunt măsuri de siguranță pentru administrarea insulinei."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Dezactivează presetarea"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Realizat"; + +/* The text for the override duration setting */ +"Duration" = "Durată"; + +/* No comment provided by engineer. */ +"Dynamic component #%lld" = "Componenta dinamică #%lld"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Editare"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Editează carbohidrați"; + +/* The title for the override editing screen */ +"Edit Override" = "Editează înlocuirea"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Editarea afectează doar înlocuirea activă. Setările implicite de %@ nu vor fi afectate."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Modificările persistă numai până când presetarea este dezactivată. Setările implicite %@ nu vor fi afectate."; + +/* The button text for enabling a temporary override */ +"Enable" = "Activează"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Activează pe termen nedeterminat"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Activat"; + +/* The text for the override start time */ +"End Time" = "Timp de încheiere"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Introduceți valoarea %1$@"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Introduceți un număr de unități"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Introduceți o rată exprimată în unități per oră"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Istoric evenimente"; + +/* No comment provided by engineer. */ +"Example" = "Exemplu"; + +/* Section title for fast absorbing food */ +"Fast" = "Rapidă"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Pentru insulina cu acțiune rapida, %1$@ presupune că acționează timp de 6 ore. Puteți alege din %2$@ modele diferite pentru modul în care aplicația determina vârful de acțiune al insulinei."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Pentru acest interval, alegeți valoarea specifică a glicemiei (sau intervalul de valori) spre care doriți ca %1$@ să țintească în ajustarea insulinei bazale."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Obțineți ajutor cu Setările Terapiei"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Inapoi"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Rată bazală ridicată"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Raport carbohidrați/insulina ridicat"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Valoare de corecție ridicată"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Limita superioara de siguranță a glicemiei"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Factor de sensibilitate la insulină ridicat"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Rată bazală maximă ridicata"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Bolus maxim ridicat"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Valoare mare preprandiala"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Valoare mare antrenament"; + +/* The text for the override history */ +"History" = "Istoric"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Dacă aceste setări arată bine pentru tine, apasă pe Salvează Setări pentru a continua."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Dacă ați folosit anterior un CGM, probabil sunteți familiarizat cu intervalul țintă ca o gamă largă de valori pe care le-ați dori pentru alertele de notificare, cum sunt 70-180 mg/dl sau 90-200 mg/dl."; + +/* No comment provided by engineer. */ +"info" = "info"; + +/* Title text for insulin model */ +"Insulin Model" = "Modelul de insulină"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Factor de sensibilitate la insulină"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Factorul de sensibilitate la insulină descrie felul în care glicemia ar trebui să răspundă la 1 unitate de insulină. Valori mai mici determină administrarea unor doze mai mari de insulină pentru a scădea glicemia la intervalul țintă."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Întrerupere %1$@: %2$@ din %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Poate fi setat la minim %1$@. Poate fi setat până la %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Rată bazală scăzută"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Raport Carbohidrați/Insulina scăzut"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Valoare de corecție scăzută"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Limita inferioara de siguranță a glicemiei"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Factor de sensibilitate la insulină scăzut"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Rată bazală maximă scăzută"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Bolus maxim scăzut"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Valoare mica preprandiala"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Valoare mica antrenament"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Rată bazală maximă"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Rata bazală maximă este rata bazală maximă ajustată automat pe care %1$@ are voie să o activeze pentru a vă ajuta să atingeți intervalul de corecție."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Bolus maxim"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Bolusul maxim este cea mai mare cantitate de insulină pe care o permiteți %1$@ să o recomande dintr-odată pentru a acoperi carbohidrați sau pentru a scădea o glicemie mare."; + +/* Section title for medium absorbing food */ +"Medium" = "Medie"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "mai mult conținut"; + +/* Alert action title to open error help */ +"More Info" = "Detalii"; + +/* The text for the override preset name setting */ +"Name" = "Nume"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Înregistrare nouă"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Presetare nouă"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Fără insulină bazală"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Altele"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Necesar de insulină total"; + +/* Title for override history view */ +"Override History" = "Suprascrie istoricul"; + +/* The title text for the override presets screen */ +"Override Presets" = "Presetări de înlocuire"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Presetările de înlocuire pot fi setate în secțiunea 'Configurație' din ecranul de setări."; + +/* The section title of glucose overrides */ +"Overrides" = "Înlocuiri"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Preprandial"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Valori preprandiale"; + +/* title for prescription section */ +"Prescription" = "Prescripție"; + +/* The section header text override presets */ +"PRESETS" = "PRESETĂRI"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Progresează."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Eveniment de pompă"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pompă inoperabilă"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Acțiune rapidă – Adulți"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Acțiune rapidă - Copii"; + +/* The default placeholder string for a credential */ +"Required" = "Necesar"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Rezervor"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Reia administrarea"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Se reia"; + +/* title for summary description section */ +"Review and Save Settings" = "Revizuiește și Salvează Setările"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Revizuiți setările de terapie de mai jos. Dacă doriți să editați oricare dintre aceste setări, apăsați Înapoi pentru a reveni la acel ecran."; + +/* The text for the override preset name field placeholder */ +"Running" = "Se rulează"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Salvează"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Salvați ratele bazale?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Salvați rațiile insulina carbohidrați?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Salvați intervalul (intervalele) de corecție?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Salvați limitele de administrare?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Salvați limita de siguranță pentru glicemie?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Salvați sensibilitatea la insulină?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Salvează Interval preprandial?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Salvați intervalul țintă pentru antrenament?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Salvare..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "ÎNLOCUIRE PLANIFICATĂ"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PRESETARE PROGRAMATĂ"; + +/* No comment provided by engineer. */ +"Selected" = "Selectat"; + +/* Section title for slow absorbing food */ +"Slow" = "Lentă"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Unii utilizatori aleg o valoare de 2, 3 sau 4 ori cea mai mare rată bazală programată."; + +/* The text for the override start time */ +"Start Time" = "Oră începere"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Pornire bazală temporară"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Trimis de %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Asistenţă"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspendă administrarea"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Se suspendă"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Schimbă către Stare Previzualizare"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Simbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Apasă '+' pentru a crea o nouă presetare personalizată."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Apăsați pentru setare"; + +/* The text for the override target range setting */ +"Target Range" = "Interval țintă"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Reduceți temporar glicemia țintă înainte de masă pentru a avea un impact asupra vârfurilor postprandiale."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Creșteți temporar valoarea ținta a glicemiei înainte, în timpul sau după activitatea fizică pentru a reduce riscul de apariție a hipoglicemiei."; + +/* The title for the override selection screen */ +"Temporary Override" = "Înlocuire temporară"; + +/* No comment provided by engineer. */ +"Test" = "Test"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "față de intervalul de corecții."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Modelul de insulină cu acțiune rapidă selectat în prezent va fi utilizat ca implicit."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Modelul vechi utilizat de Loop, permite personalizarea duratei de acțiune."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Durata maximă de absorbție este de %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Cantitatea maximă admisă este de %@ grame"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Modelul pentru adulți de acțiune rapidă presupune vârful de acțiune la 75 de minute."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Modelul pentru copii de acțiune rapidă presupune vârful de acțiune la 65 de minute."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Programul începe la miezul nopții și nu poate conține o rată bazala de 0 U/oră."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Setări Terapie"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Suport Setări de Terapie Substituent"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Acest model presupune vârful de acțiune al insulinei la 19 minute."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Acest model presupune activitatea maximă a insulinei la 55 minute."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Acest model presupune activitatea maximă a insulinei la 65 minute."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Acest model presupune activitatea maximă a insulinei la 75 minute."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Această setare va determina, de asemenea, o limită de siguranță pentru administrarea automată. %1$@ va limita administrarea automată pentru a menține cantitatea de insulină activă sub dublul bolusului maxim."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Acesta va fi de obicei"; + +/* Label for offset from midnight picker */ +"Time" = "Timp"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Orele în %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Va fi implementat"; + +/* No comment provided by engineer. */ +"Top component" = "Componenta superioara"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Total"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "U/zi"; + +/* The unit string for units per hour */ +"U/hour" = "U/oră"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Nu se poate salva"; + +/* The unit string for units */ +"Units" = "Unități"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Necunoscut"; + +/* No comment provided by engineer. */ +"Unselected" = "Neselectat"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Nealeasă"; + +/* Placeholder text until value is entered */ +"Value" = "Valoare"; + +/* Label indicating validation is occurring */ +"Verifying" = "Se verifică"; + +/* The title for the override editing screen */ +"View Override" = "Vizualizare suprascriere"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Avertizare"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Consultați-va cu medicul pentru a alege o valoare mai mare decât cea mai mare rată bazală programată, dar suficient de prudenta sau agresiva pe cât vă simțiți confortabil."; + +/* Title for the workout override range */ +"Workout" = "Activitate sportivă"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Intervalul ținta pentru antrenament este valoarea glicemiei sau intervalul de valori pe care vrei să le țintești %1$@ în timpul activității. Acest interval va fi în vigoare atunci când activați butonul de presetare a antrenamentului."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Valori activitate sportivă"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Poți adăuga diferite rații carbohidrați/insulina pentru diferite momente ale zilei folosind ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Puteți adăuga valori pentru sensibilitatea la insulină pentru diferite momente ale zilei utilizând ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Poți adăuga diferite intervale pentru diferite momente ale zilei folosind ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Poți adăuga intrări pentru diferite momente ale zilei folosind ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Puteți alege modul în care %1$@ măsoară momentul de vârf al insulinei cu acțiune rapidă în funcție de unul dintre aceste două modele de insulină."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Puteți edita o setare apăsând pe orice linie."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Puteți edita setarea apăsând pe linie."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Rata bazală de insulină este numărul de unități pe oră pe care doriți să le utilizați pentru a acoperi necesarul bazal de insulina al organismului."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "limita de siguranță a glicemiei"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Medicul dvs. vă poate ajuta să alegeți un interval de corecție potrivit pentru dvs."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Factorul de sensibilitate la insulină (ISF) este scăderea glicemiei determinata de o unitate de insulină."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Intervalul ținta preparandial trebuie să fie valoarea glicemiei (sau intervalul de valori) pe care doriți %1$@ să o vizați până la prima mușcătură a mesei. Acest interval va fi în vigoare atunci când activați butonul Presetare înainte de masă."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/InsulinKit.strings new file mode 100644 index 0000000000..d81d5c7e40 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "ед Всего"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "История событий"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Инсулин не из помпы (ручка)"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..8d42fdcccf --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "История событий"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..50ebfa2942 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,715 @@ +/* Information about workout range relative to correction range */ +" higher " = " выше "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " ниже "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "---"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% нормального инсулина"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ед"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Information about insulin action duration (1: app name) */ +"%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed." = "%1$@ предполагает, что доставленный им инсулин активно работает над снижением уровня глюкозы в течение 6 часов. Эта настройка не может быть изменена."; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ или ваш безопасный предел ГК, в зависимости от того, что выше"; + +/* Information about max number of basal rates (1: app name) (2: maximum schedule entry count) */ +"%1$@ supports 1 to %2$@ rates per day." = "%1$@ поддерживает от 1 до %2$@ изменений в день."; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ед остается в %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@:%2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "До еды"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Тренировки"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Карточка, текст которой будет переноситься на несколько строк, если я буду продолжать печатать достаточно долго — такой длины должно хватить."; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Диапазон коррекции слишком широкий. Это должен быть более узкий диапазон."; + +/* No comment provided by engineer. */ +"A simple card" = "Простая карта"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Значение 0 Ед/час означает, что Вы не будете получать базальный инсулин."; + +/* No comment provided by engineer. */ +"Above the save button" = "Над кнопкой сохранения"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Длительность усвоения"; + +/* No comment provided by engineer. */ +"Action Button" = "Кнопка действия"; + +/* The text for the override history duration */ +"Active Duration" = "Активная продолжительность"; + +/* The title for the override emoji activity section */ +"Activity" = "Нагрузка"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Добавить"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Добавить пользователя"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Добавить запись углеводов"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Подтвердите удаление всех записей истории?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Подтвердите удаление всех записей резервуара?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Аутентификация для сохранения настроек терапии"; + +/* Back navigation button title */ +"Back" = "Назад"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Скорости базала"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "База, болюсы и болюсы на коррекцию снижены на%@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "База, болюсы и болюсы на коррекцию увеличены на %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "BБаза, болюсы и болюсы на коррекцию не изменились."; + +/* No comment provided by engineer. */ +"Bottom component" = "Нижний компонент"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Отмена"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Отмена ручного контроля"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Отмена врем базала"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Соотношения углеводов"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Изменения будут действительны только на время ручного контроля."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Изменения будут применяться только при включении пресета. Настройки по умолчанию %@ не будут затронуты."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Выберите более высокую длительность усвоения для обильной пищи или для пищи с белками и протеинами. Это единственное указание для алгоритма не нуждается в дополнительных уточнениях."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Закрыть"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "В %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "после %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "В %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "после %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Завершено."; + +/* The title for the override emoji condition section */ +"Condition" = "Условие"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Подтвердить настройки"; + +/* No comment provided by engineer. */ +"content" = "содержание"; + +/* Title of the setup button to continue */ +"Continue" = "Продолжить"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Диапазон коррекции это желательный диапазон значений ГК для обработки алгоритмом петли."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Значения коррекции"; + +/* The text for a custom override */ +"Custom" = "Настраиваемый"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Настраиваемое ручное управление"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Пользовательский пресет"; + +/* Title of the carb entry date picker cell */ +"Date" = "Дата"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Удалить"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Удалить аккаунт"; + +/* Button title to delete all objects */ +"Delete All" = "Стереть все"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Пределы подачи"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Пределы подачи - это защита от ввода лишнего инсулина."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Выключить пресет"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Готово"; + +/* The text for the override duration setting */ +"Duration" = "Продолжительность"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Редактировать"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Редактировать запись углеводов"; + +/* The title for the override editing screen */ +"Edit Override" = "Редактировать ручной контроль"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Изменения затронут только активную версию. Значения по умолчанию %@ не изменятся."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Изменения сохраняются только до отключения пресета. Настройки по умолчанию %@ не будут затронуты."; + +/* The button text for enabling a temporary override */ +"Enable" = "Включить"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Активировать на неопределенное время"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Активировано"; + +/* The text for the override start time */ +"End Time" = "Время окончания"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Введите %1$@ значение"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Введите кол-во единиц"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Введите скорость в ед/час"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "История событий"; + +/* No comment provided by engineer. */ +"Example" = "Пример"; + +/* Section title for fast absorbing food */ +"Fast" = "Быстрая"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Для быстродействующего инсулина %1$@ предполагается, что он активно работает в течение 6 часов. Вы можете выбрать из %2$@ различных моделей того, как приложение измеряет пиковую активность инсулина."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Для этого диапазона выберите конкретное значение глюкозы (или диапазон значений), к которому вы хотите стремиться %1$@ при корректировке с помощью ВБС."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Получить помощь в настройках терапии"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Вернуться назад"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Слишком большая база"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Слишком высокое соотношение углеводов"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Слишком высокая настройка диапазона коррекции"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Слишком высокий порог безопасности ГК"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Слишком высокая чувствительность к инсулину"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Слишком большая максимальная база"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Слишком большой максимальный болюс"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Слишком высокая настройка до еды"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Слишком высокая настройка для физнагрузки"; + +/* The text for the override history */ +"History" = "История"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Если эти настройки вас устраивают, нажмите Сохранить настройки, чтобы продолжить."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Если вы уже пользовались CGM, вы, скорее всего, знакомы с целевым диапазоном как широким диапазоном значений, которые вы хотели бы видеть в уведомлениях о глюкозе, например, 3,9 ммоль/л - 10 ммоль/л или 5 - 11,1 ммоль/л."; + +/* Title text for insulin model */ +"Insulin Model" = "Модель инсулина"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Факторы чувствительности инсулина"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Чувствительность к инсулину показывает как ГК отреагирует на 1 ед. Инсулина. Меньшие величины означают подачу большего количества инсулина при ГК выше целевой. Слишком низкие величины могут привести к слишком низкой ГК."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Прервано %1$@:%2$@ из %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Его можно установить на уровне %1$@. Он может быть установлен до %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Слишком низкая база"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Слишком низкое соотношение углеводов"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Слишком низкое значение для коррекции"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Слишком низкий предел безопасности ГК"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Низкая чувствительность к инсулину"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Слишком низкая максимальная база"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Слишком маленький максимальный болюс"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Слишком низкая настройка до еды"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Слишком низкая настрйка для физнагрузки"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "макс"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Максимальная скорость базала"; + +/* Information about maximum basal rate (1: app name) */ +"Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range." = "Максимальная базальная скорость - это максимальная базальная скорость, которую %1$@ разрешено использовать для достижения диапазона коррекции в автоматическом режиме."; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Максимальный Болюс"; + +/* Information about maximum bolus (1: app name) */ +"Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose." = "Максимальный болюс - это наибольший размер болюса, котороый вы позволите %1$@ рекомендовать за один раз для покрытия углеводов или снижения высокого уровня глюкозы."; + +/* Section title for medium absorbing food */ +"Medium" = "Средняя"; + +/* Placeholder for minimum value in glucose range */ +"min" = "мин"; + +/* No comment provided by engineer. */ +"more content" = "дополнительное содержание"; + +/* Alert action title to open error help */ +"More Info" = "Доп. инфо"; + +/* The text for the override preset name setting */ +"Name" = "Имя"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Новая запись"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Новый параметр"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Без базального инсулина"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Другая"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Общая потребность в инсулине"; + +/* Title for override history view */ +"Override History" = "История временных целей"; + +/* The title text for the override presets screen */ +"Override Presets" = "Редактировать параметры"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Редактирование параметров может задаваться в разделе “Конфигурация” экрана настройки."; + +/* The section title of glucose overrides */ +"Overrides" = "Изменить"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "До еды"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Значения до еды"; + +/* title for prescription section */ +"Prescription" = "Рецепт"; + +/* The section header text override presets */ +"PRESETS" = "НАСТРОЙКИ"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Прогресс."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Событие помпы"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Неисправность помпы"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Быстродействующий - взрослые"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Быстродействующий - дети"; + +/* The default placeholder string for a credential */ +"Required" = "обязательный"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Возобновить подачу"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Возобновляется"; + +/* title for summary description section */ +"Review and Save Settings" = "Просмотр и сохранение настроек"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Просмотрите настройки терапии ниже. Если вы хотите изменить какие-либо из этих настроек, нажмите Назад"; + +/* The text for the override preset name field placeholder */ +"Running" = "Выполнение"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Сохранить"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Сохранить базальные дозы?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Сохранить соотношение углеводов?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Сохранить диапазон(ы) коррекции?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Сохранить пределы подачи?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Сохранить безопасный предел глюкозы?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Сохранить чувствительность к инсулину?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Сохранить диапазон до еды?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Сохранить диапазон для физнагрузки?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Сохранение..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "ЗАПЛАНИРОВАННОЕ ВЫПОЛНЕНИЕ ИЗМЕНЕНИЙ"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "ПРЕДУСТАНОВКА ПО РАСПИСАНИЮ"; + +/* Section title for slow absorbing food */ +"Slow" = "Медленная"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Некоторые пользователи выбирают значение, в 2, 3 или 4 раза превышающее их самую высокую запланированную базальную скорость."; + +/* The text for the override start time */ +"Start Time" = "Время начала"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Время начала временного базала"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Представлено %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Поддержка"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Остановить подачу"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Выполняется остановка"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Состояние переключателя просмотра"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Значок"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Нажмите «+», чтобы создать новый пользовательский пресет."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Щелкнуть для ввода"; + +/* The text for the override target range setting */ +"Target Range" = "Целевой диапазон"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Временно понизьте целевое значение уровня глюкозы перед едой, чтобы уменьшить пики глюкозы после еды."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Временно повышайте целевой уровень глюкозы до, во время или после физической активности, чтобы снизить риск развития событий, связанных с низким уровнем глюкозы."; + +/* The title for the override selection screen */ +"Temporary Override" = "Временный"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "чем ваш диапазон коррекции."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Выбранная в данный момент модель быстродействующего инсулина будет использоваться по умолчанию."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Устаревшая модель, используемая Loop, позволяющая настраивать продолжительность действия."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Максимальная длительность усвоения %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Максимальное допустимое количество %@ грамм"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Быстродействующая взрослая модель предполагает пик активности через 75 минут."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Быстродействующая детская модель предполагает пиковую активность через 65 минут."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Расписание начинается в полночь и не может содержать скорость 0 Ед/ч."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Настройки терапии"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Заполнитель поддержки настроек терапии"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Эта модель предполагает пик активности инсулина на 19 минуте."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Эта модель предполагает пик активности инсулина на 55 минуте."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Эта модель предполагает пик активности инсулина на 65 минуте."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Эта модель предполагает пик активности инсулина на 75 минуте."; + +/* Information about maximum automated insulin on board (1: app name) */ +"This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus." = "Эта настройка также определяет предел безопасности для автоматического введения инсулина. %1$@ ограничит автоматический ввод инсулина, чтобы количество активного инсулина не превышало удвоенного максимального болюса."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Как правило, это "; + +/* Label for offset from midnight picker */ +"Time" = "Время"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Хронометраж %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Будет применено"; + +/* No comment provided by engineer. */ +"Top component" = "Верхний компонент"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Всего"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "Ед/сутки"; + +/* The unit string for units per hour */ +"U/hour" = "ед/ч"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Невозможно сохранить"; + +/* The unit string for units */ +"Units" = "Единицы"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Неизвестно"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Не выбрано"; + +/* Placeholder text until value is entered */ +"Value" = "Значение"; + +/* Label indicating validation is occurring */ +"Verifying" = "Верифицируется"; + +/* The title for the override editing screen */ +"View Override" = "Просмотреть оверрайд"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Предостережение"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Вместе с вашим лечащим врачом выберите значение, которое будет выше, чем ваша самая высокая запланированная база, но на столько, на сколько вам удобно."; + +/* Title for the workout override range */ +"Workout" = "Физическая нагрузка"; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Настройки физнагрузок"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Вы можете добавлять различные соотношения углеводов для разного времени суток с помощью ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Вы можете добавить различные показатели чувствительности к инсулину для разного времени суток с помощью кнопки ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Вы можете добавить различные диапазоны для разного времени суток с помощью кнопки ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Можно добавлять записи для разного времени суток с помощью кнопки ➕."; + +/* Information about insulin model (1: app name) */ +"You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models." = "Вы можете выбрать, как %1$@ измеряет пиковую активность быстродействующего инсулина в соответствии с одной из этих двух моделей инсулина."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Вы можете изменить настройку, коснувшись самой строки."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Вы можете изменить настройку, коснувшись самой строки."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Ваша базальная норма инсулина - это количество единиц в час, которое вы хотите использовать для покрытия своих фоновых потребностей в инсулине."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "Ваш безопасный предел ГК"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Ваш лечащий врач поможет вам выбрать подходящий для Вас диапазон коррекции."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Ваш фактор чувствительности к инсулину (ISF) - это снижение уровня глюкозы, ожидаемое от одной единицы инсулина."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/InsulinKit.strings new file mode 100644 index 0000000000..3bd552b9b4 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/InsulinKit.strings @@ -0,0 +1,12 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Názov"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervoár"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Podávanie inzulínu"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..3bd552b9b4 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,12 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Názov"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervoár"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Podávanie inzulínu"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..b0d2613a6b --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,88 @@ +/* Separator between min and max glucose values */ +"-" = "-"; + +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ j"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednotiek zostávajúcich na %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivita"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Pridať účet"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Zadať sacharidy"; + +/* Back navigation button title */ +"Back" = "Späť"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Bazálne dávky"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušiť"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Inzulínovo sacharidový pomer"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Title of the setup button to continue */ +"Continue" = "Pokračovať"; + +/* Title of the carb entry date picker cell */ +"Date" = "Dátum"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Odstrániť účet"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Limity podávania"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Hotovo"; + +/* Title text for insulin model */ +"Insulin Model" = "Inzulínový model"; + +/* The text for the override preset name setting */ +"Name" = "Názov"; + +/* The default placeholder string for a credential */ +"Required" = "Povinné"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Rezervoár"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Uložiť"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Ukladá sa..."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Ťuknutím nastavte"; + +/* Label for offset from midnight picker */ +"Time" = "Čas"; + +/* The unit string for units */ +"Units" = "jednotky"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Neznáme"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/InsulinKit.strings new file mode 100644 index 0000000000..8379cc0142 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Händelsehistorik"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..e3478b9b95 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Händelsehistorik"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..87a3ec0623 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,679 @@ +/* Information about workout range relative to correction range */ +" higher " = " högre "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " lägre "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% of normal insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ eller ditt Tröskelvärde, beroende på vilket som är högst"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter återstår kl. %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Före måltid"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Träning"; + +/* No comment provided by engineer. */ +"A card whose text will wrap onto multiple lines if I continue to type for long enough—this length should do" = "Ett kort vars text kommer att hamna på flera rader om jag fortsätter att skriva tillräckligt länge - denna längd bör räcka"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Detta målvärde är annorlunda än det du är van vid. Detta är ett snävare intervall."; + +/* No comment provided by engineer. */ +"A simple card" = "Ett enkelt kort"; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "Ett värde på 0 / h innebär att du inte kommer få någon basal insulintillförsel."; + +/* No comment provided by engineer. */ +"Above the save button" = "Ovanför spara-knappen"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Absorptionstid"; + +/* No comment provided by engineer. */ +"Action Button" = "Åtgärdsknapp"; + +/* The text for the override history duration */ +"Active Duration" = "Aktiv varaktighet"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivitet"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Lägg till"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Lägg till konto"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Lägg till kolhydrater"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Säkert att du vill radera all händelsehistorik?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Säkert att du vill radera alla reservoarvärden?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Autentisera för att spara behandlingsinställningar"; + +/* Back navigation button title */ +"Back" = "Tillbaka"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Basaldoser"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, och korrigeringsdoser är minskade med %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, och korrigeringsdoser är ökade med %@%%"; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, och korrigeringsdoser är oförändrade."; + +/* No comment provided by engineer. */ +"Bottom component" = "Nedre komponent"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Avbryt Override"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Avbryt temporär basal"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Insulinkvoter"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Ändringarna kommer endast att utföras denna gång du använder override. De ordinarie inställingarna på %@ kommer inte att påverkas. "; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Ändringarna kommer endast att gälla denna gång du använder undantag. De ordinarie inställningarna på %@ kommer inte att påverkas."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Välj en längre absorptionstid för måltid med mycket fett eller protein. Ofta är det bäst att dela upp måltiden i snabba och långsamma kolhydrater och mata in dessa var för sig."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Stäng"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "kl %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "sedan %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "kl %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "sedan %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Klart."; + +/* The title for the override emoji condition section */ +"Condition" = "Tillstånd"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Bekräfta inställning"; + +/* No comment provided by engineer. */ +"content" = "innehåll"; + +/* Title of the setup button to continue */ +"Continue" = "Fortsätt"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Målvärden är det blodglukosintervall du vill att Loop ska korrigera blodsockret till."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Målvärden"; + +/* The text for a custom override */ +"Custom" = "Anpassad"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Anpassad Override"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Anpassad förinställning"; + +/* Title of the carb entry date picker cell */ +"Date" = "Tid"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Ta bort"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Radera konto"; + +/* Button title to delete all objects */ +"Delete All" = "Radera allt"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Maxdoser"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "Maxdoser är säkerhetsgränser för din insulintillförsel."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Inaktivera förval"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Färdig"; + +/* The text for the override duration setting */ +"Duration" = "Duration"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Ändra"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Ändra kolhydrater"; + +/* The title for the override editing screen */ +"Edit Override" = "Ändra Override"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Ändringar ändrar endast aktiv Override. De ordinarie inställningarna på %@ kommer inte att påverkas"; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Ändringar gäller endast tills förinställningen är inaktiverad. Standardinställningarna för %@ påverkas inte."; + +/* The button text for enabling a temporary override */ +"Enable" = "Aktivera"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Sätt på oändligt"; + +/* The detail text describing an enabled setting */ +"Enabled" = "På"; + +/* The text for the override start time */ +"End Time" = "Sluttid"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "Ange %1$@värde"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Ange antal eheter"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Ange värde i enheter per timme"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Händelsehistorik"; + +/* No comment provided by engineer. */ +"Example" = "Exempel"; + +/* Section title for fast absorbing food */ +"Fast" = "Snabb"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Får snabbverkande insulin, antar %1$@ ett insulin med 6 timmars verkan. Du kan välja mellan %2$@ olika modeller för hur appen mäter insulinets maximala aktivitet."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "För detta intervall ska du välja det blodsockervärde (eller det målvärdesintervall) som du vill att %1$@ ska sträva efter genom justering av basalinsulin."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Få hjälp med behandlingsinställningar"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Gå tillbaka"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Hög basaldos"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Hög insulinkvot"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Högt målvärde"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Säkerhetsgräns för högt blodsocker"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Hög insulinkänslighet"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Hög maximal basaldos"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Hög maximal bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Högt värde före måltid"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Högt träningsvärde"; + +/* The text for the override history */ +"History" = "Historik"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Om inställningarna ser bra ut, tryck på Spara inställningar för att fortsätta."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Om du använt en CGM tidigare är du förmodligen van vid ett brett målvärdesintervall för varningsnotiser, som 70-180 mg/dl eller 90-200 mg/dl."; + +/* Title text for insulin model */ +"Insulin Model" = "Insulinmodell"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Insulinkänslighet"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinkänslighet beskriver hur ditt blodglukos svarar på 1 enhet insulin.Mindre värden innebär att mer insulin kommer att ges när över målvärde. Värden som är för små kan orsaka farligt lågt blodsocker. "; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "Avbruten %1$@: %2$@ av %3$@ %4$@"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "Det kan ställas in så lågt som %1$@. Det kan ställas in så högt som %2$@."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Låg basaldos"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Låg insulinkvot"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Lågt målvärde"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Säkerhetsgräns för lågt blodsocker"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Låg insulinkänslighet"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Låg maximal basaldos"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Låg maximal bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Lågt värde före måltid"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Lågt träningsvärde"; + +/* Placeholder for maximum value in glucose range */ +"max" = "max"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maximal basaldos"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maximal bolus"; + +/* Section title for medium absorbing food */ +"Medium" = "Medium"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "mer innehåll"; + +/* Alert action title to open error help */ +"More Info" = "Mer info"; + +/* The text for the override preset name setting */ +"Name" = "Namn"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Ny post"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Ny förinställning"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Inget basalinsulin"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Annan"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Totalt insulinbehov"; + +/* Title for override history view */ +"Override History" = "Historik av Undantag"; + +/* The title text for the override presets screen */ +"Override Presets" = "Override förinställningar"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override förinställningar kan ställas in under ‘Konfiguration’ i menyn inställningar."; + +/* The section title of glucose overrides */ +"Overrides" = "Overrides"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Före måltid"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Värden för 'Före måltid'"; + +/* title for prescription section */ +"Prescription" = "Recept"; + +/* The section header text override presets */ +"PRESETS" = "FÖRINSTÄLLNINGAR"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "Behandlas."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pumphändelse"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pump obrukbar"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Snabbverkande – vuxna"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Snabbverkande – barn"; + +/* The default placeholder string for a credential */ +"Required" = "Krävs"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoar"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Återuppta insulindosering"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Återupptar"; + +/* title for summary description section */ +"Review and Save Settings" = "Granska och spara inställningar"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Granska dina behandlingsinställningar nedan. Om du behöver ändra någon av dessa, tryck Tillbaka för att gå tillbaka till det fönstret."; + +/* The text for the override preset name field placeholder */ +"Running" = "Löpning"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Spara"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Spara basaldoser?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Spara insulinkvoter?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Spara målvärde(n)?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "Spara Maxdoser?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "Spara tröskelvärde för blodsocker?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "Spara insulinkänslighet?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Spara intervall för 'Före måltid'?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Spara målvärde för träning?"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SCHEMALAGD OVERRIDE"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "SCHEMALAGD FÖRINSTÄLLNING"; + +/* Section title for slow absorbing food */ +"Slow" = "Långsam"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Vissa användare väljer ett värde 2, 3 eller 4 gånger sin högsta schemalagda basaldos."; + +/* The text for the override start time */ +"Start Time" = "Starttid"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Börjar temporär basal"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "Skickad av %1$@, %2$@"; + +/* Title for support section */ +"Support" = "Support"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pausa insulintillförsel"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pausar"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Byt förhandsvisningsläge"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Tryck på '+' för att skapa en ny anpassad förinställning."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Klicka för att ange"; + +/* The text for the override target range setting */ +"Target Range" = "Målvärden"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Sänker tillfälligt ditt målvärde före en måltid för att motverka postprandiella hyperglykemier (stegrade blodsocker efter en måltid)."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Höj tillfälligt ditt målvärde före, under eller efter fysisk aktivitet för att minska risken för låga blodsockervärden."; + +/* The title for the override selection screen */ +"Temporary Override" = "Temporär Override"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "än ditt målvärde."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Äldre modell använd av Loop, vilken tillåter anpassning av insulinets verkningstid."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Maximala absorptionstiden är %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Maximala mängd är %@ gram"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Den snabbverkande vuxenmodellen antar en maximal aktivitet vid 75 minuter."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Den snabbverkande vuxenmodellen antar en maximal aktivitet vid 65 minuter."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Schemat startar vid midnatt och får inte innehålla en dos på 0 E/timme."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Behandlingsinställningar"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Behandlingsinställningar Support"; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Denna modell antar en maximal aktivitet vid 55 minuter."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Denna modell antar en maximal aktivitet vid 65 minuter."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Denna modell antar en maximal aktivitet vid 75 minuter."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Detta kommer vanligtvis att vara"; + +/* Label for offset from midnight picker */ +"Time" = "Tid"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Tid i %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Att bli implementerat"; + +/* No comment provided by engineer. */ +"Top component" = "Översta komponenten"; + +/* The unit string for units per hour */ +"U/hour" = "E/timme"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Kunde inte spara"; + +/* The unit string for units */ +"Units" = "Eheter"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Okänd"; + +/* Placeholder text until value is entered */ +"Value" = "Värde"; + +/* Label indicating validation is occurring */ +"Verifying" = "Verifierar"; + +/* The title for the override editing screen */ +"View Override" = "Visa Undantag"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Varning"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Rådgör med din vårdgivare för att bestämma ett värde som är högre än din högsta schemalagda basaldos, men så konservativ eller aggressiv som du känner dig bekväm med."; + +/* Title for the workout override range */ +"Workout" = "Träning"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Målvärde för träning är det blodsocker eller det målvärdesintervall som du vill att %1$@ ska använda under fysik aktivitet. Detta målvärde används när du aktiverar knappen 'Träningsförval'."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Träningsärden"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "Du kan lägga till olika insulinkvoter för olika tider på dagen med hjälp av ➕."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "Du kan lägga till olika värden för insulinkänslighet för olika tider på dagen med hjälp av ➕."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "Du kan lägga till olika målvärden för olika tider på dagen med hjälp av ➕."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "Du kan lägga till inmatningar för olika tider på dagen med hjälp av ➕."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Du kan ändra en inställning genom att trycka på ett objekt på en av raderna."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Du kan ändra en inställning genom att trycka på ett objekt på raden."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Din bassaldos är det antal enheter insulin per timme som krävs för din basala ämnesomsättning."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "säkerhetsgräns för blodsocker"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Din vårdgivare kan hjälpa dig att välja ett målvärde som passar dig."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "Insulinkänslighet (ISF) är ett mått på hur många enheter din blodsocker sjunker av en enhet insulin."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Ditt målvärde för 'Före måltid' ska vara det blodsockervärde (eller målvärdesintervall) som du vill att %1$@ ska sikta på när du tar din första tugga av din måltid. Detta målvärde kommer börja gälla när du aktiverar knappen 'Före måltid'."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/InsulinKit.strings new file mode 100644 index 0000000000..da7b4951ee --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Başlık"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detay"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "Ü AİNS"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Yapılandırılmış pompa yok"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "Ü Toplam"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervuar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Etkinlik Geçmişi"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Pompasız İnsülin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "İnsulin İletimi"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..449b89de01 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Başlık"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detay"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "Ü AİNS"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "Yapılandırılmış pompa yok"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "Ü Toplam"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Rezervuar"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Etkinlik Geçmişi"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "İnsulin İletimi"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..cc73a24215 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,691 @@ +/* Information about workout range relative to correction range */ +" higher " = " daha yüksek "; + +/* Information about pre-meal range relative to correction range */ +" lower " = " daha düşük "; + +/* Separator between min and max glucose values */ +"-" = "-"; + +/* No comment provided by engineer. */ +"-" = "-"; + +/* The detail text representing no value */ +"–" = "–"; + +/* No comment provided by engineer. */ +"···" = "···"; + +/* No comment provided by engineer. */ +"%@" = "%@"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% normal insulin"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ü"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Lower bound workout information text format (1: app name) */ +"%1$@ or your Glucose Safety Limit, whichever is higher" = "%1$@ veya KŞ Güvenlik Limitiniz, hangisi daha yüksekse"; + +/* Reservoir entry (1: volume value) */ +"%1$@ U" = "%1$@ Ü"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ünite kaldı %2$@"; + +/* Description of a basal temp basal dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) + Description of a bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: unit) */ +"%1$@: %2$@ %3$@" = "%1$@: %2$@ %3$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"🍽" = "🍽"; + +/* Premeal override preset title */ +"🍽 Pre-Meal" = "🍽 Yemek Öncesi"; + +/* No comment provided by engineer. */ +"🏃‍♂️" = "🏃‍♂️"; + +/* Workout override preset title */ +"🏃‍♂️ Workout" = "🏃‍♂️ Egzersiz"; + +/* Information about differences between target range and correction range */ +"A Correction Range is different. This will be a narrower range." = "Düzeltme Aralığı farklıdır. Bu daha dar bir aralık olacaktır."; + +/* Warning text for basal rate of 0 U/hr */ +"A value of 0 U/hr means you will be scheduled to receive no basal insulin." = "0 Ü/saat değeri, bazal insülin almayacağınız anlamına gelir."; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Emilim Süresi"; + +/* No comment provided by engineer. */ +"Action Button" = "Eylem Butonu"; + +/* The text for the override history duration */ +"Active Duration" = "Aktif Süre"; + +/* The title for the override emoji activity section */ +"Activity" = "Aktivite"; + +/* Button text to confirm adding a new schedule item */ +"Add" = "Ekle"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Hesap Ekle"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Karb Girişi Ekle"; + +/* Title of insulin model preset - afrezza */ +"Afrezza" = "Afrezza"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Tüm geçmiş girişlerini silmek istediğinizden emin misiniz?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Tüm rezervuar değerlerini silmek istediğinizden emin misiniz?"; + +/* Authentication hint string for therapy settings */ +"Authenticate to save therapy setting" = "Tedavi ayarını kaydetmek için kimlik doğrulama"; + +/* Back navigation button title */ +"Back" = "Geri"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Bazal Oranlar"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Bazal, bolus ve düzeltme insülin doz miktarları %@%% azaltılır."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Bazal, bolus ve düzeltme insülin doz miktarları %@%% oranında artırılır."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Bazal, bolus ve düzeltme insülin doz miktarları etkilenmez."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "İptal"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Geçersiz Kılma İptal"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Geçici Bazalı İptal Et"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Karbonhidrat Oranları"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Değişiklikler yalnızca geçersiz kılmayı etkinleştirdiğiniz bu sefer uygulanacaktır. %@ varsayılan ayarları etkilenmeyecektir."; + +/* Footer text for customizing from a preset (1: preset name) */ +"Changes will only apply this time you enable the preset. The default settings of %@ will not be affected." = "Değişiklikler yalnızca ön ayarı bu kez etkinleştirdiğinizde geçerli olacaktır. Varsayılan %@ ayarları etkilenmeyecektir."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Daha büyük öğünler veya yağ ve protein içeren besinler için daha uzun bir emilim süresi seçin. Bu değer yalnızca algoritmaya rehberlik eder ve kesin olması gerekmez."; + +/* Button text to close a modal + Text to close informational page */ +"Close" = "Kapat"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "%1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "%1$@ den beri"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "%1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "%1$@ den beri"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Tamam"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Completed." = "Tamamlandı."; + +/* The title for the override emoji condition section */ +"Condition" = "Kondisyon"; + +/* The button text for confirming the setting */ +"Confirm Setting" = "Ayarı Onaylayın"; + +/* No comment provided by engineer. */ +"content" = "içerik"; + +/* Title of the setup button to continue */ +"Continue" = "Devam et"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Düzeltme aralığı, Loop'un düzeltmesini istediğiniz kan şekeri aralığıdır."; + +/* Title text for multi-value correction value warning */ +"Correction Values" = "Düzeltme Değerleri"; + +/* The text for a custom override */ +"Custom" = "Özel"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Özel Geçersiz kılma"; + +/* The title for the custom preset entry screen + The title for the custom preset selection screen */ +"Custom Preset" = "Özel Ön Ayar"; + +/* Title of the carb entry date picker cell */ +"Date" = "Tarih"; + +/* Delete values for Pre-Meal, inactivates Pre-Meal icon + Test for table cell delete button + The title of the button to remove the credentials for a service */ +"Delete" = "Sil"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Hesabı sil"; + +/* Button title to delete all objects */ +"Delete All" = "Hepsini sil"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "İletim Limitleri"; + +/* Information about delivery limits */ +"Delivery Limits are safety guardrails for your insulin delivery." = "İletim Limitleri, insülin iletiminiz için güvenlik korkuluklarıdır."; + +/* The text for the custom preset disable button */ +"Disable Preset" = "Ön Ayarı Devre Dışı Bırak"; + +/* Text for dismiss button + Text for done button + Video player done button label */ +"Done" = "Tamamlandı"; + +/* The text for the override duration setting */ +"Duration" = "Süre"; + +/* Text for edit button + The title for the enabled custom preset editing screen */ +"Edit" = "Düzenle"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Karb Girişini Düzenle"; + +/* The title for the override editing screen */ +"Edit Override" = "Geçersiz Kılmayı Düzenle"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Düzenleme yalnızca etkin geçersiz kılmayı etkiler. %@ varsayılan ayarlar etkilenmeyecektir."; + +/* Footer text for editing an enabled custom preset (1: preset name) */ +"Edits persist only until the preset is disabled. The default settings of %@ will not be affected." = "Düzenlemeler yalnızca ön ayar devre dışı bırakılana kadar devam eder. %@ varsayılan ayarları etkilenmeyecektir."; + +/* The button text for enabling a temporary override */ +"Enable" = "Etkinleştir"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Süresiz Olarak Etkinleştir"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Etkin"; + +/* The text for the override start time */ +"End Time" = "Bitiş zamanı"; + +/* Format string for accessibility label for value entry. (1: value label) */ +"Enter %1$@ value" = "%1$@ değer girin"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Ünite değeri girin"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Her saat için ünite oranı girin"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Etkinlik Geçmişi"; + +/* No comment provided by engineer. */ +"Example" = "Örnek"; + +/* Section title for fast absorbing food */ +"Fast" = "Hızlı"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Insulin model setting description (1: app name) (2: number of models) */ +"For fast acting insulin, %1$@ assumes it is actively working for 6 hours. You can choose from %2$@ different models for how the app measures the insulin’s peak activity." = "Hızlı etkili insülin için, %1$@ 6 saat boyunca aktif olarak çalıştığını varsayar. Uygulamanın insülinin en yüksek etkisini nasıl ölçtüğüne ilişkin %2$@ farklı model arasından seçim yapabilirsiniz."; + +/* Information about correction range format (1: app name) */ +"For this range, choose the specific glucose value (or range of values) that you want %1$@ to aim for in adjusting your basal insulin." = "Bu aralık için, %1$@ bazal insülininizi ayarlarken hedeflemesini istediğiniz belirli KŞ değerini (veya değer aralığını) seçin."; + +/* Support button for Therapy Settings */ +"Get help with Therapy Settings" = "Tedavi Ayarları ile ilgili yardım alın"; + +/* Button text to return to editing a schedule after from alert popup when some schedule values are outside the recommended range + Text for go back action on confirmation alert */ +"Go Back" = "Geri dön"; + +/* Title text for the high basal rate warning */ +"High Basal Rate" = "Yüksek Bazal Oran"; + +/* Title text for the high carb ratio warning */ +"High Carb Ratio" = "Yüksek Karb Oranı"; + +/* Title text for the high correction value warning */ +"High Correction Value" = "Yüksek Düzeltme Değeri"; + +/* Title text for the high glucose safety limit warning */ +"High Glucose Safety Limit" = "Yüksek KŞ Güvenlik Limiti"; + +/* Title text for the high insulin sensitivity warning */ +"High Insulin Sensitivity" = "Yüksek İnsülin Duyarlılığı"; + +/* Title text for high maximum basal rate warning */ +"High Maximum Basal Rate" = "Yüksek Maksimum Bazal Oranı"; + +/* Title text for high maximum bolus warning */ +"High Maximum Bolus" = "Yüksek Maksimum Bolus"; + +/* Title text for the low pre-meal value warning */ +"High Pre-Meal Value" = "Yüksek Yemek Öncesi Değeri"; + +/* Title text for the high workout value warning */ +"High Workout Value" = "Yüksek Egzersiz Değeri"; + +/* The text for the override history */ +"History" = "Geçmiş"; + +/* Description of how to interact with summary screen */ +"If these settings look good to you, tap Save Settings to continue." = "Bu ayarlar size uygun görünüyorsa, devam etmek için Ayarları Kaydet'e dokunun."; + +/* Information about target range */ +"If you've used a CGM before, you're likely familiar with target range as a wide range of values you'd like for your glucose notification alerts, such as 70-180 mg/dL or 90-200 mg/dL." = "Daha önce bir CGM kullandıysanız, KŞ bildirim uyarılarınız için 70-180 mg/dL veya 90-200 mg/dL gibi geniş bir hedef aralığına aşinasınızdır."; + +/* Title text for insulin model */ +"Insulin Model" = "İnsülin Modeli"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "İnsülin Duyarlılığı"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "İnsülin duyarlılığı, (İDF) kan şekerinizin 1 Ünite insülin dozuna nasıl tepki vermesi gerektiğini tanımlar. Daha küçük değerler, hedefin üzerindeyken daha fazla insülin verileceği anlamına gelir. Çok küçük değerler tehlikeli derecede düşük kan şekerine neden olabilir."; + +/* Description of an interrupted bolus dose entry (1: title for dose type, 2: value (? if no value) in bold, 3: programmed value (? if no value), 4: unit) */ +"Interrupted %1$@: %2$@ of %3$@ %4$@" = "%1$@ kesintiye uğradı: %3$@ %4$@'nın %2$@ 'si"; + +/* Guardrail info text format */ +"It can be set as low as %1$@. It can be set as high as %2$@." = "%1$@ kadar düşük bir değere ayarlanabilir. %2$@ kadar yükseğe ayarlanabilir."; + +/* Title text for the low basal rate warning */ +"Low Basal Rate" = "Düşük Bazal Oran"; + +/* Title text for the low carb ratio warning */ +"Low Carb Ratio" = "Düşük Karb Oranı"; + +/* Title text for the low correction value warning */ +"Low Correction Value" = "Düşük Düzeltme Değeri"; + +/* Title text for the low glucose safety limit warning */ +"Low Glucose Safety Limit" = "Düşük KŞ Güvenlik Limiti"; + +/* Title text for the low insulin sensitivity warning */ +"Low Insulin Sensitivity" = "Düşük İnsülin Duyarlılığı"; + +/* Title text for low maximum basal rate warning */ +"Low Maximum Basal Rate" = "Düşük Maksimum Bazal Oranı"; + +/* Title text for low maximum bolus warning */ +"Low Maximum Bolus" = "Düşük Maksimum Bolus"; + +/* Title text for the low pre-meal value warning */ +"Low Pre-Meal Value" = "Düşük Yemek Öncesi Değer"; + +/* Title text for the low workout value warning */ +"Low Workout Value" = "Düşük Egzersiz Değeri"; + +/* Title of insulin model preset - lyumjev */ +"Lyumjev" = "Lyumjev"; + +/* Placeholder for maximum value in glucose range */ +"max" = "maks"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Maksimum Bazal Oranı"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Maksimum Bolus"; + +/* Section title for medium absorbing food */ +"Medium" = "Orta"; + +/* Placeholder for minimum value in glucose range */ +"min" = "min"; + +/* No comment provided by engineer. */ +"more content" = "daha fazla içerik"; + +/* Alert action title to open error help */ +"More Info" = "Daha fazla bilgi"; + +/* The text for the override preset name setting */ +"Name" = "İsim"; + +/* Title for mini-modal to add a new schedule entry */ +"New Entry" = "Yeni giriş"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Yeni Ön Ayar"; + +/* Title text for the zero basal rate warning */ +"No Basal Insulin" = "Bazal İnsülin Yok"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Diğer"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Genel İnsülin İhtiyaçları"; + +/* Title for override history view */ +"Override History" = "Geçmişi geçersiz kılma"; + +/* The title text for the override presets screen */ +"Override Presets" = "Geçersiz Kılma Ön Ayarları"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Geçersiz kılma ön ayarları, ayarlar ekranının 'Konfigürsayon' bölümü altında ayarlanabilir."; + +/* The section title of glucose overrides */ +"Overrides" = "Geçersiz kılmalar"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Yemek öncesi"; + +/* Title text for multi-value pre-meal value warning */ +"Pre-Meal Values" = "Yemek Öncesi Değerler"; + +/* title for prescription section */ +"Prescription" = "Reçete"; + +/* The section header text override presets */ +"PRESETS" = "ÖN AYARLAR"; + +/* Accessibility label for ProgressIndicatorView when showIndeterminantProgress */ +"Progressing." = "İlerliyor."; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pompa Etkinliği"; + +/* Title text for suspend resume button when the basal delivery state is not set */ +"Pump Inoperable" = "Pompa Çalışmıyor"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Hızlı Etkili – Yetişkinler"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Hızlı Etkili – Çocuklar"; + +/* The default placeholder string for a credential */ +"Required" = "Gerekli"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Rezervuar"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "İletimi Devam Ettir"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Devam ediyor"; + +/* title for summary description section */ +"Review and Save Settings" = "Ayarları Gözden Geçir ve Kaydet"; + +/* Description of how to interact with summary screen */ +"Review your therapy settings below. If you’d like to edit any of these settings, tap Back to go back to that screen." = "Aşağıdaki tedavi ayarlarınızı gözden geçirin. Bu ayarlardan herhangi birini düzenlemek isterseniz, o ekrana geri dönmek için Geri'ye dokunun."; + +/* The text for the override preset name field placeholder */ +"Running" = "Çalışıyor"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Kaydet"; + +/* Alert title for confirming basal rates outside the recommended range */ +"Save Basal Rates?" = "Bazal Oranlar Kaydedilsin mi?"; + +/* Alert title for confirming carb ratios outside the recommended range */ +"Save Carb Ratios?" = "Karb Oranlarını Kaydet?"; + +/* Alert title for confirming correction ranges outside the recommended range */ +"Save Correction Range(s)?" = "Düzeltme Aralığı/Aralıkları Kaydedilsin mi?"; + +/* Alert title for confirming delivery limits outside the recommended range */ +"Save Delivery Limits?" = "İletim Limitleri Kaydedilsin mi?"; + +/* Alert title for confirming a glucose safety limit outside the recommended range */ +"Save Glucose Safety Limit?" = "KŞ Güvenlik Limiti Kaydedilsin mi?"; + +/* Alert title for confirming insulin sensitivities outside the recommended range */ +"Save Insulin Sensitivities?" = "İnsülin Hassasiyeti Kaydedilsin mi?"; + +/* Alert title for confirming pre-meal range overrides outside the recommended range */ +"Save Pre-Meal Range?" = "Yemek Öncesi Aralığı Kaydedilsin mi?"; + +/* Alert title for confirming workout range overrides outside the recommended range */ +"Save Workout Range?" = "Egzersiz Aralığını Kaydet?"; + +/* The button text during saving on a configuration page */ +"Saving..." = "Kaydediliyor..."; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "PLANLANMIŞ GEÇERSİZ KILMA"; + +/* The section header text for a scheduled custom preset */ +"SCHEDULED PRESET" = "PLANLANMIŞ ÖN AYAR"; + +/* Section title for slow absorbing food */ +"Slow" = "Yavaş"; + +/* Information about typical maximum basal rates */ +"Some users choose a value 2, 3, or 4 times their highest scheduled basal rate." = "Bazı kullanıcılar, planlanan en yüksek bazal oranının 2, 3 veya 4 katı bir değer seçer."; + +/* The text for the override start time */ +"Start Time" = "Başlangıç zamanı"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Geçici Bazal başlatılıyor"; + +/* Format for prescription descriptive text (1: providerName, 2: datePrescribed) */ +"Submitted by %1$@, %2$@" = "%2$@, %1$@ tarafından gönderildi"; + +/* Title for support section */ +"Support" = "Destek"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "İletimi Askıya Al"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Askıya alınıyor"; + +/* No comment provided by engineer. */ +"Switch Preview State" = "Önizleme Durumunu Değiştir"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Sembol"; + +/* Text directing the user to configure their first custom preset */ +"Tap '+' to create a new custom preset." = "Yeni bir özel ön ayar oluşturmak için '+' düğmesine dokunun."; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Ayarlamak için dokunun"; + +/* The text for the override target range setting */ +"Target Range" = "Hedef Aralığı"; + +/* Description of pre-meal mode */ +"Temporarily lower your glucose target before a meal to impact post-meal glucose spikes." = "Yemek sonrası KŞ artışlarını engellemek için yemekten önce KŞ hedefinizi geçici olarak düşürün."; + +/* Description of workout mode */ +"Temporarily raise your glucose target before, during, or after physical activity to reduce the risk of low glucose events." = "Düşük KŞ riskini azaltmak için fiziksel aktivite öncesinde, sırasında veya sonrasında KŞ hedefinizi geçici olarak yükseltin."; + +/* The title for the override selection screen */ +"Temporary Override" = "Geçici Geçersiz Kılma"; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"than your Correction Range." = "düzeltme Aralığınızdan daha fazla."; + +/* Description for selection when no insulin type is selected. */ +"The currently selected fast acting insulin model will be used as a default." = "Şu anda seçili olan hızlı etkili insülin modeli varsayılan olarak kullanılacaktır."; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Loop tarafından kullanılan ve eylem süresinin özelleştirilmesine izin veren eski model."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Maksimum emilim süresi %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "İzin verilen maksimum miktar %@ gramdır"; + +/* Information about adult insulin model */ +"The rapid-acting adult model assumes peak activity at 75 minutes." = "Hızlı etkili yetişkin modeli, 75 dakikada en yüksek etkiyi varsayar."; + +/* Information about child insulin model */ +"The rapid-acting child model assumes peak activity at 65 minutes." = "Hızlı etkili çocuk modeli, 65 dakikada en yüksek etkiyi varsayar."; + +/* Information about basal rate scheduling */ +"The schedule starts at midnight and cannot contain a rate of 0 U/hr." = "Program gece yarısı başlar ve 0 Ü/sa bir oran içeremez."; + +/* Therapy Settings screen title */ +"Therapy Settings" = "Tedavi Ayarları"; + +/* No comment provided by engineer. */ +"Therapy Settings Support Placeholder" = "Tedavi Ayarları Destek Yer Tutucusu"; + +/* Subtitle of afrezza preset */ +"This model assumes peak insulin activity at 19 minutes." = "Bu model, 19. dakikada en yüksek insülin aktivitesini varsayar."; + +/* Subtitle of Fiasp preset + Subtitle of Lyumjev preset */ +"This model assumes peak insulin activity at 55 minutes." = "Bu model, 55. dakikada en yüksek insülin aktivitesini varsayar."; + +/* Subtitle of Rapid-Acting – Children preset */ +"This model assumes peak insulin activity at 65 minutes." = "Bu model, 65 dakikada en yüksek insülin aktivitesini varsayar."; + +/* Subtitle of Rapid-Acting – Adult preset */ +"This model assumes peak insulin activity at 75 minutes." = "Bu model, 75 dakikada en yüksek insülin aktivitesini varsayar."; + +/* Information about pre-meal range relative to correction range + Information about workout range relative to correction range */ +"This will typically be" = "Bu genellikle şu şekilde olacaktır"; + +/* Label for offset from midnight picker */ +"Time" = "Zaman"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Saat dilimi %1$@%2$@%3$@"; + +/* No comment provided by engineer. */ +"To be implemented" = "Uygulanacak"; + +/* No comment provided by engineer. */ +"Top component" = "Üst bileşen"; + +/* The text indicating Total for Daily Schedule Basal */ +"Total" = "Toplam"; + +/* The text indicating U/day for Daily Schedule Basal */ +"U/day" = "Ü/gün"; + +/* The unit string for units per hour */ +"U/hour" = "Ü/saat"; + +/* Alert title when error occurs while saving a schedule */ +"Unable to Save" = "Kaydedilemiyor"; + +/* The unit string for units */ +"Units" = "Ünite"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Bilinmeyen"; + +/* Title for selection when no insulin type is selected. */ +"Unset" = "Ayarlanmamış"; + +/* Placeholder text until value is entered */ +"Value" = "Değer"; + +/* Label indicating validation is occurring */ +"Verifying" = "Doğrulanıyor"; + +/* The title for the override editing screen */ +"View Override" = "Geçersiz Kılmayı Görüntüle"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Uyarı"; + +/* Disclaimer */ +"Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable." = "Planlanan en yüksek bazal oranınızdan daha yüksek, ancak kendinizi rahat hissettiğiniz ölçüde tutucu veya agresif bir değer seçmek için sağlık uzmanınızla birlikte çalışın."; + +/* Title for the workout override range */ +"Workout" = "Egzersiz"; + +/* Information about workout range format (1: app name) */ +"Workout Range is the glucose value or range of values you want %1$@ to target during activity. This range will be in effect when you activate the Workout Preset button." = "Egzersiz Aralığı, aktivite sırasında %1$@ değerinin hedeflenmesini istediğiniz KŞ değeri veya değer aralığıdır. Bu aralık, Egzersiz Ön Ayarı butonunu etkinleştirdiğinizde geçerli olacaktır."; + +/* Title text for multi-value workout value warning */ +"Workout Values" = "Egzersiz Değerleri"; + +/* Description of how to add a ratio */ +"You can add different carb ratios for different times of day by using the ➕." = "➕ butonunu kullanarak günün farklı saatleri için farklı karbonhidrat oranları ekleyebilirsiniz."; + +/* Description of how to add a ratio */ +"You can add different insulin sensitivities for different times of day by using the ➕." = "➕ butonunu kullanarak günün farklı saatleri için farklı insülin duyarlılıkları ekleyebilirsiniz."; + +/* Description of how to add a configuration range */ +"You can add different ranges for different times of day by using the ➕." = "➕ butonunu kullanarak günün farklı saatleri için farklı aralıklar ekleyebilirsiniz."; + +/* Description of how to add a range */ +"You can add entries for different times of day by using the ➕." = "➕ butonunu kullanarak günün farklı saatleri için girişler ekleyebilirsiniz."; + +/* Description of how to edit setting */ +"You can edit a setting by tapping into any line item." = "Herhangi bir satır öğesine dokunarak bir ayarı düzenleyebilirsiniz."; + +/* Description of how to edit setting */ +"You can edit the setting by tapping into the line item." = "Satır öğesine dokunarak ayarı düzenleyebilirsiniz."; + +/* Information about basal rates */ +"Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs." = "Bazal İnsülin Oranınız, arka plan insülin ihtiyaçlarınızı karşılamak için kullanmak istediğiniz saat başına ünite miktarıdır."; + +/* Lower bound pre-meal information text */ +"your Glucose Safety Limit" = "KŞ Güvenlik Limitiniz"; + +/* Disclaimer */ +"Your healthcare provider can help you choose a Correction Range that's right for you." = "Sağlık uzmanınız sizin için doğru olan Düzeltme Aralığını seçmenize yardımcı olabilir."; + +/* Description of insulin sensitivity factor */ +"Your Insulin Sensitivity Factor (ISF) is the drop in glucose expected from one unit of insulin." = "İnsülin Duyarlılık faktörünüz (İDF), bir ünite insülinden beklenen KŞ düşüşünü ifade eder."; + +/* Information about pre-meal range format (1: app name) */ +"Your Pre-Meal Range should be the glucose value (or range of values) you want %1$@ to target by the time you take your first bite of your meal. This range will be in effect when you activate the Pre-Meal Preset button." = "Yemek Öncesi Aralığınız, yemeğinizden ilk lokmanızı aldığınız zaman %1$@ 'un hedeflemesini istediğiniz KŞ değeri (veya değer aralığı) olmalıdır. Bu aralık, Yemek Öncesi Ön Ayar butonunu etkinleştirdiğinizde etkin olacaktır."; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/InsulinKit.strings new file mode 100644 index 0000000000..cb3cba99e8 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/InsulinKit.strings @@ -0,0 +1,33 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..64e6c32846 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..9be07067f6 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,295 @@ +/* The detail text representing no value */ +"–" = "—"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% của insulin bình thường"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ +"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; + +/* The format for an override preset cell. (1: symbol)(2: name) + The format for an override symbol and name (1: symbol)(2: name) */ +"%1$@ %2$@" = "%1$@ %2$@"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units vẫn đang còn lúc %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "Thời gian Hấp thụ"; + +/* The title for the override emoji activity section */ +"Activity" = "Hoạt động"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Thêm Tài khoản"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "Khai báo Carb"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "Bạn có chắc muốn xóa hết các dữ liệu cũ?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "Bạn có chắc muốn xóa hết mọi giá trị của ngăn chứa insulin?"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "Lịch biểu tiêm liều nền"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Liều Basal, bolus, và liều bổ sung đang giảm bằng %@%%."; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Liều Basal, bolus, và liều bổ sung đang tăng bằng %@%%."; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "Liều Basal, bolus, và liều bổ sung không bị thay đổi."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Hủy bỏ"; + +/* The text for the override cancellation button */ +"Cancel Override" = "Hủy Chồng liều"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Đang hủy liều Basal tạm thời"; + +/* Title text for multi-value carb ratio warning */ +"Carb Ratios" = "Carb Ratios"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Các thay đổi sẽ chỉ áp dụng thời điểm này khi bạn cho phép chồng liều. Các cài đặt gốc %@ sẽ không bị ảnh hưởng."; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Lựa chọn khoảng thời gian tiêu hóa dài hơn cho các bữa ăn no, hoặc những bữa ăn nhiều chất béo và protein. Đây chỉ là hướng dẫn cho thuật toán Algorithm và không cần phải chính xác."; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "lúc %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "từ lúc %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "lúc %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "từ lúc %1$@"; + +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + +/* The title for the override emoji condition section */ +"Condition" = "Điều kiện"; + +/* Title of the setup button to continue */ +"Continue" = "Tiếp tục"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "Phạm vi điều chỉnh là phạm vi của đường huyết mà bạn muốn Loop hướng đến."; + +/* The text for a custom override */ +"Custom" = "Thói quen"; + +/* The title for the custom override entry screen */ +"Custom Override" = "Thói quen Chồng liều"; + +/* Title of the carb entry date picker cell */ +"Date" = "Ngày"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Xóa Tài khoản"; + +/* Button title to delete all objects */ +"Delete All" = "Xóa hết"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "Giới hạn liều tiêm"; + +/* The text for the override duration setting */ +"Duration" = "Khoảng thời gian"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "Chỉnh sửa Carb"; + +/* The title for the override editing screen */ +"Edit Override" = "Hiệu chỉnh chồng liều"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "Việc hiệu chỉnh chỉ ảnh hưởng đến chồng liều đang hoạt động. Các cài đặt gốc của %@ sẽ không bị ảnh hưởng."; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "Cấp phép không giới hạn"; + +/* The detail text describing an enabled setting */ +"Enabled" = "Được cấp quyền"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "Nhập số lượng của đơn vị/units"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "Nhập tỉ lệ của đơn vị/units trên giờ"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "Event History"; + +/* Section title for fast absorbing food */ +"Fast" = "Nhanh"; + +/* Title of insulin model preset - fiasp */ +"Fiasp" = "Fiasp"; + +/* Title text for insulin model */ +"Insulin Model" = "Chủng loại Insulin"; + +/* Title text for multi-value insulin sensitivity warning */ +"Insulin Sensitivities" = "Độ nhạy của Insulin"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Độ nhạy của Insulin biểu thị đường huyết của bạn phản ứng với 1 unit insulin. Giá trị phản ứng nhỏ hơn nghĩa là bạn cần thêm insulin để đạt mục tiêu ở trên. Các giá trị quá nhỏ có thể dẫn đến tình trạng hạ đường huyết nghiêm trọng."; + +/* Placeholder for maximum value in glucose range */ +"max" = "tối đa"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "Lượng Basal tối đa"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "Liều Bolus tối đa"; + +/* Section title for medium absorbing food */ +"Medium" = "Trung bình"; + +/* Placeholder for minimum value in glucose range */ +"min" = "tối thiểu"; + +/* Alert action title to open error help */ +"More Info" = "Thêm thông tin"; + +/* The text for the override preset name setting */ +"Name" = "Tên"; + +/* The title for the new override preset entry screen */ +"New Preset" = "Cài đặt mới"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "Khác"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "Nhu cầu Insulin tổng thể"; + +/* The title text for the override presets screen */ +"Override Presets" = "Cài đặt chồng liều"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "Cài đặt chồng liều có thể được khai báo dưới mục 'Configuration' của phần cấu hình."; + +/* The section title of glucose overrides */ +"Overrides" = "Chồng liều"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "Trước bữa ăn"; + +/* The section header text override presets */ +"PRESETS" = "CÀI ĐẶT SĂN"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "Pump Event"; + +/* Title of insulin model preset - rapid acting adult */ +"Rapid-Acting – Adults" = "Thuốc tác động nhanh cho người lớn"; + +/* Title of insulin model preset - rapid acting children */ +"Rapid-Acting – Children" = "Thuốc tác động nhanh cho trẻ em"; + +/* The default placeholder string for a credential */ +"Required" = "Bắt buộc"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "Reservoir"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Tiếp tục lại việc tiêm insulin"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Đang tiếp tục lại"; + +/* The text for the override preset name field placeholder */ +"Running" = "Đang chạy"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "Lưu"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; + +/* Section title for slow absorbing food */ +"Slow" = "chậm"; + +/* The text for the override start time */ +"Start Time" = "Giờ bắt đầu"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Đang bắt đầu liều Basal tạm thời"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Tạm ngưng liều insulin"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Đang tạm ngưng"; + +/* The text for the override preset symbol setting */ +"Symbol" = "Symbol"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Chạm để cài đặt"; + +/* The text for the override target range setting */ +"Target Range" = "Phạm vi Mục tiêu"; + +/* The title for the override selection screen */ +"Temporary Override" = "Chồng liều tạm thời"; + +/* Subtitle description of Walsh insulin model setting */ +"The legacy model used by Loop, allowing customization of action duration." = "Mô hình cũ được Loop sử dụng, cho phép tùy chỉnh thời lượng hành động."; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "Thời gian tiêu hóa tối đa là %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "Khối lượng cho phép tối đa là %@ grams"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "Thời gian trong %1$@%2$@%3$@"; + +/* The unit string for units per hour */ +"U/hour" = "U/giờ"; + +/* The unit string for units */ +"Units" = "Units"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "Không nhận ra"; + +/* Label indicating validation is occurring */ +"Verifying" = "Đang kiểm tra"; + +/* Title of insulin model setting */ +"Walsh" = "Walsh"; + +/* Title of an alert containing a validation warning */ +"Warning" = "Cảnh báo"; + +/* Title for the workout override range */ +"Workout" = "Workout"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/InsulinKit.strings new file mode 100644 index 0000000000..af69ddf95b --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/InsulinKit.strings @@ -0,0 +1,24 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "标题"; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "详情"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "单位 活性胰岛素"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "没有泵配置"; + +/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "单位 总计"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "胰岛素容量"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "历史事件"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "已输注胰岛素"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings new file mode 100644 index 0000000000..251c7e700d --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings @@ -0,0 +1,30 @@ +/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ +"7Fi-wD-gf2.text" = "Title"; + +/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ +"7Fy-gG-Zof.text" = "..."; + +/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ +"9jm-X6-3QA.text" = "Detail"; + +/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ +"dZi-Ta-IHm.text" = "U IOB"; + +/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ +"jSc-64-2tZ.text" = "No pump configured"; + +/* Class = "UILabel"; text = "U Tutal"; ObjectID = "kys-by-14s"; */ +"kys-by-14s.text" = "U Total"; + +/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ +"PZQ-gO-084.text" = "..."; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[0]" = "胰岛素容量"; + +/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ +"TyZ-xm-mVN.segmentTitles[1]" = "历史事件"; + +/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ +"vls-EW-uwI.title" = "Insulin Delivery"; + diff --git a/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..c60f7f6f10 --- /dev/null +++ b/Dependencies/LoopKit/LoopKitUI/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,258 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The format for an insulin needs percentage. */ +"%@%% of normal insulin" = "%@%% 胰岛素"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Title of the carb entry absorption time cell */ +"Absorption Time" = "吸收时间"; + +/* The title for the override emoji activity section */ +"Activity" = "活动"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "添加账户"; + +/* The title of the view controller to create a new carb entry */ +"Add Carb Entry" = "添加碳水"; + +/* Action sheet confirmation message for pump history deletion */ +"Are you sure you want to delete all history entries?" = "确定要删除所有输入的历史数据吗?"; + +/* Action sheet confirmation message for reservoir deletion */ +"Are you sure you want to delete all reservoir values?" = "确定要删除所有的储药器数据吗?"; + +/* Title text for multi-value basal rate warning */ +"Basal Rates" = "基础率"; + +/* Describes a percentage decrease in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "基础率,大剂量及追加剂量将以%@%%减少"; + +/* Describes a percentage increase in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "基础率,大剂量及追加剂量将以%@%%增加"; + +/* Describes a lack of change in overall insulin needs */ +"Basal, bolus, and correction insulin dose amounts are unaffected." = "基础率,大剂量及追加剂量将不受该设置影响"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "取消"; + +/* The text for the override cancellation button */ +"Cancel Override" = "取消覆盖"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "取消临时基础率"; + +/* Footer text for customizing an override from a preset (1: preset name) */ +"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "将仅会在启用时覆盖该设置,默认设置%@ 不受影响"; + +/* Carb entry section footer text explaining absorption time */ +"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "如果吃大餐请选择比较长的吸收时间,或者是以脂肪和蛋白为主的食物。该设置仅为算法的一般原则,具体请根据自身情况调整"; + +/* The format string describing the date of a COB value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.COBDateLabel" = "在 %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.CarbKit.totalDateLabel" = "自从 %1$@"; + +/* The format string describing the date of an IOB value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.IOBDateLabel" = "在 %1$@"; + +/* The format string describing the starting date of a total value. The first format argument is the localized date. */ +"com.loudnate.InsulinKit.totalDateLabel" = "自从 %1$@"; + +/* The title for the override emoji condition section */ +"Condition" = "条件"; + +/* Title of the setup button to continue */ +"Continue" = "继续"; + +/* The section footer of correction range schedule */ +"Correction range is the blood glucose range that you would like Loop to correct to." = "校正范围指Loop系统会主动调整胰岛素输注并将血糖保持在该范围内"; + +/* The text for a custom override */ +"Custom" = "自定义"; + +/* The title for the custom override entry screen */ +"Custom Override" = "自定义覆盖"; + +/* Title of the carb entry date picker cell */ +"Date" = "日期"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "删除账户"; + +/* Button title to delete all objects */ +"Delete All" = "删除所有"; + +/* Title text for crossed thresholds guardrail warning */ +"Delivery Limits" = "输注限制"; + +/* The text for the override duration setting */ +"Duration" = "持续时间"; + +/* The title of the view controller to edit an existing carb entry */ +"Edit Carb Entry" = "编辑碳水"; + +/* The title for the override editing screen */ +"Edit Override" = "编辑新设置"; + +/* Footer text for editing an active override (1: preset name) */ +"Editing affects only the active override. The default settings of %@ will not be affected." = "编辑仅会影响正在使用的“覆盖”设置,默认设置%@不受影响"; + +/* The text for the indefinite override duration setting */ +"Enable Indefinitely" = "一直使用"; + +/* The detail text describing an enabled setting */ +"Enabled" = "已启用"; + +/* The placeholder text instructing users how to enter a maximum bolus */ +"Enter a number of units" = "输入单位量"; + +/* The placeholder text instructing users how to enter a maximum basal rate */ +"Enter a rate in units per hour" = "输入每小时基础率"; + +/* Segmented button title for insulin delivery log event history */ +"Event History" = "历史事件"; + +/* Section title for fast absorbing food */ +"Fast" = "快速"; + +/* The description shown on the insulin sensitivity schedule interface. */ +"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "胰岛素敏感系数指每单位胰岛素可以造成的血糖变化.比较小的值意味着当血糖高于目标时需要更多的胰岛素,如果该值设置太小可能会造成严重低血糖,请谨慎设置该参数"; + +/* Placeholder for maximum value in glucose range */ +"max" = "最大"; + +/* The title text for the maximum basal rate value */ +"Maximum Basal Rate" = "最大基础率限制"; + +/* The title text for the maximum bolus value */ +"Maximum Bolus" = "最大大剂量限制"; + +/* Section title for medium absorbing food */ +"Medium" = "中等"; + +/* Placeholder for minimum value in glucose range */ +"min" = "分钟"; + +/* Alert action title to open error help */ +"More Info" = "更多信息"; + +/* The text for the override preset name setting */ +"Name" = "名称"; + +/* The title for the new override preset entry screen */ +"New Preset" = "新配置"; + +/* Section title for no-carb food + The title for override emoji miscellaneous section */ +"Other" = "其他"; + +/* The title text for the insulin sensitivity scaling setting */ +"Overall Insulin Needs" = "全部胰岛素需要"; + +/* The title text for the override presets screen */ +"Override Presets" = "覆盖预设值"; + +/* Text directing the user to configure override presets */ +"Override presets can be set up under the 'Configuration' section of the settings screen." = "覆盖预设置可以通过”设置”的”配置”来完成"; + +/* The section title of glucose overrides */ +"Overrides" = "覆盖"; + +/* Title for the pre-meal override range */ +"Pre-Meal" = "餐前模式"; + +/* The section header text override presets */ +"PRESETS" = "预设"; + +/* The title of the screen displaying a pump event */ +"Pump Event" = "胰岛素泵事件"; + +/* The default placeholder string for a credential */ +"Required" = "需要"; + +/* Segmented button title for insulin delivery log reservoir history */ +"Reservoir" = "胰岛素容量"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "恢复输注"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "恢复中"; + +/* The text for the override preset name field placeholder */ +"Running" = "运行中"; + +/* Button text for saving glucose correction range schedule + Button text for saving insulin sensitivity schedule */ +"Save" = "保存"; + +/* The section header text for a scheduled override */ +"SCHEDULED OVERRIDE" = "计划覆盖"; + +/* Section title for slow absorbing food */ +"Slow" = "慢"; + +/* The text for the override start time */ +"Start Time" = "启动时间"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "启动临时寄出"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "暂停输注"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "正在暂停"; + +/* The text for the override preset symbol setting */ +"Symbol" = "符号"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "点击设置"; + +/* The text for the override target range setting */ +"Target Range" = "目标范围"; + +/* The title for the override selection screen */ +"Temporary Override" = "临时覆盖"; + +/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ +"The maximum absorption time is %@" = "最大吸收时间为 %@"; + +/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ +"The maximum allowed amount is %@ grams" = "允许的最大量为 %@ g"; + +/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ +"Times in %1$@%2$@%3$@" = "时间 %1$@%2$@%3$@"; + +/* The unit string for units per hour */ +"U/hour" = "单位/小时"; + +/* The unit string for units */ +"Units" = "单位"; + +/* Accessibility value for an unknown value + The default title to use when an entry has none */ +"Unknown" = "未知"; + +/* Label indicating validation is occurring */ +"Verifying" = "验证"; + +/* Title of an alert containing a validation warning */ +"Warning" = "警告"; + +/* Title for the workout override range */ +"Workout" = "锻炼/运动模式"; + diff --git a/Dependencies/LoopKit/LoopKitUI/ServiceUI.swift b/Dependencies/LoopKit/LoopKitUI/ServiceUI.swift index fbf4b33346..2be6caeecd 100644 --- a/Dependencies/LoopKit/LoopKitUI/ServiceUI.swift +++ b/Dependencies/LoopKit/LoopKitUI/ServiceUI.swift @@ -30,7 +30,7 @@ public protocol ServiceUI: Service { /// - Parameters: /// - colorPalette: Color palette to use for any UI. /// - Returns: Either a conforming view controller to create and onboard the service or a newly created and onboarded service. - static func setupViewController(colorPalette: LoopUIColorPalette) -> SetupUIResult + static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost) -> SetupUIResult /// Configure settings for an existing service. /// diff --git a/Dependencies/LoopKit/LoopKitUI/UIAlertController.swift b/Dependencies/LoopKit/LoopKitUI/UIAlertController.swift index ab1d1dfe6b..1ac8d4ca7a 100644 --- a/Dependencies/LoopKit/LoopKitUI/UIAlertController.swift +++ b/Dependencies/LoopKit/LoopKitUI/UIAlertController.swift @@ -7,6 +7,7 @@ // import Foundation +import UIKit extension UIAlertController { /// Convenience method to initialize an alert controller to display an error diff --git a/Dependencies/LoopKit/LoopKitUI/UIColor.swift b/Dependencies/LoopKit/LoopKitUI/UIColor.swift index 28b7e7308e..5abd284f96 100644 --- a/Dependencies/LoopKit/LoopKitUI/UIColor.swift +++ b/Dependencies/LoopKit/LoopKitUI/UIColor.swift @@ -6,12 +6,20 @@ // import UIKit -private class FrameworkBundle { - static let main = Bundle(for: FrameworkBundle.self) +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKitUI_LoopKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() } private func BundleColor(_ name: String, compatibleWith traitCollection: UITraitCollection? = nil) -> UIColor? { - return UIColor(named: name, in: FrameworkBundle.main, compatibleWith: traitCollection) + return UIColor(named: name, in: LocalBundle.main, compatibleWith: traitCollection) } extension UIColor { diff --git a/Dependencies/LoopKit/LoopKitUI/View Controllers/ChartsManager.swift b/Dependencies/LoopKit/LoopKitUI/View Controllers/ChartsManager.swift index 9223925d61..eda1ffab4e 100644 --- a/Dependencies/LoopKit/LoopKitUI/View Controllers/ChartsManager.swift +++ b/Dependencies/LoopKit/LoopKitUI/View Controllers/ChartsManager.swift @@ -10,6 +10,7 @@ import Foundation import HealthKit import LoopKit import SwiftCharts +import UIKit open class ChartsManager { diff --git a/Dependencies/LoopKit/LoopKitUI/View Controllers/ServiceNavigationController.swift b/Dependencies/LoopKit/LoopKitUI/View Controllers/ServiceNavigationController.swift index 0e3acefc67..c007886d3e 100644 --- a/Dependencies/LoopKit/LoopKitUI/View Controllers/ServiceNavigationController.swift +++ b/Dependencies/LoopKit/LoopKitUI/View Controllers/ServiceNavigationController.swift @@ -7,6 +7,7 @@ // import LoopKit +import UIKit open class ServiceNavigationController: UINavigationController, ServiceOnboarding, CompletionNotifying { public weak var serviceOnboardingDelegate: ServiceOnboardingDelegate? diff --git a/Dependencies/LoopKit/LoopKitUI/View Controllers/SettingsNavigationViewController.swift b/Dependencies/LoopKit/LoopKitUI/View Controllers/SettingsNavigationViewController.swift index 65eaf9d101..663bae1380 100644 --- a/Dependencies/LoopKit/LoopKitUI/View Controllers/SettingsNavigationViewController.swift +++ b/Dependencies/LoopKit/LoopKitUI/View Controllers/SettingsNavigationViewController.swift @@ -8,6 +8,7 @@ import HealthKit import LoopKit +import UIKit open class SettingsNavigationViewController: UINavigationController, CompletionNotifying { diff --git a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/BasalRatesInformationView.swift b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/BasalRatesInformationView.swift index 0d27ea354c..1f961ad929 100644 --- a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/BasalRatesInformationView.swift +++ b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/BasalRatesInformationView.swift @@ -35,7 +35,7 @@ public struct BasalRatesInformationView: View { private var text: some View { VStack(alignment: .leading, spacing: 25) { Text(LocalizedString("Your Basal Rate of insulin is the number of units per hour that you want to use to cover your background insulin needs.", comment: "Information about basal rates")) - Text(String(format: LocalizedString("%1$@ supports 1 to \(maximumScheduleEntryCount) rates per day.", comment: "Information about max number of basal rates"), appName)) + Text(String(format: LocalizedString("%1$@ supports 1 to %2$@ rates per day.", comment: "Information about max number of basal rates (1: app name) (2: maximum schedule entry count)"), appName, String(describing: maximumScheduleEntryCount))) Text(LocalizedString("The schedule starts at midnight and cannot contain a rate of 0 U/hr.", comment: "Information about basal rate scheduling")) } .foregroundColor(.secondary) diff --git a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/DeliveryLimitsInformationView.swift b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/DeliveryLimitsInformationView.swift index 6988a82c7d..0fe7c1dade 100644 --- a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/DeliveryLimitsInformationView.swift +++ b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/DeliveryLimitsInformationView.swift @@ -47,7 +47,7 @@ public struct DeliveryLimitsInformationView: View { Text(DeliveryLimits.Setting.maximumBasalRate.title) .font(.headline) VStack(alignment: .leading, spacing: 20) { - Text(LocalizedString("Maximum Basal Rate is the maximum automatically adjusted basal rate that \(appName) is allowed to enact to help reach your correction range.", comment: "Information about maximum basal rate")) + Text(String(format: LocalizedString("Maximum Basal Rate is the maximum automatically adjusted basal rate that %1$@ is allowed to enact to help reach your correction range.", comment: "Information about maximum basal rate (1: app name)"), appName)) Text(LocalizedString("Some users choose a value 2, 3, or 4 times their highest scheduled basal rate.", comment: "Information about typical maximum basal rates")) Text(LocalizedString("Work with your healthcare provider to choose a value that is higher than your highest scheduled basal rate, but as conservative or aggressive as you feel comfortable.", comment: "Disclaimer")) } @@ -59,8 +59,11 @@ public struct DeliveryLimitsInformationView: View { VStack(alignment: .leading, spacing: 20) { Text(DeliveryLimits.Setting.maximumBolus.title) .font(.headline) - Text(LocalizedString("Maximum Bolus is the highest bolus amount that you will allow \(appName) to recommend at one time to cover carbs or bring down high glucose.", comment: "Information about maximum bolus")) - .foregroundColor(.secondary) + VStack(alignment: .leading, spacing: 20) { + Text(String(format: LocalizedString("Maximum Bolus is the highest bolus amount that you will allow %1$@ to recommend at one time to cover carbs or bring down high glucose.", comment: "Information about maximum bolus (1: app name)"), appName)) + Text(String(format: LocalizedString("This setting will also determine a safety limit for automatic dosing. %1$@ will limit automatic delivery to keep the amount of active insulin below twice your maximum bolus.", comment: "Information about maximum automated insulin on board (1: app name)"), appName)) + } + .foregroundColor(.secondary) } } } diff --git a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/InsulinModelInformationView.swift b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/InsulinModelInformationView.swift index cea31dd6b3..78efa8264d 100644 --- a/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/InsulinModelInformationView.swift +++ b/Dependencies/LoopKit/LoopKitUI/Views/Information Screens/InsulinModelInformationView.swift @@ -37,12 +37,12 @@ public struct InsulinModelInformationView: View { } private var diaInfo: Text { - Text(LocalizedString("\(appName) assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed.", comment: "Information about insulin action duration")) + Text(String(format: LocalizedString("%1$@ assumes that the insulin it has delivered is actively working to lower your glucose for 6 hours. This setting cannot be changed.", comment: "Information about insulin action duration (1: app name)"), appName)) } private var modelPeakInfo: some View { VStack (alignment: .leading, spacing: 20) { - Text(LocalizedString("You can choose how \(appName) measures rapid acting insulin's peak activity according to one of these two insulin models.", comment: "Information about insulin model")) + Text(String(format: LocalizedString("You can choose how %1$@ measures rapid acting insulin's peak activity according to one of these two insulin models.", comment: "Information about insulin model (1: app name)"), appName)) HStack(spacing: 10) { bulletCircle Text(LocalizedString("The rapid-acting adult model assumes peak activity at 75 minutes.", comment: "Information about adult insulin model")) diff --git a/Dependencies/LoopKit/LoopKitUI/Views/SetConstrainedScheduleEntryTableViewCell.swift b/Dependencies/LoopKit/LoopKitUI/Views/SetConstrainedScheduleEntryTableViewCell.swift index d422f169bb..350ef4e809 100644 --- a/Dependencies/LoopKit/LoopKitUI/Views/SetConstrainedScheduleEntryTableViewCell.swift +++ b/Dependencies/LoopKit/LoopKitUI/Views/SetConstrainedScheduleEntryTableViewCell.swift @@ -9,6 +9,7 @@ import Foundation import HealthKit import LoopKit +import UIKit protocol SetConstrainedScheduleEntryTableViewCellDelegate: AnyObject { func setConstrainedScheduleEntryTableViewCellDidUpdate(_ cell: SetConstrainedScheduleEntryTableViewCell) diff --git a/Dependencies/LoopKit/LoopKitUI/Views/SuspendResumeTableViewCell.swift b/Dependencies/LoopKit/LoopKitUI/Views/SuspendResumeTableViewCell.swift index 89d58bf31f..fc9cb87f86 100644 --- a/Dependencies/LoopKit/LoopKitUI/Views/SuspendResumeTableViewCell.swift +++ b/Dependencies/LoopKit/LoopKitUI/Views/SuspendResumeTableViewCell.swift @@ -6,6 +6,7 @@ // Copyright © 2018 LoopKit Authors. All rights reserved. // +import Foundation import LoopKit public class SuspendResumeTableViewCell: TextButtonTableViewCell { diff --git a/Dependencies/LoopKit/LoopKitUI/ar.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/ar.lproj/Localizable.strings deleted file mode 100644 index bbc497d99f..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ar.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorption Time"; - -/* The title for the override emoji activity section */ -"Activity" = "Activity"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Are you sure you want to delete all history entries?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Are you sure you want to delete all reservoir values?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Delete Account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, and correction insulin dose amounts are decreased by %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, and correction insulin dose amounts are increased by %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, and correction insulin dose amounts are unaffected."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancel Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Canceling Temp Basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Add Carb Entry"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Edit Carb Entry"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Changes will only apply this time you enable the override. The default settings of %@ will not be affected."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "since %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "since %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condition"; - -/* Title of the setup button to continue */ -"Continue" = "Continue"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Custom Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Delete All"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Edit Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Editing affects only the active override. The default settings of %@ will not be affected."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Enable Indefinitely"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Enabled"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Enter a number of units"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Enter a rate in units per hour"; - -/* Section title for fast absorbing food */ -"Fast" = "Fast"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum Basal Rate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "More Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "New Preset"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Overall Insulin Needs"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override Presets"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overrides"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Meal"; - -/* The section header text override presets */ -"PRESETS" = "PRESETS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resume Delivery"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resuming"; - -/* The text for the override preset name field placeholder */ -"Running" = "Running"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Slow"; - -/* The text for the override start time */ -"Start Time" = "Start Time"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starting Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspend Delivery"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspending"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; - -/* The text for the override target range setting */ -"Target Range" = "Target Range"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporary Override"; - -/* The default placeholder string for a credential */ -"Required" = "Required"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "The maximum absorption time is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hour"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unknown"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifying"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warning"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/ca.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/ca.lproj/Localizable.strings deleted file mode 100644 index bbc497d99f..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ca.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorption Time"; - -/* The title for the override emoji activity section */ -"Activity" = "Activity"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Are you sure you want to delete all history entries?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Are you sure you want to delete all reservoir values?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Delete Account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, and correction insulin dose amounts are decreased by %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, and correction insulin dose amounts are increased by %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, and correction insulin dose amounts are unaffected."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancel Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Canceling Temp Basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Add Carb Entry"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Edit Carb Entry"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Changes will only apply this time you enable the override. The default settings of %@ will not be affected."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "since %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "since %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condition"; - -/* Title of the setup button to continue */ -"Continue" = "Continue"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Custom Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Delete All"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Edit Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Editing affects only the active override. The default settings of %@ will not be affected."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Enable Indefinitely"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Enabled"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Enter a number of units"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Enter a rate in units per hour"; - -/* Section title for fast absorbing food */ -"Fast" = "Fast"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum Basal Rate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "More Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "New Preset"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Overall Insulin Needs"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override Presets"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overrides"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Meal"; - -/* The section header text override presets */ -"PRESETS" = "PRESETS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resume Delivery"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resuming"; - -/* The text for the override preset name field placeholder */ -"Running" = "Running"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Slow"; - -/* The text for the override start time */ -"Start Time" = "Start Time"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starting Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspend Delivery"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspending"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; - -/* The text for the override target range setting */ -"Target Range" = "Target Range"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporary Override"; - -/* The default placeholder string for a credential */ -"Required" = "Required"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "The maximum absorption time is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hour"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unknown"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifying"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warning"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/da.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/da.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/da.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/da.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/da.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/da.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/da.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/da.lproj/Localizable.strings deleted file mode 100644 index ad7a2262f9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/da.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ tilbageværende enheder ved %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@E"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorptionstid"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivitet"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Er du sikker på at du vil slette alle gamle indtastninger?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Er du sikker på at du vil slette alle reservoir værdier?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Tilføj Konto"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Slet Konto"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal-, bolus- og korrektionsinsulindoser er sænket med %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal-, bolus- og korrektionsinsulindoser er forøget med %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal-, bolus- og korrektionsinsulindoser er uændrede."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Annuller Overstyring"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Annuller Midlertidig Basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Tilføj kulhydrater"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Rediger Kulhydrat Indtag"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Ændringer gælder kun ved denne overstyring. Standardindstillingerne af %@ bliver ikke påvirket."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Vælg en længere absorptionstid ved større måltider, eller dem med fedt og proteiner. Det er blot hjælp til algoritmen, og behøver ikke være nøjagtig."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "ved %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "siden %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "ved %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "siden %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Tilstand"; - -/* Title of the setup button to continue */ -"Continue" = "Fortsæt"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Korrektionsinterval er det blodsukker interval du gerne vil have Loop til at korrigere imod."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Brugerdefineret Overstyring"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Slet Alle"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Rediger Overstyring"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Ændringer gælder kun den aktuelle overstyring. Standardindstillingerne af %@ bliver ikke påvirket."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Aktiver På ubestemt tid"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Aktiveret"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Indtast antal enheder"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Indtast en mængde i enheder pr time"; - -/* Section title for fast absorbing food */ -"Fast" = "Hurtig"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin følsomhed beskriver hvordan dit blodsukker påvirkes af 1 enhed insulin. Mindre værdier betyder at mere insulin vil blive givet, når blodsukkeret er over målet. Værdier der er for små, kan forårsage faretruende lavt blodsukker."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum Basal Rate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Mere Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Ny Forudindstilling"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Totalt Insulin Behov"; - -/* The title text for the override presets screen */ -"Override Presets" = "Overstyrings forudindstillinger"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Overstyrings forudindstillinger kan sættes op i 'Konfiguration' delen af Indstillingsskærmen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overstyringer"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Før-Måltid"; - -/* The section header text override presets */ -"PRESETS" = "FORUDINSTILLINGER"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pumpe Hændelse"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Fortsæt Indgivelse"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Fortsætter"; - -/* The text for the override preset name field placeholder */ -"Running" = "Løber"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "PLANLAGT OVERSTYRING"; - -/* Section title for slow absorbing food */ -"Slow" = "Langsom"; - -/* The text for the override start time */ -"Start Time" = "Start Tid"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starter Midlertidig Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Pause Indgivelse"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Pauser"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tryk for at gemme"; - -/* The text for the override target range setting */ -"Target Range" = "Mål Interval"; - -/* The title for the override selection screen */ -"Temporary Override" = "Midlertidig Overstyring"; - -/* The default placeholder string for a credential */ -"Required" = "Påkrævet"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Den maksimale absorptionstid er %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Den maksimalt tilladte mængde er %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Tider i %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "E/time"; - -/* The unit string for units */ -"Units" = "Enheder"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Ukendt"; - -/* Label indicating validation is occurring */ -"Verifying" = "Validerer"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Advarsel"; - -/* Title for the workout override range */ -"Workout" = "Motion"; diff --git a/Dependencies/LoopKit/LoopKitUI/de.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/de.lproj/InsulinKit.strings deleted file mode 100644 index a5b824e62d..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/de.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Titel"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "IE IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Keine Pumpe konfiguriert"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "IE Gesamt"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Ereignisverlauf"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Externes Insulin"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulinabgabe"; - diff --git a/Dependencies/LoopKit/LoopKitUI/de.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/de.lproj/Localizable.strings deleted file mode 100644 index 45418fda54..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/de.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ Einheiten verbleiben bei %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% von normalem Insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@IE"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorbtionszeit"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivität"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Möchtest du wirklich alle History Einträge löschen?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Möchtest du wirklich alle Reservoir Werte löschen?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Konto hinzufügen"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Konto löschen"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal-, Bolus- und Korrekturinsulinmengen werden verringert um %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal-, Bolus- und Korrekturinsulinmengen werden erhöht um %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal-, Bolus- und Korrekturinsulindosismengen bleiben unverändert."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Abbrechen"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Override abbrechen"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Temporäre Basalrate abbrechen"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Kohlenhydrate hinzufügen"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Kohlenhydrate bearbeiten"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Änderungen werden nur dann wirksam, wenn Sie den Override aktivieren. Die Standardeinstellungen von %@ werden nicht beeinflusst."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Wähle eine längere Absorbtionszeit für größere Mahlzeiten, oder welche viel Fett und Proteine beinhalten. Dies ist eine Unterstützung für den Algorithmus und muss nicht genau sein."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "bei %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "seit %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "bei %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "seit %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; - -/* The title for the override emoji condition section */ -"Condition" = "Bedingung"; - -/* Title of the setup button to continue */ -"Continue" = "Fortsetzen"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Der Korrekturbereich ist der Blutzuckerbereich, auf den Loop korrigieren soll."; - -/* The text for a custom override */ -"Custom" = "Benutzerdefiniertes"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Benutzerdefinierter Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Datum"; - -/* Button title to delete all objects */ -"Delete All" = "Alle löschen"; - -/* The text for the override duration setting */ -"Duration" = "Dauer"; - -/* The title for the override editing screen */ -"Edit Override" = "Bearbeite Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Die Bearbeitung wirkt sich nur auf den aktiven Override aus. Die Standardeinstellungen von %@ werden nicht beeinflusst."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Aktiviere unbegrenzt"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Aktiviert"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Eingabe der Einheiten"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Eingabe Rate in Einheiten pro Stunde"; - -/* Section title for fast absorbing food */ -"Fast" = "Schnell"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Die Insulinempfindlichkeit beschreibt, wie Ihr Blutzucker auf die Insulindosis von 1 Einheit reagiert. Kleinere Werte bedeuten, dass mehr Insulin verabreicht wird, wenn der BZ über dem Ziel liegt. Zu kleine Werte können gefährlich niedrige Blutzuckerwerte verursachen."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max."; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximale Basalrate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximaler Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Mittlere"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Weitere Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Neue Voreinstellung"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Sonstiges"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Gesamtinsulinbedarf"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override-Voreinstellungen"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Voreinstellungen der Overrides können im Abschnitt Konfiguration des Einstellungsbildschirms eingerichtet werden."; - -/* The section title of glucose overrides */ -"Overrides" = "Zeitliche Anpassungen"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Vor dem Essen"; - -/* The section header text override presets */ -"PRESETS" = "VOREINSTELLUNGEN"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pumpen-Ereignis"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Abgabe fortsetzen"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Fortsetzen"; - -/* The text for the override preset name field placeholder */ -"Running" = "Laufen"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Speichern"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "GEPLANTER OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Langsam"; - -/* The text for the override start time */ -"Start Time" = "Startzeit"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starten der temporären Basalrate"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Abgabe unterbrechen"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Unterbrechen"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Klicken zum setzten"; - -/* The text for the override target range setting */ -"Target Range" = "Zielbereich"; - -/* The title for the override selection screen */ -"Temporary Override" = "Vorübergehender Override"; - -/* The default placeholder string for a credential */ -"Required" = "Erforderlich"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Die maximale absorption time ist %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Die maximale Anzahl an Gramm is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Zeit in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "IE/Stunde"; - -/* The unit string for units */ -"Units" = "Einheiten"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unbekannt"; - -/* Label indicating validation is occurring */ -"Verifying" = "Überprüfen"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warnung"; - -/* Title for the workout override range */ -"Workout" = "Training"; diff --git a/Dependencies/LoopKit/LoopKitUI/en.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/en.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/en.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/es.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/es.lproj/InsulinKit.strings deleted file mode 100644 index 0937fb4d68..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/es.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Título"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detalle"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IaB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No hay microinfusadora configurada"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservorio"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Historial de Eventos"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Administración de Insulina"; - diff --git a/Dependencies/LoopKit/LoopKitUI/es.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/es.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/es.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/es.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/es.lproj/Localizable.strings deleted file mode 100644 index 11ba473ec0..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/es.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "quedan %1$@ unidades a las %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% de insulina normal"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Tiempo de Absorción"; - -/* The title for the override emoji activity section */ -"Activity" = "Actividad"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "¿Estás seguro de querer eliminar todos las entradas históricas?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "¿Estás seguro de querer eliminar todos los datos del reservorio?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Agregar Cuenta"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Eliminar Cuenta"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolos y cantidades de corrección de insulina serán reducidos de %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolos y cantidades de corrección de insulina serán aumentados de %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolos y cantidades de corrección de insulina sin cambio."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancelar de Sobreescritura"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Cancelación de basal temporal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Agregar Entrada de Carb"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Editar Entrada de Carb"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Los cambios sólo se aplicarán cuando habilite la sobreescritura. Los valores por defecto de %@ no seran afectados."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Elija un tiempo de absorción más largo para comidas más grandes, o aquellas que contienen grasas y proteínas. Esta es solo una guía para el algoritmo y no necesita ser exacta."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "a %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "hace %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "a %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "hace %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condición"; - -/* Title of the setup button to continue */ -"Continue" = "Continuar"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "El rango de corrección es el rango de glucosa en sangre al que usted le gustaría que Loop corrigiera."; - -/* The text for a custom override */ -"Custom" = "Personalizado"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Sobreescritura personalizada"; - -/* Title of the carb entry date picker cell */ -"Date" = "Fecha"; - -/* Button title to delete all objects */ -"Delete All" = "Eliminar Todos"; - -/* The text for the override duration setting */ -"Duration" = "Duración"; - -/* The title for the override editing screen */ -"Edit Override" = "Editar sobreescritura"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "La edición afecta sólo a la sobreescritura activa. Los ajustes preestablecidos de %@ no se modificarán."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Habilitar indefinidamente"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Habilitado"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Ingrese una cantidad de unidades"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Ingrese una tasa de unidade por hora"; - -/* Section title for fast absorbing food */ -"Fast" = "Rápido"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "La sensibilidad a la insulina describe cómo responde su glucemia a 1 unidad de insulina. Valores menores implican que se administrará más insulina."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Perfil Basal Máximo"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Bolo Máximo"; - -/* Section title for medium absorbing food */ -"Medium" = "Medio"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Más Info"; - -/* The text for the override preset name setting */ -"Name" = "Nombre"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nueva sobreescritura preestablecida"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Otro"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Necesidades de insulina"; - -/* The title text for the override presets screen */ -"Override Presets" = "Sobreescrituras preestablecidas"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Las sobreescrituras preestablecidas pueden configurarse en la sección de Configuración de la pantalla de ajustes."; - -/* The section title of glucose overrides */ -"Overrides" = "Sobreescrituras"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Comida"; - -/* The section header text override presets */ -"PRESETS" = "PREESTABLECIDAS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Evento de microinfusadora"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resumir la infusión"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resumiendo"; - -/* The text for the override preset name field placeholder */ -"Running" = "Correr"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Guardar"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SOBREESCRITURA PROGRAMADA"; - -/* Section title for slow absorbing food */ -"Slow" = "Lento"; - -/* The text for the override start time */ -"Start Time" = "Tiempo de inicio"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Inicio de basal temporal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspender la infusión"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspendiendo"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Símbolo"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Toca para definir"; - -/* The text for the override target range setting */ -"Target Range" = "Rango objetivo"; - -/* The title for the override selection screen */ -"Temporary Override" = "Sobreescritura temporal"; - -/* The default placeholder string for a credential */ -"Required" = "Requerido"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "El tiempo máximo de absorción es %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "La cantidad máxima permitida es %@ gramos"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Horario in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hora"; - -/* The unit string for units */ -"Units" = "Unidades"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Desconocido"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verificando"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Aviso"; - -/* Title for the workout override range */ -"Workout" = "Ejercicio"; diff --git a/Dependencies/LoopKit/LoopKitUI/fi.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/fi.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fi.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/fi.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/fi.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fi.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/fi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/fi.lproj/Localizable.strings deleted file mode 100644 index 6df561397a..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fi.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ yksikköä jäljellä %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% norm. insuliinista"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Imeytymisaika"; - -/* The title for the override emoji activity section */ -"Activity" = "Liikunta"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Haluatko varmasti poistaa kaikki historiatiedot?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Haluatko varmasti poistaa kaikki säiliön arvot?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Lisää tili"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Poista tili"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määriä vähennetään %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määriä lisätään %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basaalin, boluksen ja korjaavan insuliiniannoksen määrät pysyvät ennallaan."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Kumoa tilapäisasetus"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Kumotaan tilapäinen basaali"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Lisää hiilihydraatteja"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Muokkaa hiilihydraatteja"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Muutokset otetaan käyttöön vain tällä kertaa, kun otat tilapäisasetuksen käyttöön. Alkuperäiset %@-asetukset pysyvät ennallaan."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Valitse pidempi imeytymisaika isoille tai paljon rasvaa ja proteiineja sisältäville aterioille. Tämä on suuntaa antava ohje, eikä sen tarvitse olla tarkka."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "klo %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "%1$@ jälkeen"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "klo %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "%1$@ jälkeen"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Vointi"; - -/* Title of the setup button to continue */ -"Continue" = "Jatka"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Korjausalue on glukoositavoitealue, johon haluat Loopin korjaavan."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Mukautettu tilapäisasetus"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Poista kaikki"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Muokkaa tilapäisasetusta"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Muokkaus vaikuttaa vain aktiiviseen tilapäisasetukseen. Alkuperäiset %@-asetukset säilyvät ennallaan."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Ilman aikarajaa"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Käytössä"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Syötä yksikkömäärä"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Syötä nopeus yksiköinä tunnissa"; - -/* Section title for fast absorbing food */ -"Fast" = "Nopea"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insuliiniherkkyys kuvaa sitä, kuinka paljon verensokerisi laskee yhdellä insuliiniyksiköllä. Liian pienet arvot voivat johtaa vaarallisen matalaan verensokeriin."; - -/* Placeholder for maximum value in glucose range */ -"max" = "maks."; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Suurin sallittu basaalitaso"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Suurin sallittu bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Keskiverto"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min."; - -/* Alert action title to open error help */ -"More Info" = "Lisätietoa"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Uusi esiasetus"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Kokonaisinsuliinitarve"; - -/* The title text for the override presets screen */ -"Override Presets" = "Tilapäisasetukset"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Tilapäisasetuksia voidaan luoda Asetukset-näkymän Määritykset-osiossa."; - -/* The section title of glucose overrides */ -"Overrides" = "Tilapäisasetukset"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Ennen ateriaa"; - -/* The section header text override presets */ -"PRESETS" = "ESIASETUKSET"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pumpputapahtuma"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Jatka annostelua"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Jatketaan"; - -/* The text for the override preset name field placeholder */ -"Running" = "Juoksu"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "AJASTETTU TILAPÄISASETUS"; - -/* Section title for slow absorbing food */ -"Slow" = "Hidas"; - -/* The text for the override start time */ -"Start Time" = "Alkaa"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Aloitetaan tilapäinen basaali"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Pysäytä annostelu"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Pysäytetään"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symboli"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Napauta asettaaksesi"; - -/* The text for the override target range setting */ -"Target Range" = "Tavoitealue"; - -/* The title for the override selection screen */ -"Temporary Override" = "Tilapäisasetus"; - -/* The default placeholder string for a credential */ -"Required" = "Pakollinen"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Pisin sallittu imeytymisaika on %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Suurin sallittu määrä on %@ grammaa"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Aika %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/tunti"; - -/* The unit string for units */ -"Units" = "Yksikköä"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Tuntematon"; - -/* Label indicating validation is occurring */ -"Verifying" = "Tarkistetaan"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Varoitus"; - -/* Title for the workout override range */ -"Workout" = "Liikunta"; diff --git a/Dependencies/LoopKit/LoopKitUI/fr.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/fr.lproj/InsulinKit.strings deleted file mode 100644 index 247206e883..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fr.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Titre"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Détail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Réservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Historique des événements"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Pas de pompe configurée"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Totaux"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Administration de l'insuline"; diff --git a/Dependencies/LoopKit/LoopKitUI/fr.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/fr.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fr.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/fr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/fr.lproj/Localizable.strings deleted file mode 100644 index e17c52048d..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/fr.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ unités restantes à %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% de l’insuline de base"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Durée d’absorption"; - -/* The title for the override emoji activity section */ -"Activity" = "Activité"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Êtes-vous sûr de vouloir supprimer toutes les entrées d’historique?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Êtes-vous sûr de vouloir supprimer toutes les valeurs de réservoir?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Ajouter un compte"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Supprimer le compte"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Le débit de basale, les bolus, et le niveau de l’insuline de correction sont diminués par %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Le débit de basale, les bolus, et le niveau de l’insuline de correction sont augmentés par %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Le débit de basale, les bolus, et le niveau de l’insuline de correction ne sont pas affectés."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Annuler"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Annuler la surcharge"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Annulation du débit de basale temporaire"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Ajouter des glucides"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Modifier l’entrée des glucides"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Les changements effectués s’appliqueront uniquement maintenant en commençant la surcharge. Les réglages par défaut de %@ ne seront pas affectés."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choisissez un temps d’absorption plus long pour les gros repas ou ceux contenant des graisses et des protéines. Ceci est seulement un guide pour l'algorithme et n'a pas besoin d'être exact."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "à %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "depuis %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "à %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "depuis %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Conditions"; - -/* Title of the setup button to continue */ -"Continue" = "Continuer"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "La plage de correction est la plage de glycémie vers laquelle vous voudriez que Loop vous corrige."; - -/* The text for a custom override */ -"Custom" = "Personnalisé"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Surcharge personnalisée"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Supprimer tout"; - -/* The text for the override duration setting */ -"Duration" = "Durée"; - -/* The title for the override editing screen */ -"Edit Override" = "Éditer la surcharg"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "L’édition change seulement la surcharge actuelle. Les réglages par défaut de %@ ne seront pas affectés."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Activer indéfiniment"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Activée"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Entrez un nombre d'unités"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Entrez un taux en unités par heure"; - -/* Section title for fast absorbing food */ -"Fast" = "Rapide"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Le facteur de sensibilité à l’insuline décrit comment votre taux de glycémie devrait réagir à 1 unité d’insuline. Les valeurs plus petites veulent dire que davantage d’insuline sera donnée quand votre taux de glycémie est au-dessus de la cible. Des valeurs trop petites peuvent entraîner des hypoglycémies dangereuses."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Taux Basal Maximum"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Bolus Maximum"; - -/* Section title for medium absorbing food */ -"Medium" = "Moyen"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Plus d'informations"; - -/* The text for the override preset name setting */ -"Name" = "Nom"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nouveau préréglage"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Autre"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Besoin total en insuline"; - -/* The title text for the override presets screen */ -"Override Presets" = "Préréglages de surcharge"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Les préréglages de surcharge peuvent être ajoutés dans la section “Configuration” de l’écran des réglages."; - -/* The section title of glucose overrides */ -"Overrides" = "Surcharges"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pré-Repas"; - -/* The section header text override presets */ -"PRESETS" = "PRÉRÉGLAGES"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Événement de pompe"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Reprendre la distribution"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Reprise en cours"; - -/* The text for the override preset name field placeholder */ -"Running" = "Course"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Sauvegarder"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SURCHARGE PROGRAMMÉE"; - -/* Section title for slow absorbing food */ -"Slow" = "Lent"; - -/* The text for the override start time */ -"Start Time" = "Heure de début"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Démarrage du basal temporaire"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspendre la distribution"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspension en cours"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbole"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Appuyez pour définir"; - -/* The text for the override target range setting */ -"Target Range" = "Zone cible"; - -/* The title for the override selection screen */ -"Temporary Override" = "Surcharge temporaire"; - -/* The default placeholder string for a credential */ -"Required" = "Nécessaire"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Le temps d'absorption maximum est de %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "La quantité maximèm est de %@ grammes"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Temps dans %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/heure"; - -/* The unit string for units */ -"Units" = "Unités"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Inconnu"; - -/* Label indicating validation is occurring */ -"Verifying" = "En train de vérifier"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Attention"; - -/* Title for the workout override range */ -"Workout" = "Entraînement"; diff --git a/Dependencies/LoopKit/LoopKitUI/he.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/he.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/he.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/he.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/he.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/he.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/he.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/he.lproj/Localizable.strings deleted file mode 100644 index bbc497d99f..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/he.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorption Time"; - -/* The title for the override emoji activity section */ -"Activity" = "Activity"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Are you sure you want to delete all history entries?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Are you sure you want to delete all reservoir values?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Delete Account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, and correction insulin dose amounts are decreased by %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, and correction insulin dose amounts are increased by %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, and correction insulin dose amounts are unaffected."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancel Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Canceling Temp Basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Add Carb Entry"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Edit Carb Entry"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Changes will only apply this time you enable the override. The default settings of %@ will not be affected."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "since %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "since %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condition"; - -/* Title of the setup button to continue */ -"Continue" = "Continue"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Custom Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Delete All"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Edit Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Editing affects only the active override. The default settings of %@ will not be affected."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Enable Indefinitely"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Enabled"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Enter a number of units"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Enter a rate in units per hour"; - -/* Section title for fast absorbing food */ -"Fast" = "Fast"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum Basal Rate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "More Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "New Preset"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Overall Insulin Needs"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override Presets"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overrides"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Meal"; - -/* The section header text override presets */ -"PRESETS" = "PRESETS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resume Delivery"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resuming"; - -/* The text for the override preset name field placeholder */ -"Running" = "Running"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Slow"; - -/* The text for the override start time */ -"Start Time" = "Start Time"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starting Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspend Delivery"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspending"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; - -/* The text for the override target range setting */ -"Target Range" = "Target Range"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporary Override"; - -/* The default placeholder string for a credential */ -"Required" = "Required"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "The maximum absorption time is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hour"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unknown"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifying"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warning"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/it.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/it.lproj/InsulinKit.strings deleted file mode 100644 index 2ed0e248d4..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/it.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Titolo"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Dettaglio"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Nessun microinfusore configurato"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Totali"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Serbatoio"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Storia degli Eventi"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulina Somministrata"; - diff --git a/Dependencies/LoopKit/LoopKitUI/it.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/it.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/it.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/it.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/it.lproj/Localizable.strings deleted file mode 100644 index d05062c425..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/it.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ unità rimanenti alle ore %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Tempo di assorbimento"; - -/* The title for the override emoji activity section */ -"Activity" = "Attività"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Sei sicuro di voler eliminare tutti gli inserimenti storiche?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Sei sicuro di voler eliminare tutti i valori del serbato?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Aggiungi Account"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Cancella Account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Le dosi basali, di bolo e di correzione dell’insulina sono calate del %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Le dosi basali, di bolo e di correzione dell’insulina sono aumentate del %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Le dosi basali, di bolo e di correzione dell’insulina sono rimaste invariate."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancella"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Annulla regolazione manuale"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Annullamento velocità basale temporanea in corso"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Aggiungi carboidrati assunti"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Modifica carboidrati Assunti"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Le modifiche saranno applicate solo all’attivazione della regolazione manuale. Le impostazioni predefinite di %@ rimarranno invariate."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Scegli un tempo di assorbimento piu lungo per i pasti piu grandi o quelli contenenti grassi e proteine. Questa e solo una guida all’algoritmo e non e necessario che sia esatta."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "a %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "in %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "a %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "in %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condizione"; - -/* Title of the setup button to continue */ -"Continue" = "Continua"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "L’intervallo di correzione è l’intervallo di glicemia al quale vuoi che si regoli Loop."; - -/* The text for a custom override */ -"Custom" = "Personalizzato"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Regolazione manuale personalizzata"; - -/* Title of the carb entry date picker cell */ -"Date" = "Data"; - -/* Button title to delete all objects */ -"Delete All" = "Elimina tutto"; - -/* The text for the override duration setting */ -"Duration" = "Durata"; - -/* The title for the override editing screen */ -"Edit Override" = "Modifica regolazione manuale"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "La modifica riguarda solo la regolazione manuale attiva. Le impostazioni predefinite di %@ resteranno invariate."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Attiva a tempo indeterminato"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Abilitato"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Inserire un numero di unità"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Inserire un tasso di unità per ora"; - -/* Section title for fast absorbing food */ -"Fast" = "Veloce"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "La sensibilità all’insulina descrive il modo in cui la tua glicemia dovrebbe rispondere a una dose di insulina pari a 1 Unità. In caso di valori inferiori, al superamento del target verrà somministrata più insulina. Valori troppo bassi possono causare livelli di glicemia pericolosamente bassi."; - -/* Placeholder for maximum value in glucose range */ -"max" = "massimo"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Profilo Basale Massimo"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Bolo Massimo"; - -/* Section title for medium absorbing food */ -"Medium" = "Medio"; - -/* Placeholder for minimum value in glucose range */ -"min" = "minimo"; - -/* Alert action title to open error help */ -"More Info" = "Piu info"; - -/* The text for the override preset name setting */ -"Name" = "Nome"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nuove impostazioni predefinite"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Altro"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Fabbisogno complessivo di insulina"; - -/* The title text for the override presets screen */ -"Override Presets" = "Impostazioni predefinite della regolazione manuale"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "È possibile configurare le impostazioni predefinite della regolazione manuale nella sezione ‘Configurazione' della schermata impostazioni."; - -/* The section title of glucose overrides */ -"Overrides" = "Regolazioni manuali"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Pasto"; - -/* The section header text override presets */ -"PRESETS" = "IMPOSTAZIONI PREDEFINITE"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Evento Microinfusore"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Riprendi erogazione"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Ripresa in corso"; - -/* The text for the override preset name field placeholder */ -"Running" = "Corsa"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Salva"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "REGOLAZIONE MANUALE PROGRAMMATA"; - -/* Section title for slow absorbing food */ -"Slow" = "Lento"; - -/* The text for the override start time */ -"Start Time" = "Ora di inizio"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Attivazione velocità basale temporanea in corso"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Sospendi erogazione"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Sospensione in corso"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Simbolo"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Imposta"; - -/* The text for the override target range setting */ -"Target Range" = "Intervallo target"; - -/* The title for the override selection screen */ -"Temporary Override" = "Regolazione manuale temporanea"; - -/* The default placeholder string for a credential */ -"Required" = "Necessario"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Il tempo di assorbimento massimo e %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "La massima quantita permessa %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Volte tra %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/ora"; - -/* The unit string for units */ -"Units" = "Unità"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Sconosciuto"; - -/* Label indicating validation is occurring */ -"Verifying" = "Sto verificando"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Avvertimento"; - -/* Title for the workout override range */ -"Workout" = "Allenarsi"; diff --git a/Dependencies/LoopKit/LoopKitUI/ja.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/ja.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ja.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/ja.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/ja.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ja.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/ja.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/ja.lproj/Localizable.strings deleted file mode 100644 index ddc5562779..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ja.lproj/Localizable.strings +++ /dev/null @@ -1,256 +0,0 @@ -/* Separator between min and max glucose values */ -"-" = "-"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "吸収時間"; - -/* The title for the override emoji activity section */ -"Activity" = "アクティビティ"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "アカウントを追加"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "糖質の記入を追加"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "入力履歴をすべて削除しますか?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "リザーバの値をすべて削除しますか?"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "基礎、ボーラス、補正注入の量が %@%%減ります。"; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "基礎、ボーラス、補正注入の量が %@%%増えます。"; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "基礎、ボーラス、補正注入の量は変わりません。"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "キャンセル"; - -/* The text for the override cancellation button */ -"Cancel Override" = "オーバーライドをキャンセル"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "一時基礎レートをキャンセルします"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "オーバーライドの有効化は今回のみ適用されます。%@ の初期設定は変わりません。"; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "量の多い食事や脂質やたんぱく質を含んだ食事には長い吸収時間を選んでください。これはアルゴリズムのための参考で、厳密である必要はありません。"; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "%1$@ 時点"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "%1$@ より"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "%1$@ 時点"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "%1$@ より"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "コンディション"; - -/* Title of the setup button to continue */ -"Continue" = "次へ"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "目標グルコース範囲は、血糖値がこの範囲内に補正されるようループに設定する範囲です。"; - -/* The text for a custom override */ -"Custom" = "カスタム"; - -/* The title for the custom override entry screen */ -"Custom Override" = "カスタムオーバーライド"; - -/* Title of the carb entry date picker cell */ -"Date" = "日付"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "アカウントを削除"; - -/* Button title to delete all objects */ -"Delete All" = "すべて削除"; - -/* The text for the override duration setting */ -"Duration" = "期間"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "糖質の記入を編集"; - -/* The title for the override editing screen */ -"Edit Override" = "オーバーライドを編集"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "オーバーライドの編集は今回のみ適用されます。%@ の初期設定は変わりません。"; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "無期限を有効にする"; - -/* The detail text describing an enabled setting */ -"Enabled" = "有効"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "単位数を入力"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "毎時単位(U/h)を入力"; - -/* Section title for fast absorbing food */ -"Fast" = "速め"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "インスリン効果値は、1単位のインスリンによって血糖値がどれだけ反応するかを表します。この値が小さいほど、測定値がターゲットを超えたときに注入されるインスリンの量が多くなります。値を小さく設定しすぎると低血糖の原因となり危険です。"; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "最大基礎レート"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "最大ボーラス"; - -/* Section title for medium absorbing food */ -"Medium" = "中"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "詳細"; - -/* The text for the override preset name setting */ -"Name" = "プリセット名"; - -/* The title for the new override preset entry screen */ -"New Preset" = "プリセットを設定する"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "その他"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "総インスリン必要量"; - -/* The title text for the override presets screen */ -"Override Presets" = "オーバーライドプリセット"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "オーバーライドプリセットは、設定画面のコンフィグレーションで設定できます。"; - -/* The section title of glucose overrides */ -"Overrides" = "オーバーライド"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "食前"; - -/* The section header text override presets */ -"PRESETS" = "プリセット"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "ポンプイベント"; - -/* The default placeholder string for a credential */ -"Required" = "必須"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "注入を再開"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "再開中"; - -/* The text for the override preset name field placeholder */ -"Running" = "動作中"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "保存"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "遅め"; - -/* The text for the override start time */ -"Start Time" = "開始時間"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "一時基礎を開始"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "注入を一時停止"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "一時停止中"; - -/* The text for the override preset symbol setting */ -"Symbol" = "シンボル"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "タップして確定"; - -/* The text for the override target range setting */ -"Target Range" = "ターゲット範囲"; - -/* The title for the override selection screen */ -"Temporary Override" = "一時的オーバーライト"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "最大吸収時間: %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "最大量: %@ g"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "時間帯 %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/時"; - -/* The unit string for units */ -"Units" = "単位"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "不明"; - -/* Label indicating validation is occurring */ -"Verifying" = "確認中"; - -/* Title of an alert containing a validation warning */ -"Warning" = "警告"; - -/* Title for the workout override range */ -"Workout" = "運動"; - diff --git a/Dependencies/LoopKit/LoopKitUI/nb.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/nb.lproj/InsulinKit.strings deleted file mode 100644 index 015ab49d9a..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nb.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Tittel"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detaljert"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "E IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Ingen pumpe lagt til"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "E totalt"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoar"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Hendelseshistorikk"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulintilførsel"; - diff --git a/Dependencies/LoopKit/LoopKitUI/nb.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/nb.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nb.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/nb.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/nb.lproj/Localizable.strings deleted file mode 100644 index 6a2a948412..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nb.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ enheter gjennstår klokken %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% av normalt insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@E"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorbsjonstid"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivitet"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Er du sikker på at du vil slette alle historiske innslag?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Er du sikker på at du vil slette alle reservoarverdier?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Legg Til Konto"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Slett Konto"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Insulindoser for babsal, bolus og korreksjon er redusert med %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Insulindoser for babsal, bolus og korreksjon er økt med %@%%"; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Insulindoser for babsal, bolus og korreksjon er uendret."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Avbryt"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Avbryt overstyring"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Avbryter temp basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Legg til karbohydrater"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Rediger karbohydrater"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Endringer vil kun gjelde for denne gangen du aktiverer overstyring. Standardinstillinger for %@ vil ikke bli påvirket."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Velg en lengre absorpsjonstid for større måltider, eller de som inneholder fett og proteiner. Dette er bare veiledning til algoritmen og trenger ikke å være nøyaktig."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "kl. %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "siden %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "kl. %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "siden %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; - -/* The title for the override emoji condition section */ -"Condition" = "Betingelse"; - -/* Title of the setup button to continue */ -"Continue" = "Fortsett"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Korreksjonsområde er området du ønsker at appen skal korrigere blodsukker til."; - -/* The text for a custom override */ -"Custom" = "Egendefinert"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Tilpasset overstyring"; - -/* Title of the carb entry date picker cell */ -"Date" = "Dato"; - -/* Button title to delete all objects */ -"Delete All" = "Slett alle"; - -/* The text for the override duration setting */ -"Duration" = "Varighet"; - -/* The title for the override editing screen */ -"Edit Override" = "Rediger overstyring"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Redigering påvirker kun den aktive overstyringen. Standardinnstillingen %@ vil ikke bbli påvirket."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Aktiver på ubestemt tid"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Aktivert"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Skriv inn antall enheter"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Velg en grense for maks enheter per time"; - -/* Section title for fast absorbing food */ -"Fast" = "Rask"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinfølsomhet beskriver hvordan blodsukkeret responderer på 1 enhet insulin. Mindre verdier betyr at mer insulin vil bli gitt når man er over målområdet. Verdier som er for små kan føre til farlig lavt blodsukker. "; - -/* Placeholder for maximum value in glucose range */ -"max" = "maks"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maks basalgrense"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maks bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Middels"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Mer info"; - -/* The text for the override preset name setting */ -"Name" = "Navn"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Ny forhåndsinstilling"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Annet"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Insulinbehov totalt sett"; - -/* The title text for the override presets screen */ -"Override Presets" = "Egendefinerte overstyringer"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Egendefinerte overstyringer kan settes opp under Konfigurasjons-delen av innstillingsskjermen"; - -/* The section title of glucose overrides */ -"Overrides" = "Overstyringer"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-måltid"; - -/* The section header text override presets */ -"PRESETS" = "FORHÅNDSINSTILLINGER"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pumpehendelse"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Gjenoppta leveranse"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Gjenopptar"; - -/* The text for the override preset name field placeholder */ -"Running" = "Løper"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Lagre"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "PLANLAGT OVERSTYRING"; - -/* Section title for slow absorbing food */ -"Slow" = "Langsom"; - -/* The text for the override start time */ -"Start Time" = "Starttidspunkt"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starter temp-basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Pause leveranse"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Pauser"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Trykk for å angi"; - -/* The text for the override target range setting */ -"Target Range" = "Målområde"; - -/* The title for the override selection screen */ -"Temporary Override" = "Midlertidig overstyring"; - -/* The default placeholder string for a credential */ -"Required" = "Påkrevd"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Maks absorbsjonstid er %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Maks tillatt mengde er %@ gram"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Tider i %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "E/timen"; - -/* The unit string for units */ -"Units" = "Enheter"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Ukjent"; - -/* Label indicating validation is occurring */ -"Verifying" = "Bekrefter"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Advarsel"; - -/* Title for the workout override range */ -"Workout" = "Trening"; diff --git a/Dependencies/LoopKit/LoopKitUI/nl.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/nl.lproj/InsulinKit.strings deleted file mode 100644 index 779fb6f93e..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nl.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Titel"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "E in lichaam"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Geen pomp geconfigureerd"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "E totaal"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Pomp historie"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insuline toediening"; - diff --git a/Dependencies/LoopKit/LoopKitUI/nl.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/nl.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nl.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/nl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/nl.lproj/Localizable.strings deleted file mode 100644 index 7dafebb90e..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/nl.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ eenheden aanwezig om %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normale insuline"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@E"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorptie tijd"; - -/* The title for the override emoji activity section */ -"Activity" = "Activiteit"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Weet je zeker dat je de gehele pompgeschiedenis wilt verwijderen?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Weet je zeker dat je alle waardes van het reservoir wilt verwijderen?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Voeg account toe"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Verwijder account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basaal, bolus en insuline correctie hoeveelheden zijn gereduceerd met %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basaal, bolus en insuline correctie hoeveelheden zijn verhoogd met %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basaal, bolus en insuline correctie hoeveelheden zijn onveranderd."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Annuleer"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Annuleer tijdelijk programma"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Annuleer tijdelijk basaal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Voer koolhydraten in"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Bewerk koolhydraten"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Wijzigingen gelden alleen als je het tijdelijk programma activeert. De standaard instellingen van %@ worden niet veranderd."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Kies een langere opnametijd voor grotere maaltijden of voor degene die vetten en eiwitten bevatten. Dit is alleen een leidraad voor het algoritme en hoeft niet exact te zijn."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "op %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "sinds %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "op %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "sinds %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; - -/* The title for the override emoji condition section */ -"Condition" = "Conditie"; - -/* Title of the setup button to continue */ -"Continue" = "Vervolg"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correctie bereik is het bereik dat je wilt dat Loop op aanstuurt."; - -/* The text for a custom override */ -"Custom" = "Aangepast"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Aangepast programma"; - -/* Title of the carb entry date picker cell */ -"Date" = "Datum"; - -/* Button title to delete all objects */ -"Delete All" = "Verwijder alles"; - -/* The text for the override duration setting */ -"Duration" = "Duur"; - -/* The title for the override editing screen */ -"Edit Override" = "Pas aangepast programma aan"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Veranderingen hebben alleen effect op aangepast programma. De standaard instellingen van %@ worden niet aangepast. "; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Voor onbepaalde tijd inschakelen"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Ingeschakeld"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Voer aantal eenheden in"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Voer aantal eenheden per uur in"; - -/* Section title for fast absorbing food */ -"Fast" = "Snel"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insuline gevoeligheid beschrijft hoe de bloed glucose reageert op 1 eenheid insuline. Lagere waarde betekent dat meer insuline gegeven wordt wanneer je boven doelbereik bent. Een te laag ingestelde insuline gevoeligheid kan leiden tot gevaarlijk lage bloed glucose waardes."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum basaal waarde"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Middel"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Meer informatie"; - -/* The text for the override preset name setting */ -"Name" = "Naam"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nieuw tijdelijk programma"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Anders"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Totale insuline behoefte"; - -/* The title text for the override presets screen */ -"Override Presets" = "Tijdelijke programma’s"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Tijdelijke programma’s kunnen ingesteld worden via het onderdeel “instellingen” in het instellingenscherm."; - -/* The section title of glucose overrides */ -"Overrides" = "Tijdelijke programma’s"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Voor de maaltijd"; - -/* The section header text override presets */ -"PRESETS" = "Programma’s"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pomp gebeurtenis"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Hervat toediening"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Hervatten"; - -/* The text for the override preset name field placeholder */ -"Running" = "Hardlopen"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Opslaan"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "GEPLAND TIJDELIJK PROGRAMMA"; - -/* Section title for slow absorbing food */ -"Slow" = "Langzaam"; - -/* The text for the override start time */ -"Start Time" = "Start tijd"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Start tijdelijk basaal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Onderbreek toediening"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Onderbreken"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbool"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Instellen…"; - -/* The text for the override target range setting */ -"Target Range" = "Doel bereik"; - -/* The title for the override selection screen */ -"Temporary Override" = "Tijdelijk programma"; - -/* The default placeholder string for a credential */ -"Required" = "Vereist"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "De maximum absorptietijd is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "De maximum toegestane waarde is %@ gram"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Aantal keren in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "E/uur"; - -/* The unit string for units */ -"Units" = "Eenheden"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Onbekend"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifiëren"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Waarschuwing"; - -/* Title for the workout override range */ -"Workout" = "Training"; diff --git a/Dependencies/LoopKit/LoopKitUI/pl.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/pl.lproj/InsulinKit.strings deleted file mode 100644 index 9cfe74a105..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pl.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Tytuł"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Szczegóły"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "J IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Brak skonfigurowanej pompy"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "J łącznie"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Zbiornik"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Historia zdarzeń"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Podaż insuliny"; - diff --git a/Dependencies/LoopKit/LoopKitUI/pl.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/pl.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pl.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/pl.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/pl.lproj/Localizable.strings deleted file mode 100644 index 0a9d9b654f..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pl.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ jednostek pozostaje w %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% normalnej insuliny"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@J"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Czas absorpcji"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktywność"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Czy jesteś pewien, że chcesz usunąć z Loop wszystkie dane historyczne pompy?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Czy jesteś pewien, że chcesz usunąć wszystkie wartości zbiornika?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Dodaj konto"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Usuń konto"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Dawka podstawowa, bolus i korygująca dawka insuliny zostały zmniejszone o %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "> Dawka podstawowa, bolus i korygująca dawka insuliny zostały zwiększone o %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = " Dawka podstawowa, bolus i korygująca dawka insuliny bez zmian."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Anuluj"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Anuluj pominięcie"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Anulowanie tymczasowej dawki podstawowej"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Wprowadź węglowodany"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Edytuj wprowadzone węglowodany"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Zmiany będą obowiązywać wyłącznie podczas tego pominięcia. Domyślne ustawienia %@ nie zostaną zmienione."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Wybierz dłuższy czas absorpcji dla większych, bogatobiałkowych lub wysokotłuszczowych posiłków. To tylko wskazówka dla algorytmu i nie musi być bardzo dokładna."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "o %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "od %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "o %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "od %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Warunek"; - -/* Title of the setup button to continue */ -"Continue" = "Kontynuuj"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Zakres korekty to zakres stężenia glukozy we krwi, względem którego chcesz skorygować algorytm Loop."; - -/* The text for a custom override */ -"Custom" = "Dostosuj"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Pominięcie niestandardowe"; - -/* Title of the carb entry date picker cell */ -"Date" = "Data"; - -/* Button title to delete all objects */ -"Delete All" = "Usuń wszystko"; - -/* The text for the override duration setting */ -"Duration" = "Czas trwania"; - -/* The title for the override editing screen */ -"Edit Override" = "Edytuj pominięcie"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = " Edycja wpływa wyłącznie na aktywne pominięcie. Domyślne ustawienia %@ nie zostaną zmienione."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Włącz na czas nieokreślony"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Włączony"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Wprowadź liczbę jednostek"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Maksymalna dawka w jednostkach na godzinę"; - -/* Section title for fast absorbing food */ -"Fast" = "Szybko"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinowrażliwość opisuje, w jaki sposób stężenie glukozy we krwi powinno reagować na 1 jednostkę insuliny. Mniejsze wartości oznaczają podanie większej ilości insuliny w przypadku wartości powyżej zakresu. Zbyt małe wartości mogą spowodować niebezpiecznie niskie stężenie glukozy we krwi."; - -/* Placeholder for maximum value in glucose range */ -"max" = "maks."; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maksymalna dawka podstawowa"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maksymalny bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Średnia"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min."; - -/* Alert action title to open error help */ -"More Info" = "Więcej informacji"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nowe ustawienie wstępne"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Ogólne zapotrzebowanie na insulinę"; - -/* The title text for the override presets screen */ -"Override Presets" = "Wstępne ustawienia pominięcia"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Wstępne ustawienia pominięcia można skonfigurować w części „Konfiguracja” na ekranie ustawień."; - -/* The section title of glucose overrides */ -"Overrides" = "Pominięcia"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Przed posiłkiem"; - -/* The section header text override presets */ -"PRESETS" = "USTAWIENIA WSTĘPNE"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Zdarzenie pompy"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Wznów podawanie"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Wznawianie"; - -/* The text for the override preset name field placeholder */ -"Running" = "Pracuje"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Zapisz"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "ZAPLANOWANE POMINIĘCIE"; - -/* Section title for slow absorbing food */ -"Slow" = "Wolna"; - -/* The text for the override start time */ -"Start Time" = "Czas rozpoczęcia"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Rozpoczynanie tymczasowej dawki podstawowej"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Wstrzymaj podawanie"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Wstrzymywanie"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Kliknij, aby ustawić"; - -/* The text for the override target range setting */ -"Target Range" = "Zakres docelowy"; - -/* The title for the override selection screen */ -"Temporary Override" = "Pominięcie tymczasowe"; - -/* The default placeholder string for a credential */ -"Required" = "Wymagane"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Maksymalny czas absorpcji wynosi %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Maksymalna dozwolona ilość wynosi %@ gramów"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Czas w %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "J/godzinę"; - -/* The unit string for units */ -"Units" = "Jednostki"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Nieznana"; - -/* Label indicating validation is occurring */ -"Verifying" = "Weryfikuję"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Ostrzeżenie"; - -/* Title for the workout override range */ -"Workout" = "Wysiłek fizyczny"; diff --git a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/Localizable.strings deleted file mode 100644 index b017abbc4c..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ unidades restantes as %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% de insulina normal"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Tempo de Absorção"; - -/* The title for the override emoji activity section */ -"Activity" = "Atividade"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Tem certeza de que deseja excluir todas as entradas do histórico?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Tem certeza de que deseja excluir todos os valores do reservatório?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Adicionar Conta"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Remover Conta"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "As quantidades basais, de bolus e de dose de insulina de correção diminuem em %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "As quantidades basais, de bolus e de dose de insulina de correção aumentam em %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "As quantidades basais, de bolus e de dose de insulina de correção não são alteradas."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancelar Sobreposição"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Cancelar Basal Temporária"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Adicionar Carb"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Editar Carb"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "As alterações serão aplicadas apenas desta vez que você ativar a sobreposição. As configurações padrão de %@ não serão afetadas."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Escolha um tempo de absorção mais longo para refeições maiores ou aquelas que contenham gorduras e proteínas. Esta é apenas uma orientação para o algoritmo e não precisa ser exata."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "em %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "desde %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "em %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "desde %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Estado"; - -/* Title of the setup button to continue */ -"Continue" = "Continuar"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "A faixa de correção é o intervalo de glicose no sangue que você gostaria que o Loop corrigisse para."; - -/* The text for a custom override */ -"Custom" = "Definir"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Sobreposição Personalizada"; - -/* Title of the carb entry date picker cell */ -"Date" = "Data"; - -/* Button title to delete all objects */ -"Delete All" = "Remover Todos"; - -/* The text for the override duration setting */ -"Duration" = "Duração"; - -/* The title for the override editing screen */ -"Edit Override" = "Editar Sobreposição"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "A edição afeta apenas a sobreposição ativa. As configurações padrão de %@ não serão afetadas."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Ativar Indefinidamente"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Ativado"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Digite um número de unidades"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Insira uma taxa em unidades por hora"; - -/* Section title for fast absorbing food */ -"Fast" = "Rápida"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "A sensibilidade à insulina descreve como a glicose no sangue deve responder a uma dose unitária de insulina. Valores menores significam que mais insulina será administrada quando acima do objetivo. Valores muito pequenos podem causar hipoglicemia."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Taxa Basal Máxima"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Bolus Máximo"; - -/* Section title for medium absorbing food */ -"Medium" = "Média"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Mais Info"; - -/* The text for the override preset name setting */ -"Name" = "Nome"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nova Predefinição"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Outros"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Necessidades Gerais de Insulina"; - -/* The title text for the override presets screen */ -"Override Presets" = "Sobreposições Predefinidas"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "As predefinições de sobreposição podem ser configuradas na seção 'Configuração' da tela de configurações."; - -/* The section title of glucose overrides */ -"Overrides" = "Sobreposições"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pré-Refeição"; - -/* The section header text override presets */ -"PRESETS" = "PREDEFINIDAS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Eventos da Bomba"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Retomar Entrega"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Retomando"; - -/* The text for the override preset name field placeholder */ -"Running" = "Executando"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Salvar"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SOBREPOSIÇÃO AGENDADA"; - -/* Section title for slow absorbing food */ -"Slow" = "Lenta"; - -/* The text for the override start time */ -"Start Time" = "Hora de Início"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Iniciando Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspender Entrega"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspendendo"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Símbolo"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Toque para Definir"; - -/* The text for the override target range setting */ -"Target Range" = "Intervalo Meta"; - -/* The title for the override selection screen */ -"Temporary Override" = "Sobreposição Temporária"; - -/* The default placeholder string for a credential */ -"Required" = "Obrigatório"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "O tempo máximo de absorção é %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "A quantidade máxima permitida é %@ gramas"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Hora em %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/houra"; - -/* The unit string for units */ -"Units" = "Unidades"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Desconhecido"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verificando"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Aviso"; - -/* Title for the workout override range */ -"Workout" = "Exercício"; diff --git a/Dependencies/LoopKit/LoopKitUI/pt-PT.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/pt-PT.lproj/Localizable.strings deleted file mode 100644 index 7b33ca9fc3..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/pt-PT.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorption Time"; - -/* The title for the override emoji activity section */ -"Activity" = "Activity"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Are you sure you want to delete all history entries?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Are you sure you want to delete all reservoir values?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Delete Account"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, and correction insulin dose amounts are decreased by %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, and correction insulin dose amounts are increased by %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, and correction insulin dose amounts are unaffected."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancel Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Canceling Temp Basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Add Carb Entry"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Edit Carb Entry"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Changes will only apply this time you enable the override. The default settings of %@ will not be affected."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "since %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "at %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "since %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condition"; - -/* Title of the setup button to continue */ -"Continue" = "Continue"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; - -/* The text for a custom override */ -"Custom" = "Definir"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Custom Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Data"; - -/* Button title to delete all objects */ -"Delete All" = "Delete All"; - -/* The text for the override duration setting */ -"Duration" = "Duração"; - -/* The title for the override editing screen */ -"Edit Override" = "Edit Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Editing affects only the active override. The default settings of %@ will not be affected."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Enable Indefinitely"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Enabled"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Enter a number of units"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Enter a rate in units per hour"; - -/* Section title for fast absorbing food */ -"Fast" = "Fast"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximum Basal Rate"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "More Info"; - -/* The text for the override preset name setting */ -"Name" = "Nome"; - -/* The title for the new override preset entry screen */ -"New Preset" = "New Preset"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Outro"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Overall Insulin Needs"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override Presets"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overrides"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Meal"; - -/* The section header text override presets */ -"PRESETS" = "PRESETS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resume Delivery"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resuming"; - -/* The text for the override preset name field placeholder */ -"Running" = "Running"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Salvar"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Slow"; - -/* The text for the override start time */ -"Start Time" = "Start Time"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starting Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspend Delivery"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspending"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; - -/* The text for the override target range setting */ -"Target Range" = "Target Range"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporary Override"; - -/* The default placeholder string for a credential */ -"Required" = "Required"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "The maximum absorption time is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hour"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unknown"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifying"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warning"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/ro.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/ro.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ro.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/ro.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/ro.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ro.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/ro.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/ro.lproj/Localizable.strings deleted file mode 100644 index f4097782bf..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ro.lproj/Localizable.strings +++ /dev/null @@ -1,253 +0,0 @@ -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% din insulină normală"; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ unități rămase la %2$@"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Timp de absorbție"; - -/* The title for the override emoji activity section */ -"Activity" = "Activitate"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Sigur doriți să ștergeți toate înregistrările din istoric?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Sigur doriți să ștergeți toate valorile de rezervor?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Adaugă cont"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Șterge cont"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Dozele de insulină bazale, de bolus și de corecție sunt scăzute cu %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Dozele de insulină bazale, de bolus și de corecție sunt crescute cu %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Dozele de insulină bazale, de bolus și de corecție sunt neafectate."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Renunță"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Oprește înlocuirea"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Oprește bazala temporară"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Adaugă carbohidrați"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Editează carbohidrați"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Modificările se vor aplica doar pe durata înlocuirii. Setările implicite de %@ nu vor fi afectate."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Alegeți o durată mai lungă de absorbție pentru mese mai mari sau pentru cele care conțin grăsimi și proteine. Nu e necesară o valoare exactă, scopul e să oferim doar o ghidare pentru algoritm."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "la %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "de la %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "la %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "de la %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Condiție"; - -/* Title of the setup button to continue */ -"Continue" = "Continuă"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Correction range is the blood glucose range that you would like Loop to correct to."; - -/* The text for a custom override */ -"Custom" = "Personalizată"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Înlocuire personalizată"; - -/* Title of the carb entry date picker cell */ -"Date" = "Data"; - -/* Button title to delete all objects */ -"Delete All" = "Șterge tot"; - -/* The text for the override duration setting */ -"Duration" = "Durată"; - -/* The title for the override editing screen */ -"Edit Override" = "Editează înlocuirea"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Editarea afectează doar înlocuirea activă. Setările implicite de %@ nu vor fi afectate."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Activează pe termen nedeterminat"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Activată"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Introduceți un număr de unități"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Introduceți o rată exprimată în unități per oră"; - -/* Section title for fast absorbing food */ -"Fast" = "Rapidă"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Factorul de sensibilitate la insulină descrie felul în care glicemia ar trebui să răspundă la 1 unitate de insulină. Valori mai mici determină administrarea unor doze mai mari de insulină pentru a scădea glicemia la intervalul țintă."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Rată bazală maximă"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Bolus maxim"; - -/* Section title for medium absorbing food */ -"Medium" = "Medie"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Detalii"; - -/* The text for the override preset name setting */ -"Name" = "Nume"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Presetare nouă"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Altele"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Necesar de insulină total"; - -/* The title text for the override presets screen */ -"Override Presets" = "Presetări de înlocuire"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Presetările de înlocuire pot fi setate în secțiunea 'Configurație' din ecranul de setări."; - -/* The section title of glucose overrides */ -"Overrides" = "Înlocuiri"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Preprandial"; - -/* The section header text override presets */ -"PRESETS" = "PRESETĂRI"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Eveniment de pompă"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Reia administrarea"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Se reia"; - -/* The text for the override preset name field placeholder */ -"Running" = "Se rulează"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Salvează"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "ÎNLOCUIRE PLANIFICATĂ"; - -/* Section title for slow absorbing food */ -"Slow" = "Lentă"; - -/* The text for the override start time */ -"Start Time" = "Oră începere"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Pornire bazală temporară"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspendă administrarea"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Se suspendă"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Simbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Apăsați pentru setare"; - -/* The text for the override target range setting */ -"Target Range" = "Interval țintă"; - -/* The title for the override selection screen */ -"Temporary Override" = "Înlocuire temporară"; - -/* The default placeholder string for a credential */ -"Required" = "Necesar"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Durata maximă de absorbție este de %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Cantitatea maximă admisă este de %@ grame"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Orele în %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/oră"; - -/* The unit string for units */ -"Units" = "Unități"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Necunoscut"; - -/* Label indicating validation is occurring */ -"Verifying" = "Se verifică"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Avertizare"; - -/* Title for the workout override range */ -"Workout" = "Activitate sportivă"; - diff --git a/Dependencies/LoopKit/LoopKitUI/ru.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/ru.lproj/InsulinKit.strings deleted file mode 100644 index 48181199f2..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ru.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Название"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Детали"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "ед IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "Нет сконфигурированной помпы"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "ед Всего"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Резервуар"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "История событий"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Подача инсулина"; - diff --git a/Dependencies/LoopKit/LoopKitUI/ru.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/ru.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ru.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/ru.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/ru.lproj/Localizable.strings deleted file mode 100644 index 0ecb375d79..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/ru.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ ед остается в %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% нормального инсулина"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@ед"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Длительность усвоения"; - -/* The title for the override emoji activity section */ -"Activity" = "Нагрузка"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Подтвердите удаление всех записей истории?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Подтвердите удаление всех записей резервуара?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Добавить пользователя"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Удалить аккаунт"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "База, болюсы и болюсы на коррекцию снижены на%@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "База, болюсы и болюсы на коррекцию увеличены на %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "BБаза, болюсы и болюсы на коррекцию не изменились."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Отмена"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Отмена ручного контроля"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Отмена врем базала"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Добавить запись углеводов"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Редактировать запись углеводов"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Изменения будут действительны только на время ручного контроля."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Выберите более высокую длительность усвоения для обильной пищи или для пищи с белками и протеинами. Это единственное указание для алгоритма не нуждается в дополнительных уточнениях."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "В %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "после %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "В %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "после %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "ОК"; - -/* The title for the override emoji condition section */ -"Condition" = "Условие"; - -/* Title of the setup button to continue */ -"Continue" = "Продолжить"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Диапазон коррекции это желательный диапазон значений ГК для обработки алгоритмом петли."; - -/* The text for a custom override */ -"Custom" = "Своя"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Настраиваемое ручное управление"; - -/* Title of the carb entry date picker cell */ -"Date" = "Дата"; - -/* Button title to delete all objects */ -"Delete All" = "Стереть все"; - -/* The text for the override duration setting */ -"Duration" = "Длительность"; - -/* The title for the override editing screen */ -"Edit Override" = "Редактировать ручной контроль"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Изменения затронут только активную версию. Значения по умолчанию %@ не изменятся."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Активировать на неопределенное время"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Активировано"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Введите кол-во единиц"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Введите скорость в ед/час"; - -/* Section title for fast absorbing food */ -"Fast" = "Быстрая"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Чувствительность к инсулину показывает как ГК отреагирует на 1 ед. Инсулина. Меньшие величины означают подачу большего количества инсулина при ГК выше целевой. Слишком низкие величины могут привести к слишком низкой ГК."; - -/* Placeholder for maximum value in glucose range */ -"max" = "макс"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Макс скорость базала"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Макс Болюс"; - -/* Section title for medium absorbing food */ -"Medium" = "Средняя"; - -/* Placeholder for minimum value in glucose range */ -"min" = "мин"; - -/* Alert action title to open error help */ -"More Info" = "Доп. инфо"; - -/* The text for the override preset name setting */ -"Name" = "Название"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Новый параметр"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Прочее"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Общая потребность в инсулине"; - -/* The title text for the override presets screen */ -"Override Presets" = "Редактировать параметры"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Редактирование параметров может задаваться в разделе “Конфигурация” экрана настройки."; - -/* The section title of glucose overrides */ -"Overrides" = "Изменить"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "До еды"; - -/* The section header text override presets */ -"PRESETS" = "НАСТРОЙКИ"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Событие помпы"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Возобновить подачу"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Возобновляется"; - -/* The text for the override preset name field placeholder */ -"Running" = "Выполнение"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Сохранить"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "ЗАПЛАНИРОВАННОЕ ВЫПОЛНЕНИЕ ИЗМЕНЕНИЙ"; - -/* Section title for slow absorbing food */ -"Slow" = "Медленная"; - -/* The text for the override start time */ -"Start Time" = "Время начала"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Время начала временного базала"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Остановить подачу"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Выполняется остановка"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Значок"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Щелкнуть для ввода"; - -/* The text for the override target range setting */ -"Target Range" = "Целевой диапазон"; - -/* The title for the override selection screen */ -"Temporary Override" = "Временный"; - -/* The default placeholder string for a credential */ -"Required" = "обязательный"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Максимальная длительность усвоения %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Максимальное допустимое количество %@ грамм"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Хронометраж %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "ед/ч"; - -/* The unit string for units */ -"Units" = "Единицы"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Неизвестно"; - -/* Label indicating validation is occurring */ -"Verifying" = "Верифицируется"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Предостережение"; - -/* Title for the workout override range */ -"Workout" = "Физическая нагрузка"; diff --git a/Dependencies/LoopKit/LoopKitUI/sk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/sk.lproj/Localizable.strings deleted file mode 100644 index 70f350c5c5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/sk.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ jednotiek zostáva o %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@J"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Čas vstrebania"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivita"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Naozaj chcete vymazať celú históriu podaní?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Naozaj chcete vymazať všetky údaje rezervoára?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Pridať účet"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Odstrániť účet"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Bazál, Bolus, a korekčná dávka inzulínu sú znížené o %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Bazál, Bolus, a korekčná dávka inzulínu sú navýšené o %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Bazál, Bolus, a korekčná dávka inzulínu nie sú ovplyvnené."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Cancel Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Ruší sa Dočasný Bazál"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Pridaj Sach"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Uprav Sach"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Zmeny budú uplatnené iba počas aktívneho override. Prednastavené nastavenia %@ nebudú ovplyvnené."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Zvoľte dlhší čas vstrebania pre väčšie jedlá, alebo jedlá s obsahom bielkovín a tukov. Toto je iba návod pre algoritmus a nemusí byť presný."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "dňa %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "od %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "dňa %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "od %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Stav"; - -/* Title of the setup button to continue */ -"Continue" = "Pokračovať"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Korekčný rozsah je hranica krvného cukru ku ktorej chcete aby Slučka krvný cukor korigovala."; - -/* The text for a custom override */ -"Custom" = "Custom"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Vlastné Nastavenie"; - -/* Title of the carb entry date picker cell */ -"Date" = "Date"; - -/* Button title to delete all objects */ -"Delete All" = "Vymazať všetko"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Uprav Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Upravenie vplýva iba na aktívny override. Prednastavené hodnoty %@ nebudú ovplyvnené."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Zapnúť Neobmedzene"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Zapnuté"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Zadajte počet jednotiek"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Zadajte hodnotu v jednotkách za hodinu"; - -/* Section title for fast absorbing food */ -"Fast" = "Rýchly"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Inzulínová citlivosť opisuje ako by mal váš krvný cukor reagovať na 1 Jednotku dávky inzulínu. Menšie hodnoty znamenajú že bude podané väčsie množstvo inzulínu keď ste nad rozsahom. Hodnoty ktoré sú príliš nízke môžu spôsobiť nebezpečné zníženie hladiny krvného cukru."; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximálna Dávka Bazálu"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximálny Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Stredný"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Viac Info"; - -/* The text for the override preset name setting */ -"Name" = "Name"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Nové Nastavenie"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Other"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Celková Potreba Inzulínu"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override Presets"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override presets can be set up under the 'Configuration' section of the settings screen."; - -/* The section title of glucose overrides */ -"Overrides" = "Overrides"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Pre-Meal"; - -/* The section header text override presets */ -"PRESETS" = "PRESETS"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Resume Delivery"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Resuming"; - -/* The text for the override preset name field placeholder */ -"Running" = "Running"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Save"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Slow"; - -/* The text for the override start time */ -"Start Time" = "Start Time"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Starting Temp Basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Suspend Delivery"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Suspending"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; - -/* The text for the override target range setting */ -"Target Range" = "Target Range"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporary Override"; - -/* The default placeholder string for a credential */ -"Required" = "Required"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "The maximum absorption time is %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "The maximum allowed amount is %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Times in %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/hour"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Unknown"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifying"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Warning"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/sv.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/sv.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/sv.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/sv.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/sv.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/sv.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/sv.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/sv.lproj/Localizable.strings deleted file mode 100644 index 27e74a55d4..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/sv.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ enheter återstår kl. %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% av normalt insulinbehov"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@E"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Absorptionstid"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivitet"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Säkert att du vill radera all händelsehistorik?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Säkert att du vill radera alla reservoarvärden?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Lägg till konto"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Radera konto"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Basal, bolus, och korrigeringsdoser är minskade med %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Basal, bolus, och korrigeringsdoser är ökade med %@%%"; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Basal, bolus, och korrigeringsdoser är oförändrade."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Avbryt"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Avbryt Override"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Avbryt temporär basal"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Lägg till kolhydrater"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Ändra kolhydrater"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Ändringarna kommer endast att utföras denna gång du använder override. De ordinarie inställingarna på %@ kommer inte att påverkas. "; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Välj en längre absorptionstid för måltid med mycket fett eller protein. Ofta är det bäst att dela upp måltiden i snabba och långsamma kolhydrater och mata in dessa var för sig."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "kl %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "sedan %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "kl %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "sedan %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Tillstånd"; - -/* Title of the setup button to continue */ -"Continue" = "Fortsätt"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Målvärden är det blodglukosintervall du vill att Loop ska korrigera blodsockret till."; - -/* The text for a custom override */ -"Custom" = "Anpassad"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Anpassad Override"; - -/* Title of the carb entry date picker cell */ -"Date" = "Datum"; - -/* Button title to delete all objects */ -"Delete All" = "Radera allt"; - -/* The text for the override duration setting */ -"Duration" = "Duration"; - -/* The title for the override editing screen */ -"Edit Override" = "Ändra Override"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Ändringar ändrar endast aktiv Override. De ordinarie inställningarna på %@ kommer inte att påverkas"; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Sätt på oändligt"; - -/* The detail text describing an enabled setting */ -"Enabled" = "På"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Ange antal eheter"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Ange värde i enheter per timme"; - -/* Section title for fast absorbing food */ -"Fast" = "Snabb"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Insulinkänslighet beskriver hur ditt blodglukos svarar på 1 enhet insulin.Mindre värden innebär att mer insulin kommer att ges när över målvärde. Värden som är för små kan orsaka farligt lågt blodsocker. "; - -/* Placeholder for maximum value in glucose range */ -"max" = "max"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maximal basaldos"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maximal bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Medium"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Mer info"; - -/* The text for the override preset name setting */ -"Name" = "Namn"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Ny förinställning"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Annan"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Totalt insulinbehov"; - -/* The title text for the override presets screen */ -"Override Presets" = "Override förinställningar"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Override förinställningar kan ställas in under ‘Konfiguration’ i menyn inställningar."; - -/* The section title of glucose overrides */ -"Overrides" = "Undantag"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Före måltid"; - -/* The section header text override presets */ -"PRESETS" = "FÖRINSTÄLLNINGAR"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pumphändelse"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Återuppta insulindosering"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Återupptar"; - -/* The text for the override preset name field placeholder */ -"Running" = "Löpning"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Spara"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEMALAGD OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "Långsam"; - -/* The text for the override start time */ -"Start Time" = "Starttid"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Börjar temporär basal"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Pausa pump"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Pausar"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Klicka för att ange"; - -/* The text for the override target range setting */ -"Target Range" = "Målvärden"; - -/* The title for the override selection screen */ -"Temporary Override" = "Temporär Override"; - -/* The default placeholder string for a credential */ -"Required" = "Krävs"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Maximala absorptionstiden är %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Maximala mängd är %@ gram"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Tid i %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "E/timme"; - -/* The unit string for units */ -"Units" = "Enheter"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Okänd"; - -/* Label indicating validation is occurring */ -"Verifying" = "Verifierar"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Varning"; - -/* Title for the workout override range */ -"Workout" = "Träning"; diff --git a/Dependencies/LoopKit/LoopKitUI/tr.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/tr.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/tr.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/tr.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/tr.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/tr.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/tr.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/tr.lproj/Localizable.strings deleted file mode 100644 index 36cbacb25a..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/tr.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ ünite %2$@'de kaldı"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "Normal insülinin %@%%'si"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@Ü"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Emilim Süresi"; - -/* The title for the override emoji activity section */ -"Activity" = "Aktivite"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Tüm geçmiş girişlerini silmek istediğinizden emin misiniz?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Tüm rezervuar değerlerini silmek istediğinizden emin misiniz?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Hesap Ekle"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Hesabı Sil"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Bazal, bolus ve düzeltme insülin doz miktarları %@%% oranında azaltılır."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Bazal, bolus ve düzeltme insülin doz miktarları %@%% oranında arttırılır."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Bazal, bolus ve düzeltme insülin doz miktarları etkilenmez."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Vazgeç"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Geçersiz kılmayı İptal et"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Geçici Bazalı İptal Et"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Karbonhidrat Girdisi Ekle"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Karbonhidrat Girdisi Düzenle"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Değişiklikler yalnızca geçersiz kılmayı etkinleştirdiğinizde etkili olur. %@ varsayılan ayarlar etkilenmeyecektir."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Daha büyük öğünler veya yağ ve protein oranı yüksek öğünler için daha uzun bir emilim süresi seçin. Bu algoritma için bir destektir ve sürenin kesin olması gerekmez."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "%1$@'da"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "%1$@'den beri"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "%1$@'da"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "%1$@'den beri"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "Tamam"; - -/* The title for the override emoji condition section */ -"Condition" = "Koşul"; - -/* Title of the setup button to continue */ -"Continue" = "Devam et"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Düzeltme aralığı, Loop'un düzeltmesi gereken kan şekeri aralığıdır."; - -/* The text for a custom override */ -"Custom" = "Özel"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Özel Geçersiz kılma"; - -/* Title of the carb entry date picker cell */ -"Date" = "Tarih"; - -/* Button title to delete all objects */ -"Delete All" = "Tümünü sil"; - -/* The text for the override duration setting */ -"Duration" = "Süre"; - -/* The title for the override editing screen */ -"Edit Override" = "Geçersiz kılma Düzenle"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Düzenleme yalnızca etkin geçersiz kılmayı etkiler. %@ varsayılan ayarlar etkilenmeyecektir."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Süresiz Olarak Etkinleştir"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Etkin"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Ünite sayısı girin"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Saat başına ünite cinsinden bir oran girin"; - -/* Section title for fast absorbing food */ -"Fast" = "Hızlı"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "İnsülin duyarlılığı, kan şekerinizin 1 Ünite insülin dozuna nasıl tepki vermesi gerektiğini tanımlar. Daha küçük değerler, hedefin üzerinde olduğunda daha fazla insülin verileceği anlamına gelir. Çok küçük değerler tehlikeli derecede düşük kan şekerine neden olabilir."; - -/* Placeholder for maximum value in glucose range */ -"max" = "maks"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Maksimum Bazal Oranı"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Maksimum Bolus"; - -/* Section title for medium absorbing food */ -"Medium" = "Orta"; - -/* Placeholder for minimum value in glucose range */ -"min" = "min"; - -/* Alert action title to open error help */ -"More Info" = "Daha Fazla Bilgi"; - -/* The text for the override preset name setting */ -"Name" = "İsim"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Yeni ön ayar"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Diğer"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Genel İnsülin Gereksinimleri"; - -/* The title text for the override presets screen */ -"Override Presets" = "Ön Ayarları Geçersiz Kılma"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Ön ayarları geçersiz kılma, ayarlar ekranının 'Yapılandırma' bölümü altında ayarlanabilir."; - -/* The section title of glucose overrides */ -"Overrides" = "Geçersiz kılmalar"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Yemek öncesi"; - -/* The section header text override presets */ -"PRESETS" = "ÖN AYAR"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pompa Durumu"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "İletime devam et"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Sürdürülüyor"; - -/* The text for the override preset name field placeholder */ -"Running" = "Çalışıyor"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Kaydet"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "PROGRAMLI GEÇERSİZ KILMA"; - -/* Section title for slow absorbing food */ -"Slow" = "Yavaş"; - -/* The text for the override start time */ -"Start Time" = "Başlangıç Zamanı"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Geçici Bazal Oranını Başlat"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "İletimi Askıya Al"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Askıya Al"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Simge"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Ayarlamak için dokun"; - -/* The text for the override target range setting */ -"Target Range" = "Hedef Aralığı"; - -/* The title for the override selection screen */ -"Temporary Override" = "Geçici Geçersiz Kılma"; - -/* The default placeholder string for a credential */ -"Required" = "Gerekli"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Maksimum emilim süresi %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "İzin verilen maksimum miktar %@ gramdır"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Saat dilimi %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "Ü/Sa"; - -/* The unit string for units */ -"Units" = "Ünite"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Bilinmiyor"; - -/* Label indicating validation is occurring */ -"Verifying" = "Doğrulama"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Uyarı"; - -/* Title for the workout override range */ -"Workout" = "Egzersiz"; diff --git a/Dependencies/LoopKit/LoopKitUI/uk.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/uk.lproj/Localizable.strings deleted file mode 100644 index 844478608f..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/uk.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ одиниць залишилося на %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% of normal insulin"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Час поглинання"; - -/* The title for the override emoji activity section */ -"Activity" = "Активність"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Ви впевнені, що хочете видалити всі вибрані записи?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Ви дійсно бажаєте видалити всі записи резервуарів?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Додати обліковий запис"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Видалити обліковий запис"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "База, болюсы та болюси на корекцію снижени на%@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "База, болюси та болюси на корекцію збільшени на %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "База, болюси та болюси на корекцію не змінилися."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Відмінити"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Скасувати ручний контроль"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Відмінити тимчасову базальну швидкість (ТБШ)"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Додати запис вуглеводів"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Редагувати запис вуглеводів"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Зміни буде застосовано лише цього разу, на час ручного контролю. Налаштування за замовчуванням %@ не вплинуть."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Виберіть довший час поглинання для великих страв, або тих, що містять жири і білки. Це лише інструкція по алгоритму і не повинна бути точною."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "о %1$s"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "починаючи з %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "о %1$s"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "починаючи з %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "ОК"; - -/* The title for the override emoji condition section */ -"Condition" = "Стан"; - -/* Title of the setup button to continue */ -"Continue" = "Продовжити"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Діапазон корекції це бажаний діапазон значень ГК для обробки алгоритмом петлі."; - -/* The text for a custom override */ -"Custom" = "Своя"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Налаштоване ручне управління"; - -/* Title of the carb entry date picker cell */ -"Date" = "Дата"; - -/* Button title to delete all objects */ -"Delete All" = "Видалити все"; - -/* The text for the override duration setting */ -"Duration" = "Тривалість"; - -/* The title for the override editing screen */ -"Edit Override" = "Редагувати ручний контроль"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Виправлення затронуть тільки активну версію. Значення за замовчуванням %@ не будуть змінені."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Увімкнути безстроково"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Активовано"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Введіть кількість одиниць"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Введіть швидкість в одиницях за годину"; - -/* Section title for fast absorbing food */ -"Fast" = "Швидкий"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Інсулінова чутливість описує як глюкоза повинна реагувати на 1 єдину дозу інсуліну. Менші значення означають, що більше інсуліну буде дано, коли нагорі. Значення занадто малі можуть спричиняти небезпечно низьку глюкозу."; - -/* Placeholder for maximum value in glucose range */ -"max" = "максимум"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Максимальна швидкість базалу"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Максимум Болюса"; - -/* Section title for medium absorbing food */ -"Medium" = "Середня"; - -/* Placeholder for minimum value in glucose range */ -"min" = "хв"; - -/* Alert action title to open error help */ -"More Info" = "Додаткові відомості"; - -/* The text for the override preset name setting */ -"Name" = "Ім’я"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Новий набір налаштувань"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Інше"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Загальна потребність в інсуліні"; - -/* The title text for the override presets screen */ -"Override Presets" = "Змінити параметри"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Зміни параметрів можно задавати в разділі “Конфігурація” экрану налаштувань."; - -/* The section title of glucose overrides */ -"Overrides" = "Зміни"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Перед їжою"; - -/* The section header text override presets */ -"PRESETS" = "ПОПЕРЕДНІ НАЛАШТУВАННЯ"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Подія Помпи"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Відновити доставку"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Відновлюється"; - -/* The text for the override preset name field placeholder */ -"Running" = "Запущено"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Зберегти"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "ЗАПЛАНОВАНЕ ВИКОНАННЯ ЗМІН"; - -/* Section title for slow absorbing food */ -"Slow" = "Повільна"; - -/* The text for the override start time */ -"Start Time" = "Час початку"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Час початку тимчасового базала"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Призупинити доставку"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Виконується зупинка"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Значок"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Натисніть, щоб налаштувати"; - -/* The text for the override target range setting */ -"Target Range" = "Цільові Діапазони"; - -/* The title for the override selection screen */ -"Temporary Override" = "Тимчасовий"; - -/* The default placeholder string for a credential */ -"Required" = "Обов’язково"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Максимальний час поглинання — %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Максимально допустима кількість становить %@ грам"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Разів за %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "од/год"; - -/* The unit string for units */ -"Units" = "Одиниці"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Невідомий"; - -/* Label indicating validation is occurring */ -"Verifying" = "Верифікація"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Попередження"; - -/* Title for the workout override range */ -"Workout" = "Тренування"; diff --git a/Dependencies/LoopKit/LoopKitUI/vi.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/vi.lproj/InsulinKit.strings deleted file mode 100644 index 3f6fac54d5..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/vi.lproj/InsulinKit.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Non-Pump Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Non-Pump Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/vi.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/vi.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 630c9e83c9..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/vi.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,30 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/vi.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/vi.lproj/Localizable.strings deleted file mode 100644 index 5306649988..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/vi.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "%1$@ units vẫn còn lúc %2$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% của insulin bình thường"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "Thời gian Hấp thụ"; - -/* The title for the override emoji activity section */ -"Activity" = "Hoạt động"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "Bạn có chắc muốn xóa hết các dữ liệu cũ?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "Bạn có chắc muốn xóa hết mọi giá trị của ngăn chứa insulin?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "Thêm Tài khoản"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "Xóa Tài khoản"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "Liều Basal, bolus, và liều bổ sung đang giảm bằng %@%%."; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "Liều Basal, bolus, và liều bổ sung đang tăng bằng %@%%."; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "Liều Basal, bolus, và liều bổ sung không bị thay đổi."; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Hủy bỏ"; - -/* The text for the override cancellation button */ -"Cancel Override" = "Hủy Chồng liều"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "Đang hủy liều Basal tạm thời"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "Khai báo Carb"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "Chỉnh sửa Carb"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "Các thay đổi sẽ chỉ áp dụng thời điểm này khi bạn cho phép chồng liều. Các cài đặt gốc %@ sẽ không bị ảnh hưởng."; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "Lựa chọn khoảng thời gian tiêu hóa dài hơn cho các bữa ăn no, hoặc những bữa ăn nhiều chất béo và protein. Đây chỉ là hướng dẫn cho thuật toán Algorithm và không cần phải chính xác."; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "lúc %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "từ lúc %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "lúc %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "từ lúc %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; - -/* The title for the override emoji condition section */ -"Condition" = "Điều kiện"; - -/* Title of the setup button to continue */ -"Continue" = "Tiếp tục"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "Phạm vi điều chỉnh là phạm vi của đường huyết mà bạn muốn Loop hướng đến."; - -/* The text for a custom override */ -"Custom" = "Thói quen"; - -/* The title for the custom override entry screen */ -"Custom Override" = "Thói quen Chồng liều"; - -/* Title of the carb entry date picker cell */ -"Date" = "Ngày"; - -/* Button title to delete all objects */ -"Delete All" = "Xóa hết"; - -/* The text for the override duration setting */ -"Duration" = "Khoảng thời gian"; - -/* The title for the override editing screen */ -"Edit Override" = "Hiệu chỉnh chồng liều"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "Việc hiệu chỉnh chỉ ảnh hưởng đến chồng liều đang hoạt động. Các cài đặt gốc của %@ sẽ không bị ảnh hưởng."; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "Cấp phép không giới hạn"; - -/* The detail text describing an enabled setting */ -"Enabled" = "Được cấp quyền"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "Nhập số lượng của đơn vị/units"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "Nhập tỉ lệ của đơn vị/units trên giờ"; - -/* Section title for fast absorbing food */ -"Fast" = "Nhanh"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "Độ nhạy của Insulin biểu thị đường huyết của bạn phản ứng với 1 unit insulin. Giá trị phản ứng nhỏ hơn nghĩa là bạn cần thêm insulin để đạt mục tiêu ở trên. Các giá trị quá nhỏ có thể dẫn đến tình trạng hạ đường huyết nghiêm trọng."; - -/* Placeholder for maximum value in glucose range */ -"max" = "tối đa"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "Lượng Basal tối đa"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "Liều Bolus tối đa"; - -/* Section title for medium absorbing food */ -"Medium" = "Trung bình"; - -/* Placeholder for minimum value in glucose range */ -"min" = "tối thiểu"; - -/* Alert action title to open error help */ -"More Info" = "Thêm thông tin"; - -/* The text for the override preset name setting */ -"Name" = "Tên"; - -/* The title for the new override preset entry screen */ -"New Preset" = "Cài đặt mới"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "Khác"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "Nhu cầu Insulin tổng thể"; - -/* The title text for the override presets screen */ -"Override Presets" = "Cài đặt chồng liều"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "Cài đặt chồng liều có thể được khai báo dưới mục 'Configuration' của phần cấu hình."; - -/* The section title of glucose overrides */ -"Overrides" = "Chồng liều"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "Trước bữa ăn"; - -/* The section header text override presets */ -"PRESETS" = "CÀI ĐẶT SĂN"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "Pump Event"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "Tiếp tục lại việc tiêm insulin"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "Đang tiếp tục lại"; - -/* The text for the override preset name field placeholder */ -"Running" = "Đang chạy"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "Lưu"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "SCHEDULED OVERRIDE"; - -/* Section title for slow absorbing food */ -"Slow" = "chậm"; - -/* The text for the override start time */ -"Start Time" = "Giờ bắt đầu"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "Đang bắt đầu liều Basal tạm thời"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "Tạm ngưng liều insulin"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "Đang tạm ngưng"; - -/* The text for the override preset symbol setting */ -"Symbol" = "Symbol"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "Chạm để cài đặt"; - -/* The text for the override target range setting */ -"Target Range" = "Phạm vi Mục tiêu"; - -/* The title for the override selection screen */ -"Temporary Override" = "Chồng liều tạm thời"; - -/* The default placeholder string for a credential */ -"Required" = "Bắt buộc"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "Thời gian tiêu hóa tối đa là %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "Khối lượng cho phép tối đa là %@ grams"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "Thời gian trong %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "U/giờ"; - -/* The unit string for units */ -"Units" = "Units"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "Không nhận ra"; - -/* Label indicating validation is occurring */ -"Verifying" = "Đang kiểm tra"; - -/* Title of an alert containing a validation warning */ -"Warning" = "Cảnh báo"; - -/* Title for the workout override range */ -"Workout" = "Workout"; diff --git a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/InsulinKit.strings b/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/InsulinKit.strings deleted file mode 100644 index 977ef5b3c7..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/InsulinKit.strings +++ /dev/null @@ -1,30 +0,0 @@ -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "标题"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "详情"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "单位 活性胰岛素"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "没有泵配置"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "单位 总计"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "储药器"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "历史事件"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "已输注胰岛素"; - diff --git a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings b/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings deleted file mode 100644 index 9836567c42..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/LegacyInsulinDeliveryTableViewController.strings +++ /dev/null @@ -1,33 +0,0 @@ - -/* Class = "UILabel"; text = "Title"; ObjectID = "7Fi-wD-gf2"; */ -"7Fi-wD-gf2.text" = "Title"; - -/* Class = "UILabel"; text = "..."; ObjectID = "7Fy-gG-Zof"; */ -"7Fy-gG-Zof.text" = "..."; - -/* Class = "UILabel"; text = "Detail"; ObjectID = "9jm-X6-3QA"; */ -"9jm-X6-3QA.text" = "Detail"; - -/* Class = "UILabel"; text = "..."; ObjectID = "PZQ-gO-084"; */ -"PZQ-gO-084.text" = "..."; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[0] = "Reservoir"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[0]" = "Reservoir"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[1] = "Event History"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[1]" = "Event History"; - -/* Class = "UISegmentedControl"; TyZ-xm-mVN.segmentTitles[2] = "Outside Insulin"; ObjectID = "TyZ-xm-mVN"; */ -"TyZ-xm-mVN.segmentTitles[2]" = "Outside Insulin"; - -/* Class = "UILabel"; text = "U IOB"; ObjectID = "dZi-Ta-IHm"; */ -"dZi-Ta-IHm.text" = "U IOB"; - -/* Class = "UILabel"; text = "No pump configured"; ObjectID = "jSc-64-2tZ"; */ -"jSc-64-2tZ.text" = "No pump configured"; - -/* Class = "UILabel"; text = "U Total"; ObjectID = "kys-by-14s"; */ -"kys-by-14s.text" = "U Total"; - -/* Class = "UINavigationItem"; title = "Insulin Delivery"; ObjectID = "vls-EW-uwI"; */ -"vls-EW-uwI.title" = "Insulin Delivery"; diff --git a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index afe1aecc25..0000000000 --- a/Dependencies/LoopKit/LoopKitUI/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,252 +0,0 @@ -/* The format for an override preset cell. (1: symbol)(2: name) - The format for an override symbol and name (1: symbol)(2: name) */ -"%1$@ %2$@" = "%1$@ %2$@"; - -/* Accessibility format string for (1: localized volume)(2: time) */ -"%1$@ units remaining at %2$@" = "在%2$@还剩余%1$@"; - -/* The format for a glucose target range. (1: min target)(2: max target)(3: glucose unit) */ -"%1$@ – %2$@ %3$@" = "%1$@ – %2$@ %3$@"; - -/* The format for an insulin needs percentage. */ -"%@%% of normal insulin" = "%@%% 胰岛素"; - -/* Appends a full-stop to a statement */ -"%@." = "%@."; - -/* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@U"; - -/* Title of the carb entry absorption time cell */ -"Absorption Time" = "吸收时间"; - -/* The title for the override emoji activity section */ -"Activity" = "活动"; - -/* Action sheet confirmation message for pump history deletion */ -"Are you sure you want to delete all history entries?" = "确定要删除所有输入的历史数据吗?"; - -/* Action sheet confirmation message for reservoir deletion */ -"Are you sure you want to delete all reservoir values?" = "确定要删除所有的储药器数据吗?"; - -/* The title of the button to add the credentials for a service */ -"Add Account" = "添加账户"; - -/* The title of the button to remove the credentials for a service */ -"Delete Account" = "删除账户"; - -/* Describes a percentage decrease in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are decreased by %@%%." = "基础率,大剂量及追加剂量将以%@%%减少"; - -/* Describes a percentage increase in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are increased by %@%%." = "基础率,大剂量及追加剂量将以%@%%增加"; - -/* Describes a lack of change in overall insulin needs */ -"Basal, bolus, and correction insulin dose amounts are unaffected." = "基础率,大剂量及追加剂量将不受该设置影响"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "取消"; - -/* The text for the override cancellation button */ -"Cancel Override" = "取消覆盖"; - -/* Title text for suspend resume button when temp basal canceling */ -"Canceling Temp Basal" = "取消临时基础率"; - -/* The title of the view controller to create a new carb entry */ -"Add Carb Entry" = "添加碳水"; - -/* The title of the view controller to edit an existing carb entry */ -"Edit Carb Entry" = "编辑碳水"; - -/* Footer text for customizing an override from a preset (1: preset name) */ -"Changes will only apply this time you enable the override. The default settings of %@ will not be affected." = "将仅会在启用时覆盖该设置,默认设置%@ 不受影响"; - -/* Carb entry section footer text explaining absorption time */ -"Choose a longer absorption time for larger meals, or those containing fats and proteins. This is only guidance to the algorithm and need not be exact." = "如果吃大餐请选择比较长的吸收时间,或者是以脂肪和蛋白为主的食物。该设置仅为算法的一般原则,具体请根据自身情况调整"; - -/* The format string describing the date of a COB value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.COBDateLabel" = "在 %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.CarbKit.totalDateLabel" = "自从 %1$@"; - -/* The format string describing the date of an IOB value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.IOBDateLabel" = "在 %1$@"; - -/* The format string describing the starting date of a total value. The first format argument is the localized date. */ -"com.loudnate.InsulinKit.totalDateLabel" = "自从 %1$@"; - -/* The title of the action used to dismiss an error alert */ -"com.loudnate.LoopKit.errorAlertActionTitle" = "确定"; - -/* The title for the override emoji condition section */ -"Condition" = "条件"; - -/* Title of the setup button to continue */ -"Continue" = "继续"; - -/* The section footer of correction range schedule */ -"Correction range is the blood glucose range that you would like Loop to correct to." = "校正范围指Loop系统会主动调整胰岛素输注并将血糖保持在该范围内"; - -/* The text for a custom override */ -"Custom" = "自定义"; - -/* The title for the custom override entry screen */ -"Custom Override" = "自定义覆盖"; - -/* Title of the carb entry date picker cell */ -"Date" = "日期"; - -/* Button title to delete all objects */ -"Delete All" = "删除所有"; - -/* The text for the override duration setting */ -"Duration" = "持续时间"; - -/* The title for the override editing screen */ -"Edit Override" = "编辑新设置"; - -/* Footer text for editing an active override (1: preset name) */ -"Editing affects only the active override. The default settings of %@ will not be affected." = "编辑仅会影响正在使用的“覆盖”设置,默认设置%@不受影响"; - -/* The text for the indefinite override duration setting */ -"Enable Indefinitely" = "一直使用"; - -/* The detail text describing an enabled setting */ -"Enabled" = "已启用"; - -/* The placeholder text instructing users how to enter a maximum bolus */ -"Enter a number of units" = "输入单位量"; - -/* The placeholder text instructing users how to enter a maximum basal rate */ -"Enter a rate in units per hour" = "输入每小时基础率"; - -/* Section title for fast absorbing food */ -"Fast" = "快速"; - -/* The description shown on the insulin sensitivity schedule interface. */ -"Insulin sensitivity describes how your blood glucose should respond to a 1 Unit dose of insulin. Smaller values mean more insulin will be given when above target. Values that are too small can cause dangerously low blood glucose." = "胰岛素敏感系数指每单位胰岛素可以造成的血糖变化.比较小的值意味着当血糖高于目标时需要更多的胰岛素,如果该值设置太小可能会造成严重低血糖,请谨慎设置该参数"; - -/* Placeholder for maximum value in glucose range */ -"max" = "最大"; - -/* The title text for the maximum basal rate value */ -"Maximum Basal Rate" = "最大基础率限制"; - -/* The title text for the maximum bolus value */ -"Maximum Bolus" = "最大大剂量限制"; - -/* Section title for medium absorbing food */ -"Medium" = "中等"; - -/* Placeholder for minimum value in glucose range */ -"min" = "分钟"; - -/* Alert action title to open error help */ -"More Info" = "更多信息"; - -/* The text for the override preset name setting */ -"Name" = "设备名称"; - -/* The title for the new override preset entry screen */ -"New Preset" = "新配置"; - -/* Section title for no-carb food - The title for override emoji miscellaneous section */ -"Other" = "其他"; - -/* The title text for the insulin sensitivity scaling setting */ -"Overall Insulin Needs" = "全部胰岛素需要"; - -/* The title text for the override presets screen */ -"Override Presets" = "覆盖预设值"; - -/* Text directing the user to configure override presets */ -"Override presets can be set up under the 'Configuration' section of the settings screen." = "覆盖预设置可以通过”设置”的”配置”来完成"; - -/* The section title of glucose overrides */ -"Overrides" = "覆盖"; - -/* Title for the pre-meal override range */ -"Pre-Meal" = "餐前模式"; - -/* The section header text override presets */ -"PRESETS" = "预设"; - -/* The title of the screen displaying a pump event */ -"Pump Event" = "胰岛素泵事件"; - -/* Title text for button to resume insulin delivery */ -"Resume Delivery" = "恢复输注"; - -/* Title text for button when insulin delivery is in the process of being resumed */ -"Resuming" = "恢复中"; - -/* The text for the override preset name field placeholder */ -"Running" = "运行中"; - -/* Button text for saving glucose correction range schedule - Button text for saving insulin sensitivity schedule */ -"Save" = "保存​​"; - -/* The section header text for a scheduled override */ -"SCHEDULED OVERRIDE" = "计划覆盖"; - -/* Section title for slow absorbing food */ -"Slow" = "慢"; - -/* The text for the override start time */ -"Start Time" = "启动时间"; - -/* Title text for suspend resume button when temp basal starting */ -"Starting Temp Basal" = "启动临时寄出"; - -/* Title text for button to suspend insulin delivery */ -"Suspend Delivery" = "暂停输注"; - -/* Title text for button when insulin delivery is in the process of being stopped */ -"Suspending" = "正在暂停"; - -/* The text for the override preset symbol setting */ -"Symbol" = "符号"; - -/* The empty-state text for a configuration value */ -"Tap to set" = "点击设置"; - -/* The text for the override target range setting */ -"Target Range" = "目标范围"; - -/* The title for the override selection screen */ -"Temporary Override" = "临时覆盖"; - -/* The default placeholder string for a credential */ -"Required" = "需要"; - -/* Alert body displayed absorption time greater than max (1: maximum absorption time) */ -"The maximum absorption time is %@" = "最大吸收时间为 %@"; - -/* Alert body displayed for quantity greater than max (1: maximum quantity in grams) */ -"The maximum allowed amount is %@ grams" = "允许的最大量为 %@ g"; - -/* The schedule table view header describing the configured time zone difference from the default time zone. The substitution parameters are: (1: time zone name)(2: +/-)(3: time interval) */ -"Times in %1$@%2$@%3$@" = "时间 %1$@%2$@%3$@"; - -/* The unit string for units per hour */ -"U/hour" = "单位/小时"; - -/* The unit string for units */ -"Units" = "单位"; - -/* Accessibility value for an unknown value - The default title to use when an entry has none */ -"Unknown" = "未知"; - -/* Label indicating validation is occurring */ -"Verifying" = "验证"; - -/* Title of an alert containing a validation warning */ -"Warning" = "警告"; - -/* Title for the workout override range */ -"Workout" = "锻炼/运动模式"; diff --git a/Dependencies/LoopKit/LoopTestingKit/Data.swift b/Dependencies/LoopKit/LoopTestingKit/Data.swift new file mode 100644 index 0000000000..e92db39218 --- /dev/null +++ b/Dependencies/LoopKit/LoopTestingKit/Data.swift @@ -0,0 +1,56 @@ +// +// NSData.swift +// LoopKit +// +// Created by Nate Racklyeft on 8/26/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +// String conversion methods, adapted from https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 +extension Data { + init?(hexadecimalString: String) { + self.init(capacity: hexadecimalString.utf16.count / 2) + + // Convert 0 ... 9, a ... f, A ...F to their decimal value, + // return nil for all other input characters + func decodeNibble(u: UInt16) -> UInt8? { + switch u { + case 0x30 ... 0x39: // '0'-'9' + return UInt8(u - 0x30) + case 0x41 ... 0x46: // 'A'-'F' + return UInt8(u - 0x41 + 10) // 10 since 'A' is 10, not 0 + case 0x61 ... 0x66: // 'a'-'f' + return UInt8(u - 0x61 + 10) // 10 since 'a' is 10, not 0 + default: + return nil + } + } + + var even = true + var byte: UInt8 = 0 + for c in hexadecimalString.utf16 { + guard let val = decodeNibble(u: c) else { return nil } + if even { + byte = val << 4 + } else { + byte += val + self.append(byte) + } + even = !even + } + guard even else { return nil } + } + + var hexadecimalString: String { + return map { String(format: "%02hhx", $0) }.joined() + } +} + +extension Data { + static func newPumpEventIdentifier() -> Data { + return Data(UUID().uuidString.utf8) + } +} diff --git a/Dependencies/LoopKit/LoopTestingKit/DateRelativeBasalEntry.swift b/Dependencies/LoopKit/LoopTestingKit/DateRelativeBasalEntry.swift index 811ac841d2..3bf9fb6c1d 100644 --- a/Dependencies/LoopKit/LoopTestingKit/DateRelativeBasalEntry.swift +++ b/Dependencies/LoopKit/LoopTestingKit/DateRelativeBasalEntry.swift @@ -6,6 +6,7 @@ // Copyright © 2019 LoopKit Authors. All rights reserved. // +import Foundation import LoopKit diff --git a/Dependencies/LoopKit/LoopTestingKit/DateRelativeBolusEntry.swift b/Dependencies/LoopKit/LoopTestingKit/DateRelativeBolusEntry.swift index c38f0a153b..f696c0a539 100644 --- a/Dependencies/LoopKit/LoopTestingKit/DateRelativeBolusEntry.swift +++ b/Dependencies/LoopKit/LoopTestingKit/DateRelativeBolusEntry.swift @@ -7,7 +7,7 @@ // import LoopKit - +import Foundation struct DateRelativeBolusEntry: DateRelativeQuantity, Codable { var unitsValue: Double diff --git a/Dependencies/LoopKit/LoopTestingKit/HKUnit.swift b/Dependencies/LoopKit/LoopTestingKit/HKUnit.swift new file mode 100644 index 0000000000..a5f77cdd06 --- /dev/null +++ b/Dependencies/LoopKit/LoopTestingKit/HKUnit.swift @@ -0,0 +1,61 @@ +// +// HKUnit.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/17/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import HealthKit + + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let milligramsPerDeciliterPerMinute: HKUnit = { + return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) + }() + + static let millimolesPerLiterPerMinute: HKUnit = { + return HKUnit.millimolesPerLiter.unitDivided(by: .minute()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + + static let gramsPerUnit: HKUnit = { + return HKUnit.gram().unitDivided(by: .internationalUnit()) + }() + + var foundationUnit: Unit? { + if self == HKUnit.milligramsPerDeciliter { + return UnitConcentrationMass.milligramsPerDeciliter + } + + if self == HKUnit.millimolesPerLiter { + return UnitConcentrationMass.millimolesPerLiter(withGramsPerMole: HKUnitMolarMassBloodGlucose) + } + + if self == HKUnit.gram() { + return UnitMass.grams + } + + return nil + } + + /// The smallest value expected to be visible on a chart + var chartableIncrement: Double { + if self == .milligramsPerDeciliter { + return 1 + } else { + return 1 / 25 + } + } +} diff --git a/Dependencies/LoopKit/LoopTestingKit/TestingScenario.swift b/Dependencies/LoopKit/LoopTestingKit/TestingScenario.swift index 9209937d3a..99e07044c7 100644 --- a/Dependencies/LoopKit/LoopTestingKit/TestingScenario.swift +++ b/Dependencies/LoopKit/LoopTestingKit/TestingScenario.swift @@ -6,9 +6,9 @@ // Copyright © 2019 LoopKit Authors. All rights reserved. // +import Foundation import LoopKit - public struct TestingScenario { var dateRelativeGlucoseSamples: [DateRelativeGlucoseSample] var dateRelativeBasalEntries: [DateRelativeBasalEntry] diff --git a/Dependencies/LoopKit/MockKit/Extensions/HKUnit.swift b/Dependencies/LoopKit/MockKit/Extensions/HKUnit.swift new file mode 100644 index 0000000000..a5f77cdd06 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Extensions/HKUnit.swift @@ -0,0 +1,61 @@ +// +// HKUnit.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/17/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import HealthKit + + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let milligramsPerDeciliterPerMinute: HKUnit = { + return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) + }() + + static let millimolesPerLiterPerMinute: HKUnit = { + return HKUnit.millimolesPerLiter.unitDivided(by: .minute()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + + static let gramsPerUnit: HKUnit = { + return HKUnit.gram().unitDivided(by: .internationalUnit()) + }() + + var foundationUnit: Unit? { + if self == HKUnit.milligramsPerDeciliter { + return UnitConcentrationMass.milligramsPerDeciliter + } + + if self == HKUnit.millimolesPerLiter { + return UnitConcentrationMass.millimolesPerLiter(withGramsPerMole: HKUnitMolarMassBloodGlucose) + } + + if self == HKUnit.gram() { + return UnitMass.grams + } + + return nil + } + + /// The smallest value expected to be visible on a chart + var chartableIncrement: Double { + if self == .milligramsPerDeciliter { + return 1 + } else { + return 1 / 25 + } + } +} diff --git a/Dependencies/LoopKit/MockKit/Extensions/TimeInterval.swift b/Dependencies/LoopKit/MockKit/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..a568b77b8e --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Extensions/TimeInterval.swift @@ -0,0 +1,36 @@ +// +// NSTimeInterval.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +extension TimeInterval { + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } +} diff --git a/Dependencies/LoopKit/MockKit/Extensions/TimeZone.swift b/Dependencies/LoopKit/MockKit/Extensions/TimeZone.swift new file mode 100644 index 0000000000..4b912b912f --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Extensions/TimeZone.swift @@ -0,0 +1,16 @@ +// +// TimeZone.swift +// LoopKit +// +// Created by Nate Racklyeft on 10/2/16. +// Copyright © 2016 LoopKit Authors. All rights reserved. +// + +import Foundation + + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } +} diff --git a/Dependencies/LoopKit/MockKit/LocalizedString.swift b/Dependencies/LoopKit/MockKit/LocalizedString.swift new file mode 100644 index 0000000000..a56bbb34fc --- /dev/null +++ b/Dependencies/LoopKit/MockKit/LocalizedString.swift @@ -0,0 +1,29 @@ +// +// LocalizedString.swift +// MockKit +// +// Created by Pete Schwamb on 3/18/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle(for: LocalBundle.self).resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("MockKit_MockKit.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/LoopKit/MockKit/MockCGMDataSource.swift b/Dependencies/LoopKit/MockKit/MockCGMDataSource.swift index c70c3cffdb..def6a88017 100644 --- a/Dependencies/LoopKit/MockKit/MockCGMDataSource.swift +++ b/Dependencies/LoopKit/MockKit/MockCGMDataSource.swift @@ -57,7 +57,7 @@ public struct MockCGMDataSource { model: "MockCGMManager", hardwareVersion: nil, firmwareVersion: nil, - softwareVersion: String(LoopKitVersionNumber), + softwareVersion: "1.0", localIdentifier: nil, udiDeviceIdentifier: nil ) diff --git a/Dependencies/LoopKit/MockKit/MockCGMManager.swift b/Dependencies/LoopKit/MockKit/MockCGMManager.swift index f6117d415e..11cc799611 100644 --- a/Dependencies/LoopKit/MockKit/MockCGMManager.swift +++ b/Dependencies/LoopKit/MockKit/MockCGMManager.swift @@ -10,6 +10,7 @@ import HealthKit import LoopKit import LoopKitUI // TODO: DeviceStatusBadge references should live in MockKitUI import LoopTestingKit +import UIKit public struct MockCGMState: GlucoseDisplayable { public var isStateValid: Bool diff --git a/Dependencies/LoopKit/MockKit/MockPumpManager.swift b/Dependencies/LoopKit/MockKit/MockPumpManager.swift index 8f72188a6b..a4a0479f75 100644 --- a/Dependencies/LoopKit/MockKit/MockPumpManager.swift +++ b/Dependencies/LoopKit/MockKit/MockPumpManager.swift @@ -75,7 +75,7 @@ public final class MockPumpManager: TestingPumpManager { model: nil, hardwareVersion: nil, firmwareVersion: nil, - softwareVersion: String(LoopKitVersionNumber), + softwareVersion: "1.0", localIdentifier: nil, udiDeviceIdentifier: nil ) @@ -172,28 +172,28 @@ public final class MockPumpManager: TestingPumpManager { public func buildPumpStatusHighlight(for state: MockPumpManagerState) -> PumpStatusHighlight? { if state.deliveryIsUncertain { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("Comms Issue", comment: "Status highlight that delivery is uncertain."), + return PumpStatusHighlight(localizedMessage: LocalizedString("Comms Issue", comment: "Status highlight that delivery is uncertain."), imageName: "exclamationmark.circle.fill", state: .critical) } else if state.reservoirUnitsRemaining == 0 { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("No Insulin", comment: "Status highlight that a pump is out of insulin."), + return PumpStatusHighlight(localizedMessage: LocalizedString("No Insulin", comment: "Status highlight that a pump is out of insulin."), imageName: "exclamationmark.circle.fill", state: .critical) } else if state.occlusionDetected { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("Pump Occlusion", comment: "Status highlight that an occlusion was detected."), + return PumpStatusHighlight(localizedMessage: LocalizedString("Pump Occlusion", comment: "Status highlight that an occlusion was detected."), imageName: "exclamationmark.circle.fill", state: .critical) } else if state.pumpErrorDetected { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("Pump Error", comment: "Status highlight that a pump error occurred."), + return PumpStatusHighlight(localizedMessage: LocalizedString("Pump Error", comment: "Status highlight that a pump error occurred."), imageName: "exclamationmark.circle.fill", state: .critical) } else if pumpBatteryChargeRemaining == 0 { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("Pump Battery Dead", comment: "Status highlight that pump has a dead battery."), + return PumpStatusHighlight(localizedMessage: LocalizedString("Pump Battery Dead", comment: "Status highlight that pump has a dead battery."), imageName: "exclamationmark.circle.fill", state: .critical) } else if case .suspended = state.suspendState { - return PumpStatusHighlight(localizedMessage: NSLocalizedString("Insulin Suspended", comment: "Status highlight that insulin delivery was suspended."), + return PumpStatusHighlight(localizedMessage: LocalizedString("Insulin Suspended", comment: "Status highlight that insulin delivery was suspended."), imageName: "pause.circle.fill", state: .warning) } diff --git a/Dependencies/LoopKit/MockKit/MockService.swift b/Dependencies/LoopKit/MockKit/MockService.swift index 44f5184a7c..28df766783 100644 --- a/Dependencies/LoopKit/MockKit/MockService.swift +++ b/Dependencies/LoopKit/MockKit/MockService.swift @@ -7,6 +7,7 @@ // import os.log +import Foundation import LoopKit public final class MockService: Service { diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/Contents.json b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/Contents.json rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/Contents.json diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/Contents.json b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/Contents.json rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/Contents.json diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/battery.circle.fill.symbolset/Contents.json b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/battery.circle.fill.symbolset/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/battery.circle.fill.symbolset/Contents.json rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/battery.circle.fill.symbolset/Contents.json diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/battery.circle.fill.symbolset/battery.circle.fill.svg b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/battery.circle.fill.symbolset/battery.circle.fill.svg similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/battery.circle.fill.symbolset/battery.circle.fill.svg rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/battery.circle.fill.symbolset/battery.circle.fill.svg diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/drop.circle.fill.symbolset/Contents.json b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/drop.circle.fill.symbolset/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/drop.circle.fill.symbolset/Contents.json rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/drop.circle.fill.symbolset/Contents.json diff --git a/Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/drop.circle.fill.symbolset/drop.circle.fill.svg b/Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/drop.circle.fill.symbolset/drop.circle.fill.svg similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Assets.xcassets/status.badge/drop.circle.fill.symbolset/drop.circle.fill.svg rename to Dependencies/LoopKit/MockKit/Resources/Assets.xcassets/status.badge/drop.circle.fill.symbolset/drop.circle.fill.svg diff --git a/Dependencies/LoopKit/MockKit/Assets/Sounds/critical.caf b/Dependencies/LoopKit/MockKit/Resources/Sounds/critical.caf similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Sounds/critical.caf rename to Dependencies/LoopKit/MockKit/Resources/Sounds/critical.caf diff --git a/Dependencies/LoopKit/MockKit/Assets/Sounds/sub.caf b/Dependencies/LoopKit/MockKit/Resources/Sounds/sub.caf similarity index 100% rename from Dependencies/LoopKit/MockKit/Assets/Sounds/sub.caf rename to Dependencies/LoopKit/MockKit/Resources/Sounds/sub.caf diff --git a/Dependencies/LoopKit/MockKit/Resources/ar.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..a13542ddca --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/cs.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..c61ce558a1 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žádný inzulín"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/da.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..e50d1579f1 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/da.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikationsproblem"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulin suspenderet"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pumpebatteri dødt"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pumpefejl"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pumpen er blokeret"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Genoptag"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/de.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..653f0b6b9d --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/de.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Comms Problem"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulinabgabe unterbrochen"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Kein Insulin"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pumpenbatterie tot"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pumpenfehler"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pumpenverschluss"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Fortsetzen"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Unterbrechen"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporäre Basalrate"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/en.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..9099ee8b0c --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/en.lproj/Localizable.strings @@ -0,0 +1,8 @@ +/* + Localizable.strings + LoopKit + + Created by Pete Schwamb on 3/19/23. + Copyright © 2023 LoopKit Authors. All rights reserved. +*/ + diff --git a/Dependencies/LoopKit/MockKit/Resources/es.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..c31c9ff1d4 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/es.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema de comunicaciones"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulina Suspendida"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "No hay insulina"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Batería de la bomba agotada"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Error de la bomba"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Oclusión de la bomba"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reanudar"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Insulina basal temporal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/fi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..433bca0bff --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Yhteysongelma"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuliini pysäytetty"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ei insuliinia"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pumpun paristo ei toimi"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pumpun virhe"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Tukkeutunut pumppu"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tilapäinen basaali"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/fr.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..8c3e5d619e --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problème de com."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline suspendue"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Pas d'insuline"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Batterie HS"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Erreur détectée"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Occlusion détectée"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reprendre"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendre"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Débit basal temporaire"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/he.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..40420079f0 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/he.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pump Error"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/it.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..c7d5df96f7 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/it.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema di Comunicazione"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Erogazione Insulina sospesa"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Insulina Terminata"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Batteria Microinfusore esaurita"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Errore Mincroinfusore"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Occlusione microinfusore"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Riprendi"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Blocco Erogazione"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Basale Temporanea"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/ja.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..ca23310191 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "ボーラス"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "ポンプエラー"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/nb.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..96176c37e4 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikasjonsutgave"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintilførsel utsatt"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pumpebatteri er dødt"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pumpefeil"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pumpen er blokkert"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Gjenoppta"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Utsette"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/nl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..27296b6e44 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Communicatieprobleem"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline Onderbroken"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Geen Insuline"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pompbatterij Leeg"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pomp Foutmelding"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pompverstopping"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Hervatten"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Onderbreek"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tijdelijk Basaal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/pl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..98f8d0f5e3 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problem z komunikacją"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Podawanie insuliny zawieszone"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Brak insuliny"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Rozładowana bateria pompy"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Błąd pompy"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Niedrożność pompy"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Wznów"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Wstrzymaj"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tymczasowa dawka podstawowa"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..dd1a533db0 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Erro na Bomba"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/ro.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..cc7ecbc1f9 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problemă de comunicații"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Administrarea insulinei suspendată"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Fără insulină"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Baterie epuizata pompa"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Eroare pompă"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Ocluzie pompă"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reluați"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendați"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Bazală temporară"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/ru.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..8c623e9672 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Болюс"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Проблемы со связью"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Подача инсулина приостановлена"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Нет инсулина"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Батарея помпы неисправна"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Ошибка помпы"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Закупорка помпы"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Возобновление"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Приостановка"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "ВБС"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/sk.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..0e196405b9 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žiadny inzulín"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Pozastavenie"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Dočasný bazál"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/sv.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..f8b8da152e --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,24 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommandoproblem"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintillförsel pausad"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "Inget insulin"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pumpbatteri urladdat"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pumpfel"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pumpocklusion"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporär basal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/tr.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..6329f20f9a --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,30 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "İletişim Sorunu"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "İnsülin Askıya Alındı"; + +/* Status highlight that a pump is out of insulin. */ +"No Insulin" = "İnsülin yok"; + +/* Status highlight that pump has a dead battery. */ +"Pump Battery Dead" = "Pompa Pili Bitti"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Pompa Hatası"; + +/* Status highlight that an occlusion was detected. */ +"Pump Occlusion" = "Pompa Tıkanıklığı"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Devam et"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Askıya al"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Geçici Bazal"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/vi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..217ffde818 --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Status highlight that a pump error occurred. */ +"Pump Error" = "Bơm lỗi"; + diff --git a/Dependencies/LoopKit/MockKit/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..ab3ccfface --- /dev/null +++ b/Dependencies/LoopKit/MockKit/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Status highlight that a pump error occurred. */ +"Pump Error" = "胰岛素泵错误"; + diff --git a/Dependencies/LoopKit/MockKit/UnfinalizedDose.swift b/Dependencies/LoopKit/MockKit/UnfinalizedDose.swift index e1b8de85e3..4007fb857f 100644 --- a/Dependencies/LoopKit/MockKit/UnfinalizedDose.swift +++ b/Dependencies/LoopKit/MockKit/UnfinalizedDose.swift @@ -162,13 +162,13 @@ public struct UnfinalizedDose: RawRepresentable, Equatable, CustomStringConverti public var eventTitle: String { switch doseType { case .bolus: - return NSLocalizedString("Bolus", comment: "Pump Event title for UnfinalizedDose with doseType of .bolus") + return LocalizedString("Bolus", comment: "Pump Event title for UnfinalizedDose with doseType of .bolus") case .resume: - return NSLocalizedString("Resume", comment: "Pump Event title for UnfinalizedDose with doseType of .resume") + return LocalizedString("Resume", comment: "Pump Event title for UnfinalizedDose with doseType of .resume") case .suspend: - return NSLocalizedString("Suspend", comment: "Pump Event title for UnfinalizedDose with doseType of .suspend") + return LocalizedString("Suspend", comment: "Pump Event title for UnfinalizedDose with doseType of .suspend") case .tempBasal: - return NSLocalizedString("Temp Basal", comment: "Pump Event title for UnfinalizedDose with doseType of .tempBasal") + return LocalizedString("Temp Basal", comment: "Pump Event title for UnfinalizedDose with doseType of .tempBasal") } } diff --git a/Dependencies/LoopKit/MockKit/da.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/da.lproj/Localizable.strings deleted file mode 100644 index d952a686cc..0000000000 --- a/Dependencies/LoopKit/MockKit/da.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Fejl ved Fortsættelse"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fejl ved Udsættelse"; - diff --git a/Dependencies/LoopKit/MockKit/de.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/de.lproj/Localizable.strings deleted file mode 100644 index be8b7b9533..0000000000 --- a/Dependencies/LoopKit/MockKit/de.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Fehler beim Fortsetzen"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fehler beim Unterbrechen"; - diff --git a/Dependencies/LoopKit/MockKit/en.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/en.lproj/Localizable.strings deleted file mode 100644 index a5905fdf9c..0000000000 --- a/Dependencies/LoopKit/MockKit/en.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Error Resuming"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspending"; - diff --git a/Dependencies/LoopKit/MockKit/es.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/es.lproj/Localizable.strings deleted file mode 100644 index 9a601e0724..0000000000 --- a/Dependencies/LoopKit/MockKit/es.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Error al reanudar"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error al suspender"; - diff --git a/Dependencies/LoopKit/MockKit/fi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/fi.lproj/Localizable.strings deleted file mode 100644 index 25df56f8cf..0000000000 --- a/Dependencies/LoopKit/MockKit/fi.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Virhe jatkamisessa"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Virhe pysäytyksessä"; - diff --git a/Dependencies/LoopKit/MockKit/fr.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/fr.lproj/Localizable.strings deleted file mode 100644 index 75e613ef2b..0000000000 --- a/Dependencies/LoopKit/MockKit/fr.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Erreur lors de la reprise"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Erreur lors de la suspension"; - diff --git a/Dependencies/LoopKit/MockKit/it.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/it.lproj/Localizable.strings deleted file mode 100644 index 16890904ea..0000000000 --- a/Dependencies/LoopKit/MockKit/it.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Errore durante la ripresa"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Errore durante la sospensione"; - diff --git a/Dependencies/LoopKit/MockKit/ja.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/ja.lproj/Localizable.strings deleted file mode 100644 index ed41c61c77..0000000000 --- a/Dependencies/LoopKit/MockKit/ja.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "再開エラー"; - -/* The alert title for a suspend error */ -"Error Suspending" = "一時停止エラー"; - diff --git a/Dependencies/LoopKit/MockKit/nb.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/nb.lproj/Localizable.strings deleted file mode 100644 index 49ee3b7815..0000000000 --- a/Dependencies/LoopKit/MockKit/nb.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Gjenoppta feilet"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Pause feilet"; - diff --git a/Dependencies/LoopKit/MockKit/nl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/nl.lproj/Localizable.strings deleted file mode 100644 index f9d3f74448..0000000000 --- a/Dependencies/LoopKit/MockKit/nl.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Fout bij hervatten"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fout bij onderbreken"; - diff --git a/Dependencies/LoopKit/MockKit/pl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/pl.lproj/Localizable.strings deleted file mode 100644 index 62c22891a5..0000000000 --- a/Dependencies/LoopKit/MockKit/pl.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Błąd wznawiania"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Błąd wstrzymywania"; - diff --git a/Dependencies/LoopKit/MockKit/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/pt-BR.lproj/Localizable.strings deleted file mode 100644 index 5b765866bf..0000000000 --- a/Dependencies/LoopKit/MockKit/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,5 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Erro ao Retomar"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Erro ao Suspender"; diff --git a/Dependencies/LoopKit/MockKit/ro.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/ro.lproj/Localizable.strings deleted file mode 100644 index 0831f08129..0000000000 --- a/Dependencies/LoopKit/MockKit/ro.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Eroare în timpul reluării"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Eroare în timpul suspendării"; - diff --git a/Dependencies/LoopKit/MockKit/ru.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/ru.lproj/Localizable.strings deleted file mode 100644 index af83cf85a7..0000000000 --- a/Dependencies/LoopKit/MockKit/ru.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Ошибка при возобновлении"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Ошибка при остановке"; - diff --git a/Dependencies/LoopKit/MockKit/sv.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/sv.lproj/Localizable.strings deleted file mode 100644 index 6ed24351bf..0000000000 --- a/Dependencies/LoopKit/MockKit/sv.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Fel vid återgång"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fel vid försök till paus"; - diff --git a/Dependencies/LoopKit/MockKit/vi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/vi.lproj/Localizable.strings deleted file mode 100644 index 5d96df4c6a..0000000000 --- a/Dependencies/LoopKit/MockKit/vi.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "Lỗi khi thực hiện Tiếp tục lại"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Lỗi khi thực hiện Tạm ngưng"; - diff --git a/Dependencies/LoopKit/MockKit/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/MockKit/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 69b21cc467..0000000000 --- a/Dependencies/LoopKit/MockKit/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,6 +0,0 @@ -/* The alert title for a resume error */ -"Error Resuming" = "无法恢复"; - -/* The alert title for a suspend error */ -"Error Suspending" = "无法暂停"; - diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/Comparable.swift b/Dependencies/LoopKit/MockKitUI/Extensions/Comparable.swift new file mode 100644 index 0000000000..8ffc4dcaa2 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/Comparable.swift @@ -0,0 +1,23 @@ +// +// Comparable.swift +// LoopKit +// +// Created by Michael Pangburn on 11/20/18. +// Copyright © 2018 LoopKit Authors. All rights reserved. +// + +extension Comparable { + func clamped(to range: ClosedRange) -> Self { + if self < range.lowerBound { + return range.lowerBound + } else if self > range.upperBound { + return range.upperBound + } else { + return self + } + } + + mutating func clamp(to range: ClosedRange) { + self = clamped(to: range) + } +} diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/IdentifiableClass.swift b/Dependencies/LoopKit/MockKitUI/Extensions/IdentifiableClass.swift new file mode 100644 index 0000000000..d0bf7f2976 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/IdentifiableClass.swift @@ -0,0 +1,21 @@ +// +// IdentifiableClass.swift +// Naterade +// +// Created by Nathan Racklyeft on 2/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +protocol IdentifiableClass: AnyObject { + static var className: String { get } +} + + +extension IdentifiableClass { + static var className: String { + return NSStringFromClass(self).components(separatedBy: ".").last! + } +} diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/NibLoadable.swift b/Dependencies/LoopKit/MockKitUI/Extensions/NibLoadable.swift new file mode 100644 index 0000000000..475c0f988f --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/NibLoadable.swift @@ -0,0 +1,21 @@ +// +// NibLoadable.swift +// LoopKit +// +// Created by Nate Racklyeft on 7/2/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import UIKit + + +protocol NibLoadable: IdentifiableClass { + static func nib() -> UINib +} + + +extension NibLoadable { + static func nib() -> UINib { + return UINib(nibName: className, bundle: Bundle(for: self)) + } +} diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/NumberFormatter.swift b/Dependencies/LoopKit/MockKitUI/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..6d9d3ab787 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/NumberFormatter.swift @@ -0,0 +1,49 @@ +// +// NSNumberFormatter.swift +// Loop +// +// Created by Nate Racklyeft on 9/5/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation +import HealthKit + + +extension NumberFormatter { + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } + + func string(from number: Double, unit: String, style: Formatter.UnitStyle = .medium, avoidLineBreaking: Bool = true) -> String? { + guard let stringValue = string(from: number) else { + return nil + } + + let separator: String + switch style { + case .long: + separator = " " + case .medium: + separator = avoidLineBreaking ? .nonBreakingSpace : " " + case .short: + fallthrough + @unknown default: + separator = avoidLineBreaking ? .wordJoiner : "" + } + + let unit = avoidLineBreaking ? unit.replacingOccurrences(of: "/", with: "\(String.wordJoiner)/\(String.wordJoiner)") : unit + + return String( + format: LocalizedString("%1$@%2$@%3$@", comment: "String format for value with units (1: value, 2: separator, 3: units)"), + stringValue, + separator, + unit + ) + } +} + +public extension String { + static let nonBreakingSpace = "\u{00a0}" + static let wordJoiner = "\u{2060}" +} diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/TimeInterval.swift b/Dependencies/LoopKit/MockKitUI/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..a568b77b8e --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/TimeInterval.swift @@ -0,0 +1,36 @@ +// +// NSTimeInterval.swift +// Naterade +// +// Created by Nathan Racklyeft on 1/9/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import Foundation + + +extension TimeInterval { + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } +} diff --git a/Dependencies/LoopKit/MockKitUI/Extensions/UITableViewCell.swift b/Dependencies/LoopKit/MockKitUI/Extensions/UITableViewCell.swift new file mode 100644 index 0000000000..dd26055d01 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Extensions/UITableViewCell.swift @@ -0,0 +1,13 @@ +// +// UITableViewCell.swift +// CarbKit +// +// Created by Nathan Racklyeft on 1/15/16. +// Copyright © 2016 Nathan Racklyeft. All rights reserved. +// + +import UIKit + + +extension UITableViewCell: IdentifiableClass, NibLoadable { +} diff --git a/Dependencies/LoopKit/MockKitUI/LocalizedString.swift b/Dependencies/LoopKit/MockKitUI/LocalizedString.swift new file mode 100644 index 0000000000..c092c97ed8 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/LocalizedString.swift @@ -0,0 +1,29 @@ +// +// LocalizedString.swift +// LoopKit +// +// Created by Retina15 on 8/6/18. +// Copyright © 2018 LoopKit Authors. All rights reserved. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("LoopKit_LoopKit.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/LoopKit/MockKitUI/MockHUDProvider.swift b/Dependencies/LoopKit/MockKitUI/MockHUDProvider.swift index c22056794c..051843e766 100644 --- a/Dependencies/LoopKit/MockKitUI/MockHUDProvider.swift +++ b/Dependencies/LoopKit/MockKitUI/MockHUDProvider.swift @@ -9,7 +9,7 @@ import LoopKit import LoopKitUI import MockKit - +import Foundation final class MockHUDProvider: NSObject, HUDProvider { diff --git a/Dependencies/LoopKit/MockKitUI/MockService+UI.swift b/Dependencies/LoopKit/MockKitUI/MockService+UI.swift index 3b63cd7575..e3ff7495e0 100644 --- a/Dependencies/LoopKit/MockKitUI/MockService+UI.swift +++ b/Dependencies/LoopKit/MockKitUI/MockService+UI.swift @@ -17,7 +17,7 @@ extension MockService: ServiceUI { return UIImage(systemName: "icloud.and.arrow.up") } - public static func setupViewController(colorPalette: LoopUIColorPalette) -> SetupUIResult { + public static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost) -> SetupUIResult { return .userInteractionRequired(ServiceNavigationController(rootViewController: MockServiceTableViewController(service: MockService(), for: .create))) } diff --git a/Dependencies/LoopKit/MockKitUI/MockSupport.swift b/Dependencies/LoopKit/MockKitUI/MockSupport.swift index 4b9dff6312..e7ce5b942c 100644 --- a/Dependencies/LoopKit/MockKitUI/MockSupport.swift +++ b/Dependencies/LoopKit/MockKitUI/MockSupport.swift @@ -77,21 +77,21 @@ extension MockSupport { let alertContent: LoopKit.Alert.Content if firstAlert { alertContent = Alert.Content(title: versionUpdate.localizedDescription, - body: NSLocalizedString(""" - Your \(appName) app is out of date. It will continue to work, but we recommend updating to the latest version. + body: String(format: LocalizedString(""" + Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version. - Go to \(appName) Settings > Software Update to complete. - """, comment: "Alert content body for first software update alert"), - acknowledgeActionButtonLabel: NSLocalizedString("OK", comment: "Default acknowledgement")) + Go to %2$@ Settings > Software Update to complete. + """, comment: "Alert content body for first software update alert (1: app name)(2: app name)"), appName, appName), + acknowledgeActionButtonLabel: LocalizedString("OK", comment: "Default acknowledgement")) } else if let lastVersionCheckAlertDate = lastVersionCheckAlertDate, abs(lastVersionCheckAlertDate.timeIntervalSinceNow) > alertCadence { - alertContent = Alert.Content(title: NSLocalizedString("Update Reminder", comment: "Recurring software update alert title"), - body: NSLocalizedString(""" - A software update is recommended to continue using the \(appName) app. + alertContent = Alert.Content(title: LocalizedString("Update Reminder", comment: "Recurring software update alert title"), + body: String(format: LocalizedString(""" + A software update is recommended to continue using the %1$@ app. - Go to \(appName) Settings > Software Update to install the latest version. - """, comment: "Alert content body for recurring software update alert"), - acknowledgeActionButtonLabel: NSLocalizedString("OK", comment: "Default acknowledgement")) + Go to %2$@ Settings > Software Update to install the latest version. + """, comment: "Alert content body for recurring software update alert"), appName, appName), + acknowledgeActionButtonLabel: LocalizedString("OK", comment: "Default acknowledgement")) } else { return } diff --git a/Dependencies/LoopKit/MockKitUI/Assets.xcassets/CGM Simulator.imageset/CGM Simulator.pdf b/Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/CGM Simulator.imageset/CGM Simulator.pdf similarity index 100% rename from Dependencies/LoopKit/MockKitUI/Assets.xcassets/CGM Simulator.imageset/CGM Simulator.pdf rename to Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/CGM Simulator.imageset/CGM Simulator.pdf diff --git a/Dependencies/LoopKit/MockKitUI/Assets.xcassets/CGM Simulator.imageset/Contents.json b/Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/CGM Simulator.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKitUI/Assets.xcassets/CGM Simulator.imageset/Contents.json rename to Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/CGM Simulator.imageset/Contents.json diff --git a/Dependencies/LoopKit/MockKitUI/Assets.xcassets/Contents.json b/Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKitUI/Assets.xcassets/Contents.json rename to Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Contents.json diff --git a/Dependencies/LoopKit/MockKitUI/Assets.xcassets/Pump Simulator.imageset/Contents.json b/Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Pump Simulator.imageset/Contents.json similarity index 100% rename from Dependencies/LoopKit/MockKitUI/Assets.xcassets/Pump Simulator.imageset/Contents.json rename to Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Pump Simulator.imageset/Contents.json diff --git a/Dependencies/LoopKit/MockKitUI/Assets.xcassets/Pump Simulator.imageset/Pump Simulator.pdf b/Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Pump Simulator.imageset/Pump Simulator.pdf similarity index 100% rename from Dependencies/LoopKit/MockKitUI/Assets.xcassets/Pump Simulator.imageset/Pump Simulator.pdf rename to Dependencies/LoopKit/MockKitUI/Resources/Assets.xcassets/Pump Simulator.imageset/Pump Simulator.pdf diff --git a/Dependencies/LoopKit/MockKitUI/Resources/ar.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..a4bd1d844d --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,13 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "إلغاء"; + +/* The alert title for a resume error */ +"Error Resuming" = "خطأ في الاستئناف"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "موافق"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/cs.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..961bc6a023 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,25 @@ +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Chcete-li nadále používat aplikaci %1$@, doporučujeme její aktualizaci. \n\nPřejděte do %2$@ Nastavení > Aktualizace softwaru pro nainstalování nejnovější verze."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Opravdu chcete tuto službu smazat?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Zpět"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušit"; + +/* Button title to delete a service */ +"Delete Service" = "Smazat službu"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Vaše aplikace %1$@ je zastaralá. Bude fungovat i nadále, ale doporučujeme aktualizaci na nejnovější verzi. \n\nPro dokončení přejděte do %2$@ Nastavení > Aktualizace softwaru."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/da.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..6ca1fc18e5 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/da.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Det anbefales at foretage en softwareopdatering for at fortsætte med at bruge %1$@ appen.\n\nGå til Indstillinger for %2$@ > Softwareopdatering for at installere den nyeste version."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Er du sikker på, du vil slette denne service?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbage"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuller"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM-indstillinger"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Ryd advarselsdato for sidste versionskontrol"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Kommunikation-genoprettelse"; + +/* Button title to delete a service */ +"Delete Service" = "Slet service"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fejl ved genoptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fejl ved suspendering"; + +/* Caption for History + History Caption */ +"History" = "Historik"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Hvordan skal simulatoren reagere på en versionskontrol?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pumpeindstillinger"; + +/* Button title recovering comms */ +"Recover Simulator" = "Gendan simulator"; + +/* Caption for Source */ +"Source" = "Kilde"; + +/* Recurring software update alert title */ +"Update Reminder" = "Påmindelse om opdatering"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Svar på versionskontrol"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Din %1$@ app er forældet. Det vil fortsætte med at fungere, men vi anbefaler at opdatere til den nyeste version.\n\nGå til Indstillinger for %2$@ > Softwareopdatering for at fuldføre."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/de.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..36c5cbd4b1 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/de.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Eine Softwareaktualisierung wird empfohlen, um die %1$@-App weiterhin zu verwenden.\n\nGehe zu %2$@ Einstellungen > Softwareaktualisierung, um die neueste Version zu installieren."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Bist Du sicher, dass Du diesen Dienst löschen möchtest?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Zurück"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Abbrechen"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM-Einstellungen"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Löschen Sie das Datum der letzten Versionsprüfungswarnung"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Comms Wiederherstellung"; + +/* Button title to delete a service */ +"Delete Service" = "Dienst löschen"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fehler beim Fortfahren"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fehler beim Unterbrechen"; + +/* Caption for History + History Caption */ +"History" = "Historie"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Wie soll der Simulator auf eine Versionsprüfung reagieren?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insulintyp"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pumpeneinstellungen"; + +/* Button title recovering comms */ +"Recover Simulator" = "Simulator wiederherstellen"; + +/* Caption for Source */ +"Source" = "Quelle"; + +/* Recurring software update alert title */ +"Update Reminder" = "Update-Erinnerung"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Antwort der Versionsprüfung"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Deine %1$@-App ist nicht mehr aktuell. Sie funktioniert weiterhin, aber wir empfehlen Dir, auf die neueste Version zu aktualisieren.\n\nGehen zu %2$@ Einstellungen > Softwareaktualisierung, um die Aktualisierung abzuschließen."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/en.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..2b2e4675ae --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/en.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* + Localizable.strings + LoopKit + + Created by Pete Schwamb on 3/19/23. + Copyright © 2023 LoopKit Authors. All rights reserved. +*/ diff --git a/Dependencies/LoopKit/MockKitUI/Resources/es.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..ecb1197703 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/es.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Se recomienda una actualización de software para continuar usando la aplicación %1$@. \n\n Vaya a Configuración %2$@ > Actualización de Software para instalar la última versión."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "¿Está seguro de que desea eliminar este servicio?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Atrás"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Configuración del MCG"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Borrar última versión y comprobar fecha de alerta"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Recuperación de comunicaciones"; + +/* Button title to delete a service */ +"Delete Service" = "Eliminar servicio"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Reanudando"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspendiendo"; + +/* Caption for History + History Caption */ +"History" = "Historial"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "¿Cómo debe responder el simulador a una verificación de versión?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Tipo de Insulina"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Configuración de la bomba"; + +/* Button title recovering comms */ +"Recover Simulator" = "Recuperar Simulador"; + +/* Caption for Source */ +"Source" = "Fuente"; + +/* Recurring software update alert title */ +"Update Reminder" = "Recordatorio de actualización"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Respuesta de verificación de versión"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Tu aplicación %1$@ no está actualizada. Seguirá funcionando, pero recomendamos actualizar a la última versión. \n\n Vaya a %2$@ Configuración > Actualización de Software para completar."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/fi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..db227c370a --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,47 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Haluatko varmasti poistaa tämän palvelun?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Takaisin"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Kumoa"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM-asetukset"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Yhteyksien palautus"; + +/* Button title to delete a service */ +"Delete Service" = "Poista palvelu"; + +/* The alert title for a resume error */ +"Error Resuming" = "Virhe jatkamisessa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Virhe pysäytyksessä"; + +/* Caption for History + History Caption */ +"History" = "Historia"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insuliinityyppi"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pumpun asetukset"; + +/* Button title recovering comms */ +"Recover Simulator" = "Palauta simulaattori"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/fr.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..56a3699260 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,62 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Voulez-vous vraiment supprimer ce service?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Retour"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuler"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Paramètres CGM"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Effacer la date d'alerte de la dernière vérification de version"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Récupération des communications"; + +/* Button title to delete a service */ +"Delete Service" = "Supprimer le service"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erreur lors de la reprise"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erreur lors de la suspension"; + +/* Caption for History + History Caption */ +"History" = "Historique"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Comment le simulateur devrait-il répondre à une vérification de version?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Type d'insuline"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Paramètres de la pompe"; + +/* Button title recovering comms */ +"Recover Simulator" = "Rétablissement du simulateur"; + +/* Caption for Source */ +"Source" = "Source"; + +/* Recurring software update alert title */ +"Update Reminder" = "Rappel de mise à jour"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Réponse à la vérification de version"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/he.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..929f694b38 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/he.lproj/Localizable.strings @@ -0,0 +1,28 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Are you sure you want to delete this service?"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancel"; + +/* Button title to delete a service */ +"Delete Service" = "Delete Service"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Resuming"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspending"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pump Settings"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/hi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..c197275b76 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/it.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..01af320143 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/it.lproj/Localizable.strings @@ -0,0 +1,62 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Sei sicuro di voler eliminare questo servizio?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Indietro"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annulla"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Impostazioni CGM"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Cancella l'ultima versione Controlla la data dell'avviso"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "recovero delle comunicazioni"; + +/* Button title to delete a service */ +"Delete Service" = "Elimina Servizio"; + +/* The alert title for a resume error */ +"Error Resuming" = "Errore durante la Ripresa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Errore durante l’interruzione"; + +/* Caption for History + History Caption */ +"History" = "Storia"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Come dovrebbe rispondere il simulatore a un controllo della versione?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Tipo d'insulina"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "impostazione del microinfusore"; + +/* Button title recovering comms */ +"Recover Simulator" = "Simulatore di recupero"; + +/* Caption for Source */ +"Source" = "Fonte"; + +/* Recurring software update alert title */ +"Update Reminder" = "Promemoria di aggiornamento"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Responso del controllo versione"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/ja.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..2c0867bcaf --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,25 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "キャンセル"; + +/* Button title to delete a service */ +"Delete Service" = "Delete Service"; + +/* The alert title for a resume error */ +"Error Resuming" = "再開エラー"; + +/* The alert title for a suspend error */ +"Error Suspending" = "一時中止エラー"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "ポンプ設定"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/nb.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..9b5043f7cb --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "En programvareoppdatering anbefales for å fortsette å bruke %1$@-appen.\n\nGå til %2$@ Innstillinger > Programvareoppdatering for å installere den nyeste versjonen."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Er du sikker på at du vil slette denne tjenesten?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbake"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM-innstillinger"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Fjern varseldato for siste versjonskontroll"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Kommunikasjon gjennopprettet"; + +/* Button title to delete a service */ +"Delete Service" = "Slett tjeneste"; + +/* The alert title for a resume error */ +"Error Resuming" = "Feil ved gjenopptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Kunne ikke stoppe"; + +/* Caption for History + History Caption */ +"History" = "Historie"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Hvordan skal simulatoren svare på en versjonskontroll?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "Ok"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pumpeinnstillinger"; + +/* Button title recovering comms */ +"Recover Simulator" = "Gjenopprett simulator"; + +/* Caption for Source */ +"Source" = "Kilde"; + +/* Recurring software update alert title */ +"Update Reminder" = "Oppdater påminnelse"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Svar på versjonskontroll"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Din %1$@ app er utdatert. Den vil fortsette å fungere, men vi anbefaler å oppdatere til siste versjon. \n\nGå til %2$@ Innstillinger > Programvareoppdatering for å fullføre."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/nl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..ff4f936d2d --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,74 @@ +/* No comment provided by engineer. */ +"%@ has been unable to communicate with the Simulator Pump since %@.\n\nWithout communication, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered." = "%1$@ kan niet communiceren met de Pompsimulator sinds %2$@.\n\nZonder communicatie kan de app geen opdrachten meer versturen voor insulinetoediening of nauwkeurige recente informatie weergeven over jouw actieve insuline of de insuline die is toegediend."; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Een software-update wordt aanbevolen om de %1$@ app te blijven gebruiken. \n\nGa naar %2$@ Instellingen > Software Update om de nieuwste versie te installeren."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Weet je zeker dat je deze service wil verwijderen?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Terug"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuleer"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM Instellingen"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Wis laatste versie Controleer Waarschuwingsdatum"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Comms Herstel"; + +/* Button title to delete a service */ +"Delete Service" = "Service Verwijderen"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fout Bij Hervatten"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fout Bij Onderbreken"; + +/* Caption for History + History Caption */ +"History" = "Geschiedenis"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Hoe moet de simulator reageren op een versiecontrole?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insulinetype"; + +/* No comment provided by engineer. */ +"Mock Version Check %@" = "Mock Versie Check %@"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "Ok"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pompinstellingen"; + +/* Button title recovering comms */ +"Recover Simulator" = "Simulator Herstellen"; + +/* Caption for Source */ +"Source" = "Bron"; + +/* Recurring software update alert title */ +"Update Reminder" = "Update Herinnering"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Reactie op versiecontrole"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Je %1$@ app is verouderd. De app blijft werken, maar we raden je aan om de app bij te werken naar de nieuwste versie. \n\nGa naar %2$@ Instellingen > Software Update om de update te voltooien."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/pl.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..eabe68bf1b --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,74 @@ +/* No comment provided by engineer. */ +"%@ has been unable to communicate with the Simulator Pump since %@.\n\nWithout communication, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered." = "%1$@ nie może komunikować się z symulatorem pompy od %2$@ . \n\nBez komunikacji aplikacja nie może wysyłać poleceń podawania insuliny ani wyświetlać aktualnych informacji o aktywnej lub podawanej insulinie."; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Aby nadal korzystać z aplikacji %1$@ , zalecamy aktualizację oprogramowania. \n\n Przejdź do %2$@ Ustawienia > Aktualizacja oprogramowania, aby zainstalować najnowszą wersję."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Czy na pewno chcesz usunąć tę usługę?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Powrót"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Anuluj"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Ustawienia CGM"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Wyczyść ostatni odczytany alarm"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Odzyskiwanie komunikacji"; + +/* Button title to delete a service */ +"Delete Service" = "Usuń usługę"; + +/* The alert title for a resume error */ +"Error Resuming" = "Błąd wznawiania"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Błąd wstrzymywania"; + +/* Caption for History + History Caption */ +"History" = "Historia"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Jak symulator powinien zareagować na sprawdzenie wersji?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Rodzaj insuliny"; + +/* No comment provided by engineer. */ +"Mock Version Check %@" = "Pozorowana kontrola wersji %@"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Ustawienia pompy"; + +/* Button title recovering comms */ +"Recover Simulator" = "Odzyskaj komunikat"; + +/* Caption for Source */ +"Source" = "Źródło"; + +/* Recurring software update alert title */ +"Update Reminder" = "Przypomnienie o aktualizacji"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Odpowiedź na sprawdzenie wersji"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Twoja aplikacja %1$@ jest nieaktualna. Będzie nadal działać, ale zalecamy aktualizację do najnowszej wersji. \n\n Przejdź do %2$@ Ustawienia > Aktualizacja oprogramowania, aby dokonać aktualizacji."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..7670cb73d2 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,25 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* Button title to delete a service */ +"Delete Service" = "Delete Service"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erro ao Retomar"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erro ao Suspender"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Configurações da Bomba"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/ro.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..0ef4b794ed --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,74 @@ +/* No comment provided by engineer. */ +"%@ has been unable to communicate with the Simulator Pump since %@.\n\nWithout communication, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered." = "%1$@ nu a putut comunica cu pompa simulată din %2$@.\n\nFără comunicare, aplicația nu poate continua să trimită comenzi pentru administrarea de insulină sau să afișeze informații exacte și recente despre insulina dumneavoastră activă sau insulina care vi se administrează."; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Se recomandă o actualizare a software-ului pentru a continua să utilizați aplicația %1$@.\n\nAccesați %2$@ Setări > Actualizare software pentru a instala cea mai recentă versiune."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Ești sigur că vrei să ștergi acest serviciu?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Înapoi"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Renunță"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Setări CGM"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Ștergeți data ultimei alerte de verificare a versiunii"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Recuperare comenzi"; + +/* Button title to delete a service */ +"Delete Service" = "Șterge serviciul"; + +/* The alert title for a resume error */ +"Error Resuming" = "Eroare în timpul reluării"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Eroare în timpul suspendării"; + +/* Caption for History + History Caption */ +"History" = "Istoric"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Cum ar trebui să răspundă simulatorul la o verificare a versiunii?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Tipul de insulină"; + +/* No comment provided by engineer. */ +"Mock Version Check %@" = "Verificare versiune simulată %@"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Setări pompă"; + +/* Button title recovering comms */ +"Recover Simulator" = "Simulator de recuperare"; + +/* Caption for Source */ +"Source" = "Sursă"; + +/* Recurring software update alert title */ +"Update Reminder" = "Memento actualizare"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Răspuns de verificare a versiunii"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Aplicația dvs. %1$@ nu este actualizată. Aceasta va continua să funcționeze, dar vă recomandăm să o actualizați la cea mai recentă versiune.\n\nAccesați %2$@ Setări > Actualizare software pentru a finaliza."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/ru.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..3055c3a653 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Alert content body for recurring software update alert */ +"A software update is recommended to continue using the %1$@ app.\n\nGo to %2$@ Settings > Software Update to install the latest version." = "Для продолжения использования приложения %1$@ рекомендуется обновить программное обеспечение.\n\nПерейдите в %2$@ Настройки > Обновление ПО, чтобы установить последнюю версию."; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Вы уверены, что хотите удалить этот сервис?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Назад"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Отмена"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "Настройки CGM"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Очистить последнюю дату проверки версии"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Восстановление связи"; + +/* Button title to delete a service */ +"Delete Service" = "Удалить сервис"; + +/* The alert title for a resume error */ +"Error Resuming" = "Ошибка возобновления"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Ошибка приостановки"; + +/* Caption for History + History Caption */ +"History" = "История"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Как симулятор должен реагировать на проверку версии?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Тип инсулина"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Настройки помпы"; + +/* Button title recovering comms */ +"Recover Simulator" = "Восстановить симулятор"; + +/* Caption for Source */ +"Source" = "Источник"; + +/* Recurring software update alert title */ +"Update Reminder" = "Напоминание об обновлении"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Ответ на проверку версии"; + +/* Alert content body for first software update alert (1: app name)(2: app name) */ +"Your %1$@ app is out of date. It will continue to work, but we recommend updating to the latest version.\n\nGo to %2$@ Settings > Software Update to complete." = "Ваше приложение %1$@ устарело. Оно будет продолжать работать, но мы рекомендуем обновить его до последней версии.\n\nДля завершения обновления перейдите в %2$@ Настройки > Обновление ПО."; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/sk.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..7819771594 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,31 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Naozaj chcete odstrániť túto službu?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Späť"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušiť"; + +/* Button title to delete a service */ +"Delete Service" = "Odstrániť službu"; + +/* The alert title for a resume error */ +"Error Resuming" = "Chyba pri obnovení"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Chyba pri pozastavení"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/sv.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..d6e254b0a2 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,47 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Vill du ta bort den här tjänsten?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tillbaka"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM-inställningar"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "Återställning av kommandon"; + +/* Button title to delete a service */ +"Delete Service" = "Ta bort tjänst"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fel vid återupptagande"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fel vid försök till paus"; + +/* Caption for History + History Caption */ +"History" = "Historik"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "Insulintyp"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pumpinställningar"; + +/* Button title recovering comms */ +"Recover Simulator" = "Återställ simulator"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/tr.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..d9a35369da --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,62 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Confirmation message for deleting a service */ +"Are you sure you want to delete this service?" = "Bu servisi silmek istediğinizden emin misiniz?"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Geri"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "İptal"; + +/* Title for CGM simulator settings */ +"CGM Settings" = "CGM Ayarları"; + +/* No comment provided by engineer. */ +"Clear Last Version Check Alert Date" = "Son Sürüm Kontrolü Uyarı Tarihini Temizle"; + +/* No comment provided by engineer. */ +"Comms Recovery" = "İletişim Kurtarma"; + +/* Button title to delete a service */ +"Delete Service" = "Servisi Sil"; + +/* The alert title for a resume error */ +"Error Resuming" = "Sürdürme Hatası"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Askıya Alma Hatası"; + +/* Caption for History + History Caption */ +"History" = "Geçmiş"; + +/* No comment provided by engineer. */ +"How should the simulator respond to a version check?" = "Simülatör bir sürüm kontrolüne nasıl yanıt vermelidir?"; + +/* Controller title for insulin type selection screen */ +"Insulin Type" = "İnsülin Tipi"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "Tamam"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Pompa Ayarları"; + +/* Button title recovering comms */ +"Recover Simulator" = "Simülatörü kurtar"; + +/* Caption for Source */ +"Source" = "Kaynak"; + +/* Recurring software update alert title */ +"Update Reminder" = "Güncelleme Hatırlatıcısı"; + +/* No comment provided by engineer. */ +"Version Check Response" = "Sürüm Kontrolü Yanıtı"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/vi.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..c6ac8ef3d7 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,25 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Hủy bỏ"; + +/* Button title to delete a service */ +"Delete Service" = "Delete Service"; + +/* The alert title for a resume error */ +"Error Resuming" = "Lỗi khi đang tái thực hiện"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Lỗi khi đang tạm ngưng"; + +/* Button title to acknowledge error + Default acknowledgement */ +"OK" = "OK"; + +/* Title for Pump simulator settings */ +"Pump Settings" = "Cấu hình của bơm"; + diff --git a/Dependencies/LoopKit/MockKitUI/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/LoopKit/MockKitUI/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..989e94b578 --- /dev/null +++ b/Dependencies/LoopKit/MockKitUI/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,15 @@ +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "取消"; + +/* The alert title for a resume error */ +"Error Resuming" = "恢复输注错误"; + +/* The alert title for a suspend error */ +"Error Suspending" = "无法暂停"; + diff --git a/Dependencies/LoopKit/MockKitUI/View Controllers/MockCGMManagerSettingsViewController.swift b/Dependencies/LoopKit/MockKitUI/View Controllers/MockCGMManagerSettingsViewController.swift index ebf14d7b2e..a52ffedee8 100644 --- a/Dependencies/LoopKit/MockKitUI/View Controllers/MockCGMManagerSettingsViewController.swift +++ b/Dependencies/LoopKit/MockKitUI/View Controllers/MockCGMManagerSettingsViewController.swift @@ -29,7 +29,7 @@ final class MockCGMManagerSettingsViewController: UITableViewController { self.displayGlucoseUnitObservable = displayGlucoseUnitObservable super.init(style: .grouped) - title = NSLocalizedString("CGM Settings", comment: "Title for CGM simulator settings") + title = LocalizedString("CGM Settings", comment: "Title for CGM simulator settings") displayGlucoseUnitObservable.$displayGlucoseUnit .sink { [weak self] _ in self?.tableView.reloadData() } @@ -783,7 +783,7 @@ private extension UIAlertController { convenience init(cgmDeletionHandler confirmHandler: @escaping () -> Void, cancelHandler: (() -> Void)? = nil) { self.init( title: nil, - message: NSLocalizedString("Are you sure you want to delete this CGM?", comment: ""), + message: "Are you sure you want to delete this CGM?", preferredStyle: .actionSheet ) diff --git a/Dependencies/LoopKit/MockKitUI/View Controllers/MockPumpManagerSettingsViewController.swift b/Dependencies/LoopKit/MockKitUI/View Controllers/MockPumpManagerSettingsViewController.swift index 06f45f184d..9f99cc8699 100644 --- a/Dependencies/LoopKit/MockKitUI/View Controllers/MockPumpManagerSettingsViewController.swift +++ b/Dependencies/LoopKit/MockKitUI/View Controllers/MockPumpManagerSettingsViewController.swift @@ -23,7 +23,7 @@ final class MockPumpManagerSettingsViewController: UITableViewController { self.pumpManager = pumpManager self.supportedInsulinTypes = supportedInsulinTypes super.init(style: .grouped) - title = NSLocalizedString("Pump Settings", comment: "Title for Pump simulator settings") + title = LocalizedString("Pump Settings", comment: "Title for Pump simulator settings") } required init?(coder aDecoder: NSCoder) { @@ -559,7 +559,7 @@ private extension UIAlertController { let message: String if let localizedError = error as? LocalizedError { - let sentenceFormat = NSLocalizedString("%@.", comment: "Appends a full-stop to a statement") + let sentenceFormat = LocalizedString("%@.", comment: "Appends a full-stop to a statement") message = [localizedError.failureReason, localizedError.recoverySuggestion].compactMap({ $0 }).map({ String(format: sentenceFormat, $0) }).joined(separator: "\n") @@ -574,7 +574,7 @@ private extension UIAlertController { ) addAction(UIAlertAction( - title: NSLocalizedString("OK", comment: "Button title to acknowledge error"), + title: LocalizedString("OK", comment: "Button title to acknowledge error"), style: .default, handler: nil )) diff --git a/Dependencies/LoopKit/MockKitUI/View Controllers/MockServiceTableViewController.swift b/Dependencies/LoopKit/MockKitUI/View Controllers/MockServiceTableViewController.swift index 70523f8995..7bc12bc4ef 100644 --- a/Dependencies/LoopKit/MockKitUI/View Controllers/MockServiceTableViewController.swift +++ b/Dependencies/LoopKit/MockKitUI/View Controllers/MockServiceTableViewController.swift @@ -330,18 +330,18 @@ fileprivate extension UIAlertController { convenience init(serviceDeletionHandler handler: @escaping () -> Void) { self.init( title: nil, - message: NSLocalizedString("Are you sure you want to delete this service?", comment: "Confirmation message for deleting a service"), + message: LocalizedString("Are you sure you want to delete this service?", comment: "Confirmation message for deleting a service"), preferredStyle: .actionSheet ) addAction(UIAlertAction( - title: NSLocalizedString("Delete Service", comment: "Button title to delete a service"), + title: LocalizedString("Delete Service", comment: "Button title to delete a service"), style: .destructive, handler: { _ in handler() })) - let cancel = NSLocalizedString("Cancel", comment: "The title of the cancel action in an action sheet") + let cancel = LocalizedString("Cancel", comment: "The title of the cancel action in an action sheet") addAction(UIAlertAction(title: cancel, style: .cancel, handler: nil)) } } diff --git a/Dependencies/LoopKit/MockKitUI/Views/BoundSwitchTableViewCell.swift b/Dependencies/LoopKit/MockKitUI/Views/BoundSwitchTableViewCell.swift index e0e2e9228c..f17bbe19a1 100644 --- a/Dependencies/LoopKit/MockKitUI/Views/BoundSwitchTableViewCell.swift +++ b/Dependencies/LoopKit/MockKitUI/Views/BoundSwitchTableViewCell.swift @@ -6,6 +6,7 @@ // import LoopKitUI +import UIKit class BoundSwitchTableViewCell: SwitchTableViewCell { diff --git a/Dependencies/LoopKit/Package.resolved b/Dependencies/LoopKit/Package.resolved new file mode 100644 index 0000000000..627418b879 --- /dev/null +++ b/Dependencies/LoopKit/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "swiftcharts", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ivanschuetz/SwiftCharts", + "state" : { + "branch" : "master", + "revision" : "c354c1945bb35a1f01b665b22474f6db28cba4a2" + } + } + ], + "version" : 2 +} diff --git a/Dependencies/LoopKit/Package.swift b/Dependencies/LoopKit/Package.swift new file mode 100644 index 0000000000..3ff4a8c973 --- /dev/null +++ b/Dependencies/LoopKit/Package.swift @@ -0,0 +1,63 @@ +// swift-tools-version: 5.7 +// The swift tools-version declares the minimum version of Swift required to build this package. + +// *************** Not complete yet, do not expect this to work! *********************** +// There are issues with how test fixtures are copied into the bundle, and then referenced, +// and other issues, largely around accessing bundle resources, and probably others not yet +// discovered, as this is not being used as a swift package from any actual project yet. + +import PackageDescription + +let package = Package( + name: "LoopKit", + defaultLocalization: "en", + platforms: [.iOS("15.0")], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "LoopKit", + targets: ["LoopKit"]), + .library( + name: "LoopKitUI", + targets: ["LoopKitUI"]), + ], + dependencies: [ + .package( + url: "https://github.com/ivanschuetz/SwiftCharts", + branch: "master" + ) + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "LoopKit", + dependencies: [], + path: "LoopKit"), + .testTarget( + name: "LoopKitTests", + dependencies: ["LoopKit"], + path: "LoopKitTests", + resources: [ + .copy("Fixtures") + ]), + .target( + name: "LoopKitUI", + dependencies: ["LoopKit", "SwiftCharts"], + path: "LoopKitUI"), + .target( + name: "LoopTestingKit", + dependencies: ["LoopKit"], + path: "LoopTestingKit"), + .target( + name: "MockKit", + dependencies: ["LoopKit", "LoopKitUI", "LoopTestingKit"], + path: "MockKit"), + .target( + name: "MockKitUI", + dependencies: ["MockKit", "LoopKit", "LoopKitUI"], + path: "MockKitUI"), + ] +) diff --git a/Dependencies/MKRingProgressView/MKRingProgressView.xcodeproj/xcshareddata/xcschemes/MKRingProgressView.xcscheme b/Dependencies/MKRingProgressView/MKRingProgressView.xcodeproj/xcshareddata/xcschemes/MKRingProgressView.xcscheme deleted file mode 100644 index deace4c013..0000000000 --- a/Dependencies/MKRingProgressView/MKRingProgressView.xcodeproj/xcshareddata/xcschemes/MKRingProgressView.xcscheme +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/MinimedKit/.gitignore b/Dependencies/MinimedKit/.gitignore new file mode 100644 index 0000000000..72baa45915 --- /dev/null +++ b/Dependencies/MinimedKit/.gitignore @@ -0,0 +1,91 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore +.DS_Store + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/Dependencies/MinimedKit/MinimedKit.xcodeproj/project.pbxproj b/Dependencies/MinimedKit/MinimedKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..40da8b82a7 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit.xcodeproj/project.pbxproj @@ -0,0 +1,2368 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + C1229C2229C7ECA70066A89C /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1229C2129C7ECA70066A89C /* TimeInterval.swift */; }; + C1229C2429C7ECEB0066A89C /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1229C2329C7ECEB0066A89C /* Data.swift */; }; + C13CC33529C7B6A9007F25DE /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B6729C7AD62009A50A5 /* LoopKit.framework */; }; + C13CC33829C7B6BC007F25DE /* MinimedKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E3491129C7A866009A50A5 /* MinimedKit.framework */; }; + C13CC34529C7B73A007F25DE /* MinimedKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E3491129C7A866009A50A5 /* MinimedKit.framework */; }; + C13CC38829C7B757007F25DE /* ResumePumpEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC34C29C7B755007F25DE /* ResumePumpEventTests.swift */; }; + C13CC38929C7B757007F25DE /* BolusNormalPumpEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC34D29C7B755007F25DE /* BolusNormalPumpEventTests.swift */; }; + C13CC38A29C7B757007F25DE /* ReadCurrentGlucosePageMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC34F29C7B755007F25DE /* ReadCurrentGlucosePageMessageBodyTests.swift */; }; + C13CC38B29C7B757007F25DE /* ChangeTimeCarelinMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35029C7B755007F25DE /* ChangeTimeCarelinMessageBodyTests.swift */; }; + C13CC38C29C7B757007F25DE /* MeterMessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35129C7B755007F25DE /* MeterMessageTests.swift */; }; + C13CC38D29C7B757007F25DE /* ChangeTempBasalCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35229C7B755007F25DE /* ChangeTempBasalCarelinkMessageBodyTests.swift */; }; + C13CC38E29C7B757007F25DE /* ReadOtherDevicesIDsMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35329C7B755007F25DE /* ReadOtherDevicesIDsMessageBodyTests.swift */; }; + C13CC38F29C7B757007F25DE /* BolusCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35429C7B755007F25DE /* BolusCarelinkMessageBodyTests.swift */; }; + C13CC39029C7B757007F25DE /* FindDeviceMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35529C7B755007F25DE /* FindDeviceMessageBodyTests.swift */; }; + C13CC39129C7B757007F25DE /* ReadRemoteControlIDsMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35629C7B755007F25DE /* ReadRemoteControlIDsMessageBodyTests.swift */; }; + C13CC39229C7B757007F25DE /* ReadTempBasalCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35729C7B755007F25DE /* ReadTempBasalCarelinkMessageBodyTests.swift */; }; + C13CC39329C7B757007F25DE /* DeviceLinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35829C7B755007F25DE /* DeviceLinkMessageBodyTests.swift */; }; + C13CC39429C7B757007F25DE /* ChangeMaxBasalRateMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35929C7B755007F25DE /* ChangeMaxBasalRateMessageBodyTests.swift */; }; + C13CC39529C7B757007F25DE /* ChangeRemoteControlIDMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35A29C7B755007F25DE /* ChangeRemoteControlIDMessageBodyTests.swift */; }; + C13CC39629C7B757007F25DE /* GetBatteryCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35B29C7B755007F25DE /* GetBatteryCarelinkMessageBodyTests.swift */; }; + C13CC39729C7B757007F25DE /* ReadRemainingInsulinMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35C29C7B755007F25DE /* ReadRemainingInsulinMessageBodyTests.swift */; }; + C13CC39829C7B757007F25DE /* ChangeMaxBolusMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35D29C7B755007F25DE /* ChangeMaxBolusMessageBodyTests.swift */; }; + C13CC39929C7B757007F25DE /* GetPumpModelCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35E29C7B755007F25DE /* GetPumpModelCarelinkMessageBodyTests.swift */; }; + C13CC39A29C7B757007F25DE /* GetGlucosePageMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC35F29C7B755007F25DE /* GetGlucosePageMessageBodyTests.swift */; }; + C13CC39B29C7B757007F25DE /* MinimedPacketTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36029C7B755007F25DE /* MinimedPacketTests.swift */; }; + C13CC39C29C7B757007F25DE /* MinimedPumpManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36129C7B755007F25DE /* MinimedPumpManagerTests.swift */; }; + C13CC39D29C7B757007F25DE /* NSDateComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36229C7B755007F25DE /* NSDateComponents.swift */; }; + C13CC39E29C7B757007F25DE /* PumpOpsSynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36329C7B755007F25DE /* PumpOpsSynchronousTests.swift */; }; + C13CC39F29C7B757007F25DE /* NSDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36429C7B755007F25DE /* NSDataTests.swift */; }; + C13CC3A029C7B757007F25DE /* TimestampedHistoryEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36529C7B755007F25DE /* TimestampedHistoryEventTests.swift */; }; + C13CC3A129C7B757007F25DE /* CRC8Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36629C7B755007F25DE /* CRC8Tests.swift */; }; + C13CC3A229C7B757007F25DE /* SensorDataHighGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36829C7B756007F25DE /* SensorDataHighGlucoseEventTests.swift */; }; + C13CC3A329C7B757007F25DE /* SensorTimestampGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36929C7B756007F25DE /* SensorTimestampGlucoseEventTests.swift */; }; + C13CC3A429C7B757007F25DE /* BatteryChangeGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36A29C7B756007F25DE /* BatteryChangeGlucoseEventTests.swift */; }; + C13CC3A529C7B757007F25DE /* SensorErrorGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36B29C7B756007F25DE /* SensorErrorGlucoseEventTests.swift */; }; + C13CC3A629C7B757007F25DE /* SensorCalFactorGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36C29C7B756007F25DE /* SensorCalFactorGlucoseEventTests.swift */; }; + C13CC3A729C7B757007F25DE /* SensorCalGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36D29C7B756007F25DE /* SensorCalGlucoseEventTests.swift */; }; + C13CC3A829C7B757007F25DE /* CalBGForGHGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36E29C7B756007F25DE /* CalBGForGHGlucoseEventTests.swift */; }; + C13CC3A929C7B757007F25DE /* SensorStatusGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC36F29C7B756007F25DE /* SensorStatusGlucoseEventTests.swift */; }; + C13CC3AA29C7B757007F25DE /* SensorDataLowGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37029C7B756007F25DE /* SensorDataLowGlucoseEventTests.swift */; }; + C13CC3AB29C7B757007F25DE /* GlucoseSensorDataGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37129C7B756007F25DE /* GlucoseSensorDataGlucoseEventTests.swift */; }; + C13CC3AC29C7B757007F25DE /* SensorSyncGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37229C7B756007F25DE /* SensorSyncGlucoseEventTests.swift */; }; + C13CC3AD29C7B757007F25DE /* DateTimeChangeGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37329C7B756007F25DE /* DateTimeChangeGlucoseEventTests.swift */; }; + C13CC3AE29C7B757007F25DE /* SensorPacketGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37429C7B756007F25DE /* SensorPacketGlucoseEventTests.swift */; }; + C13CC3AF29C7B757007F25DE /* TenSomethingGlucoseEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37529C7B756007F25DE /* TenSomethingGlucoseEventTests.swift */; }; + C13CC3B029C7B757007F25DE /* BasalScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37629C7B756007F25DE /* BasalScheduleTests.swift */; }; + C13CC3B129C7B757007F25DE /* MockRileyLinkProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37829C7B756007F25DE /* MockRileyLinkProvider.swift */; }; + C13CC3B229C7B757007F25DE /* MockPumpManagerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37929C7B756007F25DE /* MockPumpManagerDelegate.swift */; }; + C13CC3B329C7B757007F25DE /* MockPumpOps.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37A29C7B756007F25DE /* MockPumpOps.swift */; }; + C13CC3B429C7B757007F25DE /* MockPumpMessageSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37B29C7B756007F25DE /* MockPumpMessageSender.swift */; }; + C13CC3B529C7B757007F25DE /* MockRileyLinkDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37C29C7B756007F25DE /* MockRileyLinkDevice.swift */; }; + C13CC3B629C7B757007F25DE /* GlucosePageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37D29C7B756007F25DE /* GlucosePageTests.swift */; }; + C13CC3B729C7B757007F25DE /* NSStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37E29C7B756007F25DE /* NSStringExtensions.swift */; }; + C13CC3B829C7B757007F25DE /* ReadSettingsCarelinkMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC37F29C7B756007F25DE /* ReadSettingsCarelinkMessageBodyTests.swift */; }; + C13CC3B929C7B757007F25DE /* PumpModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38029C7B756007F25DE /* PumpModelTests.swift */; }; + C13CC3BB29C7B757007F25DE /* HistoryPageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38229C7B756007F25DE /* HistoryPageTests.swift */; }; + C13CC3BC29C7B757007F25DE /* CRC16Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38329C7B757007F25DE /* CRC16Tests.swift */; }; + C13CC3BD29C7B757007F25DE /* MySentryPumpStatusMessageBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38429C7B757007F25DE /* MySentryPumpStatusMessageBodyTests.swift */; }; + C13CC3BE29C7B757007F25DE /* NSDateComponentsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38529C7B757007F25DE /* NSDateComponentsTests.swift */; }; + C13CC3BF29C7B757007F25DE /* PumpOpsSynchronousBuildFromFramesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38629C7B757007F25DE /* PumpOpsSynchronousBuildFromFramesTests.swift */; }; + C13CC3C029C7B757007F25DE /* ReconciliationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC38729C7B757007F25DE /* ReconciliationTests.swift */; }; + C13CC3C329C7B8BC007F25DE /* MinimedPumpManager.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C13CC3C129C7B8BC007F25DE /* MinimedPumpManager.storyboard */; }; + C13CC3DD29C7BA48007F25DE /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C13CC3DC29C7BA48007F25DE /* OSLog.swift */; }; + C1E3491529C7A866009A50A5 /* MinimedKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E3491429C7A866009A50A5 /* MinimedKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1E34A1E29C7A98F009A50A5 /* CalBGForGHGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492529C7A98B009A50A5 /* CalBGForGHGlucoseEvent.swift */; }; + C1E34A1F29C7A98F009A50A5 /* RelativeTimestampedGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492629C7A98B009A50A5 /* RelativeTimestampedGlucoseEvent.swift */; }; + C1E34A2029C7A98F009A50A5 /* SensorCalGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492729C7A98B009A50A5 /* SensorCalGlucoseEvent.swift */; }; + C1E34A2129C7A98F009A50A5 /* SensorErrorGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492829C7A98B009A50A5 /* SensorErrorGlucoseEvent.swift */; }; + C1E34A2229C7A98F009A50A5 /* TenSomethingGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492929C7A98B009A50A5 /* TenSomethingGlucoseEvent.swift */; }; + C1E34A2329C7A98F009A50A5 /* SensorStatusGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492A29C7A98B009A50A5 /* SensorStatusGlucoseEvent.swift */; }; + C1E34A2429C7A98F009A50A5 /* SensorValueGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492B29C7A98B009A50A5 /* SensorValueGlucoseEvent.swift */; }; + C1E34A2529C7A98F009A50A5 /* SensorSyncGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492C29C7A98B009A50A5 /* SensorSyncGlucoseEvent.swift */; }; + C1E34A2629C7A98F009A50A5 /* SensorTimestampGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492D29C7A98B009A50A5 /* SensorTimestampGlucoseEvent.swift */; }; + C1E34A2729C7A98F009A50A5 /* SensorDataLowGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492E29C7A98B009A50A5 /* SensorDataLowGlucoseEvent.swift */; }; + C1E34A2829C7A98F009A50A5 /* SensorPacketGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3492F29C7A98B009A50A5 /* SensorPacketGlucoseEvent.swift */; }; + C1E34A2929C7A98F009A50A5 /* DateTimeChangeGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493029C7A98B009A50A5 /* DateTimeChangeGlucoseEvent.swift */; }; + C1E34A2A29C7A98F009A50A5 /* UnknownGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493129C7A98B009A50A5 /* UnknownGlucoseEvent.swift */; }; + C1E34A2B29C7A98F009A50A5 /* DataEndGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493229C7A98B009A50A5 /* DataEndGlucoseEvent.swift */; }; + C1E34A2C29C7A98F009A50A5 /* NineteenSomethingGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493329C7A98B009A50A5 /* NineteenSomethingGlucoseEvent.swift */; }; + C1E34A2D29C7A98F009A50A5 /* GlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493429C7A98B009A50A5 /* GlucoseEvent.swift */; }; + C1E34A2E29C7A98F009A50A5 /* GlucoseSensorDataGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493529C7A98B009A50A5 /* GlucoseSensorDataGlucoseEvent.swift */; }; + C1E34A2F29C7A98F009A50A5 /* SensorDataHighGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493629C7A98B009A50A5 /* SensorDataHighGlucoseEvent.swift */; }; + C1E34A3029C7A98F009A50A5 /* BatteryChangeGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493729C7A98B009A50A5 /* BatteryChangeGlucoseEvent.swift */; }; + C1E34A3129C7A98F009A50A5 /* SensorCalFactorGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493829C7A98B009A50A5 /* SensorCalFactorGlucoseEvent.swift */; }; + C1E34A3229C7A98F009A50A5 /* SensorWeakSignalGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493929C7A98B009A50A5 /* SensorWeakSignalGlucoseEvent.swift */; }; + C1E34A3329C7A98F009A50A5 /* SensorValueGlucoseEvent+CGMManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493B29C7A98B009A50A5 /* SensorValueGlucoseEvent+CGMManager.swift */; }; + C1E34A3429C7A98F009A50A5 /* MySentryPumpStatusMessageBody+CGMManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3493C29C7A98B009A50A5 /* MySentryPumpStatusMessageBody+CGMManager.swift */; }; + C1E34A3829C7A98F009A50A5 /* MinimedPumpManagerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494529C7A98C009A50A5 /* MinimedPumpManagerState.swift */; }; + C1E34A3929C7A98F009A50A5 /* MinimedPumpManagerRecents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494629C7A98C009A50A5 /* MinimedPumpManagerRecents.swift */; }; + C1E34A3A29C7A98F009A50A5 /* EnliteSensorDisplayable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494729C7A98C009A50A5 /* EnliteSensorDisplayable.swift */; }; + C1E34A3B29C7A98F009A50A5 /* PumpOpsSession+LoopKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494829C7A98C009A50A5 /* PumpOpsSession+LoopKit.swift */; }; + C1E34A3C29C7A98F009A50A5 /* BasalProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494929C7A98C009A50A5 /* BasalProfile.swift */; }; + C1E34A3D29C7A98F009A50A5 /* HistoryPage+PumpOpsSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494A29C7A98C009A50A5 /* HistoryPage+PumpOpsSession.swift */; }; + C1E34A3E29C7A98F009A50A5 /* ReservoirReading.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494B29C7A98C009A50A5 /* ReservoirReading.swift */; }; + C1E34A3F29C7A98F009A50A5 /* PumpMessageSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494C29C7A98C009A50A5 /* PumpMessageSender.swift */; }; + C1E34A4029C7A98F009A50A5 /* MinimedPumpManagerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494D29C7A98C009A50A5 /* MinimedPumpManagerError.swift */; }; + C1E34A4129C7A98F009A50A5 /* DoseStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494E29C7A98C009A50A5 /* DoseStore.swift */; }; + C1E34A4229C7A98F009A50A5 /* PumpSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3494F29C7A98C009A50A5 /* PumpSettings.swift */; }; + C1E34A4329C7A98F009A50A5 /* PumpOps.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495029C7A98C009A50A5 /* PumpOps.swift */; }; + C1E34A4429C7A98F009A50A5 /* PumpMessage+PumpOpsSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495129C7A98C009A50A5 /* PumpMessage+PumpOpsSession.swift */; }; + C1E34A4529C7A98F009A50A5 /* InsulinDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495229C7A98C009A50A5 /* InsulinDataSource.swift */; }; + C1E34A4629C7A98F009A50A5 /* MinimedDoseProgressEstimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495329C7A98C009A50A5 /* MinimedDoseProgressEstimator.swift */; }; + C1E34A4729C7A98F009A50A5 /* MinimedPumpMessageSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495429C7A98C009A50A5 /* MinimedPumpMessageSender.swift */; }; + C1E34A4829C7A98F009A50A5 /* MinimedPumpManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495529C7A98C009A50A5 /* MinimedPumpManager.swift */; }; + C1E34A4929C7A98F009A50A5 /* UnfinalizedDose.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495629C7A98C009A50A5 /* UnfinalizedDose.swift */; }; + C1E34A4A29C7A98F009A50A5 /* RileyLinkDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495729C7A98C009A50A5 /* RileyLinkDevice.swift */; }; + C1E34A4B29C7A98F009A50A5 /* PumpOpsError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495829C7A98C009A50A5 /* PumpOpsError.swift */; }; + C1E34A4C29C7A98F009A50A5 /* PumpState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3495929C7A98C009A50A5 /* PumpState.swift */; }; + C1E34A5029C7A98F009A50A5 /* ChangeWatchdogEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496429C7A98C009A50A5 /* ChangeWatchdogEnablePumpEvent.swift */; }; + C1E34A5129C7A98F009A50A5 /* PumpAlarmPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496529C7A98C009A50A5 /* PumpAlarmPumpEvent.swift */; }; + C1E34A5229C7A98F009A50A5 /* ChangeCaptureEventEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496629C7A98C009A50A5 /* ChangeCaptureEventEnablePumpEvent.swift */; }; + C1E34A5329C7A98F009A50A5 /* TempBasalDurationPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496729C7A98C009A50A5 /* TempBasalDurationPumpEvent.swift */; }; + C1E34A5429C7A98F009A50A5 /* ChangeBolusScrollStepSizePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496829C7A98C009A50A5 /* ChangeBolusScrollStepSizePumpEvent.swift */; }; + C1E34A5529C7A98F009A50A5 /* ChangeSensorSetup2PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496929C7A98C009A50A5 /* ChangeSensorSetup2PumpEvent.swift */; }; + C1E34A5629C7A98F009A50A5 /* JournalEntryInsulinMarkerPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496A29C7A98C009A50A5 /* JournalEntryInsulinMarkerPumpEvent.swift */; }; + C1E34A5729C7A98F009A50A5 /* ChangeMaxBolusPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496B29C7A98C009A50A5 /* ChangeMaxBolusPumpEvent.swift */; }; + C1E34A5829C7A98F009A50A5 /* ChangeVariableBolusPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496C29C7A98C009A50A5 /* ChangeVariableBolusPumpEvent.swift */; }; + C1E34A5929C7A98F009A50A5 /* ChangeBolusReminderEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496D29C7A98C009A50A5 /* ChangeBolusReminderEnablePumpEvent.swift */; }; + C1E34A5A29C7A98F009A50A5 /* ChangeCarbUnitsPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496E29C7A98C009A50A5 /* ChangeCarbUnitsPumpEvent.swift */; }; + C1E34A5B29C7A98F009A50A5 /* BolusWizardEstimatePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3496F29C7A98C009A50A5 /* BolusWizardEstimatePumpEvent.swift */; }; + C1E34A5C29C7A98F009A50A5 /* ClearAlarmPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497029C7A98C009A50A5 /* ClearAlarmPumpEvent.swift */; }; + C1E34A5D29C7A98F009A50A5 /* ChangeAlarmNotifyModePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497129C7A98C009A50A5 /* ChangeAlarmNotifyModePumpEvent.swift */; }; + C1E34A5E29C7A98F009A50A5 /* ChangeAlarmClockEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497229C7A98C009A50A5 /* ChangeAlarmClockEnablePumpEvent.swift */; }; + C1E34A5F29C7A98F009A50A5 /* JournalEntryPumpLowReservoirPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497329C7A98C009A50A5 /* JournalEntryPumpLowReservoirPumpEvent.swift */; }; + C1E34A6029C7A98F009A50A5 /* ChangeTimeFormatPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497429C7A98C009A50A5 /* ChangeTimeFormatPumpEvent.swift */; }; + C1E34A6129C7A98F009A50A5 /* SelectBasalProfilePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497529C7A98C009A50A5 /* SelectBasalProfilePumpEvent.swift */; }; + C1E34A6229C7A98F009A50A5 /* DailyTotal522PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497629C7A98C009A50A5 /* DailyTotal522PumpEvent.swift */; }; + C1E34A6329C7A98F009A50A5 /* BGReceivedPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497729C7A98C009A50A5 /* BGReceivedPumpEvent.swift */; }; + C1E34A6429C7A98F009A50A5 /* TimestampedPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497829C7A98C009A50A5 /* TimestampedPumpEvent.swift */; }; + C1E34A6529C7A98F009A50A5 /* SuspendPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497929C7A98C009A50A5 /* SuspendPumpEvent.swift */; }; + C1E34A6629C7A98F009A50A5 /* EnableBolusWizardPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497A29C7A98C009A50A5 /* EnableBolusWizardPumpEvent.swift */; }; + C1E34A6729C7A98F009A50A5 /* UnabsorbedInsulinPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497B29C7A98C009A50A5 /* UnabsorbedInsulinPumpEvent.swift */; }; + C1E34A6829C7A98F009A50A5 /* DeleteOtherDeviceIDPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497C29C7A98C009A50A5 /* DeleteOtherDeviceIDPumpEvent.swift */; }; + C1E34A6929C7A98F009A50A5 /* AlarmClockReminderPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497D29C7A98C009A50A5 /* AlarmClockReminderPumpEvent.swift */; }; + C1E34A6A29C7A98F009A50A5 /* ChangeBGReminderEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497E29C7A98C009A50A5 /* ChangeBGReminderEnablePumpEvent.swift */; }; + C1E34A6B29C7A98F009A50A5 /* JournalEntryPumpLowBatteryPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3497F29C7A98C009A50A5 /* JournalEntryPumpLowBatteryPumpEvent.swift */; }; + C1E34A6C29C7A98F009A50A5 /* NewTimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498029C7A98C009A50A5 /* NewTimePumpEvent.swift */; }; + C1E34A6D29C7A98F009A50A5 /* ChangeMaxBasalPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498129C7A98C009A50A5 /* ChangeMaxBasalPumpEvent.swift */; }; + C1E34A6E29C7A98F009A50A5 /* ChangeTempBasalTypePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498229C7A98C009A50A5 /* ChangeTempBasalTypePumpEvent.swift */; }; + C1E34A6F29C7A98F009A50A5 /* ChangeSensorAlarmSilenceConfigPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498329C7A98C009A50A5 /* ChangeSensorAlarmSilenceConfigPumpEvent.swift */; }; + C1E34A7029C7A98F009A50A5 /* ChangeOtherDeviceIDPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498429C7A98C009A50A5 /* ChangeOtherDeviceIDPumpEvent.swift */; }; + C1E34A7129C7A98F009A50A5 /* PrimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498529C7A98C009A50A5 /* PrimePumpEvent.swift */; }; + C1E34A7229C7A98F009A50A5 /* DailyTotal523PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498629C7A98C009A50A5 /* DailyTotal523PumpEvent.swift */; }; + C1E34A7329C7A98F009A50A5 /* BatteryPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498729C7A98C009A50A5 /* BatteryPumpEvent.swift */; }; + C1E34A7429C7A98F009A50A5 /* EnableDisableRemotePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498829C7A98C009A50A5 /* EnableDisableRemotePumpEvent.swift */; }; + C1E34A7529C7A98F009A50A5 /* TempBasalPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498929C7A98C009A50A5 /* TempBasalPumpEvent.swift */; }; + C1E34A7629C7A98F009A50A5 /* ChangeSensorRateOfChangeAlertSetupPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498A29C7A98C009A50A5 /* ChangeSensorRateOfChangeAlertSetupPumpEvent.swift */; }; + C1E34A7729C7A98F009A50A5 /* RestoreMystery55PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498B29C7A98C009A50A5 /* RestoreMystery55PumpEvent.swift */; }; + C1E34A7829C7A98F009A50A5 /* BolusWizardSetupPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498C29C7A98C009A50A5 /* BolusWizardSetupPumpEvent.swift */; }; + C1E34A7929C7A98F009A50A5 /* ChangeTimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498D29C7A98C009A50A5 /* ChangeTimePumpEvent.swift */; }; + C1E34A7A29C7A98F009A50A5 /* ChangeBolusReminderTimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498E29C7A98C009A50A5 /* ChangeBolusReminderTimePumpEvent.swift */; }; + C1E34A7B29C7A98F009A50A5 /* ChangeBolusWizardSetupPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3498F29C7A98C009A50A5 /* ChangeBolusWizardSetupPumpEvent.swift */; }; + C1E34A7C29C7A98F009A50A5 /* PlaceholderPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499029C7A98C009A50A5 /* PlaceholderPumpEvent.swift */; }; + C1E34A7D29C7A98F009A50A5 /* PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499129C7A98C009A50A5 /* PumpEvent.swift */; }; + C1E34A7E29C7A98F009A50A5 /* ChangeBasalProfilePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499229C7A98C009A50A5 /* ChangeBasalProfilePumpEvent.swift */; }; + C1E34A7F29C7A98F009A50A5 /* ResumePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499329C7A98C009A50A5 /* ResumePumpEvent.swift */; }; + C1E34A8029C7A98F009A50A5 /* ChangeBGReminderOffsetPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499429C7A98C009A50A5 /* ChangeBGReminderOffsetPumpEvent.swift */; }; + C1E34A8129C7A98F009A50A5 /* ChangeWatchdogMarriageProfilePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499529C7A98C009A50A5 /* ChangeWatchdogMarriageProfilePumpEvent.swift */; }; + C1E34A8229C7A98F009A50A5 /* BasalProfileStartPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499629C7A98C009A50A5 /* BasalProfileStartPumpEvent.swift */; }; + C1E34A8329C7A98F009A50A5 /* ResultDailyTotalPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499729C7A98C009A50A5 /* ResultDailyTotalPumpEvent.swift */; }; + C1E34A8429C7A98F009A50A5 /* UnknownPumpEvent57.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499829C7A98C009A50A5 /* UnknownPumpEvent57.swift */; }; + C1E34A8529C7A98F009A50A5 /* RestoreMystery54PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499929C7A98C009A50A5 /* RestoreMystery54PumpEvent.swift */; }; + C1E34A8629C7A98F009A50A5 /* CalBGForPHPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499A29C7A98C009A50A5 /* CalBGForPHPumpEvent.swift */; }; + C1E34A8729C7A98F009A50A5 /* ChangeParadigmLinkIDPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499B29C7A98C009A50A5 /* ChangeParadigmLinkIDPumpEvent.swift */; }; + C1E34A8829C7A98F009A50A5 /* ChangeChildBlockEnablePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499C29C7A98C009A50A5 /* ChangeChildBlockEnablePumpEvent.swift */; }; + C1E34A8929C7A98F009A50A5 /* ChangeBasalProfilePatternPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499D29C7A98C009A50A5 /* ChangeBasalProfilePatternPumpEvent.swift */; }; + C1E34A8A29C7A98F009A50A5 /* RewindPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499E29C7A98C009A50A5 /* RewindPumpEvent.swift */; }; + C1E34A8B29C7A98F009A50A5 /* BolusReminderPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E3499F29C7A98C009A50A5 /* BolusReminderPumpEvent.swift */; }; + C1E34A8C29C7A98F009A50A5 /* ChangeMeterIDPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A029C7A98C009A50A5 /* ChangeMeterIDPumpEvent.swift */; }; + C1E34A8D29C7A98F009A50A5 /* ChangeAudioBolusPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A129C7A98C009A50A5 /* ChangeAudioBolusPumpEvent.swift */; }; + C1E34A8E29C7A98F009A50A5 /* DeleteBolusReminderTimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A229C7A98C009A50A5 /* DeleteBolusReminderTimePumpEvent.swift */; }; + C1E34A8F29C7A98F009A50A5 /* ChangeReservoirWarningTimePumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A329C7A98C009A50A5 /* ChangeReservoirWarningTimePumpEvent.swift */; }; + C1E34A9029C7A98F009A50A5 /* JournalEntryExerciseMarkerPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A429C7A98C009A50A5 /* JournalEntryExerciseMarkerPumpEvent.swift */; }; + C1E34A9129C7A98F009A50A5 /* BolusNormalPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A529C7A98C009A50A5 /* BolusNormalPumpEvent.swift */; }; + C1E34A9229C7A98F009A50A5 /* AlarmSensorPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A629C7A98C009A50A5 /* AlarmSensorPumpEvent.swift */; }; + C1E34A9329C7A98F009A50A5 /* DailyTotal515PumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A729C7A98C009A50A5 /* DailyTotal515PumpEvent.swift */; }; + C1E34A9429C7A98F009A50A5 /* JournalEntryMealMarkerPumpEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349A829C7A98C009A50A5 /* JournalEntryMealMarkerPumpEvent.swift */; }; + C1E34A9629C7A98F009A50A5 /* MessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349AD29C7A98C009A50A5 /* MessageBody.swift */; }; + C1E34A9729C7A98F009A50A5 /* ReadCurrentPageNumberMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349AE29C7A98C009A50A5 /* ReadCurrentPageNumberMessageBody.swift */; }; + C1E34A9829C7A98F009A50A5 /* PowerOnCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349AF29C7A98C009A50A5 /* PowerOnCarelinkMessageBody.swift */; }; + C1E34A9929C7A98F009A50A5 /* GetBatteryCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B029C7A98C009A50A5 /* GetBatteryCarelinkMessageBody.swift */; }; + C1E34A9A29C7A98F009A50A5 /* SetRemoteControlEnabledMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B129C7A98C009A50A5 /* SetRemoteControlEnabledMessageBody.swift */; }; + C1E34A9B29C7A98F009A50A5 /* GetHistoryPageCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B229C7A98C009A50A5 /* GetHistoryPageCarelinkMessageBody.swift */; }; + C1E34A9C29C7A98F009A50A5 /* PumpAckMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B329C7A98C009A50A5 /* PumpAckMessageBody.swift */; }; + C1E34A9D29C7A98F009A50A5 /* MySentryAckMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B429C7A98C009A50A5 /* MySentryAckMessageBody.swift */; }; + C1E34A9E29C7A98F009A50A5 /* MySentryAlertMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B529C7A98C009A50A5 /* MySentryAlertMessageBody.swift */; }; + C1E34A9F29C7A98F009A50A5 /* PumpErrorMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B629C7A98C009A50A5 /* PumpErrorMessageBody.swift */; }; + C1E34AA029C7A98F009A50A5 /* UnknownMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B729C7A98C009A50A5 /* UnknownMessageBody.swift */; }; + C1E34AA129C7A98F009A50A5 /* DeviceLinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B829C7A98C009A50A5 /* DeviceLinkMessageBody.swift */; }; + C1E34AA229C7A98F009A50A5 /* ReadTempBasalCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349B929C7A98C009A50A5 /* ReadTempBasalCarelinkMessageBody.swift */; }; + C1E34AA329C7A98F009A50A5 /* ReadCurrentGlucosePageMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349BA29C7A98C009A50A5 /* ReadCurrentGlucosePageMessageBody.swift */; }; + C1E34AA429C7A98F009A50A5 /* GlucosePage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349BC29C7A98C009A50A5 /* GlucosePage.swift */; }; + C1E34AA529C7A98F009A50A5 /* HistoryPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349BD29C7A98C009A50A5 /* HistoryPage.swift */; }; + C1E34AA629C7A98F009A50A5 /* GlucoseEventType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349BE29C7A98C009A50A5 /* GlucoseEventType.swift */; }; + C1E34AA729C7A98F009A50A5 /* TimestampedGlucoseEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349BF29C7A98C009A50A5 /* TimestampedGlucoseEvent.swift */; }; + C1E34AA829C7A98F009A50A5 /* PartialDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C029C7A98C009A50A5 /* PartialDecode.swift */; }; + C1E34AA929C7A98F009A50A5 /* MySentryAlertType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C129C7A98C009A50A5 /* MySentryAlertType.swift */; }; + C1E34AAA29C7A98F009A50A5 /* CRC16.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C229C7A98C009A50A5 /* CRC16.swift */; }; + C1E34AAB29C7A98F009A50A5 /* BasalSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C329C7A98C009A50A5 /* BasalSchedule.swift */; }; + C1E34AAC29C7A98F009A50A5 /* PumpEventType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C429C7A98C009A50A5 /* PumpEventType.swift */; }; + C1E34AAD29C7A98F009A50A5 /* TimestampedHistoryEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C529C7A98C009A50A5 /* TimestampedHistoryEvent.swift */; }; + C1E34AAE29C7A98F009A50A5 /* GetGlucosePageMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C629C7A98C009A50A5 /* GetGlucosePageMessageBody.swift */; }; + C1E34AAF29C7A98F009A50A5 /* MySentryPumpStatusMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C729C7A98C009A50A5 /* MySentryPumpStatusMessageBody.swift */; }; + C1E34AB029C7A98F009A50A5 /* GetPumpModelCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C829C7A98C009A50A5 /* GetPumpModelCarelinkMessageBody.swift */; }; + C1E34AB129C7A98F009A50A5 /* MySentryAlertClearedMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349C929C7A98C009A50A5 /* MySentryAlertClearedMessageBody.swift */; }; + C1E34AB229C7A98F009A50A5 /* ChangeTempBasalCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CA29C7A98C009A50A5 /* ChangeTempBasalCarelinkMessageBody.swift */; }; + C1E34AB329C7A98F009A50A5 /* ReadOtherDevicesIDsMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CB29C7A98C009A50A5 /* ReadOtherDevicesIDsMessageBody.swift */; }; + C1E34AB429C7A98F009A50A5 /* ReadTimeCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CC29C7A98C009A50A5 /* ReadTimeCarelinkMessageBody.swift */; }; + C1E34AB529C7A98F009A50A5 /* ReadSettingsCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CD29C7A98C009A50A5 /* ReadSettingsCarelinkMessageBody.swift */; }; + C1E34AB629C7A98F009A50A5 /* GetPumpFirmwareVersionMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CE29C7A98C009A50A5 /* GetPumpFirmwareVersionMessageBody.swift */; }; + C1E34AB729C7A98F009A50A5 /* MessageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349CF29C7A98C009A50A5 /* MessageType.swift */; }; + C1E34AB829C7A98F009A50A5 /* ReadRemoteControlIDsMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D029C7A98C009A50A5 /* ReadRemoteControlIDsMessageBody.swift */; }; + C1E34AB929C7A98F009A50A5 /* PumpMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D129C7A98C009A50A5 /* PumpMessage.swift */; }; + C1E34ABA29C7A98F009A50A5 /* SuspendResumeMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D229C7A98C009A50A5 /* SuspendResumeMessageBody.swift */; }; + C1E34ABB29C7A98F009A50A5 /* ReadOtherDevicesStatusMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D329C7A98C009A50A5 /* ReadOtherDevicesStatusMessageBody.swift */; }; + C1E34ABC29C7A98F009A50A5 /* ChangeMaxBolusMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D429C7A98C009A50A5 /* ChangeMaxBolusMessageBody.swift */; }; + C1E34ABD29C7A98F009A50A5 /* ChangeMaxBasalRateMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D529C7A98C009A50A5 /* ChangeMaxBasalRateMessageBody.swift */; }; + C1E34ABE29C7A98F009A50A5 /* FindDeviceMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D629C7A98C009A50A5 /* FindDeviceMessageBody.swift */; }; + C1E34ABF29C7A98F009A50A5 /* ReadRemainingInsulinMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D729C7A98C009A50A5 /* ReadRemainingInsulinMessageBody.swift */; }; + C1E34AC029C7A98F009A50A5 /* PacketType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D829C7A98C009A50A5 /* PacketType.swift */; }; + C1E34AC129C7A98F009A50A5 /* MeterMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349D929C7A98C009A50A5 /* MeterMessage.swift */; }; + C1E34AC229C7A98F009A50A5 /* BolusCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DA29C7A98C009A50A5 /* BolusCarelinkMessageBody.swift */; }; + C1E34AC329C7A98F009A50A5 /* DataFrameMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DB29C7A98C009A50A5 /* DataFrameMessageBody.swift */; }; + C1E34AC429C7A98F009A50A5 /* ChangeRemoteControlIDMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DC29C7A98C009A50A5 /* ChangeRemoteControlIDMessageBody.swift */; }; + C1E34AC529C7A98F009A50A5 /* ReadPumpStatusMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DD29C7A98C009A50A5 /* ReadPumpStatusMessageBody.swift */; }; + C1E34AC629C7A98F009A50A5 /* ChangeTimeCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DE29C7A98C009A50A5 /* ChangeTimeCarelinkMessageBody.swift */; }; + C1E34AC729C7A98F009A50A5 /* SelectBasalProfileMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349DF29C7A98C009A50A5 /* SelectBasalProfileMessageBody.swift */; }; + C1E34AC829C7A98F009A50A5 /* ButtonPressCarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349E029C7A98D009A50A5 /* ButtonPressCarelinkMessageBody.swift */; }; + C1E34AC929C7A98F009A50A5 /* CarelinkMessageBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349E129C7A98D009A50A5 /* CarelinkMessageBody.swift */; }; + C1E34ACC29C7A98F009A50A5 /* BatteryChemistryType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349E929C7A98D009A50A5 /* BatteryChemistryType.swift */; }; + C1E34ACD29C7A98F009A50A5 /* PumpColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349EA29C7A98D009A50A5 /* PumpColor.swift */; }; + C1E34ACE29C7A98F009A50A5 /* PumpModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349EB29C7A98D009A50A5 /* PumpModel.swift */; }; + C1E34ACF29C7A98F009A50A5 /* PumpRegion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349EC29C7A98D009A50A5 /* PumpRegion.swift */; }; + C1E34AD029C7A98F009A50A5 /* MinimedPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349EE29C7A98D009A50A5 /* MinimedPacket.swift */; }; + C1E34AD129C7A98F009A50A5 /* CRC8.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349EF29C7A98D009A50A5 /* CRC8.swift */; }; + C1E34AD229C7A98F009A50A5 /* FourByteSixByteEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E349F029C7A98D009A50A5 /* FourByteSixByteEncoding.swift */; }; + C1E34ADC29C7A98F009A50A5 /* ISO8601DateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34A0D29C7A98E009A50A5 /* ISO8601DateFormatter.swift */; }; + C1E34ADD29C7A98F009A50A5 /* Int.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34A0E29C7A98E009A50A5 /* Int.swift */; }; + C1E34ADE29C7A98F009A50A5 /* NSDateComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34A0F29C7A98E009A50A5 /* NSDateComponents.swift */; }; + C1E34AFB29C7A9BD009A50A5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1E34AE429C7A9BC009A50A5 /* Localizable.strings */; }; + C1E34B0429C7ABCB009A50A5 /* MinimedKitUI.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E34B0329C7ABCB009A50A5 /* MinimedKitUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1E34B2329C7ABF3009A50A5 /* MinimedKitUI.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1E34B0829C7ABF2009A50A5 /* MinimedKitUI.xcassets */; }; + C1E34B2429C7ABF3009A50A5 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B0A29C7ABF2009A50A5 /* Image.swift */; }; + C1E34B2529C7ABF3009A50A5 /* MinimedPumpIDSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B0C29C7ABF2009A50A5 /* MinimedPumpIDSetupViewController.swift */; }; + C1E34B2629C7ABF3009A50A5 /* MinimedPumpManagerSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B0D29C7ABF2009A50A5 /* MinimedPumpManagerSetupViewController.swift */; }; + C1E34B2729C7ABF3009A50A5 /* MinimedPumpClockSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B0E29C7ABF2009A50A5 /* MinimedPumpClockSetupViewController.swift */; }; + C1E34B2829C7ABF3009A50A5 /* MinimedPumpSetupCompleteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B0F29C7ABF2009A50A5 /* MinimedPumpSetupCompleteViewController.swift */; }; + C1E34B2929C7ABF3009A50A5 /* MinimedPumpSentrySetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1029C7ABF2009A50A5 /* MinimedPumpSentrySetupViewController.swift */; }; + C1E34B2A29C7ABF3009A50A5 /* MinimedPumpManager+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1129C7ABF2009A50A5 /* MinimedPumpManager+UI.swift */; }; + C1E34B2B29C7ABF3009A50A5 /* PumpModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1229C7ABF2009A50A5 /* PumpModel.swift */; }; + C1E34B2C29C7ABF3009A50A5 /* RadioSelectionTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1329C7ABF2009A50A5 /* RadioSelectionTableViewController.swift */; }; + C1E34B2E29C7ABF3009A50A5 /* MinimedPumpUICoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1529C7ABF2009A50A5 /* MinimedPumpUICoordinator.swift */; }; + C1E34B2F29C7ABF3009A50A5 /* CommandResponseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1629C7ABF2009A50A5 /* CommandResponseViewController.swift */; }; + C1E34B3029C7ABF3009A50A5 /* MinimedHUDProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1729C7ABF2009A50A5 /* MinimedHUDProvider.swift */; }; + C1E34B3129C7ABF3009A50A5 /* UseMySentrySelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1929C7ABF3009A50A5 /* UseMySentrySelectionView.swift */; }; + C1E34B3229C7ABF3009A50A5 /* DataSourceSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1A29C7ABF3009A50A5 /* DataSourceSelectionView.swift */; }; + C1E34B3329C7ABF3009A50A5 /* BatteryTypeSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1B29C7ABF3009A50A5 /* BatteryTypeSelectionView.swift */; }; + C1E34B3429C7ABF3009A50A5 /* ReservoirHUDView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C1E34B1C29C7ABF3009A50A5 /* ReservoirHUDView.xib */; }; + C1E34B3529C7ABF3009A50A5 /* MinimedPumpSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1D29C7ABF3009A50A5 /* MinimedPumpSettingsView.swift */; }; + C1E34B3629C7ABF3009A50A5 /* ReservoirHUDView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1E29C7ABF3009A50A5 /* ReservoirHUDView.swift */; }; + C1E34B3729C7ABF3009A50A5 /* MinimedPumpSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B1F29C7ABF3009A50A5 /* MinimedPumpSettingsViewModel.swift */; }; + C1E34B3829C7ABF3009A50A5 /* InsulinTypeConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B2029C7ABF3009A50A5 /* InsulinTypeConfirmation.swift */; }; + C1E34B3929C7ABF3009A50A5 /* MinimedReservoirView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B2129C7ABF3009A50A5 /* MinimedReservoirView.swift */; }; + C1E34B3A29C7ABF3009A50A5 /* TimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B2229C7ABF3009A50A5 /* TimeView.swift */; }; + C1E34B3E29C7AC0A009A50A5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C1E34B4029C7AC0A009A50A5 /* Localizable.strings */; }; + C1E34B6429C7AD31009A50A5 /* MinimedKitPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B6229C7AD31009A50A5 /* MinimedKitPlugin.swift */; }; + C1E34B6829C7AD62009A50A5 /* LoopKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B6729C7AD62009A50A5 /* LoopKit.framework */; }; + C1E34B6B29C7AD9C009A50A5 /* MinimedKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E3491129C7A866009A50A5 /* MinimedKit.framework */; }; + C1E34B6C29C7AD9C009A50A5 /* MinimedKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1E3491129C7A866009A50A5 /* MinimedKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1E34B6F29C7AD9C009A50A5 /* MinimedKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B0129C7ABCB009A50A5 /* MinimedKitUI.framework */; }; + C1E34B7029C7AD9C009A50A5 /* MinimedKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B0129C7ABCB009A50A5 /* MinimedKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1E34B7529C7AF61009A50A5 /* LocalisedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B7429C7AF61009A50A5 /* LocalisedString.swift */; }; + C1E34B7729C7AFCF009A50A5 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B7629C7AFCF009A50A5 /* Data.swift */; }; + C1E34B7929C7AFF7009A50A5 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B7829C7AFF7009A50A5 /* TimeInterval.swift */; }; + C1E34B7B29C7B044009A50A5 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B7A29C7B044009A50A5 /* OSLog.swift */; }; + C1E34B7D29C7B075009A50A5 /* RileyLinkKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B7C29C7B075009A50A5 /* RileyLinkKit.framework */; }; + C1E34B8129C7B155009A50A5 /* PumpOpsSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8029C7B155009A50A5 /* PumpOpsSession.swift */; }; + C1E34B8329C7B1AB009A50A5 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8229C7B1AB009A50A5 /* TimeZone.swift */; }; + C1E34B8529C7B1D4009A50A5 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8429C7B1D4009A50A5 /* HKUnit.swift */; }; + C1E34B8829C7B292009A50A5 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8729C7B292009A50A5 /* Comparable.swift */; }; + C1E34B8A29C7B2FC009A50A5 /* LocalisedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8929C7B2FC009A50A5 /* LocalisedString.swift */; }; + C1E34B8C29C7B334009A50A5 /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8B29C7B334009A50A5 /* IdentifiableClass.swift */; }; + C1E34B8E29C7B34F009A50A5 /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8D29C7B34F009A50A5 /* NibLoadable.swift */; }; + C1E34B9029C7B38A009A50A5 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B8F29C7B38A009A50A5 /* NumberFormatter.swift */; }; + C1E34B9229C7B46C009A50A5 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1E34B9129C7B46C009A50A5 /* TimeZone.swift */; }; + C1E34B9829C7B5A3009A50A5 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B9729C7B5A3009A50A5 /* LoopKitUI.framework */; }; + C1E34B9A29C7B5E9009A50A5 /* RileyLinkKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B9329C7B59B009A50A5 /* RileyLinkKitUI.framework */; }; + C1E34B9D29C7B623009A50A5 /* RileyLinkKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B9329C7B59B009A50A5 /* RileyLinkKitUI.framework */; }; + C1E34B9E29C7B623009A50A5 /* RileyLinkKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B9329C7B59B009A50A5 /* RileyLinkKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1E34B9F29C7B649009A50A5 /* RileyLinkKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B7C29C7B075009A50A5 /* RileyLinkKit.framework */; }; + C1E34BA029C7B649009A50A5 /* RileyLinkKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34B7C29C7B075009A50A5 /* RileyLinkKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1E34BA229C7B652009A50A5 /* RileyLinkBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34BA129C7B652009A50A5 /* RileyLinkBLEKit.framework */; }; + C1E34BA329C7B652009A50A5 /* RileyLinkBLEKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1E34BA129C7B652009A50A5 /* RileyLinkBLEKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C13CC33A29C7B6BC007F25DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C1E3490829C7A866009A50A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1E3491029C7A866009A50A5; + remoteInfo = MinimedKit; + }; + C13CC34629C7B73A007F25DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C1E3490829C7A866009A50A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1E3491029C7A866009A50A5; + remoteInfo = MinimedKit; + }; + C1E34B6D29C7AD9C009A50A5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C1E3490829C7A866009A50A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1E3491029C7A866009A50A5; + remoteInfo = MinimedKit; + }; + C1E34B7129C7AD9C009A50A5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C1E3490829C7A866009A50A5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1E34B0029C7ABCB009A50A5; + remoteInfo = MinimedKitUI; + }; + CEC751C729D88240006E9D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = C124016C29C7D87A00B32844; + remoteInfo = OmniKit; + }; + CEC751C929D88240006E9D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = C124020B29C7D92700B32844; + remoteInfo = OmniKitUI; + }; + CEC751CB29D88240006E9D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = C124021729C7D93D00B32844; + remoteInfo = OmniKitPlugin; + }; + CEC751CD29D88240006E9D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = C12ED9CA29C7DBA900435701; + remoteInfo = OmniKitTests; + }; + CEC751CF29D88240006E9D24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = C1229C6B29C7F0840066A89C; + remoteInfo = OmniKitPacketParser; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + C1E34B7329C7AD9C009A50A5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + C1E34BA329C7B652009A50A5 /* RileyLinkBLEKit.framework in Embed Frameworks */, + C1E34B9E29C7B623009A50A5 /* RileyLinkKitUI.framework in Embed Frameworks */, + C1E34BA029C7B649009A50A5 /* RileyLinkKit.framework in Embed Frameworks */, + C1E34B6C29C7AD9C009A50A5 /* MinimedKit.framework in Embed Frameworks */, + C1E34B7029C7AD9C009A50A5 /* MinimedKitUI.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + C1229C2129C7ECA70066A89C /* TimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C1229C2329C7ECEB0066A89C /* Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C13CC34129C7B73A007F25DE /* MinimedKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MinimedKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C13CC34C29C7B755007F25DE /* ResumePumpEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResumePumpEventTests.swift; sourceTree = ""; }; + C13CC34D29C7B755007F25DE /* BolusNormalPumpEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusNormalPumpEventTests.swift; sourceTree = ""; }; + C13CC34F29C7B755007F25DE /* ReadCurrentGlucosePageMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadCurrentGlucosePageMessageBodyTests.swift; sourceTree = ""; }; + C13CC35029C7B755007F25DE /* ChangeTimeCarelinMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTimeCarelinMessageBodyTests.swift; sourceTree = ""; }; + C13CC35129C7B755007F25DE /* MeterMessageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeterMessageTests.swift; sourceTree = ""; }; + C13CC35229C7B755007F25DE /* ChangeTempBasalCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTempBasalCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35329C7B755007F25DE /* ReadOtherDevicesIDsMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadOtherDevicesIDsMessageBodyTests.swift; sourceTree = ""; }; + C13CC35429C7B755007F25DE /* BolusCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35529C7B755007F25DE /* FindDeviceMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FindDeviceMessageBodyTests.swift; sourceTree = ""; }; + C13CC35629C7B755007F25DE /* ReadRemoteControlIDsMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadRemoteControlIDsMessageBodyTests.swift; sourceTree = ""; }; + C13CC35729C7B755007F25DE /* ReadTempBasalCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadTempBasalCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35829C7B755007F25DE /* DeviceLinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceLinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35929C7B755007F25DE /* ChangeMaxBasalRateMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBasalRateMessageBodyTests.swift; sourceTree = ""; }; + C13CC35A29C7B755007F25DE /* ChangeRemoteControlIDMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeRemoteControlIDMessageBodyTests.swift; sourceTree = ""; }; + C13CC35B29C7B755007F25DE /* GetBatteryCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetBatteryCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35C29C7B755007F25DE /* ReadRemainingInsulinMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadRemainingInsulinMessageBodyTests.swift; sourceTree = ""; }; + C13CC35D29C7B755007F25DE /* ChangeMaxBolusMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBolusMessageBodyTests.swift; sourceTree = ""; }; + C13CC35E29C7B755007F25DE /* GetPumpModelCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetPumpModelCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC35F29C7B755007F25DE /* GetGlucosePageMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetGlucosePageMessageBodyTests.swift; sourceTree = ""; }; + C13CC36029C7B755007F25DE /* MinimedPacketTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPacketTests.swift; sourceTree = ""; }; + C13CC36129C7B755007F25DE /* MinimedPumpManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManagerTests.swift; sourceTree = ""; }; + C13CC36229C7B755007F25DE /* NSDateComponents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDateComponents.swift; sourceTree = ""; }; + C13CC36329C7B755007F25DE /* PumpOpsSynchronousTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpOpsSynchronousTests.swift; sourceTree = ""; }; + C13CC36429C7B755007F25DE /* NSDataTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDataTests.swift; sourceTree = ""; }; + C13CC36529C7B755007F25DE /* TimestampedHistoryEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampedHistoryEventTests.swift; sourceTree = ""; }; + C13CC36629C7B755007F25DE /* CRC8Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC8Tests.swift; sourceTree = ""; }; + C13CC36829C7B756007F25DE /* SensorDataHighGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorDataHighGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36929C7B756007F25DE /* SensorTimestampGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorTimestampGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36A29C7B756007F25DE /* BatteryChangeGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatteryChangeGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36B29C7B756007F25DE /* SensorErrorGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorErrorGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36C29C7B756007F25DE /* SensorCalFactorGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorCalFactorGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36D29C7B756007F25DE /* SensorCalGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorCalGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36E29C7B756007F25DE /* CalBGForGHGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalBGForGHGlucoseEventTests.swift; sourceTree = ""; }; + C13CC36F29C7B756007F25DE /* SensorStatusGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorStatusGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37029C7B756007F25DE /* SensorDataLowGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorDataLowGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37129C7B756007F25DE /* GlucoseSensorDataGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseSensorDataGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37229C7B756007F25DE /* SensorSyncGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorSyncGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37329C7B756007F25DE /* DateTimeChangeGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimeChangeGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37429C7B756007F25DE /* SensorPacketGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorPacketGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37529C7B756007F25DE /* TenSomethingGlucoseEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TenSomethingGlucoseEventTests.swift; sourceTree = ""; }; + C13CC37629C7B756007F25DE /* BasalScheduleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalScheduleTests.swift; sourceTree = ""; }; + C13CC37829C7B756007F25DE /* MockRileyLinkProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockRileyLinkProvider.swift; sourceTree = ""; }; + C13CC37929C7B756007F25DE /* MockPumpManagerDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockPumpManagerDelegate.swift; sourceTree = ""; }; + C13CC37A29C7B756007F25DE /* MockPumpOps.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockPumpOps.swift; sourceTree = ""; }; + C13CC37B29C7B756007F25DE /* MockPumpMessageSender.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockPumpMessageSender.swift; sourceTree = ""; }; + C13CC37C29C7B756007F25DE /* MockRileyLinkDevice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockRileyLinkDevice.swift; sourceTree = ""; }; + C13CC37D29C7B756007F25DE /* GlucosePageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucosePageTests.swift; sourceTree = ""; }; + C13CC37E29C7B756007F25DE /* NSStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSStringExtensions.swift; sourceTree = ""; }; + C13CC37F29C7B756007F25DE /* ReadSettingsCarelinkMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadSettingsCarelinkMessageBodyTests.swift; sourceTree = ""; }; + C13CC38029C7B756007F25DE /* PumpModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpModelTests.swift; sourceTree = ""; }; + C13CC38129C7B756007F25DE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C13CC38229C7B756007F25DE /* HistoryPageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoryPageTests.swift; sourceTree = ""; }; + C13CC38329C7B757007F25DE /* CRC16Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC16Tests.swift; sourceTree = ""; }; + C13CC38429C7B757007F25DE /* MySentryPumpStatusMessageBodyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryPumpStatusMessageBodyTests.swift; sourceTree = ""; }; + C13CC38529C7B757007F25DE /* NSDateComponentsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDateComponentsTests.swift; sourceTree = ""; }; + C13CC38629C7B757007F25DE /* PumpOpsSynchronousBuildFromFramesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpOpsSynchronousBuildFromFramesTests.swift; sourceTree = ""; }; + C13CC38729C7B757007F25DE /* ReconciliationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReconciliationTests.swift; sourceTree = ""; }; + C13CC3C229C7B8BC007F25DE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MinimedPumpManager.storyboard; sourceTree = ""; }; + C13CC3C529C7B8D0007F25DE /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3C629C7B8D4007F25DE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3C729C7B8D8007F25DE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MinimedPumpManager.strings"; sourceTree = ""; }; + C13CC3C829C7B8DA007F25DE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3C929C7B8DB007F25DE /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CA29C7B8DC007F25DE /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CB29C7B8DD007F25DE /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CC29C7B8DE007F25DE /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CD29C7B8DF007F25DE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CE29C7B8E0007F25DE /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3CF29C7B8E0007F25DE /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D029C7B8E1007F25DE /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D129C7B8E2007F25DE /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D229C7B8E3007F25DE /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D329C7B8E4007F25DE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/MinimedPumpManager.strings"; sourceTree = ""; }; + C13CC3D429C7B8E5007F25DE /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D529C7B8E5007F25DE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D629C7B8E6007F25DE /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D729C7B8E7007F25DE /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D829C7B8E9007F25DE /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3D929C7B8E9007F25DE /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3DA29C7B8EB007F25DE /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/MinimedPumpManager.strings; sourceTree = ""; }; + C13CC3DC29C7BA48007F25DE /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C1BF2DB929C8007300EB8987 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C1E3491129C7A866009A50A5 /* MinimedKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MinimedKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E3491429C7A866009A50A5 /* MinimedKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinimedKit.h; sourceTree = ""; }; + C1E3492529C7A98B009A50A5 /* CalBGForGHGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalBGForGHGlucoseEvent.swift; sourceTree = ""; }; + C1E3492629C7A98B009A50A5 /* RelativeTimestampedGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RelativeTimestampedGlucoseEvent.swift; sourceTree = ""; }; + C1E3492729C7A98B009A50A5 /* SensorCalGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorCalGlucoseEvent.swift; sourceTree = ""; }; + C1E3492829C7A98B009A50A5 /* SensorErrorGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorErrorGlucoseEvent.swift; sourceTree = ""; }; + C1E3492929C7A98B009A50A5 /* TenSomethingGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TenSomethingGlucoseEvent.swift; sourceTree = ""; }; + C1E3492A29C7A98B009A50A5 /* SensorStatusGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorStatusGlucoseEvent.swift; sourceTree = ""; }; + C1E3492B29C7A98B009A50A5 /* SensorValueGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorValueGlucoseEvent.swift; sourceTree = ""; }; + C1E3492C29C7A98B009A50A5 /* SensorSyncGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorSyncGlucoseEvent.swift; sourceTree = ""; }; + C1E3492D29C7A98B009A50A5 /* SensorTimestampGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorTimestampGlucoseEvent.swift; sourceTree = ""; }; + C1E3492E29C7A98B009A50A5 /* SensorDataLowGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorDataLowGlucoseEvent.swift; sourceTree = ""; }; + C1E3492F29C7A98B009A50A5 /* SensorPacketGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorPacketGlucoseEvent.swift; sourceTree = ""; }; + C1E3493029C7A98B009A50A5 /* DateTimeChangeGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimeChangeGlucoseEvent.swift; sourceTree = ""; }; + C1E3493129C7A98B009A50A5 /* UnknownGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnknownGlucoseEvent.swift; sourceTree = ""; }; + C1E3493229C7A98B009A50A5 /* DataEndGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataEndGlucoseEvent.swift; sourceTree = ""; }; + C1E3493329C7A98B009A50A5 /* NineteenSomethingGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NineteenSomethingGlucoseEvent.swift; sourceTree = ""; }; + C1E3493429C7A98B009A50A5 /* GlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseEvent.swift; sourceTree = ""; }; + C1E3493529C7A98B009A50A5 /* GlucoseSensorDataGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseSensorDataGlucoseEvent.swift; sourceTree = ""; }; + C1E3493629C7A98B009A50A5 /* SensorDataHighGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorDataHighGlucoseEvent.swift; sourceTree = ""; }; + C1E3493729C7A98B009A50A5 /* BatteryChangeGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatteryChangeGlucoseEvent.swift; sourceTree = ""; }; + C1E3493829C7A98B009A50A5 /* SensorCalFactorGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorCalFactorGlucoseEvent.swift; sourceTree = ""; }; + C1E3493929C7A98B009A50A5 /* SensorWeakSignalGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensorWeakSignalGlucoseEvent.swift; sourceTree = ""; }; + C1E3493B29C7A98B009A50A5 /* SensorValueGlucoseEvent+CGMManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SensorValueGlucoseEvent+CGMManager.swift"; sourceTree = ""; }; + C1E3493C29C7A98B009A50A5 /* MySentryPumpStatusMessageBody+CGMManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MySentryPumpStatusMessageBody+CGMManager.swift"; sourceTree = ""; }; + C1E3494029C7A98C009A50A5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C1E3494529C7A98C009A50A5 /* MinimedPumpManagerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManagerState.swift; sourceTree = ""; }; + C1E3494629C7A98C009A50A5 /* MinimedPumpManagerRecents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManagerRecents.swift; sourceTree = ""; }; + C1E3494729C7A98C009A50A5 /* EnliteSensorDisplayable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnliteSensorDisplayable.swift; sourceTree = ""; }; + C1E3494829C7A98C009A50A5 /* PumpOpsSession+LoopKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PumpOpsSession+LoopKit.swift"; sourceTree = ""; }; + C1E3494929C7A98C009A50A5 /* BasalProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalProfile.swift; sourceTree = ""; }; + C1E3494A29C7A98C009A50A5 /* HistoryPage+PumpOpsSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "HistoryPage+PumpOpsSession.swift"; sourceTree = ""; }; + C1E3494B29C7A98C009A50A5 /* ReservoirReading.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReservoirReading.swift; sourceTree = ""; }; + C1E3494C29C7A98C009A50A5 /* PumpMessageSender.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpMessageSender.swift; sourceTree = ""; }; + C1E3494D29C7A98C009A50A5 /* MinimedPumpManagerError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManagerError.swift; sourceTree = ""; }; + C1E3494E29C7A98C009A50A5 /* DoseStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DoseStore.swift; sourceTree = ""; }; + C1E3494F29C7A98C009A50A5 /* PumpSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpSettings.swift; sourceTree = ""; }; + C1E3495029C7A98C009A50A5 /* PumpOps.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpOps.swift; sourceTree = ""; }; + C1E3495129C7A98C009A50A5 /* PumpMessage+PumpOpsSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PumpMessage+PumpOpsSession.swift"; sourceTree = ""; }; + C1E3495229C7A98C009A50A5 /* InsulinDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsulinDataSource.swift; sourceTree = ""; }; + C1E3495329C7A98C009A50A5 /* MinimedDoseProgressEstimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedDoseProgressEstimator.swift; sourceTree = ""; }; + C1E3495429C7A98C009A50A5 /* MinimedPumpMessageSender.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpMessageSender.swift; sourceTree = ""; }; + C1E3495529C7A98C009A50A5 /* MinimedPumpManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManager.swift; sourceTree = ""; }; + C1E3495629C7A98C009A50A5 /* UnfinalizedDose.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnfinalizedDose.swift; sourceTree = ""; }; + C1E3495729C7A98C009A50A5 /* RileyLinkDevice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RileyLinkDevice.swift; sourceTree = ""; }; + C1E3495829C7A98C009A50A5 /* PumpOpsError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpOpsError.swift; sourceTree = ""; }; + C1E3495929C7A98C009A50A5 /* PumpState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpState.swift; sourceTree = ""; }; + C1E3496429C7A98C009A50A5 /* ChangeWatchdogEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeWatchdogEnablePumpEvent.swift; sourceTree = ""; }; + C1E3496529C7A98C009A50A5 /* PumpAlarmPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpAlarmPumpEvent.swift; sourceTree = ""; }; + C1E3496629C7A98C009A50A5 /* ChangeCaptureEventEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeCaptureEventEnablePumpEvent.swift; sourceTree = ""; }; + C1E3496729C7A98C009A50A5 /* TempBasalDurationPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempBasalDurationPumpEvent.swift; sourceTree = ""; }; + C1E3496829C7A98C009A50A5 /* ChangeBolusScrollStepSizePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBolusScrollStepSizePumpEvent.swift; sourceTree = ""; }; + C1E3496929C7A98C009A50A5 /* ChangeSensorSetup2PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeSensorSetup2PumpEvent.swift; sourceTree = ""; }; + C1E3496A29C7A98C009A50A5 /* JournalEntryInsulinMarkerPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JournalEntryInsulinMarkerPumpEvent.swift; sourceTree = ""; }; + C1E3496B29C7A98C009A50A5 /* ChangeMaxBolusPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBolusPumpEvent.swift; sourceTree = ""; }; + C1E3496C29C7A98C009A50A5 /* ChangeVariableBolusPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeVariableBolusPumpEvent.swift; sourceTree = ""; }; + C1E3496D29C7A98C009A50A5 /* ChangeBolusReminderEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBolusReminderEnablePumpEvent.swift; sourceTree = ""; }; + C1E3496E29C7A98C009A50A5 /* ChangeCarbUnitsPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeCarbUnitsPumpEvent.swift; sourceTree = ""; }; + C1E3496F29C7A98C009A50A5 /* BolusWizardEstimatePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusWizardEstimatePumpEvent.swift; sourceTree = ""; }; + C1E3497029C7A98C009A50A5 /* ClearAlarmPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClearAlarmPumpEvent.swift; sourceTree = ""; }; + C1E3497129C7A98C009A50A5 /* ChangeAlarmNotifyModePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeAlarmNotifyModePumpEvent.swift; sourceTree = ""; }; + C1E3497229C7A98C009A50A5 /* ChangeAlarmClockEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeAlarmClockEnablePumpEvent.swift; sourceTree = ""; }; + C1E3497329C7A98C009A50A5 /* JournalEntryPumpLowReservoirPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JournalEntryPumpLowReservoirPumpEvent.swift; sourceTree = ""; }; + C1E3497429C7A98C009A50A5 /* ChangeTimeFormatPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTimeFormatPumpEvent.swift; sourceTree = ""; }; + C1E3497529C7A98C009A50A5 /* SelectBasalProfilePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectBasalProfilePumpEvent.swift; sourceTree = ""; }; + C1E3497629C7A98C009A50A5 /* DailyTotal522PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DailyTotal522PumpEvent.swift; sourceTree = ""; }; + C1E3497729C7A98C009A50A5 /* BGReceivedPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BGReceivedPumpEvent.swift; sourceTree = ""; }; + C1E3497829C7A98C009A50A5 /* TimestampedPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampedPumpEvent.swift; sourceTree = ""; }; + C1E3497929C7A98C009A50A5 /* SuspendPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuspendPumpEvent.swift; sourceTree = ""; }; + C1E3497A29C7A98C009A50A5 /* EnableBolusWizardPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnableBolusWizardPumpEvent.swift; sourceTree = ""; }; + C1E3497B29C7A98C009A50A5 /* UnabsorbedInsulinPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnabsorbedInsulinPumpEvent.swift; sourceTree = ""; }; + C1E3497C29C7A98C009A50A5 /* DeleteOtherDeviceIDPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteOtherDeviceIDPumpEvent.swift; sourceTree = ""; }; + C1E3497D29C7A98C009A50A5 /* AlarmClockReminderPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlarmClockReminderPumpEvent.swift; sourceTree = ""; }; + C1E3497E29C7A98C009A50A5 /* ChangeBGReminderEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBGReminderEnablePumpEvent.swift; sourceTree = ""; }; + C1E3497F29C7A98C009A50A5 /* JournalEntryPumpLowBatteryPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JournalEntryPumpLowBatteryPumpEvent.swift; sourceTree = ""; }; + C1E3498029C7A98C009A50A5 /* NewTimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewTimePumpEvent.swift; sourceTree = ""; }; + C1E3498129C7A98C009A50A5 /* ChangeMaxBasalPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBasalPumpEvent.swift; sourceTree = ""; }; + C1E3498229C7A98C009A50A5 /* ChangeTempBasalTypePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTempBasalTypePumpEvent.swift; sourceTree = ""; }; + C1E3498329C7A98C009A50A5 /* ChangeSensorAlarmSilenceConfigPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeSensorAlarmSilenceConfigPumpEvent.swift; sourceTree = ""; }; + C1E3498429C7A98C009A50A5 /* ChangeOtherDeviceIDPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeOtherDeviceIDPumpEvent.swift; sourceTree = ""; }; + C1E3498529C7A98C009A50A5 /* PrimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrimePumpEvent.swift; sourceTree = ""; }; + C1E3498629C7A98C009A50A5 /* DailyTotal523PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DailyTotal523PumpEvent.swift; sourceTree = ""; }; + C1E3498729C7A98C009A50A5 /* BatteryPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatteryPumpEvent.swift; sourceTree = ""; }; + C1E3498829C7A98C009A50A5 /* EnableDisableRemotePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnableDisableRemotePumpEvent.swift; sourceTree = ""; }; + C1E3498929C7A98C009A50A5 /* TempBasalPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempBasalPumpEvent.swift; sourceTree = ""; }; + C1E3498A29C7A98C009A50A5 /* ChangeSensorRateOfChangeAlertSetupPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeSensorRateOfChangeAlertSetupPumpEvent.swift; sourceTree = ""; }; + C1E3498B29C7A98C009A50A5 /* RestoreMystery55PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RestoreMystery55PumpEvent.swift; sourceTree = ""; }; + C1E3498C29C7A98C009A50A5 /* BolusWizardSetupPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusWizardSetupPumpEvent.swift; sourceTree = ""; }; + C1E3498D29C7A98C009A50A5 /* ChangeTimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTimePumpEvent.swift; sourceTree = ""; }; + C1E3498E29C7A98C009A50A5 /* ChangeBolusReminderTimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBolusReminderTimePumpEvent.swift; sourceTree = ""; }; + C1E3498F29C7A98C009A50A5 /* ChangeBolusWizardSetupPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBolusWizardSetupPumpEvent.swift; sourceTree = ""; }; + C1E3499029C7A98C009A50A5 /* PlaceholderPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlaceholderPumpEvent.swift; sourceTree = ""; }; + C1E3499129C7A98C009A50A5 /* PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpEvent.swift; sourceTree = ""; }; + C1E3499229C7A98C009A50A5 /* ChangeBasalProfilePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBasalProfilePumpEvent.swift; sourceTree = ""; }; + C1E3499329C7A98C009A50A5 /* ResumePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResumePumpEvent.swift; sourceTree = ""; }; + C1E3499429C7A98C009A50A5 /* ChangeBGReminderOffsetPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBGReminderOffsetPumpEvent.swift; sourceTree = ""; }; + C1E3499529C7A98C009A50A5 /* ChangeWatchdogMarriageProfilePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeWatchdogMarriageProfilePumpEvent.swift; sourceTree = ""; }; + C1E3499629C7A98C009A50A5 /* BasalProfileStartPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalProfileStartPumpEvent.swift; sourceTree = ""; }; + C1E3499729C7A98C009A50A5 /* ResultDailyTotalPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResultDailyTotalPumpEvent.swift; sourceTree = ""; }; + C1E3499829C7A98C009A50A5 /* UnknownPumpEvent57.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnknownPumpEvent57.swift; sourceTree = ""; }; + C1E3499929C7A98C009A50A5 /* RestoreMystery54PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RestoreMystery54PumpEvent.swift; sourceTree = ""; }; + C1E3499A29C7A98C009A50A5 /* CalBGForPHPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalBGForPHPumpEvent.swift; sourceTree = ""; }; + C1E3499B29C7A98C009A50A5 /* ChangeParadigmLinkIDPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeParadigmLinkIDPumpEvent.swift; sourceTree = ""; }; + C1E3499C29C7A98C009A50A5 /* ChangeChildBlockEnablePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeChildBlockEnablePumpEvent.swift; sourceTree = ""; }; + C1E3499D29C7A98C009A50A5 /* ChangeBasalProfilePatternPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeBasalProfilePatternPumpEvent.swift; sourceTree = ""; }; + C1E3499E29C7A98C009A50A5 /* RewindPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RewindPumpEvent.swift; sourceTree = ""; }; + C1E3499F29C7A98C009A50A5 /* BolusReminderPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusReminderPumpEvent.swift; sourceTree = ""; }; + C1E349A029C7A98C009A50A5 /* ChangeMeterIDPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMeterIDPumpEvent.swift; sourceTree = ""; }; + C1E349A129C7A98C009A50A5 /* ChangeAudioBolusPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeAudioBolusPumpEvent.swift; sourceTree = ""; }; + C1E349A229C7A98C009A50A5 /* DeleteBolusReminderTimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteBolusReminderTimePumpEvent.swift; sourceTree = ""; }; + C1E349A329C7A98C009A50A5 /* ChangeReservoirWarningTimePumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeReservoirWarningTimePumpEvent.swift; sourceTree = ""; }; + C1E349A429C7A98C009A50A5 /* JournalEntryExerciseMarkerPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JournalEntryExerciseMarkerPumpEvent.swift; sourceTree = ""; }; + C1E349A529C7A98C009A50A5 /* BolusNormalPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusNormalPumpEvent.swift; sourceTree = ""; }; + C1E349A629C7A98C009A50A5 /* AlarmSensorPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlarmSensorPumpEvent.swift; sourceTree = ""; }; + C1E349A729C7A98C009A50A5 /* DailyTotal515PumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DailyTotal515PumpEvent.swift; sourceTree = ""; }; + C1E349A829C7A98C009A50A5 /* JournalEntryMealMarkerPumpEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JournalEntryMealMarkerPumpEvent.swift; sourceTree = ""; }; + C1E349AD29C7A98C009A50A5 /* MessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageBody.swift; sourceTree = ""; }; + C1E349AE29C7A98C009A50A5 /* ReadCurrentPageNumberMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadCurrentPageNumberMessageBody.swift; sourceTree = ""; }; + C1E349AF29C7A98C009A50A5 /* PowerOnCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PowerOnCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349B029C7A98C009A50A5 /* GetBatteryCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetBatteryCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349B129C7A98C009A50A5 /* SetRemoteControlEnabledMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetRemoteControlEnabledMessageBody.swift; sourceTree = ""; }; + C1E349B229C7A98C009A50A5 /* GetHistoryPageCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetHistoryPageCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349B329C7A98C009A50A5 /* PumpAckMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpAckMessageBody.swift; sourceTree = ""; }; + C1E349B429C7A98C009A50A5 /* MySentryAckMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryAckMessageBody.swift; sourceTree = ""; }; + C1E349B529C7A98C009A50A5 /* MySentryAlertMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryAlertMessageBody.swift; sourceTree = ""; }; + C1E349B629C7A98C009A50A5 /* PumpErrorMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpErrorMessageBody.swift; sourceTree = ""; }; + C1E349B729C7A98C009A50A5 /* UnknownMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnknownMessageBody.swift; sourceTree = ""; }; + C1E349B829C7A98C009A50A5 /* DeviceLinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceLinkMessageBody.swift; sourceTree = ""; }; + C1E349B929C7A98C009A50A5 /* ReadTempBasalCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadTempBasalCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349BA29C7A98C009A50A5 /* ReadCurrentGlucosePageMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadCurrentGlucosePageMessageBody.swift; sourceTree = ""; }; + C1E349BC29C7A98C009A50A5 /* GlucosePage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucosePage.swift; sourceTree = ""; }; + C1E349BD29C7A98C009A50A5 /* HistoryPage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoryPage.swift; sourceTree = ""; }; + C1E349BE29C7A98C009A50A5 /* GlucoseEventType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseEventType.swift; sourceTree = ""; }; + C1E349BF29C7A98C009A50A5 /* TimestampedGlucoseEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampedGlucoseEvent.swift; sourceTree = ""; }; + C1E349C029C7A98C009A50A5 /* PartialDecode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PartialDecode.swift; sourceTree = ""; }; + C1E349C129C7A98C009A50A5 /* MySentryAlertType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryAlertType.swift; sourceTree = ""; }; + C1E349C229C7A98C009A50A5 /* CRC16.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC16.swift; sourceTree = ""; }; + C1E349C329C7A98C009A50A5 /* BasalSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalSchedule.swift; sourceTree = ""; }; + C1E349C429C7A98C009A50A5 /* PumpEventType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpEventType.swift; sourceTree = ""; }; + C1E349C529C7A98C009A50A5 /* TimestampedHistoryEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampedHistoryEvent.swift; sourceTree = ""; }; + C1E349C629C7A98C009A50A5 /* GetGlucosePageMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetGlucosePageMessageBody.swift; sourceTree = ""; }; + C1E349C729C7A98C009A50A5 /* MySentryPumpStatusMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryPumpStatusMessageBody.swift; sourceTree = ""; }; + C1E349C829C7A98C009A50A5 /* GetPumpModelCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetPumpModelCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349C929C7A98C009A50A5 /* MySentryAlertClearedMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySentryAlertClearedMessageBody.swift; sourceTree = ""; }; + C1E349CA29C7A98C009A50A5 /* ChangeTempBasalCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTempBasalCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349CB29C7A98C009A50A5 /* ReadOtherDevicesIDsMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadOtherDevicesIDsMessageBody.swift; sourceTree = ""; }; + C1E349CC29C7A98C009A50A5 /* ReadTimeCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadTimeCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349CD29C7A98C009A50A5 /* ReadSettingsCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadSettingsCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349CE29C7A98C009A50A5 /* GetPumpFirmwareVersionMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetPumpFirmwareVersionMessageBody.swift; sourceTree = ""; }; + C1E349CF29C7A98C009A50A5 /* MessageType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageType.swift; sourceTree = ""; }; + C1E349D029C7A98C009A50A5 /* ReadRemoteControlIDsMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadRemoteControlIDsMessageBody.swift; sourceTree = ""; }; + C1E349D129C7A98C009A50A5 /* PumpMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpMessage.swift; sourceTree = ""; }; + C1E349D229C7A98C009A50A5 /* SuspendResumeMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuspendResumeMessageBody.swift; sourceTree = ""; }; + C1E349D329C7A98C009A50A5 /* ReadOtherDevicesStatusMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadOtherDevicesStatusMessageBody.swift; sourceTree = ""; }; + C1E349D429C7A98C009A50A5 /* ChangeMaxBolusMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBolusMessageBody.swift; sourceTree = ""; }; + C1E349D529C7A98C009A50A5 /* ChangeMaxBasalRateMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeMaxBasalRateMessageBody.swift; sourceTree = ""; }; + C1E349D629C7A98C009A50A5 /* FindDeviceMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FindDeviceMessageBody.swift; sourceTree = ""; }; + C1E349D729C7A98C009A50A5 /* ReadRemainingInsulinMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadRemainingInsulinMessageBody.swift; sourceTree = ""; }; + C1E349D829C7A98C009A50A5 /* PacketType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PacketType.swift; sourceTree = ""; }; + C1E349D929C7A98C009A50A5 /* MeterMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeterMessage.swift; sourceTree = ""; }; + C1E349DA29C7A98C009A50A5 /* BolusCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349DB29C7A98C009A50A5 /* DataFrameMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataFrameMessageBody.swift; sourceTree = ""; }; + C1E349DC29C7A98C009A50A5 /* ChangeRemoteControlIDMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeRemoteControlIDMessageBody.swift; sourceTree = ""; }; + C1E349DD29C7A98C009A50A5 /* ReadPumpStatusMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadPumpStatusMessageBody.swift; sourceTree = ""; }; + C1E349DE29C7A98C009A50A5 /* ChangeTimeCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeTimeCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349DF29C7A98C009A50A5 /* SelectBasalProfileMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectBasalProfileMessageBody.swift; sourceTree = ""; }; + C1E349E029C7A98D009A50A5 /* ButtonPressCarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonPressCarelinkMessageBody.swift; sourceTree = ""; }; + C1E349E129C7A98D009A50A5 /* CarelinkMessageBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarelinkMessageBody.swift; sourceTree = ""; }; + C1E349E929C7A98D009A50A5 /* BatteryChemistryType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatteryChemistryType.swift; sourceTree = ""; }; + C1E349EA29C7A98D009A50A5 /* PumpColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpColor.swift; sourceTree = ""; }; + C1E349EB29C7A98D009A50A5 /* PumpModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpModel.swift; sourceTree = ""; }; + C1E349EC29C7A98D009A50A5 /* PumpRegion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpRegion.swift; sourceTree = ""; }; + C1E349EE29C7A98D009A50A5 /* MinimedPacket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPacket.swift; sourceTree = ""; }; + C1E349EF29C7A98D009A50A5 /* CRC8.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC8.swift; sourceTree = ""; }; + C1E349F029C7A98D009A50A5 /* FourByteSixByteEncoding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FourByteSixByteEncoding.swift; sourceTree = ""; }; + C1E34A0D29C7A98E009A50A5 /* ISO8601DateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ISO8601DateFormatter.swift; sourceTree = ""; }; + C1E34A0E29C7A98E009A50A5 /* Int.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Int.swift; sourceTree = ""; }; + C1E34A0F29C7A98E009A50A5 /* NSDateComponents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDateComponents.swift; sourceTree = ""; }; + C1E34AE529C7A9BC009A50A5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AE629C7A9BC009A50A5 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AE729C7A9BC009A50A5 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AE829C7A9BC009A50A5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C1E34AE929C7A9BC009A50A5 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AEA29C7A9BC009A50A5 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AEB29C7A9BC009A50A5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AEC29C7A9BC009A50A5 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AED29C7A9BC009A50A5 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AEE29C7A9BC009A50A5 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AEF29C7A9BC009A50A5 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF029C7A9BC009A50A5 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF129C7A9BC009A50A5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF229C7A9BC009A50A5 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF329C7A9BC009A50A5 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF429C7A9BC009A50A5 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C1E34AF529C7A9BC009A50A5 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF629C7A9BC009A50A5 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF729C7A9BC009A50A5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF829C7A9BC009A50A5 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AF929C7A9BC009A50A5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C1E34AFA29C7A9BC009A50A5 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B0129C7ABCB009A50A5 /* MinimedKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MinimedKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34B0329C7ABCB009A50A5 /* MinimedKitUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinimedKitUI.h; sourceTree = ""; }; + C1E34B0829C7ABF2009A50A5 /* MinimedKitUI.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MinimedKitUI.xcassets; sourceTree = ""; }; + C1E34B0A29C7ABF2009A50A5 /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; + C1E34B0C29C7ABF2009A50A5 /* MinimedPumpIDSetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpIDSetupViewController.swift; sourceTree = ""; }; + C1E34B0D29C7ABF2009A50A5 /* MinimedPumpManagerSetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpManagerSetupViewController.swift; sourceTree = ""; }; + C1E34B0E29C7ABF2009A50A5 /* MinimedPumpClockSetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpClockSetupViewController.swift; sourceTree = ""; }; + C1E34B0F29C7ABF2009A50A5 /* MinimedPumpSetupCompleteViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpSetupCompleteViewController.swift; sourceTree = ""; }; + C1E34B1029C7ABF2009A50A5 /* MinimedPumpSentrySetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpSentrySetupViewController.swift; sourceTree = ""; }; + C1E34B1129C7ABF2009A50A5 /* MinimedPumpManager+UI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MinimedPumpManager+UI.swift"; sourceTree = ""; }; + C1E34B1229C7ABF2009A50A5 /* PumpModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpModel.swift; sourceTree = ""; }; + C1E34B1329C7ABF2009A50A5 /* RadioSelectionTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadioSelectionTableViewController.swift; sourceTree = ""; }; + C1E34B1429C7ABF2009A50A5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C1E34B1529C7ABF2009A50A5 /* MinimedPumpUICoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpUICoordinator.swift; sourceTree = ""; }; + C1E34B1629C7ABF2009A50A5 /* CommandResponseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandResponseViewController.swift; sourceTree = ""; }; + C1E34B1729C7ABF2009A50A5 /* MinimedHUDProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedHUDProvider.swift; sourceTree = ""; }; + C1E34B1929C7ABF3009A50A5 /* UseMySentrySelectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UseMySentrySelectionView.swift; sourceTree = ""; }; + C1E34B1A29C7ABF3009A50A5 /* DataSourceSelectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataSourceSelectionView.swift; sourceTree = ""; }; + C1E34B1B29C7ABF3009A50A5 /* BatteryTypeSelectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatteryTypeSelectionView.swift; sourceTree = ""; }; + C1E34B1C29C7ABF3009A50A5 /* ReservoirHUDView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ReservoirHUDView.xib; sourceTree = ""; }; + C1E34B1D29C7ABF3009A50A5 /* MinimedPumpSettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpSettingsView.swift; sourceTree = ""; }; + C1E34B1E29C7ABF3009A50A5 /* ReservoirHUDView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReservoirHUDView.swift; sourceTree = ""; }; + C1E34B1F29C7ABF3009A50A5 /* MinimedPumpSettingsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedPumpSettingsViewModel.swift; sourceTree = ""; }; + C1E34B2029C7ABF3009A50A5 /* InsulinTypeConfirmation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsulinTypeConfirmation.swift; sourceTree = ""; }; + C1E34B2129C7ABF3009A50A5 /* MinimedReservoirView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedReservoirView.swift; sourceTree = ""; }; + C1E34B2229C7ABF3009A50A5 /* TimeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeView.swift; sourceTree = ""; }; + C1E34B4129C7AC4C009A50A5 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4229C7AC4F009A50A5 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C1E34B4329C7AC51009A50A5 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4429C7AC54009A50A5 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4529C7AC56009A50A5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4629C7AC58009A50A5 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4729C7AC5B009A50A5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4829C7AC5D009A50A5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4929C7AC5F009A50A5 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4A29C7AC61009A50A5 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4B29C7AC64009A50A5 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4C29C7AC66009A50A5 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4D29C7AC68009A50A5 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B4E29C7AC69009A50A5 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C1E34B4F29C7AC6A009A50A5 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5029C7AC6B009A50A5 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5129C7AC6C009A50A5 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5229C7AC6D009A50A5 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5329C7AC6E009A50A5 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5429C7AC6F009A50A5 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5529C7AC70009A50A5 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C1E34B5B29C7AD01009A50A5 /* MinimedKitPlugin.loopplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MinimedKitPlugin.loopplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34B6229C7AD31009A50A5 /* MinimedKitPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimedKitPlugin.swift; sourceTree = ""; }; + C1E34B6329C7AD31009A50A5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C1E34B6729C7AD62009A50A5 /* LoopKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34B7429C7AF61009A50A5 /* LocalisedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalisedString.swift; sourceTree = ""; }; + C1E34B7629C7AFCF009A50A5 /* Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C1E34B7829C7AFF7009A50A5 /* TimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C1E34B7A29C7B044009A50A5 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C1E34B7C29C7B075009A50A5 /* RileyLinkKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34B8029C7B155009A50A5 /* PumpOpsSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpOpsSession.swift; sourceTree = ""; }; + C1E34B8229C7B1AB009A50A5 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C1E34B8429C7B1D4009A50A5 /* HKUnit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C1E34B8729C7B292009A50A5 /* Comparable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; + C1E34B8929C7B2FC009A50A5 /* LocalisedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalisedString.swift; sourceTree = ""; }; + C1E34B8B29C7B334009A50A5 /* IdentifiableClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; + C1E34B8D29C7B34F009A50A5 /* NibLoadable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = ""; }; + C1E34B8F29C7B38A009A50A5 /* NumberFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C1E34B9129C7B46C009A50A5 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C1E34B9329C7B59B009A50A5 /* RileyLinkKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34B9729C7B5A3009A50A5 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1E34BA129C7B652009A50A5 /* RileyLinkBLEKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkBLEKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OmniKit.xcodeproj; path = ../OmniKit/OmniKit.xcodeproj; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C13CC33E29C7B73A007F25DE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C13CC34529C7B73A007F25DE /* MinimedKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E3490E29C7A866009A50A5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34B6829C7AD62009A50A5 /* LoopKit.framework in Frameworks */, + C1E34B7D29C7B075009A50A5 /* RileyLinkKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34AFE29C7ABCB009A50A5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34B9829C7B5A3009A50A5 /* LoopKitUI.framework in Frameworks */, + C13CC33529C7B6A9007F25DE /* LoopKit.framework in Frameworks */, + C1E34B9A29C7B5E9009A50A5 /* RileyLinkKitUI.framework in Frameworks */, + C13CC33829C7B6BC007F25DE /* MinimedKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34B5829C7AD01009A50A5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34BA229C7B652009A50A5 /* RileyLinkBLEKit.framework in Frameworks */, + C1E34B9D29C7B623009A50A5 /* RileyLinkKitUI.framework in Frameworks */, + C1E34B9F29C7B649009A50A5 /* RileyLinkKit.framework in Frameworks */, + C1E34B6B29C7AD9C009A50A5 /* MinimedKit.framework in Frameworks */, + C1E34B6F29C7AD9C009A50A5 /* MinimedKitUI.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C1229C2029C7EC9B0066A89C /* Extensions */ = { + isa = PBXGroup; + children = ( + C1229C2129C7ECA70066A89C /* TimeInterval.swift */, + C1229C2329C7ECEB0066A89C /* Data.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C13CC34229C7B73A007F25DE /* MinimedKitTests */ = { + isa = PBXGroup; + children = ( + C1229C2029C7EC9B0066A89C /* Extensions */, + C13CC37629C7B756007F25DE /* BasalScheduleTests.swift */, + C13CC36629C7B755007F25DE /* CRC8Tests.swift */, + C13CC38329C7B757007F25DE /* CRC16Tests.swift */, + C13CC36729C7B756007F25DE /* GlucoseEvents */, + C13CC37D29C7B756007F25DE /* GlucosePageTests.swift */, + C13CC38229C7B756007F25DE /* HistoryPageTests.swift */, + C13CC38129C7B756007F25DE /* Info.plist */, + C13CC34E29C7B755007F25DE /* Messages */, + C13CC36029C7B755007F25DE /* MinimedPacketTests.swift */, + C13CC36129C7B755007F25DE /* MinimedPumpManagerTests.swift */, + C13CC37729C7B756007F25DE /* Mocks */, + C13CC38429C7B757007F25DE /* MySentryPumpStatusMessageBodyTests.swift */, + C13CC36429C7B755007F25DE /* NSDataTests.swift */, + C13CC36229C7B755007F25DE /* NSDateComponents.swift */, + C13CC38529C7B757007F25DE /* NSDateComponentsTests.swift */, + C13CC37E29C7B756007F25DE /* NSStringExtensions.swift */, + C13CC34B29C7B755007F25DE /* PumpEvents */, + C13CC38029C7B756007F25DE /* PumpModelTests.swift */, + C13CC38629C7B757007F25DE /* PumpOpsSynchronousBuildFromFramesTests.swift */, + C13CC36329C7B755007F25DE /* PumpOpsSynchronousTests.swift */, + C13CC37F29C7B756007F25DE /* ReadSettingsCarelinkMessageBodyTests.swift */, + C13CC38729C7B757007F25DE /* ReconciliationTests.swift */, + C13CC36529C7B755007F25DE /* TimestampedHistoryEventTests.swift */, + ); + path = MinimedKitTests; + sourceTree = ""; + }; + C13CC34B29C7B755007F25DE /* PumpEvents */ = { + isa = PBXGroup; + children = ( + C13CC34C29C7B755007F25DE /* ResumePumpEventTests.swift */, + C13CC34D29C7B755007F25DE /* BolusNormalPumpEventTests.swift */, + ); + path = PumpEvents; + sourceTree = ""; + }; + C13CC34E29C7B755007F25DE /* Messages */ = { + isa = PBXGroup; + children = ( + C13CC34F29C7B755007F25DE /* ReadCurrentGlucosePageMessageBodyTests.swift */, + C13CC35029C7B755007F25DE /* ChangeTimeCarelinMessageBodyTests.swift */, + C13CC35129C7B755007F25DE /* MeterMessageTests.swift */, + C13CC35229C7B755007F25DE /* ChangeTempBasalCarelinkMessageBodyTests.swift */, + C13CC35329C7B755007F25DE /* ReadOtherDevicesIDsMessageBodyTests.swift */, + C13CC35429C7B755007F25DE /* BolusCarelinkMessageBodyTests.swift */, + C13CC35529C7B755007F25DE /* FindDeviceMessageBodyTests.swift */, + C13CC35629C7B755007F25DE /* ReadRemoteControlIDsMessageBodyTests.swift */, + C13CC35729C7B755007F25DE /* ReadTempBasalCarelinkMessageBodyTests.swift */, + C13CC35829C7B755007F25DE /* DeviceLinkMessageBodyTests.swift */, + C13CC35929C7B755007F25DE /* ChangeMaxBasalRateMessageBodyTests.swift */, + C13CC35A29C7B755007F25DE /* ChangeRemoteControlIDMessageBodyTests.swift */, + C13CC35B29C7B755007F25DE /* GetBatteryCarelinkMessageBodyTests.swift */, + C13CC35C29C7B755007F25DE /* ReadRemainingInsulinMessageBodyTests.swift */, + C13CC35D29C7B755007F25DE /* ChangeMaxBolusMessageBodyTests.swift */, + C13CC35E29C7B755007F25DE /* GetPumpModelCarelinkMessageBodyTests.swift */, + C13CC35F29C7B755007F25DE /* GetGlucosePageMessageBodyTests.swift */, + ); + path = Messages; + sourceTree = ""; + }; + C13CC36729C7B756007F25DE /* GlucoseEvents */ = { + isa = PBXGroup; + children = ( + C13CC36829C7B756007F25DE /* SensorDataHighGlucoseEventTests.swift */, + C13CC36929C7B756007F25DE /* SensorTimestampGlucoseEventTests.swift */, + C13CC36A29C7B756007F25DE /* BatteryChangeGlucoseEventTests.swift */, + C13CC36B29C7B756007F25DE /* SensorErrorGlucoseEventTests.swift */, + C13CC36C29C7B756007F25DE /* SensorCalFactorGlucoseEventTests.swift */, + C13CC36D29C7B756007F25DE /* SensorCalGlucoseEventTests.swift */, + C13CC36E29C7B756007F25DE /* CalBGForGHGlucoseEventTests.swift */, + C13CC36F29C7B756007F25DE /* SensorStatusGlucoseEventTests.swift */, + C13CC37029C7B756007F25DE /* SensorDataLowGlucoseEventTests.swift */, + C13CC37129C7B756007F25DE /* GlucoseSensorDataGlucoseEventTests.swift */, + C13CC37229C7B756007F25DE /* SensorSyncGlucoseEventTests.swift */, + C13CC37329C7B756007F25DE /* DateTimeChangeGlucoseEventTests.swift */, + C13CC37429C7B756007F25DE /* SensorPacketGlucoseEventTests.swift */, + C13CC37529C7B756007F25DE /* TenSomethingGlucoseEventTests.swift */, + ); + path = GlucoseEvents; + sourceTree = ""; + }; + C13CC37729C7B756007F25DE /* Mocks */ = { + isa = PBXGroup; + children = ( + C13CC37829C7B756007F25DE /* MockRileyLinkProvider.swift */, + C13CC37929C7B756007F25DE /* MockPumpManagerDelegate.swift */, + C13CC37A29C7B756007F25DE /* MockPumpOps.swift */, + C13CC37B29C7B756007F25DE /* MockPumpMessageSender.swift */, + C13CC37C29C7B756007F25DE /* MockRileyLinkDevice.swift */, + ); + path = Mocks; + sourceTree = ""; + }; + C13CC3DB29C7BA37007F25DE /* Extensions */ = { + isa = PBXGroup; + children = ( + C13CC3DC29C7BA48007F25DE /* OSLog.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C1E3490729C7A866009A50A5 = { + isa = PBXGroup; + children = ( + CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */, + C1E3491329C7A866009A50A5 /* MinimedKit */, + C1E34B0229C7ABCB009A50A5 /* MinimedKitUI */, + C1E34B5C29C7AD01009A50A5 /* MinimedKitPlugin */, + C13CC34229C7B73A007F25DE /* MinimedKitTests */, + C1E3491229C7A866009A50A5 /* Products */, + C1E34B6629C7AD62009A50A5 /* Frameworks */, + ); + sourceTree = ""; + }; + C1E3491229C7A866009A50A5 /* Products */ = { + isa = PBXGroup; + children = ( + C1E3491129C7A866009A50A5 /* MinimedKit.framework */, + C1E34B0129C7ABCB009A50A5 /* MinimedKitUI.framework */, + C1E34B5B29C7AD01009A50A5 /* MinimedKitPlugin.loopplugin */, + C13CC34129C7B73A007F25DE /* MinimedKitTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + C1E3491329C7A866009A50A5 /* MinimedKit */ = { + isa = PBXGroup; + children = ( + C1E34AE329C7A9BC009A50A5 /* Resources */, + C1E3493A29C7A98B009A50A5 /* CGMManager */, + C1E34A0C29C7A98E009A50A5 /* Extensions */, + C1E3492429C7A98B009A50A5 /* GlucoseEvents */, + C1E3494029C7A98C009A50A5 /* Info.plist */, + C1E349AC29C7A98C009A50A5 /* Messages */, + C1E349E829C7A98D009A50A5 /* Models */, + C1E3496329C7A98C009A50A5 /* PumpEvents */, + C1E3494429C7A98C009A50A5 /* PumpManager */, + C1E349ED29C7A98D009A50A5 /* Radio */, + C1E3491429C7A866009A50A5 /* MinimedKit.h */, + C1E34B7429C7AF61009A50A5 /* LocalisedString.swift */, + ); + path = MinimedKit; + sourceTree = ""; + }; + C1E3492429C7A98B009A50A5 /* GlucoseEvents */ = { + isa = PBXGroup; + children = ( + C1E3492529C7A98B009A50A5 /* CalBGForGHGlucoseEvent.swift */, + C1E3492629C7A98B009A50A5 /* RelativeTimestampedGlucoseEvent.swift */, + C1E3492729C7A98B009A50A5 /* SensorCalGlucoseEvent.swift */, + C1E3492829C7A98B009A50A5 /* SensorErrorGlucoseEvent.swift */, + C1E3492929C7A98B009A50A5 /* TenSomethingGlucoseEvent.swift */, + C1E3492A29C7A98B009A50A5 /* SensorStatusGlucoseEvent.swift */, + C1E3492B29C7A98B009A50A5 /* SensorValueGlucoseEvent.swift */, + C1E3492C29C7A98B009A50A5 /* SensorSyncGlucoseEvent.swift */, + C1E3492D29C7A98B009A50A5 /* SensorTimestampGlucoseEvent.swift */, + C1E3492E29C7A98B009A50A5 /* SensorDataLowGlucoseEvent.swift */, + C1E3492F29C7A98B009A50A5 /* SensorPacketGlucoseEvent.swift */, + C1E3493029C7A98B009A50A5 /* DateTimeChangeGlucoseEvent.swift */, + C1E3493129C7A98B009A50A5 /* UnknownGlucoseEvent.swift */, + C1E3493229C7A98B009A50A5 /* DataEndGlucoseEvent.swift */, + C1E3493329C7A98B009A50A5 /* NineteenSomethingGlucoseEvent.swift */, + C1E3493429C7A98B009A50A5 /* GlucoseEvent.swift */, + C1E3493529C7A98B009A50A5 /* GlucoseSensorDataGlucoseEvent.swift */, + C1E3493629C7A98B009A50A5 /* SensorDataHighGlucoseEvent.swift */, + C1E3493729C7A98B009A50A5 /* BatteryChangeGlucoseEvent.swift */, + C1E3493829C7A98B009A50A5 /* SensorCalFactorGlucoseEvent.swift */, + C1E3493929C7A98B009A50A5 /* SensorWeakSignalGlucoseEvent.swift */, + ); + path = GlucoseEvents; + sourceTree = ""; + }; + C1E3493A29C7A98B009A50A5 /* CGMManager */ = { + isa = PBXGroup; + children = ( + C1E3493B29C7A98B009A50A5 /* SensorValueGlucoseEvent+CGMManager.swift */, + C1E3493C29C7A98B009A50A5 /* MySentryPumpStatusMessageBody+CGMManager.swift */, + ); + path = CGMManager; + sourceTree = ""; + }; + C1E3494429C7A98C009A50A5 /* PumpManager */ = { + isa = PBXGroup; + children = ( + C1E3494529C7A98C009A50A5 /* MinimedPumpManagerState.swift */, + C1E3494629C7A98C009A50A5 /* MinimedPumpManagerRecents.swift */, + C1E3494729C7A98C009A50A5 /* EnliteSensorDisplayable.swift */, + C1E3494829C7A98C009A50A5 /* PumpOpsSession+LoopKit.swift */, + C1E3494929C7A98C009A50A5 /* BasalProfile.swift */, + C1E3494A29C7A98C009A50A5 /* HistoryPage+PumpOpsSession.swift */, + C1E3494B29C7A98C009A50A5 /* ReservoirReading.swift */, + C1E3494C29C7A98C009A50A5 /* PumpMessageSender.swift */, + C1E3494D29C7A98C009A50A5 /* MinimedPumpManagerError.swift */, + C1E3494E29C7A98C009A50A5 /* DoseStore.swift */, + C1E3494F29C7A98C009A50A5 /* PumpSettings.swift */, + C1E3495029C7A98C009A50A5 /* PumpOps.swift */, + C1E34B8029C7B155009A50A5 /* PumpOpsSession.swift */, + C1E3495129C7A98C009A50A5 /* PumpMessage+PumpOpsSession.swift */, + C1E3495229C7A98C009A50A5 /* InsulinDataSource.swift */, + C1E3495329C7A98C009A50A5 /* MinimedDoseProgressEstimator.swift */, + C1E3495429C7A98C009A50A5 /* MinimedPumpMessageSender.swift */, + C1E3495529C7A98C009A50A5 /* MinimedPumpManager.swift */, + C1E3495629C7A98C009A50A5 /* UnfinalizedDose.swift */, + C1E3495729C7A98C009A50A5 /* RileyLinkDevice.swift */, + C1E3495829C7A98C009A50A5 /* PumpOpsError.swift */, + C1E3495929C7A98C009A50A5 /* PumpState.swift */, + ); + path = PumpManager; + sourceTree = ""; + }; + C1E3496329C7A98C009A50A5 /* PumpEvents */ = { + isa = PBXGroup; + children = ( + C1E3496429C7A98C009A50A5 /* ChangeWatchdogEnablePumpEvent.swift */, + C1E3496529C7A98C009A50A5 /* PumpAlarmPumpEvent.swift */, + C1E3496629C7A98C009A50A5 /* ChangeCaptureEventEnablePumpEvent.swift */, + C1E3496729C7A98C009A50A5 /* TempBasalDurationPumpEvent.swift */, + C1E3496829C7A98C009A50A5 /* ChangeBolusScrollStepSizePumpEvent.swift */, + C1E3496929C7A98C009A50A5 /* ChangeSensorSetup2PumpEvent.swift */, + C1E3496A29C7A98C009A50A5 /* JournalEntryInsulinMarkerPumpEvent.swift */, + C1E3496B29C7A98C009A50A5 /* ChangeMaxBolusPumpEvent.swift */, + C1E3496C29C7A98C009A50A5 /* ChangeVariableBolusPumpEvent.swift */, + C1E3496D29C7A98C009A50A5 /* ChangeBolusReminderEnablePumpEvent.swift */, + C1E3496E29C7A98C009A50A5 /* ChangeCarbUnitsPumpEvent.swift */, + C1E3496F29C7A98C009A50A5 /* BolusWizardEstimatePumpEvent.swift */, + C1E3497029C7A98C009A50A5 /* ClearAlarmPumpEvent.swift */, + C1E3497129C7A98C009A50A5 /* ChangeAlarmNotifyModePumpEvent.swift */, + C1E3497229C7A98C009A50A5 /* ChangeAlarmClockEnablePumpEvent.swift */, + C1E3497329C7A98C009A50A5 /* JournalEntryPumpLowReservoirPumpEvent.swift */, + C1E3497429C7A98C009A50A5 /* ChangeTimeFormatPumpEvent.swift */, + C1E3497529C7A98C009A50A5 /* SelectBasalProfilePumpEvent.swift */, + C1E3497629C7A98C009A50A5 /* DailyTotal522PumpEvent.swift */, + C1E3497729C7A98C009A50A5 /* BGReceivedPumpEvent.swift */, + C1E3497829C7A98C009A50A5 /* TimestampedPumpEvent.swift */, + C1E3497929C7A98C009A50A5 /* SuspendPumpEvent.swift */, + C1E3497A29C7A98C009A50A5 /* EnableBolusWizardPumpEvent.swift */, + C1E3497B29C7A98C009A50A5 /* UnabsorbedInsulinPumpEvent.swift */, + C1E3497C29C7A98C009A50A5 /* DeleteOtherDeviceIDPumpEvent.swift */, + C1E3497D29C7A98C009A50A5 /* AlarmClockReminderPumpEvent.swift */, + C1E3497E29C7A98C009A50A5 /* ChangeBGReminderEnablePumpEvent.swift */, + C1E3497F29C7A98C009A50A5 /* JournalEntryPumpLowBatteryPumpEvent.swift */, + C1E3498029C7A98C009A50A5 /* NewTimePumpEvent.swift */, + C1E3498129C7A98C009A50A5 /* ChangeMaxBasalPumpEvent.swift */, + C1E3498229C7A98C009A50A5 /* ChangeTempBasalTypePumpEvent.swift */, + C1E3498329C7A98C009A50A5 /* ChangeSensorAlarmSilenceConfigPumpEvent.swift */, + C1E3498429C7A98C009A50A5 /* ChangeOtherDeviceIDPumpEvent.swift */, + C1E3498529C7A98C009A50A5 /* PrimePumpEvent.swift */, + C1E3498629C7A98C009A50A5 /* DailyTotal523PumpEvent.swift */, + C1E3498729C7A98C009A50A5 /* BatteryPumpEvent.swift */, + C1E3498829C7A98C009A50A5 /* EnableDisableRemotePumpEvent.swift */, + C1E3498929C7A98C009A50A5 /* TempBasalPumpEvent.swift */, + C1E3498A29C7A98C009A50A5 /* ChangeSensorRateOfChangeAlertSetupPumpEvent.swift */, + C1E3498B29C7A98C009A50A5 /* RestoreMystery55PumpEvent.swift */, + C1E3498C29C7A98C009A50A5 /* BolusWizardSetupPumpEvent.swift */, + C1E3498D29C7A98C009A50A5 /* ChangeTimePumpEvent.swift */, + C1E3498E29C7A98C009A50A5 /* ChangeBolusReminderTimePumpEvent.swift */, + C1E3498F29C7A98C009A50A5 /* ChangeBolusWizardSetupPumpEvent.swift */, + C1E3499029C7A98C009A50A5 /* PlaceholderPumpEvent.swift */, + C1E3499129C7A98C009A50A5 /* PumpEvent.swift */, + C1E3499229C7A98C009A50A5 /* ChangeBasalProfilePumpEvent.swift */, + C1E3499329C7A98C009A50A5 /* ResumePumpEvent.swift */, + C1E3499429C7A98C009A50A5 /* ChangeBGReminderOffsetPumpEvent.swift */, + C1E3499529C7A98C009A50A5 /* ChangeWatchdogMarriageProfilePumpEvent.swift */, + C1E3499629C7A98C009A50A5 /* BasalProfileStartPumpEvent.swift */, + C1E3499729C7A98C009A50A5 /* ResultDailyTotalPumpEvent.swift */, + C1E3499829C7A98C009A50A5 /* UnknownPumpEvent57.swift */, + C1E3499929C7A98C009A50A5 /* RestoreMystery54PumpEvent.swift */, + C1E3499A29C7A98C009A50A5 /* CalBGForPHPumpEvent.swift */, + C1E3499B29C7A98C009A50A5 /* ChangeParadigmLinkIDPumpEvent.swift */, + C1E3499C29C7A98C009A50A5 /* ChangeChildBlockEnablePumpEvent.swift */, + C1E3499D29C7A98C009A50A5 /* ChangeBasalProfilePatternPumpEvent.swift */, + C1E3499E29C7A98C009A50A5 /* RewindPumpEvent.swift */, + C1E3499F29C7A98C009A50A5 /* BolusReminderPumpEvent.swift */, + C1E349A029C7A98C009A50A5 /* ChangeMeterIDPumpEvent.swift */, + C1E349A129C7A98C009A50A5 /* ChangeAudioBolusPumpEvent.swift */, + C1E349A229C7A98C009A50A5 /* DeleteBolusReminderTimePumpEvent.swift */, + C1E349A329C7A98C009A50A5 /* ChangeReservoirWarningTimePumpEvent.swift */, + C1E349A429C7A98C009A50A5 /* JournalEntryExerciseMarkerPumpEvent.swift */, + C1E349A529C7A98C009A50A5 /* BolusNormalPumpEvent.swift */, + C1E349A629C7A98C009A50A5 /* AlarmSensorPumpEvent.swift */, + C1E349A729C7A98C009A50A5 /* DailyTotal515PumpEvent.swift */, + C1E349A829C7A98C009A50A5 /* JournalEntryMealMarkerPumpEvent.swift */, + ); + path = PumpEvents; + sourceTree = ""; + }; + C1E349AC29C7A98C009A50A5 /* Messages */ = { + isa = PBXGroup; + children = ( + C1E349AD29C7A98C009A50A5 /* MessageBody.swift */, + C1E349AE29C7A98C009A50A5 /* ReadCurrentPageNumberMessageBody.swift */, + C1E349AF29C7A98C009A50A5 /* PowerOnCarelinkMessageBody.swift */, + C1E349B029C7A98C009A50A5 /* GetBatteryCarelinkMessageBody.swift */, + C1E349B129C7A98C009A50A5 /* SetRemoteControlEnabledMessageBody.swift */, + C1E349B229C7A98C009A50A5 /* GetHistoryPageCarelinkMessageBody.swift */, + C1E349B329C7A98C009A50A5 /* PumpAckMessageBody.swift */, + C1E349B429C7A98C009A50A5 /* MySentryAckMessageBody.swift */, + C1E349B529C7A98C009A50A5 /* MySentryAlertMessageBody.swift */, + C1E349B629C7A98C009A50A5 /* PumpErrorMessageBody.swift */, + C1E349B729C7A98C009A50A5 /* UnknownMessageBody.swift */, + C1E349B829C7A98C009A50A5 /* DeviceLinkMessageBody.swift */, + C1E349B929C7A98C009A50A5 /* ReadTempBasalCarelinkMessageBody.swift */, + C1E349BA29C7A98C009A50A5 /* ReadCurrentGlucosePageMessageBody.swift */, + C1E349BB29C7A98C009A50A5 /* Models */, + C1E349C629C7A98C009A50A5 /* GetGlucosePageMessageBody.swift */, + C1E349C729C7A98C009A50A5 /* MySentryPumpStatusMessageBody.swift */, + C1E349C829C7A98C009A50A5 /* GetPumpModelCarelinkMessageBody.swift */, + C1E349C929C7A98C009A50A5 /* MySentryAlertClearedMessageBody.swift */, + C1E349CA29C7A98C009A50A5 /* ChangeTempBasalCarelinkMessageBody.swift */, + C1E349CB29C7A98C009A50A5 /* ReadOtherDevicesIDsMessageBody.swift */, + C1E349CC29C7A98C009A50A5 /* ReadTimeCarelinkMessageBody.swift */, + C1E349CD29C7A98C009A50A5 /* ReadSettingsCarelinkMessageBody.swift */, + C1E349CE29C7A98C009A50A5 /* GetPumpFirmwareVersionMessageBody.swift */, + C1E349CF29C7A98C009A50A5 /* MessageType.swift */, + C1E349D029C7A98C009A50A5 /* ReadRemoteControlIDsMessageBody.swift */, + C1E349D129C7A98C009A50A5 /* PumpMessage.swift */, + C1E349D229C7A98C009A50A5 /* SuspendResumeMessageBody.swift */, + C1E349D329C7A98C009A50A5 /* ReadOtherDevicesStatusMessageBody.swift */, + C1E349D429C7A98C009A50A5 /* ChangeMaxBolusMessageBody.swift */, + C1E349D529C7A98C009A50A5 /* ChangeMaxBasalRateMessageBody.swift */, + C1E349D629C7A98C009A50A5 /* FindDeviceMessageBody.swift */, + C1E349D729C7A98C009A50A5 /* ReadRemainingInsulinMessageBody.swift */, + C1E349D829C7A98C009A50A5 /* PacketType.swift */, + C1E349D929C7A98C009A50A5 /* MeterMessage.swift */, + C1E349DA29C7A98C009A50A5 /* BolusCarelinkMessageBody.swift */, + C1E349DB29C7A98C009A50A5 /* DataFrameMessageBody.swift */, + C1E349DC29C7A98C009A50A5 /* ChangeRemoteControlIDMessageBody.swift */, + C1E349DD29C7A98C009A50A5 /* ReadPumpStatusMessageBody.swift */, + C1E349DE29C7A98C009A50A5 /* ChangeTimeCarelinkMessageBody.swift */, + C1E349DF29C7A98C009A50A5 /* SelectBasalProfileMessageBody.swift */, + C1E349E029C7A98D009A50A5 /* ButtonPressCarelinkMessageBody.swift */, + C1E349E129C7A98D009A50A5 /* CarelinkMessageBody.swift */, + ); + path = Messages; + sourceTree = ""; + }; + C1E349BB29C7A98C009A50A5 /* Models */ = { + isa = PBXGroup; + children = ( + C1E349BC29C7A98C009A50A5 /* GlucosePage.swift */, + C1E349BD29C7A98C009A50A5 /* HistoryPage.swift */, + C1E349BE29C7A98C009A50A5 /* GlucoseEventType.swift */, + C1E349BF29C7A98C009A50A5 /* TimestampedGlucoseEvent.swift */, + C1E349C029C7A98C009A50A5 /* PartialDecode.swift */, + C1E349C129C7A98C009A50A5 /* MySentryAlertType.swift */, + C1E349C229C7A98C009A50A5 /* CRC16.swift */, + C1E349C329C7A98C009A50A5 /* BasalSchedule.swift */, + C1E349C429C7A98C009A50A5 /* PumpEventType.swift */, + C1E349C529C7A98C009A50A5 /* TimestampedHistoryEvent.swift */, + ); + path = Models; + sourceTree = ""; + }; + C1E349E829C7A98D009A50A5 /* Models */ = { + isa = PBXGroup; + children = ( + C1E349E929C7A98D009A50A5 /* BatteryChemistryType.swift */, + C1E349EA29C7A98D009A50A5 /* PumpColor.swift */, + C1E349EB29C7A98D009A50A5 /* PumpModel.swift */, + C1E349EC29C7A98D009A50A5 /* PumpRegion.swift */, + ); + path = Models; + sourceTree = ""; + }; + C1E349ED29C7A98D009A50A5 /* Radio */ = { + isa = PBXGroup; + children = ( + C1E349EE29C7A98D009A50A5 /* MinimedPacket.swift */, + C1E349EF29C7A98D009A50A5 /* CRC8.swift */, + C1E349F029C7A98D009A50A5 /* FourByteSixByteEncoding.swift */, + ); + path = Radio; + sourceTree = ""; + }; + C1E34A0C29C7A98E009A50A5 /* Extensions */ = { + isa = PBXGroup; + children = ( + C1E34A0D29C7A98E009A50A5 /* ISO8601DateFormatter.swift */, + C1E34A0E29C7A98E009A50A5 /* Int.swift */, + C1E34A0F29C7A98E009A50A5 /* NSDateComponents.swift */, + C1E34B7629C7AFCF009A50A5 /* Data.swift */, + C1E34B7829C7AFF7009A50A5 /* TimeInterval.swift */, + C1E34B7A29C7B044009A50A5 /* OSLog.swift */, + C1E34B8229C7B1AB009A50A5 /* TimeZone.swift */, + C1E34B8429C7B1D4009A50A5 /* HKUnit.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C1E34AE329C7A9BC009A50A5 /* Resources */ = { + isa = PBXGroup; + children = ( + C1E34AE429C7A9BC009A50A5 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C1E34B0229C7ABCB009A50A5 /* MinimedKitUI */ = { + isa = PBXGroup; + children = ( + C1E34B8929C7B2FC009A50A5 /* LocalisedString.swift */, + C1E34B3B29C7ABF7009A50A5 /* Resources */, + C1E34B1629C7ABF2009A50A5 /* CommandResponseViewController.swift */, + C1E34B0929C7ABF2009A50A5 /* Extensions */, + C1E34B1429C7ABF2009A50A5 /* Info.plist */, + C1E34B1729C7ABF2009A50A5 /* MinimedHUDProvider.swift */, + C1E34B1129C7ABF2009A50A5 /* MinimedPumpManager+UI.swift */, + C1E34B1529C7ABF2009A50A5 /* MinimedPumpUICoordinator.swift */, + C1E34B1229C7ABF2009A50A5 /* PumpModel.swift */, + C1E34B1329C7ABF2009A50A5 /* RadioSelectionTableViewController.swift */, + C1E34B0B29C7ABF2009A50A5 /* Setup */, + C1E34B1829C7ABF3009A50A5 /* Views */, + C1E34B0329C7ABCB009A50A5 /* MinimedKitUI.h */, + ); + path = MinimedKitUI; + sourceTree = ""; + }; + C1E34B0929C7ABF2009A50A5 /* Extensions */ = { + isa = PBXGroup; + children = ( + C1E34B0A29C7ABF2009A50A5 /* Image.swift */, + C1E34B8729C7B292009A50A5 /* Comparable.swift */, + C1E34B8B29C7B334009A50A5 /* IdentifiableClass.swift */, + C1E34B8D29C7B34F009A50A5 /* NibLoadable.swift */, + C1E34B8F29C7B38A009A50A5 /* NumberFormatter.swift */, + C1E34B9129C7B46C009A50A5 /* TimeZone.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C1E34B0B29C7ABF2009A50A5 /* Setup */ = { + isa = PBXGroup; + children = ( + C1E34B0C29C7ABF2009A50A5 /* MinimedPumpIDSetupViewController.swift */, + C1E34B0D29C7ABF2009A50A5 /* MinimedPumpManagerSetupViewController.swift */, + C1E34B0E29C7ABF2009A50A5 /* MinimedPumpClockSetupViewController.swift */, + C1E34B0F29C7ABF2009A50A5 /* MinimedPumpSetupCompleteViewController.swift */, + C1E34B1029C7ABF2009A50A5 /* MinimedPumpSentrySetupViewController.swift */, + ); + path = Setup; + sourceTree = ""; + }; + C1E34B1829C7ABF3009A50A5 /* Views */ = { + isa = PBXGroup; + children = ( + C1E34B1929C7ABF3009A50A5 /* UseMySentrySelectionView.swift */, + C1E34B1A29C7ABF3009A50A5 /* DataSourceSelectionView.swift */, + C1E34B1B29C7ABF3009A50A5 /* BatteryTypeSelectionView.swift */, + C1E34B1C29C7ABF3009A50A5 /* ReservoirHUDView.xib */, + C1E34B1D29C7ABF3009A50A5 /* MinimedPumpSettingsView.swift */, + C1E34B1E29C7ABF3009A50A5 /* ReservoirHUDView.swift */, + C1E34B1F29C7ABF3009A50A5 /* MinimedPumpSettingsViewModel.swift */, + C1E34B2029C7ABF3009A50A5 /* InsulinTypeConfirmation.swift */, + C1E34B2129C7ABF3009A50A5 /* MinimedReservoirView.swift */, + C1E34B2229C7ABF3009A50A5 /* TimeView.swift */, + ); + path = Views; + sourceTree = ""; + }; + C1E34B3B29C7ABF7009A50A5 /* Resources */ = { + isa = PBXGroup; + children = ( + C13CC3C129C7B8BC007F25DE /* MinimedPumpManager.storyboard */, + C1E34B0829C7ABF2009A50A5 /* MinimedKitUI.xcassets */, + C1E34B4029C7AC0A009A50A5 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C1E34B5C29C7AD01009A50A5 /* MinimedKitPlugin */ = { + isa = PBXGroup; + children = ( + C13CC3DB29C7BA37007F25DE /* Extensions */, + C1E34B6329C7AD31009A50A5 /* Info.plist */, + C1E34B6229C7AD31009A50A5 /* MinimedKitPlugin.swift */, + ); + path = MinimedKitPlugin; + sourceTree = ""; + }; + C1E34B6629C7AD62009A50A5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C1E34BA129C7B652009A50A5 /* RileyLinkBLEKit.framework */, + C1E34B9729C7B5A3009A50A5 /* LoopKitUI.framework */, + C1E34B9329C7B59B009A50A5 /* RileyLinkKitUI.framework */, + C1E34B7C29C7B075009A50A5 /* RileyLinkKit.framework */, + C1E34B6729C7AD62009A50A5 /* LoopKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + CEC751C029D88240006E9D24 /* Products */ = { + isa = PBXGroup; + children = ( + CEC751C829D88240006E9D24 /* OmniKit.framework */, + CEC751CA29D88240006E9D24 /* OmniKitUI.framework */, + CEC751CC29D88240006E9D24 /* OmniKitPlugin.loopplugin */, + CEC751CE29D88240006E9D24 /* OmniKitTests.xctest */, + CEC751D029D88240006E9D24 /* OmniKitPacketParser */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + C1E3490C29C7A866009A50A5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E3491529C7A866009A50A5 /* MinimedKit.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34AFC29C7ABCB009A50A5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34B0429C7ABCB009A50A5 /* MinimedKitUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34B5629C7AD01009A50A5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + C13CC34029C7B73A007F25DE /* MinimedKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C13CC34829C7B73A007F25DE /* Build configuration list for PBXNativeTarget "MinimedKitTests" */; + buildPhases = ( + C13CC33D29C7B73A007F25DE /* Sources */, + C13CC33E29C7B73A007F25DE /* Frameworks */, + C13CC33F29C7B73A007F25DE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C13CC34729C7B73A007F25DE /* PBXTargetDependency */, + ); + name = MinimedKitTests; + productName = MinimedKitTests; + productReference = C13CC34129C7B73A007F25DE /* MinimedKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + C1E3491029C7A866009A50A5 /* MinimedKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1E3491829C7A866009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKit" */; + buildPhases = ( + C1E3490C29C7A866009A50A5 /* Headers */, + C1E3490D29C7A866009A50A5 /* Sources */, + C1E3490E29C7A866009A50A5 /* Frameworks */, + C1E3490F29C7A866009A50A5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MinimedKit; + productName = MinimedKit; + productReference = C1E3491129C7A866009A50A5 /* MinimedKit.framework */; + productType = "com.apple.product-type.framework"; + }; + C1E34B0029C7ABCB009A50A5 /* MinimedKitUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1E34B0529C7ABCB009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKitUI" */; + buildPhases = ( + C1E34AFC29C7ABCB009A50A5 /* Headers */, + C1E34AFD29C7ABCB009A50A5 /* Sources */, + C1E34AFE29C7ABCB009A50A5 /* Frameworks */, + C1E34AFF29C7ABCB009A50A5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C13CC33B29C7B6BC007F25DE /* PBXTargetDependency */, + ); + name = MinimedKitUI; + productName = MinimedKitUI; + productReference = C1E34B0129C7ABCB009A50A5 /* MinimedKitUI.framework */; + productType = "com.apple.product-type.framework"; + }; + C1E34B5A29C7AD01009A50A5 /* MinimedKitPlugin */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1E34B5F29C7AD01009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKitPlugin" */; + buildPhases = ( + C1E34B5629C7AD01009A50A5 /* Headers */, + C1E34B5729C7AD01009A50A5 /* Sources */, + C1E34B5829C7AD01009A50A5 /* Frameworks */, + C1E34B5929C7AD01009A50A5 /* Resources */, + C1E34B7329C7AD9C009A50A5 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + C1E34B6E29C7AD9C009A50A5 /* PBXTargetDependency */, + C1E34B7229C7AD9C009A50A5 /* PBXTargetDependency */, + ); + name = MinimedKitPlugin; + productName = MinimedKitPlugin; + productReference = C1E34B5B29C7AD01009A50A5 /* MinimedKitPlugin.loopplugin */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C1E3490829C7A866009A50A5 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + ORGANIZATIONNAME = "LoopKit Authors"; + TargetAttributes = { + C13CC34029C7B73A007F25DE = { + CreatedOnToolsVersion = 14.2; + }; + C1E3491029C7A866009A50A5 = { + CreatedOnToolsVersion = 14.2; + }; + C1E34B0029C7ABCB009A50A5 = { + CreatedOnToolsVersion = 14.2; + LastSwiftMigration = 1420; + }; + C1E34B5A29C7AD01009A50A5 = { + CreatedOnToolsVersion = 14.2; + LastSwiftMigration = 1420; + }; + }; + }; + buildConfigurationList = C1E3490B29C7A866009A50A5 /* Build configuration list for PBXProject "MinimedKit" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + da, + it, + sv, + tr, + ru, + es, + nl, + he, + cs, + fi, + de, + ar, + nb, + "pt-BR", + sk, + vi, + ro, + ja, + "zh-Hans", + fr, + pl, + ); + mainGroup = C1E3490729C7A866009A50A5; + productRefGroup = C1E3491229C7A866009A50A5 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = CEC751C029D88240006E9D24 /* Products */; + ProjectRef = CEC751BF29D88240006E9D24 /* OmniKit.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + C1E3491029C7A866009A50A5 /* MinimedKit */, + C1E34B0029C7ABCB009A50A5 /* MinimedKitUI */, + C1E34B5A29C7AD01009A50A5 /* MinimedKitPlugin */, + C13CC34029C7B73A007F25DE /* MinimedKitTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + CEC751C829D88240006E9D24 /* OmniKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OmniKit.framework; + remoteRef = CEC751C729D88240006E9D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + CEC751CA29D88240006E9D24 /* OmniKitUI.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OmniKitUI.framework; + remoteRef = CEC751C929D88240006E9D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + CEC751CC29D88240006E9D24 /* OmniKitPlugin.loopplugin */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OmniKitPlugin.loopplugin; + remoteRef = CEC751CB29D88240006E9D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + CEC751CE29D88240006E9D24 /* OmniKitTests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = OmniKitTests.xctest; + remoteRef = CEC751CD29D88240006E9D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + CEC751D029D88240006E9D24 /* OmniKitPacketParser */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = OmniKitPacketParser; + remoteRef = CEC751CF29D88240006E9D24 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + C13CC33F29C7B73A007F25DE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E3490F29C7A866009A50A5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34AFB29C7A9BD009A50A5 /* Localizable.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34AFF29C7ABCB009A50A5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C13CC3C329C7B8BC007F25DE /* MinimedPumpManager.storyboard in Resources */, + C1E34B3E29C7AC0A009A50A5 /* Localizable.strings in Resources */, + C1E34B3429C7ABF3009A50A5 /* ReservoirHUDView.xib in Resources */, + C1E34B2329C7ABF3009A50A5 /* MinimedKitUI.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34B5929C7AD01009A50A5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C13CC33D29C7B73A007F25DE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C13CC3B729C7B757007F25DE /* NSStringExtensions.swift in Sources */, + C1229C2229C7ECA70066A89C /* TimeInterval.swift in Sources */, + C13CC38F29C7B757007F25DE /* BolusCarelinkMessageBodyTests.swift in Sources */, + C13CC39529C7B757007F25DE /* ChangeRemoteControlIDMessageBodyTests.swift in Sources */, + C13CC39E29C7B757007F25DE /* PumpOpsSynchronousTests.swift in Sources */, + C13CC3BC29C7B757007F25DE /* CRC16Tests.swift in Sources */, + C13CC3B929C7B757007F25DE /* PumpModelTests.swift in Sources */, + C13CC3A329C7B757007F25DE /* SensorTimestampGlucoseEventTests.swift in Sources */, + C13CC3AD29C7B757007F25DE /* DateTimeChangeGlucoseEventTests.swift in Sources */, + C13CC3B429C7B757007F25DE /* MockPumpMessageSender.swift in Sources */, + C13CC39D29C7B757007F25DE /* NSDateComponents.swift in Sources */, + C13CC3BF29C7B757007F25DE /* PumpOpsSynchronousBuildFromFramesTests.swift in Sources */, + C13CC3A029C7B757007F25DE /* TimestampedHistoryEventTests.swift in Sources */, + C13CC3AB29C7B757007F25DE /* GlucoseSensorDataGlucoseEventTests.swift in Sources */, + C13CC39229C7B757007F25DE /* ReadTempBasalCarelinkMessageBodyTests.swift in Sources */, + C13CC3A229C7B757007F25DE /* SensorDataHighGlucoseEventTests.swift in Sources */, + C13CC38829C7B757007F25DE /* ResumePumpEventTests.swift in Sources */, + C13CC3BD29C7B757007F25DE /* MySentryPumpStatusMessageBodyTests.swift in Sources */, + C13CC39C29C7B757007F25DE /* MinimedPumpManagerTests.swift in Sources */, + C13CC3A429C7B757007F25DE /* BatteryChangeGlucoseEventTests.swift in Sources */, + C13CC3C029C7B757007F25DE /* ReconciliationTests.swift in Sources */, + C13CC3AA29C7B757007F25DE /* SensorDataLowGlucoseEventTests.swift in Sources */, + C13CC38929C7B757007F25DE /* BolusNormalPumpEventTests.swift in Sources */, + C13CC39B29C7B757007F25DE /* MinimedPacketTests.swift in Sources */, + C13CC39829C7B757007F25DE /* ChangeMaxBolusMessageBodyTests.swift in Sources */, + C13CC3B229C7B757007F25DE /* MockPumpManagerDelegate.swift in Sources */, + C13CC39F29C7B757007F25DE /* NSDataTests.swift in Sources */, + C13CC3B529C7B757007F25DE /* MockRileyLinkDevice.swift in Sources */, + C13CC3A529C7B757007F25DE /* SensorErrorGlucoseEventTests.swift in Sources */, + C13CC3A629C7B757007F25DE /* SensorCalFactorGlucoseEventTests.swift in Sources */, + C13CC39129C7B757007F25DE /* ReadRemoteControlIDsMessageBodyTests.swift in Sources */, + C13CC3B029C7B757007F25DE /* BasalScheduleTests.swift in Sources */, + C13CC3AF29C7B757007F25DE /* TenSomethingGlucoseEventTests.swift in Sources */, + C13CC39929C7B757007F25DE /* GetPumpModelCarelinkMessageBodyTests.swift in Sources */, + C13CC3AC29C7B757007F25DE /* SensorSyncGlucoseEventTests.swift in Sources */, + C13CC3A729C7B757007F25DE /* SensorCalGlucoseEventTests.swift in Sources */, + C13CC38E29C7B757007F25DE /* ReadOtherDevicesIDsMessageBodyTests.swift in Sources */, + C13CC38D29C7B757007F25DE /* ChangeTempBasalCarelinkMessageBodyTests.swift in Sources */, + C13CC3B829C7B757007F25DE /* ReadSettingsCarelinkMessageBodyTests.swift in Sources */, + C13CC39429C7B757007F25DE /* ChangeMaxBasalRateMessageBodyTests.swift in Sources */, + C13CC3B129C7B757007F25DE /* MockRileyLinkProvider.swift in Sources */, + C13CC39A29C7B757007F25DE /* GetGlucosePageMessageBodyTests.swift in Sources */, + C13CC3B629C7B757007F25DE /* GlucosePageTests.swift in Sources */, + C13CC3A929C7B757007F25DE /* SensorStatusGlucoseEventTests.swift in Sources */, + C13CC39329C7B757007F25DE /* DeviceLinkMessageBodyTests.swift in Sources */, + C13CC38C29C7B757007F25DE /* MeterMessageTests.swift in Sources */, + C13CC38B29C7B757007F25DE /* ChangeTimeCarelinMessageBodyTests.swift in Sources */, + C1229C2429C7ECEB0066A89C /* Data.swift in Sources */, + C13CC3B329C7B757007F25DE /* MockPumpOps.swift in Sources */, + C13CC3A829C7B757007F25DE /* CalBGForGHGlucoseEventTests.swift in Sources */, + C13CC39729C7B757007F25DE /* ReadRemainingInsulinMessageBodyTests.swift in Sources */, + C13CC3BE29C7B757007F25DE /* NSDateComponentsTests.swift in Sources */, + C13CC39629C7B757007F25DE /* GetBatteryCarelinkMessageBodyTests.swift in Sources */, + C13CC3A129C7B757007F25DE /* CRC8Tests.swift in Sources */, + C13CC39029C7B757007F25DE /* FindDeviceMessageBodyTests.swift in Sources */, + C13CC38A29C7B757007F25DE /* ReadCurrentGlucosePageMessageBodyTests.swift in Sources */, + C13CC3AE29C7B757007F25DE /* SensorPacketGlucoseEventTests.swift in Sources */, + C13CC3BB29C7B757007F25DE /* HistoryPageTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E3490D29C7A866009A50A5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34AD129C7A98F009A50A5 /* CRC8.swift in Sources */, + C1E34A6129C7A98F009A50A5 /* SelectBasalProfilePumpEvent.swift in Sources */, + C1E34A6229C7A98F009A50A5 /* DailyTotal522PumpEvent.swift in Sources */, + C1E34ADD29C7A98F009A50A5 /* Int.swift in Sources */, + C1E34A2F29C7A98F009A50A5 /* SensorDataHighGlucoseEvent.swift in Sources */, + C1E34A4C29C7A98F009A50A5 /* PumpState.swift in Sources */, + C1E34A7529C7A98F009A50A5 /* TempBasalPumpEvent.swift in Sources */, + C1E34AA629C7A98F009A50A5 /* GlucoseEventType.swift in Sources */, + C1E34A4A29C7A98F009A50A5 /* RileyLinkDevice.swift in Sources */, + C1E34A8B29C7A98F009A50A5 /* BolusReminderPumpEvent.swift in Sources */, + C1E34ADE29C7A98F009A50A5 /* NSDateComponents.swift in Sources */, + C1E34A5629C7A98F009A50A5 /* JournalEntryInsulinMarkerPumpEvent.swift in Sources */, + C1E34A5D29C7A98F009A50A5 /* ChangeAlarmNotifyModePumpEvent.swift in Sources */, + C1E34A6529C7A98F009A50A5 /* SuspendPumpEvent.swift in Sources */, + C1E34A7B29C7A98F009A50A5 /* ChangeBolusWizardSetupPumpEvent.swift in Sources */, + C1E34A5529C7A98F009A50A5 /* ChangeSensorSetup2PumpEvent.swift in Sources */, + C1E34A6329C7A98F009A50A5 /* BGReceivedPumpEvent.swift in Sources */, + C1E34A3829C7A98F009A50A5 /* MinimedPumpManagerState.swift in Sources */, + C1E34A7C29C7A98F009A50A5 /* PlaceholderPumpEvent.swift in Sources */, + C1E34AC229C7A98F009A50A5 /* BolusCarelinkMessageBody.swift in Sources */, + C1E34A9229C7A98F009A50A5 /* AlarmSensorPumpEvent.swift in Sources */, + C1E34A4029C7A98F009A50A5 /* MinimedPumpManagerError.swift in Sources */, + C1E34A6A29C7A98F009A50A5 /* ChangeBGReminderEnablePumpEvent.swift in Sources */, + C1E34ACD29C7A98F009A50A5 /* PumpColor.swift in Sources */, + C1E34A6729C7A98F009A50A5 /* UnabsorbedInsulinPumpEvent.swift in Sources */, + C1E34A6F29C7A98F009A50A5 /* ChangeSensorAlarmSilenceConfigPumpEvent.swift in Sources */, + C1E34A6929C7A98F009A50A5 /* AlarmClockReminderPumpEvent.swift in Sources */, + C1E34A4829C7A98F009A50A5 /* MinimedPumpManager.swift in Sources */, + C1E34A9829C7A98F009A50A5 /* PowerOnCarelinkMessageBody.swift in Sources */, + C1E34A8329C7A98F009A50A5 /* ResultDailyTotalPumpEvent.swift in Sources */, + C1E34A9B29C7A98F009A50A5 /* GetHistoryPageCarelinkMessageBody.swift in Sources */, + C1E34AAD29C7A98F009A50A5 /* TimestampedHistoryEvent.swift in Sources */, + C1E34ABD29C7A98F009A50A5 /* ChangeMaxBasalRateMessageBody.swift in Sources */, + C1E34A6C29C7A98F009A50A5 /* NewTimePumpEvent.swift in Sources */, + C1E34A2129C7A98F009A50A5 /* SensorErrorGlucoseEvent.swift in Sources */, + C1E34A2D29C7A98F009A50A5 /* GlucoseEvent.swift in Sources */, + C1E34A7129C7A98F009A50A5 /* PrimePumpEvent.swift in Sources */, + C1E34AC929C7A98F009A50A5 /* CarelinkMessageBody.swift in Sources */, + C1E34A9729C7A98F009A50A5 /* ReadCurrentPageNumberMessageBody.swift in Sources */, + C1E34A9629C7A98F009A50A5 /* MessageBody.swift in Sources */, + C1E34A3E29C7A98F009A50A5 /* ReservoirReading.swift in Sources */, + C1E34A5429C7A98F009A50A5 /* ChangeBolusScrollStepSizePumpEvent.swift in Sources */, + C1E34AB029C7A98F009A50A5 /* GetPumpModelCarelinkMessageBody.swift in Sources */, + C1E34AC329C7A98F009A50A5 /* DataFrameMessageBody.swift in Sources */, + C1E34A7629C7A98F009A50A5 /* ChangeSensorRateOfChangeAlertSetupPumpEvent.swift in Sources */, + C1E34AA929C7A98F009A50A5 /* MySentryAlertType.swift in Sources */, + C1E34B8529C7B1D4009A50A5 /* HKUnit.swift in Sources */, + C1E34ABC29C7A98F009A50A5 /* ChangeMaxBolusMessageBody.swift in Sources */, + C1E34A4229C7A98F009A50A5 /* PumpSettings.swift in Sources */, + C1E34AA129C7A98F009A50A5 /* DeviceLinkMessageBody.swift in Sources */, + C1E34AAB29C7A98F009A50A5 /* BasalSchedule.swift in Sources */, + C1E34A6629C7A98F009A50A5 /* EnableBolusWizardPumpEvent.swift in Sources */, + C1E34A3129C7A98F009A50A5 /* SensorCalFactorGlucoseEvent.swift in Sources */, + C1E34A6829C7A98F009A50A5 /* DeleteOtherDeviceIDPumpEvent.swift in Sources */, + C1E34A4929C7A98F009A50A5 /* UnfinalizedDose.swift in Sources */, + C1E34A1E29C7A98F009A50A5 /* CalBGForGHGlucoseEvent.swift in Sources */, + C1E34AB229C7A98F009A50A5 /* ChangeTempBasalCarelinkMessageBody.swift in Sources */, + C1E34A7F29C7A98F009A50A5 /* ResumePumpEvent.swift in Sources */, + C1E34AA229C7A98F009A50A5 /* ReadTempBasalCarelinkMessageBody.swift in Sources */, + C1E34A2629C7A98F009A50A5 /* SensorTimestampGlucoseEvent.swift in Sources */, + C1E34A7829C7A98F009A50A5 /* BolusWizardSetupPumpEvent.swift in Sources */, + C1E34A8229C7A98F009A50A5 /* BasalProfileStartPumpEvent.swift in Sources */, + C1E34A5129C7A98F009A50A5 /* PumpAlarmPumpEvent.swift in Sources */, + C1E34A3929C7A98F009A50A5 /* MinimedPumpManagerRecents.swift in Sources */, + C1E34ACF29C7A98F009A50A5 /* PumpRegion.swift in Sources */, + C1E34A2E29C7A98F009A50A5 /* GlucoseSensorDataGlucoseEvent.swift in Sources */, + C1E34ACE29C7A98F009A50A5 /* PumpModel.swift in Sources */, + C1E34A3A29C7A98F009A50A5 /* EnliteSensorDisplayable.swift in Sources */, + C1E34A8029C7A98F009A50A5 /* ChangeBGReminderOffsetPumpEvent.swift in Sources */, + C1E34AB529C7A98F009A50A5 /* ReadSettingsCarelinkMessageBody.swift in Sources */, + C1E34A9329C7A98F009A50A5 /* DailyTotal515PumpEvent.swift in Sources */, + C1E34A8129C7A98F009A50A5 /* ChangeWatchdogMarriageProfilePumpEvent.swift in Sources */, + C1E34A8E29C7A98F009A50A5 /* DeleteBolusReminderTimePumpEvent.swift in Sources */, + C1E34A5229C7A98F009A50A5 /* ChangeCaptureEventEnablePumpEvent.swift in Sources */, + C1E34B7B29C7B044009A50A5 /* OSLog.swift in Sources */, + C1E34A7729C7A98F009A50A5 /* RestoreMystery55PumpEvent.swift in Sources */, + C1E34AA029C7A98F009A50A5 /* UnknownMessageBody.swift in Sources */, + C1E34AB629C7A98F009A50A5 /* GetPumpFirmwareVersionMessageBody.swift in Sources */, + C1E34A8A29C7A98F009A50A5 /* RewindPumpEvent.swift in Sources */, + C1E34A3029C7A98F009A50A5 /* BatteryChangeGlucoseEvent.swift in Sources */, + C1E34B8329C7B1AB009A50A5 /* TimeZone.swift in Sources */, + C1E34AA429C7A98F009A50A5 /* GlucosePage.swift in Sources */, + C1E34A3B29C7A98F009A50A5 /* PumpOpsSession+LoopKit.swift in Sources */, + C1E34A7229C7A98F009A50A5 /* DailyTotal523PumpEvent.swift in Sources */, + C1E34A2529C7A98F009A50A5 /* SensorSyncGlucoseEvent.swift in Sources */, + C1E34A5929C7A98F009A50A5 /* ChangeBolusReminderEnablePumpEvent.swift in Sources */, + C1E34B7929C7AFF7009A50A5 /* TimeInterval.swift in Sources */, + C1E34A5729C7A98F009A50A5 /* ChangeMaxBolusPumpEvent.swift in Sources */, + C1E34A6E29C7A98F009A50A5 /* ChangeTempBasalTypePumpEvent.swift in Sources */, + C1E34AB929C7A98F009A50A5 /* PumpMessage.swift in Sources */, + C1E34AB329C7A98F009A50A5 /* ReadOtherDevicesIDsMessageBody.swift in Sources */, + C1E34AB429C7A98F009A50A5 /* ReadTimeCarelinkMessageBody.swift in Sources */, + C1E34AA829C7A98F009A50A5 /* PartialDecode.swift in Sources */, + C1E34A4629C7A98F009A50A5 /* MinimedDoseProgressEstimator.swift in Sources */, + C1E34A9E29C7A98F009A50A5 /* MySentryAlertMessageBody.swift in Sources */, + C1E34A2929C7A98F009A50A5 /* DateTimeChangeGlucoseEvent.swift in Sources */, + C1E34AB829C7A98F009A50A5 /* ReadRemoteControlIDsMessageBody.swift in Sources */, + C1E34A2829C7A98F009A50A5 /* SensorPacketGlucoseEvent.swift in Sources */, + C1E34A5C29C7A98F009A50A5 /* ClearAlarmPumpEvent.swift in Sources */, + C1E34A3429C7A98F009A50A5 /* MySentryPumpStatusMessageBody+CGMManager.swift in Sources */, + C1E34AAC29C7A98F009A50A5 /* PumpEventType.swift in Sources */, + C1E34A3D29C7A98F009A50A5 /* HistoryPage+PumpOpsSession.swift in Sources */, + C1E34AC029C7A98F009A50A5 /* PacketType.swift in Sources */, + C1E34A3329C7A98F009A50A5 /* SensorValueGlucoseEvent+CGMManager.swift in Sources */, + C1E34A9129C7A98F009A50A5 /* BolusNormalPumpEvent.swift in Sources */, + C1E34ABF29C7A98F009A50A5 /* ReadRemainingInsulinMessageBody.swift in Sources */, + C1E34ACC29C7A98F009A50A5 /* BatteryChemistryType.swift in Sources */, + C1E34AC629C7A98F009A50A5 /* ChangeTimeCarelinkMessageBody.swift in Sources */, + C1E34A8629C7A98F009A50A5 /* CalBGForPHPumpEvent.swift in Sources */, + C1E34A5329C7A98F009A50A5 /* TempBasalDurationPumpEvent.swift in Sources */, + C1E34A2729C7A98F009A50A5 /* SensorDataLowGlucoseEvent.swift in Sources */, + C1E34A4429C7A98F009A50A5 /* PumpMessage+PumpOpsSession.swift in Sources */, + C1E34ABA29C7A98F009A50A5 /* SuspendResumeMessageBody.swift in Sources */, + C1E34A2A29C7A98F009A50A5 /* UnknownGlucoseEvent.swift in Sources */, + C1E34AAA29C7A98F009A50A5 /* CRC16.swift in Sources */, + C1E34ABB29C7A98F009A50A5 /* ReadOtherDevicesStatusMessageBody.swift in Sources */, + C1E34A8929C7A98F009A50A5 /* ChangeBasalProfilePatternPumpEvent.swift in Sources */, + C1E34A9029C7A98F009A50A5 /* JournalEntryExerciseMarkerPumpEvent.swift in Sources */, + C1E34A3F29C7A98F009A50A5 /* PumpMessageSender.swift in Sources */, + C1E34AC729C7A98F009A50A5 /* SelectBasalProfileMessageBody.swift in Sources */, + C1E34AC129C7A98F009A50A5 /* MeterMessage.swift in Sources */, + C1E34AAE29C7A98F009A50A5 /* GetGlucosePageMessageBody.swift in Sources */, + C1E34A2229C7A98F009A50A5 /* TenSomethingGlucoseEvent.swift in Sources */, + C1E34B7529C7AF61009A50A5 /* LocalisedString.swift in Sources */, + C1E34AA729C7A98F009A50A5 /* TimestampedGlucoseEvent.swift in Sources */, + C1E34AC829C7A98F009A50A5 /* ButtonPressCarelinkMessageBody.swift in Sources */, + C1E34A9A29C7A98F009A50A5 /* SetRemoteControlEnabledMessageBody.swift in Sources */, + C1E34A7929C7A98F009A50A5 /* ChangeTimePumpEvent.swift in Sources */, + C1E34A8F29C7A98F009A50A5 /* ChangeReservoirWarningTimePumpEvent.swift in Sources */, + C1E34AD029C7A98F009A50A5 /* MinimedPacket.swift in Sources */, + C1E34A4129C7A98F009A50A5 /* DoseStore.swift in Sources */, + C1E34A8C29C7A98F009A50A5 /* ChangeMeterIDPumpEvent.swift in Sources */, + C1E34A9F29C7A98F009A50A5 /* PumpErrorMessageBody.swift in Sources */, + C1E34A4329C7A98F009A50A5 /* PumpOps.swift in Sources */, + C1E34A7029C7A98F009A50A5 /* ChangeOtherDeviceIDPumpEvent.swift in Sources */, + C1E34A2329C7A98F009A50A5 /* SensorStatusGlucoseEvent.swift in Sources */, + C1E34A9C29C7A98F009A50A5 /* PumpAckMessageBody.swift in Sources */, + C1E34AA329C7A98F009A50A5 /* ReadCurrentGlucosePageMessageBody.swift in Sources */, + C1E34A5A29C7A98F009A50A5 /* ChangeCarbUnitsPumpEvent.swift in Sources */, + C1E34AAF29C7A98F009A50A5 /* MySentryPumpStatusMessageBody.swift in Sources */, + C1E34ABE29C7A98F009A50A5 /* FindDeviceMessageBody.swift in Sources */, + C1E34AB129C7A98F009A50A5 /* MySentryAlertClearedMessageBody.swift in Sources */, + C1E34AD229C7A98F009A50A5 /* FourByteSixByteEncoding.swift in Sources */, + C1E34A5829C7A98F009A50A5 /* ChangeVariableBolusPumpEvent.swift in Sources */, + C1E34A4729C7A98F009A50A5 /* MinimedPumpMessageSender.swift in Sources */, + C1E34B8129C7B155009A50A5 /* PumpOpsSession.swift in Sources */, + C1E34A8D29C7A98F009A50A5 /* ChangeAudioBolusPumpEvent.swift in Sources */, + C1E34A5029C7A98F009A50A5 /* ChangeWatchdogEnablePumpEvent.swift in Sources */, + C1E34ADC29C7A98F009A50A5 /* ISO8601DateFormatter.swift in Sources */, + C1E34A3C29C7A98F009A50A5 /* BasalProfile.swift in Sources */, + C1E34A7329C7A98F009A50A5 /* BatteryPumpEvent.swift in Sources */, + C1E34A8829C7A98F009A50A5 /* ChangeChildBlockEnablePumpEvent.swift in Sources */, + C1E34A7429C7A98F009A50A5 /* EnableDisableRemotePumpEvent.swift in Sources */, + C1E34A5B29C7A98F009A50A5 /* BolusWizardEstimatePumpEvent.swift in Sources */, + C1E34A7D29C7A98F009A50A5 /* PumpEvent.swift in Sources */, + C1E34A8529C7A98F009A50A5 /* RestoreMystery54PumpEvent.swift in Sources */, + C1E34A4529C7A98F009A50A5 /* InsulinDataSource.swift in Sources */, + C1E34A6B29C7A98F009A50A5 /* JournalEntryPumpLowBatteryPumpEvent.swift in Sources */, + C1E34AB729C7A98F009A50A5 /* MessageType.swift in Sources */, + C1E34A2029C7A98F009A50A5 /* SensorCalGlucoseEvent.swift in Sources */, + C1E34A5E29C7A98F009A50A5 /* ChangeAlarmClockEnablePumpEvent.swift in Sources */, + C1E34A1F29C7A98F009A50A5 /* RelativeTimestampedGlucoseEvent.swift in Sources */, + C1E34A9D29C7A98F009A50A5 /* MySentryAckMessageBody.swift in Sources */, + C1E34A4B29C7A98F009A50A5 /* PumpOpsError.swift in Sources */, + C1E34A7E29C7A98F009A50A5 /* ChangeBasalProfilePumpEvent.swift in Sources */, + C1E34A8429C7A98F009A50A5 /* UnknownPumpEvent57.swift in Sources */, + C1E34A2429C7A98F009A50A5 /* SensorValueGlucoseEvent.swift in Sources */, + C1E34A6429C7A98F009A50A5 /* TimestampedPumpEvent.swift in Sources */, + C1E34AC429C7A98F009A50A5 /* ChangeRemoteControlIDMessageBody.swift in Sources */, + C1E34AC529C7A98F009A50A5 /* ReadPumpStatusMessageBody.swift in Sources */, + C1E34A8729C7A98F009A50A5 /* ChangeParadigmLinkIDPumpEvent.swift in Sources */, + C1E34B7729C7AFCF009A50A5 /* Data.swift in Sources */, + C1E34A7A29C7A98F009A50A5 /* ChangeBolusReminderTimePumpEvent.swift in Sources */, + C1E34A5F29C7A98F009A50A5 /* JournalEntryPumpLowReservoirPumpEvent.swift in Sources */, + C1E34A6029C7A98F009A50A5 /* ChangeTimeFormatPumpEvent.swift in Sources */, + C1E34A9929C7A98F009A50A5 /* GetBatteryCarelinkMessageBody.swift in Sources */, + C1E34AA529C7A98F009A50A5 /* HistoryPage.swift in Sources */, + C1E34A2B29C7A98F009A50A5 /* DataEndGlucoseEvent.swift in Sources */, + C1E34A6D29C7A98F009A50A5 /* ChangeMaxBasalPumpEvent.swift in Sources */, + C1E34A2C29C7A98F009A50A5 /* NineteenSomethingGlucoseEvent.swift in Sources */, + C1E34A9429C7A98F009A50A5 /* JournalEntryMealMarkerPumpEvent.swift in Sources */, + C1E34A3229C7A98F009A50A5 /* SensorWeakSignalGlucoseEvent.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34AFD29C7ABCB009A50A5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1E34B2829C7ABF3009A50A5 /* MinimedPumpSetupCompleteViewController.swift in Sources */, + C1E34B8829C7B292009A50A5 /* Comparable.swift in Sources */, + C1E34B8A29C7B2FC009A50A5 /* LocalisedString.swift in Sources */, + C1E34B2429C7ABF3009A50A5 /* Image.swift in Sources */, + C1E34B3029C7ABF3009A50A5 /* MinimedHUDProvider.swift in Sources */, + C1E34B3729C7ABF3009A50A5 /* MinimedPumpSettingsViewModel.swift in Sources */, + C1E34B2E29C7ABF3009A50A5 /* MinimedPumpUICoordinator.swift in Sources */, + C1E34B3129C7ABF3009A50A5 /* UseMySentrySelectionView.swift in Sources */, + C1E34B8C29C7B334009A50A5 /* IdentifiableClass.swift in Sources */, + C1E34B2729C7ABF3009A50A5 /* MinimedPumpClockSetupViewController.swift in Sources */, + C1E34B3229C7ABF3009A50A5 /* DataSourceSelectionView.swift in Sources */, + C1E34B3A29C7ABF3009A50A5 /* TimeView.swift in Sources */, + C1E34B3929C7ABF3009A50A5 /* MinimedReservoirView.swift in Sources */, + C1E34B2A29C7ABF3009A50A5 /* MinimedPumpManager+UI.swift in Sources */, + C1E34B2F29C7ABF3009A50A5 /* CommandResponseViewController.swift in Sources */, + C1E34B3529C7ABF3009A50A5 /* MinimedPumpSettingsView.swift in Sources */, + C1E34B3329C7ABF3009A50A5 /* BatteryTypeSelectionView.swift in Sources */, + C1E34B2929C7ABF3009A50A5 /* MinimedPumpSentrySetupViewController.swift in Sources */, + C1E34B9229C7B46C009A50A5 /* TimeZone.swift in Sources */, + C1E34B8E29C7B34F009A50A5 /* NibLoadable.swift in Sources */, + C1E34B3629C7ABF3009A50A5 /* ReservoirHUDView.swift in Sources */, + C1E34B3829C7ABF3009A50A5 /* InsulinTypeConfirmation.swift in Sources */, + C1E34B2B29C7ABF3009A50A5 /* PumpModel.swift in Sources */, + C1E34B2529C7ABF3009A50A5 /* MinimedPumpIDSetupViewController.swift in Sources */, + C1E34B9029C7B38A009A50A5 /* NumberFormatter.swift in Sources */, + C1E34B2629C7ABF3009A50A5 /* MinimedPumpManagerSetupViewController.swift in Sources */, + C1E34B2C29C7ABF3009A50A5 /* RadioSelectionTableViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1E34B5729C7AD01009A50A5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C13CC3DD29C7BA48007F25DE /* OSLog.swift in Sources */, + C1E34B6429C7AD31009A50A5 /* MinimedKitPlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C13CC33B29C7B6BC007F25DE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C1E3491029C7A866009A50A5 /* MinimedKit */; + targetProxy = C13CC33A29C7B6BC007F25DE /* PBXContainerItemProxy */; + }; + C13CC34729C7B73A007F25DE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C1E3491029C7A866009A50A5 /* MinimedKit */; + targetProxy = C13CC34629C7B73A007F25DE /* PBXContainerItemProxy */; + }; + C1E34B6E29C7AD9C009A50A5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C1E3491029C7A866009A50A5 /* MinimedKit */; + targetProxy = C1E34B6D29C7AD9C009A50A5 /* PBXContainerItemProxy */; + }; + C1E34B7229C7AD9C009A50A5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C1E34B0029C7ABCB009A50A5 /* MinimedKitUI */; + targetProxy = C1E34B7129C7AD9C009A50A5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + C13CC3C129C7B8BC007F25DE /* MinimedPumpManager.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C13CC3C229C7B8BC007F25DE /* Base */, + C13CC3C529C7B8D0007F25DE /* ar */, + C13CC3C629C7B8D4007F25DE /* en */, + C13CC3C729C7B8D8007F25DE /* zh-Hans */, + C13CC3C829C7B8DA007F25DE /* cs */, + C13CC3C929C7B8DB007F25DE /* da */, + C13CC3CA29C7B8DC007F25DE /* nl */, + C13CC3CB29C7B8DD007F25DE /* fi */, + C13CC3CC29C7B8DE007F25DE /* fr */, + C13CC3CD29C7B8DF007F25DE /* de */, + C13CC3CE29C7B8E0007F25DE /* he */, + C13CC3CF29C7B8E0007F25DE /* it */, + C13CC3D029C7B8E1007F25DE /* ja */, + C13CC3D129C7B8E2007F25DE /* nb */, + C13CC3D229C7B8E3007F25DE /* pl */, + C13CC3D329C7B8E4007F25DE /* pt-BR */, + C13CC3D429C7B8E5007F25DE /* ro */, + C13CC3D529C7B8E5007F25DE /* ru */, + C13CC3D629C7B8E6007F25DE /* sk */, + C13CC3D729C7B8E7007F25DE /* es */, + C13CC3D829C7B8E9007F25DE /* sv */, + C13CC3D929C7B8E9007F25DE /* tr */, + C13CC3DA29C7B8EB007F25DE /* vi */, + ); + name = MinimedPumpManager.storyboard; + sourceTree = ""; + }; + C1E34AE429C7A9BC009A50A5 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C1E34AE529C7A9BC009A50A5 /* de */, + C1E34AE629C7A9BC009A50A5 /* he */, + C1E34AE729C7A9BC009A50A5 /* ar */, + C1E34AE829C7A9BC009A50A5 /* zh-Hans */, + C1E34AE929C7A9BC009A50A5 /* ja */, + C1E34AEA29C7A9BC009A50A5 /* nb */, + C1E34AEB29C7A9BC009A50A5 /* es */, + C1E34AEC29C7A9BC009A50A5 /* da */, + C1E34AED29C7A9BC009A50A5 /* it */, + C1E34AEE29C7A9BC009A50A5 /* sk */, + C1E34AEF29C7A9BC009A50A5 /* sv */, + C1E34AF029C7A9BC009A50A5 /* cs */, + C1E34AF129C7A9BC009A50A5 /* Base */, + C1E34AF229C7A9BC009A50A5 /* tr */, + C1E34AF329C7A9BC009A50A5 /* pl */, + C1E34AF429C7A9BC009A50A5 /* pt-BR */, + C1E34AF529C7A9BC009A50A5 /* vi */, + C1E34AF629C7A9BC009A50A5 /* ru */, + C1E34AF729C7A9BC009A50A5 /* fr */, + C1E34AF829C7A9BC009A50A5 /* fi */, + C1E34AF929C7A9BC009A50A5 /* nl */, + C1E34AFA29C7A9BC009A50A5 /* ro */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + C1E34B4029C7AC0A009A50A5 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C1E34B4129C7AC4C009A50A5 /* ar */, + C1E34B4229C7AC4F009A50A5 /* zh-Hans */, + C1E34B4329C7AC51009A50A5 /* cs */, + C1E34B4429C7AC54009A50A5 /* da */, + C1E34B4529C7AC56009A50A5 /* nl */, + C1E34B4629C7AC58009A50A5 /* fi */, + C1E34B4729C7AC5B009A50A5 /* fr */, + C1E34B4829C7AC5D009A50A5 /* de */, + C1E34B4929C7AC5F009A50A5 /* he */, + C1E34B4A29C7AC61009A50A5 /* it */, + C1E34B4B29C7AC64009A50A5 /* ja */, + C1E34B4C29C7AC66009A50A5 /* nb */, + C1E34B4D29C7AC68009A50A5 /* pl */, + C1E34B4E29C7AC69009A50A5 /* pt-BR */, + C1E34B4F29C7AC6A009A50A5 /* ro */, + C1E34B5029C7AC6B009A50A5 /* ru */, + C1E34B5129C7AC6C009A50A5 /* sk */, + C1E34B5229C7AC6D009A50A5 /* es */, + C1E34B5329C7AC6E009A50A5 /* sv */, + C1E34B5429C7AC6F009A50A5 /* tr */, + C1E34B5529C7AC70009A50A5 /* vi */, + C1BF2DB929C8007300EB8987 /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C13CC34929C7B73A007F25DE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = UY678SP37Q; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C13CC34A29C7B73A007F25DE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = UY678SP37Q; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C1E3491629C7A866009A50A5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C1E3491729C7A866009A50A5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + ); + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C1E3491929C7A866009A50A5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C1E3491A29C7A866009A50A5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C1E34B0629C7ABCB009A50A5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C1E34B0729C7ABCB009A50A5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C1E34B6029C7AD01009A50A5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = MinimedKitPlugin/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitPlugin; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = loopplugin; + }; + name = Debug; + }; + C1E34B6129C7AD01009A50A5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = MinimedKitPlugin/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.MinimedKitPlugin; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = loopplugin; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C13CC34829C7B73A007F25DE /* Build configuration list for PBXNativeTarget "MinimedKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C13CC34929C7B73A007F25DE /* Debug */, + C13CC34A29C7B73A007F25DE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1E3490B29C7A866009A50A5 /* Build configuration list for PBXProject "MinimedKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E3491629C7A866009A50A5 /* Debug */, + C1E3491729C7A866009A50A5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1E3491829C7A866009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E3491929C7A866009A50A5 /* Debug */, + C1E3491A29C7A866009A50A5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1E34B0529C7ABCB009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKitUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E34B0629C7ABCB009A50A5 /* Debug */, + C1E34B0729C7ABCB009A50A5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1E34B5F29C7AD01009A50A5 /* Build configuration list for PBXNativeTarget "MinimedKitPlugin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1E34B6029C7AD01009A50A5 /* Debug */, + C1E34B6129C7AD01009A50A5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C1E3490829C7A866009A50A5 /* Project object */; +} diff --git a/Dependencies/rileylink_ios/MinimedKit/CGMManager/MySentryPumpStatusMessageBody+CGMManager.swift b/Dependencies/MinimedKit/MinimedKit/CGMManager/MySentryPumpStatusMessageBody+CGMManager.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/CGMManager/MySentryPumpStatusMessageBody+CGMManager.swift rename to Dependencies/MinimedKit/MinimedKit/CGMManager/MySentryPumpStatusMessageBody+CGMManager.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/CGMManager/SensorValueGlucoseEvent+CGMManager.swift b/Dependencies/MinimedKit/MinimedKit/CGMManager/SensorValueGlucoseEvent+CGMManager.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/CGMManager/SensorValueGlucoseEvent+CGMManager.swift rename to Dependencies/MinimedKit/MinimedKit/CGMManager/SensorValueGlucoseEvent+CGMManager.swift diff --git a/Dependencies/MinimedKit/MinimedKit/Extensions/Data.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/Data.swift new file mode 100644 index 0000000000..805fd406d0 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/Data.swift @@ -0,0 +1,89 @@ +// +// Data.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +extension Data { + private func toDefaultEndian(_: T.Type) -> T { + return self.withUnsafeBytes({ (rawBufferPointer: UnsafeRawBufferPointer) -> T in + let bufferPointer = rawBufferPointer.bindMemory(to: T.self) + guard let pointer = bufferPointer.baseAddress else { + return 0 + } + return T(pointer.pointee) + }) + } + + func to(_ type: T.Type) -> T { + return T(littleEndian: toDefaultEndian(type)) + } + + func toBigEndian(_ type: T.Type) -> T { + return T(bigEndian: toDefaultEndian(type)) + } + + mutating func append(_ newElement: T) { + var element = newElement.littleEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + mutating func appendBigEndian(_ newElement: T) { + var element = newElement.bigEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + init(_ value: T) { + var value = value.littleEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } + + init(bigEndian value: T) { + var value = value.bigEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } +} + + +// String conversion methods, adapted from https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 +extension Data { + init?(hexadecimalString: String) { + self.init(capacity: hexadecimalString.utf16.count / 2) + + // Convert 0 ... 9, a ... f, A ...F to their decimal value, + // return nil for all other input characters + func decodeNibble(u: UInt16) -> UInt8? { + switch u { + case 0x30 ... 0x39: // '0'-'9' + return UInt8(u - 0x30) + case 0x41 ... 0x46: // 'A'-'F' + return UInt8(u - 0x41 + 10) // 10 since 'A' is 10, not 0 + case 0x61 ... 0x66: // 'a'-'f' + return UInt8(u - 0x61 + 10) // 10 since 'a' is 10, not 0 + default: + return nil + } + } + + var even = true + var byte: UInt8 = 0 + for c in hexadecimalString.utf16 { + guard let val = decodeNibble(u: c) else { return nil } + if even { + byte = val << 4 + } else { + byte += val + self.append(byte) + } + even = !even + } + guard even else { return nil } + } + + var hexadecimalString: String { + return map { String(format: "%02hhx", $0) }.joined() + } +} diff --git a/Dependencies/MinimedKit/MinimedKit/Extensions/HKUnit.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/HKUnit.swift new file mode 100644 index 0000000000..33ebde25a1 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/HKUnit.swift @@ -0,0 +1,23 @@ +// +// HKUnit.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import HealthKit + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + +} diff --git a/Dependencies/rileylink_ios/MinimedKit/Extensions/ISO8601DateFormatter.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/ISO8601DateFormatter.swift similarity index 90% rename from Dependencies/rileylink_ios/MinimedKit/Extensions/ISO8601DateFormatter.swift rename to Dependencies/MinimedKit/MinimedKit/Extensions/ISO8601DateFormatter.swift index 4008b809c2..6bcac65005 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Extensions/ISO8601DateFormatter.swift +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/ISO8601DateFormatter.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nate Racklyeft on 6/15/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Extensions/Int.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/Int.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Extensions/Int.swift rename to Dependencies/MinimedKit/MinimedKit/Extensions/Int.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Extensions/NSDateComponents.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/NSDateComponents.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Extensions/NSDateComponents.swift rename to Dependencies/MinimedKit/MinimedKit/Extensions/NSDateComponents.swift diff --git a/Dependencies/MinimedKit/MinimedKit/Extensions/OSLog.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/OSLog.swift new file mode 100644 index 0000000000..9b2a593d4d --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/OSLog.swift @@ -0,0 +1,50 @@ +// +// OSLog.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import os.log + + +extension OSLog { + convenience init(category: String) { + self.init(subsystem: "com.randallknutson.OmniBLE", category: category) + } + + func debug(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .debug, args) + } + + func info(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .info, args) + } + + func `default`(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .default, args) + } + + func error(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .error, args) + } + + private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { + switch args.count { + case 0: + os_log(message, log: self, type: type) + case 1: + os_log(message, log: self, type: type, args[0]) + case 2: + os_log(message, log: self, type: type, args[0], args[1]) + case 3: + os_log(message, log: self, type: type, args[0], args[1], args[2]) + case 4: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) + case 5: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) + default: + os_log(message, log: self, type: type, args) + } + } +} diff --git a/Dependencies/MinimedKit/MinimedKit/Extensions/TimeInterval.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..70b3b2cbfe --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/TimeInterval.swift @@ -0,0 +1,80 @@ +// +// TimeInterval.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +extension TimeInterval { + + static func days(_ days: Double) -> TimeInterval { + return self.init(days: days) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + static func minutes(_ minutes: Int) -> TimeInterval { + return self.init(minutes: Double(minutes)) + } + + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func seconds(_ seconds: Double) -> TimeInterval { + return self.init(seconds) + } + + static func milliseconds(_ milliseconds: Double) -> TimeInterval { + return self.init(milliseconds / 1000) + } + + init(days: Double) { + self.init(hours: days * 24) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(seconds: Double) { + self.init(seconds) + } + + init(milliseconds: Double) { + self.init(milliseconds / 1000) + } + + var milliseconds: Double { + return self * 1000 + } + + init(hundredthsOfMilliseconds: Double) { + self.init(hundredthsOfMilliseconds / 100000) + } + + var hundredthsOfMilliseconds: Double { + return self * 100000 + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } + + var days: Double { + return hours / 24.0 + } + +} diff --git a/Dependencies/MinimedKit/MinimedKit/Extensions/TimeZone.swift b/Dependencies/MinimedKit/MinimedKit/Extensions/TimeZone.swift new file mode 100644 index 0000000000..f7de7c6050 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Extensions/TimeZone.swift @@ -0,0 +1,18 @@ +// +// TimeZone.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } + + var fixed: TimeZone { + return TimeZone(secondsFromGMT: secondsFromGMT())! + } +} diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift index 3afea5f290..00ed6237ab 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/BatteryChangeGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift index 7a2c9f59ac..4ad2d2c4ad 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/CalBGForGHGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift index fbc90cfa71..8fb3bcc815 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DataEndGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/9/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift index c3a0e651bd..e06241a2e5 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/DateTimeChangeGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseEvent.swift similarity index 86% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseEvent.swift index 14070531df..c841626826 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift index 16221a5228..04b39cc68f 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/GlucoseSensorDataGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift index 4e764b335f..03ab431ca3 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/NineteenSomethingGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift similarity index 82% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift index 739537c1db..f163174f1a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/RelativeTimestampedGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift index bceafd75df..1dc920ba9a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalFactorGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift index 048933581f..d9c2fe6fdb 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorCalGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift index 8a00d787be..a93d46551f 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataHighGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift index d80f6ee0fe..c77d4d337c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorDataLowGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/5/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift index 81e21be529..4ed632801f 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorErrorGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift index a070b0abd9..f5da1b9b33 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorPacketGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift index 5e43792a1b..4c23ccb4f0 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorStatusGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift index d998304ad4..0256ee4751 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorSyncGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift index 41041c5986..1df4ad9dd6 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorTimestampGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift similarity index 82% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift index 8bdeec3d97..12d8362bdf 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorValueGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/11/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift index 2b4d595d76..33ed544d49 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/SensorWeakSignalGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift index 487b801a98..7d7632ad20 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/TenSomethingGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift index dcf5770f28..85dea06ac2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/GlucoseEvents/UnknownGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Info.plist b/Dependencies/MinimedKit/MinimedKit/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Info.plist rename to Dependencies/MinimedKit/MinimedKit/Info.plist diff --git a/Dependencies/MinimedKit/MinimedKit/LocalisedString.swift b/Dependencies/MinimedKit/MinimedKit/LocalisedString.swift new file mode 100644 index 0000000000..314681428b --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/LocalisedString.swift @@ -0,0 +1,28 @@ +// +// LocalisedString.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("MinimedKit_MinimedKit.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/BolusCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/BolusCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/BolusCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/BolusCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift similarity index 90% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift index 2a7ebe5292..fefddd012e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ButtonPressCarelinkMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/12/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/CarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/CarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/CarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/CarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift index cfbcbc49aa..df3c444158 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBasalRateMessageBody.swift @@ -2,7 +2,7 @@ // ChangeMaxBasalRateMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift index 6d9c9a58bb..33d05ba4c2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeMaxBolusMessageBody.swift @@ -2,7 +2,7 @@ // ChangeMaxBolusMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift index 3de363c6a8..72eee01e13 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeRemoteControlIDMessageBody.swift @@ -2,7 +2,7 @@ // ChangeRemoteControlIDMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeTempBasalCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeTempBasalCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ChangeTempBasalCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ChangeTempBasalCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ChangeTimeCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ChangeTimeCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ChangeTimeCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ChangeTimeCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/DataFrameMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/DataFrameMessageBody.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Messages/DataFrameMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/DataFrameMessageBody.swift index b1eb1deff3..722c665190 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/DataFrameMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/DataFrameMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 5/6/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/DeviceLinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/DeviceLinkMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/DeviceLinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/DeviceLinkMessageBody.swift index 08a32e3d31..bc5fe2b09c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/DeviceLinkMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/DeviceLinkMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/29/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/FindDeviceMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/FindDeviceMessageBody.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/Messages/FindDeviceMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/FindDeviceMessageBody.swift index 59165f8496..088101c4fa 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/FindDeviceMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/FindDeviceMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/29/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift index 0971404afe..c60f4130fa 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/GetBatteryCarelinkMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/13/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/GetGlucosePageMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/GetGlucosePageMessageBody.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/Messages/GetGlucosePageMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/GetGlucosePageMessageBody.swift index da36780416..064a591126 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/GetGlucosePageMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/GetGlucosePageMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift index 506858930e..4a80f9ca1e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/GetHistoryPageCarelinkMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/14/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift index 2abb0c63a9..35de7951e2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/GetPumpFirmwareVersionMessageBody.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 10/10/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift index 160af761d5..02c1ad0788 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/GetPumpModelCarelinkMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/12/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MessageType.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MessageType.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MessageType.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MessageType.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MeterMessage.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MeterMessage.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MeterMessage.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MeterMessage.swift index ee9818124f..a0f4f1fb32 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/MeterMessage.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/MeterMessage.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/BasalSchedule.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/BasalSchedule.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/BasalSchedule.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/BasalSchedule.swift index c1f156efc9..fac4ee3ff9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/BasalSchedule.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/BasalSchedule.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 5/6/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/CRC16.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/CRC16.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/CRC16.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/CRC16.swift index f48d376104..c30aea9fa9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/CRC16.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/CRC16.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucoseEventType.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucoseEventType.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucoseEventType.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucoseEventType.swift index d86ab1b696..b18e1b1e2e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucoseEventType.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucoseEventType.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucosePage.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucosePage.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucosePage.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucosePage.swift index 8e0c60ff3f..2608001bf7 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/GlucosePage.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/GlucosePage.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/HistoryPage.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/HistoryPage.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/HistoryPage.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/HistoryPage.swift index fa2a7d9c44..657f17f145 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/HistoryPage.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/HistoryPage.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/3/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/MySentryAlertType.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/MySentryAlertType.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/MySentryAlertType.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/MySentryAlertType.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/PartialDecode.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/PartialDecode.swift similarity index 75% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/PartialDecode.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/PartialDecode.swift index 45b762643f..8defffe762 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/PartialDecode.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/PartialDecode.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 5/11/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/PumpEventType.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/PumpEventType.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/PumpEventType.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/PumpEventType.swift index 8e15301077..6a8ab4e8b1 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/PumpEventType.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/PumpEventType.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift index 7f7c4e28a1..c9a8dc5f11 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedGlucoseEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift b/Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift new file mode 100644 index 0000000000..98e2b42ecb --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift @@ -0,0 +1,32 @@ +// +// TimestampedPumpEvent.swift +// RileyLink +// +// Created by Nate Racklyeft on 6/15/16. +// Copyright © 2016 LoopKit Authors. All rights reserved. +// + +import Foundation + + +// Boxes a TimestampedPumpEvent, storing its reconciled date components +public struct TimestampedHistoryEvent { + public let pumpEvent: PumpEvent + public let date: Date + + public init(pumpEvent: PumpEvent, date: Date) { + self.pumpEvent = pumpEvent + self.date = date + } +} + + +extension TimestampedHistoryEvent: DictionaryRepresentable { + public var dictionaryRepresentation: [String : Any] { + var dict = pumpEvent.dictionaryRepresentation + + dict["timestamp"] = ISO8601DateFormatter.defaultFormatter().string(from: date) + + return dict + } +} diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAckMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MySentryAckMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAckMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MySentryAckMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAlertClearedMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MySentryAlertClearedMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAlertClearedMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MySentryAlertClearedMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAlertMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MySentryAlertMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MySentryAlertMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MySentryAlertMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/MySentryPumpStatusMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/MySentryPumpStatusMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/MySentryPumpStatusMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/MySentryPumpStatusMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/PacketType.swift b/Dependencies/MinimedKit/MinimedKit/Messages/PacketType.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/PacketType.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/PacketType.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/PowerOnCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/PowerOnCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/PowerOnCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/PowerOnCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/PumpAckMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/PumpAckMessageBody.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKit/Messages/PumpAckMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/PumpAckMessageBody.swift index 47d95c5b01..29f82c4a03 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/PumpAckMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/PumpAckMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/14/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/PumpErrorMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/PumpErrorMessageBody.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Messages/PumpErrorMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/PumpErrorMessageBody.swift index fdc445e41a..dffdff2619 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/PumpErrorMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/PumpErrorMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 5/10/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/PumpMessage.swift b/Dependencies/MinimedKit/MinimedKit/Messages/PumpMessage.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/PumpMessage.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/PumpMessage.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift index 44c98f5ff1..79e3a402e4 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentGlucosePageMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift index 25a8eaa0ae..6395949148 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadCurrentPageNumberMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 2/17/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift index 57ccb1501c..b0d7b88e9f 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesIDsMessageBody.swift @@ -2,7 +2,7 @@ // ReadOtherDevicesIDsMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift index 8a96f9debf..617807f4ba 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadOtherDevicesStatusMessageBody.swift @@ -2,7 +2,7 @@ // ReadOtherDevicesStatusMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadPumpStatusMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadPumpStatusMessageBody.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadPumpStatusMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadPumpStatusMessageBody.swift index a08d62411f..7a36edb273 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadPumpStatusMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadPumpStatusMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 7/31/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift index 6ebe64c4a7..4ecf1c574a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadRemainingInsulinMessageBody.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nathan Racklyeft on 5/25/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift index 370009cdc7..529adb6fa2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/ReadRemoteControlIDsMessageBody.swift @@ -2,7 +2,7 @@ // ReadRemoteControlIDsMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadSettingsCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadSettingsCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadSettingsCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadSettingsCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadTempBasalCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadTempBasalCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadTempBasalCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadTempBasalCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/ReadTimeCarelinkMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/ReadTimeCarelinkMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/ReadTimeCarelinkMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/ReadTimeCarelinkMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/SelectBasalProfileMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/SelectBasalProfileMessageBody.swift similarity index 82% rename from Dependencies/rileylink_ios/MinimedKit/Messages/SelectBasalProfileMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/SelectBasalProfileMessageBody.swift index d5e2a5d950..5523185b45 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/SelectBasalProfileMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/SelectBasalProfileMessageBody.swift @@ -2,7 +2,7 @@ // SelectBasalProfileMessageBody.swift // MinimedKit // -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift similarity index 81% rename from Dependencies/rileylink_ios/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift index f9f48da815..b312e8c9b3 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/SetRemoteControlEnabledMessageBody.swift @@ -2,7 +2,7 @@ // SetRemoteControlEnabledMessageBody.swift // MinimedKit // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/SuspendResumeMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/SuspendResumeMessageBody.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/Messages/SuspendResumeMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/SuspendResumeMessageBody.swift index 140b666f9e..dd8ef3f42b 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/SuspendResumeMessageBody.swift +++ b/Dependencies/MinimedKit/MinimedKit/Messages/SuspendResumeMessageBody.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 10/1/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/UnknownMessageBody.swift b/Dependencies/MinimedKit/MinimedKit/Messages/UnknownMessageBody.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Messages/UnknownMessageBody.swift rename to Dependencies/MinimedKit/MinimedKit/Messages/UnknownMessageBody.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/MinimedKit.h b/Dependencies/MinimedKit/MinimedKit/MinimedKit.h similarity index 88% rename from Dependencies/rileylink_ios/MinimedKit/MinimedKit.h rename to Dependencies/MinimedKit/MinimedKit/MinimedKit.h index b4f1d1cc90..37afdb5b17 100644 --- a/Dependencies/rileylink_ios/MinimedKit/MinimedKit.h +++ b/Dependencies/MinimedKit/MinimedKit/MinimedKit.h @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // #import diff --git a/Dependencies/rileylink_ios/MinimedKit/Models/BatteryChemistryType.swift b/Dependencies/MinimedKit/MinimedKit/Models/BatteryChemistryType.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Models/BatteryChemistryType.swift rename to Dependencies/MinimedKit/MinimedKit/Models/BatteryChemistryType.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Models/PumpColor.swift b/Dependencies/MinimedKit/MinimedKit/Models/PumpColor.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Models/PumpColor.swift rename to Dependencies/MinimedKit/MinimedKit/Models/PumpColor.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/Models/PumpModel.swift b/Dependencies/MinimedKit/MinimedKit/Models/PumpModel.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKit/Models/PumpModel.swift rename to Dependencies/MinimedKit/MinimedKit/Models/PumpModel.swift index b18debdcb2..d3ab6f8116 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Models/PumpModel.swift +++ b/Dependencies/MinimedKit/MinimedKit/Models/PumpModel.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/Models/PumpRegion.swift b/Dependencies/MinimedKit/MinimedKit/Models/PumpRegion.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKit/Models/PumpRegion.swift rename to Dependencies/MinimedKit/MinimedKit/Models/PumpRegion.swift index 9d4147b7d2..c90baa38c9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Models/PumpRegion.swift +++ b/Dependencies/MinimedKit/MinimedKit/Models/PumpRegion.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 9/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift index 17bef7b565..d09c9cb442 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmClockReminderPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift index f22ba24611..0dcc3f6e3e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/AlarmSensorPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift index f033376a69..0cdb369ab8 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BGReceivedPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift index 4d782e7ff1..b815ee64ea 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BasalProfileStartPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BatteryPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BatteryPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BatteryPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BatteryPumpEvent.swift index 1125bd160d..a8f5aae771 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BatteryPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BatteryPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift index c5965c1682..414e9809d6 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusNormalPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation @@ -88,9 +88,13 @@ public struct BolusNormalPumpEvent: TimestampedPumpEvent { unabsorbedInsulinTotal = 0 } type = duration > 0 ? .square : .normal - } - + + func isMutable(atDate date: Date = Date(), forPump model: PumpModel) -> Bool { + let deliveryFinishDate = date.addingTimeInterval(deliveryTime) + return model.appendsSquareWaveToHistoryOnStartOfDelivery && type == .square && deliveryFinishDate > date + } + public var dictionaryRepresentation: [String: Any] { var dictionary: [String: Any] = [ "_type": "BolusNormal", diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift index fd637e6dad..c4cda2217c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusReminderPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 9/23/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift index d4e26fe482..1266dcc6c7 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardEstimatePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift index 1237224f2d..056d887f6c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/BolusWizardSetupPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift index 54c8178e9f..1cfe248286 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/CalBGForPHPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift index d786e7a845..bfde97ec6c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmClockEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift index 273b8e4df4..e6e5eee225 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAlarmNotifyModePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift index f6be0c7edb..9ffcc65058 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeAudioBolusPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift index d82fd2e377..8c68158e22 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift index 8b4cbd3671..f46675b0a1 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBGReminderOffsetPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift index 04bf1ff969..bdb746d6e9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePatternPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift index 8da7639c50..5f29f0358c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBasalProfilePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift index f85b8504c9..17fa4d4c6b 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift index d141a73261..4598a70f64 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusReminderTimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift index c36313b5be..8aab64187d 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusScrollStepSizePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift index 7d3d9a4b45..6612a495a3 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeBolusWizardSetupPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 8/29/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift index c87e9fdd68..6712458f8a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCaptureEventEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift index 5611e37aef..114f3ffcaa 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeCarbUnitsPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift index cbf39ec010..ef0fc515c8 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeChildBlockEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift index a8fdee8d99..d65aab23ba 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBasalPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift index f1b5495f15..268764f9e6 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMaxBolusPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift index fbccbca1db..f7c6d42b4c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeMeterIDPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 9/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift index 821ff86f1d..f4e21578c2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeOtherDeviceIDPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift index 89c0fb3dc2..989ffe9bda 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeParadigmLinkIDPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift index 51f4a62ebd..f426af805a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeReservoirWarningTimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift index f4c2fb37bf..fa4da56969 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorAlarmSilenceConfigPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 10/23/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift index 3d418aeac0..a3bf969cc7 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorRateOfChangeAlertSetupPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift index 1b94a62a64..d362eaaeb4 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift index 183e6b5fe1..799f3a75e4 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTempBasalTypePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/20/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift index 0425bb5a2a..535049bc26 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimeFormatPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift index c4e7a3e501..55f5ebbe16 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeTimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift index 8990c877c3..bb87543be9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeVariableBolusPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift index 9bcf3ebd2d..fa1d474b55 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogEnablePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift index f3b82eaa5d..458c4e6c24 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ChangeWatchdogMarriageProfilePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift index c9a0784f51..044fefaf48 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ClearAlarmPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift index dc27a6f1d3..bc82b6f9b2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal515PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 9/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift index e629cc3523..b551e0196a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal522PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift index 2ee7928891..c39b5d7e10 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DailyTotal523PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift index ed4e2c7897..f83feab3c1 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteBolusReminderTimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift index d00af12259..b26b40ca64 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/DeleteOtherDeviceIDPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift index 01a27a02fd..f2aa8a2054 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableBolusWizardPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 8/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift index 726fc0cdc6..e6dc6b66c8 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/EnableDisableRemotePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift index d7d903405f..d1623af3f5 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryExerciseMarkerPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift index 9f0467b923..0a6d2b094c 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryInsulinMarkerPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 7/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift index 8be0dbdeb6..34ed1a018d 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryMealMarkerPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 7/14/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift index 14fe69b5f5..731c85b48b 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowBatteryPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift index 0c9b7b7c80..23ce602332 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/JournalEntryPumpLowReservoirPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/NewTimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/NewTimePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/NewTimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/NewTimePumpEvent.swift index b5b9d7bb02..992441ce05 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/NewTimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/NewTimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Darrell Wright on 2016-12-04. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift index 22b3f9802b..993529bd3f 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PlaceholderPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nate Racklyeft on 6/20/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PrimePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PrimePumpEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/PrimePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/PrimePumpEvent.swift index bfc0f2c92b..46b37b2fb2 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PrimePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PrimePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift index 95e8f2322a..0e6761ef5e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpAlarmPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpEvent.swift index 0e7ffe5ed1..e9c445ddc3 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift index 1971b1f877..4c698addc0 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery54PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 8/29/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift index 298eb59b89..9f46eaf1ca 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RestoreMystery55PumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 8/29/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift index cc2befe622..e79a73f3f5 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ResultDailyTotalPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResumePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ResumePumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResumePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/ResumePumpEvent.swift index 638e190524..e57dc1dfe9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/ResumePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/ResumePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RewindPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RewindPumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/RewindPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/RewindPumpEvent.swift index 6311e045c6..603727f51e 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/RewindPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/RewindPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift index 2ee4d9845d..d856773362 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/SelectBasalProfilePumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nate Racklyeft on 6/15/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/SuspendPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/SuspendPumpEvent.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/SuspendPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/SuspendPumpEvent.swift index 3641a8bfe5..3dceda8c71 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/SuspendPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/SuspendPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift index f57a44e119..64a3827bc3 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalDurationPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/20/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalPumpEvent.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalPumpEvent.swift index cf0a9af4a1..d2e43fdd0a 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TempBasalPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TempBasalPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TimestampedPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TimestampedPumpEvent.swift similarity index 78% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/TimestampedPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/TimestampedPumpEvent.swift index b25faa15d9..5a711053a9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/TimestampedPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/TimestampedPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift index 419904ca33..ed96c87494 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/UnabsorbedInsulinPumpEvent.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnknownPumpEvent57.swift b/Dependencies/MinimedKit/MinimedKit/PumpEvents/UnknownPumpEvent57.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnknownPumpEvent57.swift rename to Dependencies/MinimedKit/MinimedKit/PumpEvents/UnknownPumpEvent57.swift index 37287eb83e..08e65a89ab 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpEvents/UnknownPumpEvent57.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpEvents/UnknownPumpEvent57.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 8/11/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/BasalProfile.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/BasalProfile.swift similarity index 84% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/BasalProfile.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/BasalProfile.swift index c492129808..51db1ec436 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/BasalProfile.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/BasalProfile.swift @@ -2,7 +2,7 @@ // BasalProfile.swift // RileyLinkKit // -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/DoseStore.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/DoseStore.swift similarity index 79% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/DoseStore.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/DoseStore.swift index 451da06113..07bf991cad 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/DoseStore.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/DoseStore.swift @@ -42,7 +42,7 @@ extension Collection where Element == TimestampedHistoryEvent { if !bolus.wasRemotelyTriggered { automatic = false } - dose = DoseEntry(type: .bolus, startDate: event.date, endDate: bolusEndDate, value: bolus.programmed, unit: .units, deliveredUnits: bolus.amount, automatic: automatic, isMutable: event.isMutable(atDate: now, forPump: model), wasProgrammedByPumpUI: !bolus.wasRemotelyTriggered) + dose = DoseEntry(type: .bolus, startDate: event.date, endDate: bolusEndDate, value: bolus.programmed, unit: .units, deliveredUnits: bolus.amount, automatic: automatic, isMutable: bolus.isMutable(atDate: now, forPump: model), wasProgrammedByPumpUI: !bolus.wasRemotelyTriggered) case let suspendEvent as SuspendPumpEvent: title = LocalizedString("Suspend", comment: "Event title for suspend") dose = DoseEntry(suspendDate: event.date, wasProgrammedByPumpUI: !suspendEvent.wasRemotelyTriggered) @@ -52,7 +52,7 @@ extension Collection where Element == TimestampedHistoryEvent { dose = DoseEntry(resumeDate: event.date, wasProgrammedByPumpUI: !resumeEvent.wasRemotelyTriggered) case let temp as TempBasalPumpEvent: if case .Absolute = temp.rateType { - lastTempBasal = DoseEntry(type: .tempBasal, startDate: event.date, value: temp.rate, unit: .unitsPerHour, isMutable: event.isMutable(atDate: now, forPump: model), wasProgrammedByPumpUI: !temp.wasRemotelyTriggered) + lastTempBasal = DoseEntry(type: .tempBasal, startDate: event.date, value: temp.rate, unit: .unitsPerHour, isMutable: false, wasProgrammedByPumpUI: !temp.wasRemotelyTriggered) continue } else { title = LocalizedString("Percent Temp Basal", comment: "Event title for percent based temp basal") @@ -64,14 +64,22 @@ extension Collection where Element == TimestampedHistoryEvent { } else { title = LocalizedString("Temp Basal", comment: "Event title for temporary basal rate start") } + + // Temp basal events in mdt pump history are not mutable, but we report mutability to Loop as + // indicating whether we will be mutating this DoseEntry in the future, and until this TempBasal + // Is finished or canceled it is still mutable. + + let endDate = event.date.addingTimeInterval(TimeInterval(minutes: Double(tempDuration.duration))) + let isMutable = endDate < now + dose = DoseEntry( type: .tempBasal, startDate: event.date, - endDate: event.date.addingTimeInterval(TimeInterval(minutes: Double(tempDuration.duration))), + endDate: endDate, value: lastTemp.unitsPerHour, unit: .unitsPerHour, automatic: false, // If this was automatic dose, it should be set as such during reconciliation - isMutable: event.isMutable(atDate: now, forPump: model), + isMutable: isMutable, wasProgrammedByPumpUI: lastTemp.wasProgrammedByPumpUI ) } @@ -84,7 +92,7 @@ extension Collection where Element == TimestampedHistoryEvent { endDate: event.date.addingTimeInterval(.hours(24)), value: basal.scheduleEntry.rate, unit: .unitsPerHour, - isMutable: event.isMutable(atDate: now, forPump: model) + isMutable: false ) case is RewindPumpEvent: title = LocalizedString("Rewind", comment: "Event title for rewind") @@ -100,7 +108,7 @@ extension Collection where Element == TimestampedHistoryEvent { dose = DoseEntry(suspendDate: event.date) isRewound = true case is PrimePumpEvent: - title = LocalizedString("Prime", comment: "Event title for rewind") + title = LocalizedString("Prime", comment: "Event title for prime pump event") eventType = .prime if isRewound { @@ -116,7 +124,7 @@ extension Collection where Element == TimestampedHistoryEvent { } break case let alarm as ClearAlarmPumpEvent: - title = "Clear Alarm" + title = LocalizedString("Clear Alarm", comment: "Event title for clear alarm pump event") eventType = .alarmClear if case .noDelivery = alarm.alarmType { @@ -124,28 +132,28 @@ extension Collection where Element == TimestampedHistoryEvent { } break case is JournalEntryMealMarkerPumpEvent: - title = "Meal" + title = LocalizedString("Meal", comment: "Event title for JournalEntryMealMarkerPumpEvent") break case is JournalEntryPumpLowBatteryPumpEvent: - title = "Low Battery" + title = LocalizedString("Low Battery", comment: "Event title for JournalEntryPumpLowBatteryPumpEvent") break case is JournalEntryPumpLowReservoirPumpEvent: - title = "Low Reservoir" + title = LocalizedString("Low Reservoir", comment: "Event title for JournalEntryPumpLowReservoirPumpEvent") break case is ChangeBasalProfilePumpEvent: - title = "Change Basal Schedule" + title = LocalizedString("Change Basal Schedule", comment: "Event title for ChangeBasalProfilePumpEvent") break case is ChangeBasalProfilePatternPumpEvent: - title = "Change Basal Profile Schedule" + title = LocalizedString("Change Basal Profile Schedule", comment: "Event title for ChangeBasalProfilePatternPumpEvent") break case is SelectBasalProfilePumpEvent: - title = "Select Profile" + title = LocalizedString("Select Profile", comment: "Event title for SelectBasalProfilePumpEvent") break case is ChangeTimePumpEvent: - title = "Change Time" + title = LocalizedString("Change Time", comment: "Event title for ChangeTimePumpEvent") break case is NewTimePumpEvent: - title = "New Time" + title = LocalizedString("New Time", comment: "Event title for NewTimePumpEvent") break default: break diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/EnliteSensorDisplayable.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/EnliteSensorDisplayable.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/EnliteSensorDisplayable.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/EnliteSensorDisplayable.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift index fcc8c1fe50..69fbc934f5 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/HistoryPage+PumpOpsSession.swift @@ -2,7 +2,7 @@ // HistoryPage+PumpOpsSession.swift // RileyLinkKit // -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/InsulinDataSource.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/InsulinDataSource.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/InsulinDataSource.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/InsulinDataSource.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift index 9a3692d07a..1eb7565827 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedDoseProgressEstimator.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 3/14/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManager.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManager.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManager.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManager.swift index 44103c917c..c0eccb8fb9 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManager.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManager.swift @@ -828,7 +828,6 @@ extension MinimedPumpManager { completion(nil) } }) - }) } diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerError.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerError.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerError.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerError.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift index 5e501bce68..26d32cd8c4 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerRecents.swift @@ -2,7 +2,7 @@ // MinimedPumpManagerRecents.swift // MinimedKit // -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerState.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerState.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpManagerState.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpManagerState.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpMessageSender.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpMessageSender.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpMessageSender.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpMessageSender.swift index 5c91ec2838..04070c931d 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/MinimedPumpMessageSender.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/MinimedPumpMessageSender.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 9/3/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift similarity index 90% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift index 9b99aad088..5b9d02e591 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessage+PumpOpsSession.swift @@ -2,7 +2,7 @@ // PumpMessage.swift // RileyLinkKit // -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessageSender.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessageSender.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessageSender.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessageSender.swift index d0b5fab328..60b58ad346 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpMessageSender.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpMessageSender.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 3/2/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOps.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOps.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOps.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOps.swift index 87725f3d0a..6dfd0c7f06 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOps.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOps.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/14/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOpsError.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsError.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOpsError.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsError.swift index e1206b85ff..f879b9db50 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOpsError.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsError.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 5/9/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation @@ -42,11 +42,11 @@ extension PumpOpsError: LocalizedError { case .couldNotDecode(rx: let data, during: let during): return String(format: LocalizedString("Invalid response during %1$@: %2$@", comment: "Format string for failure reason. (1: The operation being performed) (2: The response data)"), String(describing: during), data.hexadecimalString) case .crosstalk: - return LocalizedString("Comms with another pump detected", comment: "") + return LocalizedString("Comms with another pump detected", comment: "Description for PumpOpsError.crosstalk") case .noResponse: - return LocalizedString("Pump did not respond", comment: "") + return LocalizedString("Pump did not respond", comment: "Description for PumpOpsError.noResponse") case .pumpSuspended: - return LocalizedString("Pump is suspended", comment: "") + return LocalizedString("Pump is suspended", comment: "Description for PumpOpsError.pumpSuspended") case .rfCommsFailure(let msg): return msg case .unexpectedResponse(let response, _): diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOpsSession+LoopKit.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsSession+LoopKit.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpOpsSession+LoopKit.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsSession+LoopKit.swift diff --git a/Dependencies/rileylink_ios/RileyLinkKit/PumpOpsSession.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsSession.swift similarity index 99% rename from Dependencies/rileylink_ios/RileyLinkKit/PumpOpsSession.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsSession.swift index ab33677c07..ab4cc83410 100644 --- a/Dependencies/rileylink_ios/RileyLinkKit/PumpOpsSession.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpOpsSession.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/12/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpSettings.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpSettings.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpSettings.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpSettings.swift index 72bc91f38d..4a964ff3c0 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpSettings.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpSettings.swift @@ -2,7 +2,7 @@ // PumpSettings.swift // RileyLinkKit // -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpState.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpState.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpState.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/PumpState.swift index 934046768d..d61082c791 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/PumpState.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/PumpState.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nathan Racklyeft on 4/9/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/ReservoirReading.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/ReservoirReading.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/ReservoirReading.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/ReservoirReading.swift index e259211267..51752e0ceb 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/ReservoirReading.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/ReservoirReading.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 2/4/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/RileyLinkDevice.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/RileyLinkDevice.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/RileyLinkDevice.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/RileyLinkDevice.swift diff --git a/Dependencies/rileylink_ios/MinimedKit/PumpManager/UnfinalizedDose.swift b/Dependencies/MinimedKit/MinimedKit/PumpManager/UnfinalizedDose.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKit/PumpManager/UnfinalizedDose.swift rename to Dependencies/MinimedKit/MinimedKit/PumpManager/UnfinalizedDose.swift index ef88cfdfb0..6298588e1b 100644 --- a/Dependencies/rileylink_ios/MinimedKit/PumpManager/UnfinalizedDose.swift +++ b/Dependencies/MinimedKit/MinimedKit/PumpManager/UnfinalizedDose.swift @@ -3,7 +3,7 @@ // MinimedKit // // Created by Pete Schwamb on 7/31/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import Foundation @@ -283,7 +283,8 @@ extension DoseEntry { case .bolus: self = DoseEntry(type: .bolus, startDate: dose.startTime, endDate: dose.finishTime, value: dose.programmedUnits ?? dose.units, unit: .units, deliveredUnits: dose.finalizedUnits, insulinType: dose.insulinType, automatic: dose.automatic, isMutable: !dose.isReconciledWithHistory && !forceFinalization) case .tempBasal: - self = DoseEntry(type: .tempBasal, startDate: dose.startTime, endDate: dose.finishTime, value: dose.programmedTempRate ?? dose.rate, unit: .unitsPerHour, deliveredUnits: dose.finalizedUnits, insulinType: dose.insulinType, automatic: dose.automatic, isMutable: !dose.isReconciledWithHistory && !forceFinalization) + let isMutable = !forceFinalization && (!dose.isReconciledWithHistory || !dose.isFinished) + self = DoseEntry(type: .tempBasal, startDate: dose.startTime, endDate: dose.finishTime, value: dose.programmedTempRate ?? dose.rate, unit: .unitsPerHour, deliveredUnits: dose.finalizedUnits, insulinType: dose.insulinType, automatic: dose.automatic, isMutable: isMutable) case .suspend: self = DoseEntry(suspendDate: dose.startTime, isMutable: !dose.isReconciledWithHistory) case .resume: diff --git a/Dependencies/rileylink_ios/MinimedKit/Radio/CRC8.swift b/Dependencies/MinimedKit/MinimedKit/Radio/CRC8.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKit/Radio/CRC8.swift rename to Dependencies/MinimedKit/MinimedKit/Radio/CRC8.swift index 30a9eeafc1..18307f5d94 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Radio/CRC8.swift +++ b/Dependencies/MinimedKit/MinimedKit/Radio/CRC8.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Radio/FourByteSixByteEncoding.swift b/Dependencies/MinimedKit/MinimedKit/Radio/FourByteSixByteEncoding.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKit/Radio/FourByteSixByteEncoding.swift rename to Dependencies/MinimedKit/MinimedKit/Radio/FourByteSixByteEncoding.swift index 6d03f6b948..5ce41efde1 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Radio/FourByteSixByteEncoding.swift +++ b/Dependencies/MinimedKit/MinimedKit/Radio/FourByteSixByteEncoding.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Radio/MinimedPacket.swift b/Dependencies/MinimedKit/MinimedKit/Radio/MinimedPacket.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKit/Radio/MinimedPacket.swift rename to Dependencies/MinimedKit/MinimedKit/Radio/MinimedPacket.swift index 9c97bdeafc..c66483b565 100644 --- a/Dependencies/rileylink_ios/MinimedKit/Radio/MinimedPacket.swift +++ b/Dependencies/MinimedKit/MinimedKit/Radio/MinimedPacket.swift @@ -3,7 +3,7 @@ // RileyLinkBLEKit // // Created by Pete Schwamb on 10/7/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKit/Base.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/Base.lproj/Localizable.strings similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/Base.lproj/Localizable.strings rename to Dependencies/MinimedKit/MinimedKit/Resources/Base.lproj/Localizable.strings diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/ar.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..be8a6baefb --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,34 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ وحدة متبقية"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ وحدة متبقية: %2$@"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "قم بتغيير بطارية المضخة على الفور"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "قم بتغيير خزان المضخة الآن"; + +/* Default alert dismissal */ +"Dismiss" = "تجاهل"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "موافق"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "بطارية المضخة منخفضة"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "خزان المضخة منتهي"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "خزان المضخة منخفض"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "الخزان"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/cs.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..e17c34d720 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,39 @@ +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Probíhající bolus"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Změnit profil bazálního rozvrhu"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Změnit bazální rozvrh"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Změnit čas"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Vymazat alarm"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Vybitá baterie"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Poloprázdný zásobník"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Jídlo"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Nový čas"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Plánovaný bazál"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Vybrat profil"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Ztráta signálu"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/da.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..04afafba20 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/da.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" har lavt batteri"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ E tilbage"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ E tilbage: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "En bolus er allerede i gang"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmUrPåmindelse"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaline"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Auto-sluk alarm"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basal Profil %1$@: %2$@ E/time"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batteriet er opbrugt"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Grænse for batteriudløb"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "BatteriIssue17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "BatteriIssue21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus i gang"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus i gang"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus kan have fejlet: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Annuller midlertidig basal"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Skift plan for basalprofil"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Skift basalplan"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Udskift pumpebatteri omgående"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Skift pumpereservoir nu"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Ændre tid"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Tjek, at pumpen ikke er suspenderet eller under klargøring, eller har en procent midlertidig basaltype"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Ryd alarm"; + +/* Pump error code returned when command refused */ +"Command refused" = "Kommando nægtet"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Kommunikation med en anden pumpe opdaget."; + +/* Error description */ +"Decoding Error" = "Undersøger fejl"; + +/* Error description */ +"Device Error" = "Enhedsfejl"; + +/* Title for deviceReset */ +"Device Reset" = "Nulstilling af enhed"; + +/* Default alert dismissal */ +"Dismiss" = "Afvis"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Tomt reservoir"; + +/* Describing the pump history insulin data source */ +"Event History" = "Hændelseshistorik"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Glukoseside mislykkedes crc-kontrol"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Gå til pumpeindstillinger, og vælg insulintype"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Historikside findes ikke"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Historiksiden mislykkedes crc-kontrol"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulin suspenderet"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Insulintype ikke konfigureret"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Fejlagtigt svar ved %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop sendte en boluskommando til pumpen, men kunne ikke bekræfte, at pumpen modtog kommandoen. Af sikkerhedshensyn antager Loop, at bolussen blev leveret. Når Loop til sidst henter historikken fra pumpen, og den forventede bolustid er overskredet, opdaterer Loop sine optegnelser om levering, så de stemmer overens med det, som pumpen rapporterer."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "lavt batteri"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Lavt reservoir"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Lavt RileyLink-batteri"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Sørg for, at din RileyLink er i nærheden og tændt"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Max indstilling overskredet"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Måltid"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Serier"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Ny tid"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Ingen leveringsalarm"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Ingen RileyLink tilsluttet"; + +/* Describing the North America pump region */ +"North America" = "Nordamerika"; + +/* Default alert dismissal */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Procent midlertidig basal"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Kontroller din pumpebolushistorik for at afgøre, om bolus blev leveret."; + +/* Event title for prime pump event */ +"Prime" = "Forbereder"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pumpebatteri lav"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumpe svarede ikke"; + +/* Error description */ +"Pump Error" = "Pumpefejl"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pumpe er afbrudt"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pumpe er afbrudt"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pumpereservoir tomt"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pumpereservoir lavt"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pumpe reagerede uventet"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpebesked(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Omprogrammeringsfejl"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Genoptag"; + +/* Event title for rewind */ +"Rewind" = "Spol tilbage"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink radioindstilling fejlede"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Planlagt basal"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Vælg profil"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaltab"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Midlertidig Basal: %1$.3f E/time"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Midlertidig Basal: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Midlertidig basal: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Kan ikke gemme pumpedata"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Uventet svar %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Ukendt alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Ukendt glukoseposttype: %$1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Ukendt historikposttype: %$1 @"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Ukendt pumpe-fejlkode: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Ukendt pumpemodel %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Ukendt svar under %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/de.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..34d0f5ce11 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/de.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" hat einen niedrigen Akkustand"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ IE verbleibend"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ IE verbleibend: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Ein Bolus wird bereits abgegeben"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkalisch"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Auto-Aus Alarm"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/Stunde"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batterie leer"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Batteriewechsel Zeitlimit"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "BatteryIssue17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "BatteryIssue21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolusabgabe läuft "; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolusabgabe läuft "; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus ist möglicherweise fehlgeschlagen: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Kanada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Temporäre Basalrate abbrechen"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Zeitplan für das Basalratenprofil ändern"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Basalratenzeitplan ändern"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Wechseln Sie sofort die Pumpenbatterie"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Wechseln Sie jetzt das Pumpenreservoir"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Zeit ändern"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Überprüfen Sie, ob die Pumpe nicht unterbrochen wurde oder sich im Füllmodus befindet, oder prozentual temporären Basalraten aktiviert sind"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Alarm löschen"; + +/* Pump error code returned when command refused */ +"Command refused" = "Befehl verweigert"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Kommunikation mit einer anderen Pumpe festgestellt"; + +/* Error description */ +"Decoding Error" = "Dekodierungsfehler"; + +/* Error description */ +"Device Error" = "Gerätefehler"; + +/* Title for deviceReset */ +"Device Reset" = "Gerät zurücksetzen"; + +/* Default alert dismissal */ +"Dismiss" = "Schließen"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Leeres Reservoir"; + +/* Describing the pump history insulin data source */ +"Event History" = "Ereignisverlauf"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Glukoseseite fehlgeschlagen crc-Prüfung"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Gehen Sie zu den Pumpeneinstellungen und wählen Sie den Insulintyp"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Verlaufsseite ist nicht vorhanden"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Verlaufsseite fehlgeschlagen crc check"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulinabgabe unterbrochen"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Insulintyp ist nicht konfiguriert"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Ungültige Antwort während %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop hat einen Bolusbefehl an die Pumpe gesendet, konnte aber nicht bestätigen, dass die Pumpe den Befehl erhalten hat. Zur Sicherheit geht Loop davon aus, dass der Bolus abgegeben wurde. Wenn Loop schließlich den Verlauf von der Pumpe abruft und die geschätzte Bolus-Endzeit überschritten ist, aktualisiert Loop seine Aufzeichnungen über die Abgabe, damit sie mit den Meldungen der Pumpe übereinstimmen."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Niedriger Batteriestatus"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Niedriges Reservoir"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Niedriger RileyLink Batteriestatus"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Stellen Sie sicher, dass sich Ihr RileyLink in der Nähe befindet und eingeschaltet ist"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Max Einstellung überschritten"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Mahlzeit"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Serie"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Neue Zeit"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Keine-Abgabe-Warunung"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Kein RileyLink verbunden"; + +/* Describing the North America pump region */ +"North America" = "Nordamerika"; + +/* Default alert dismissal */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Prozentuale temporäre Basalrate"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Bitte überprüfen Sie den Bolusverlauf Ihrer Pumpe, um festzustellen, ob der Bolus abgegeben wurde."; + +/* Event title for prime pump event */ +"Prime" = "Befüllen"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pumpenbatterie schwach"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumpe hat nicht geantwortet"; + +/* Error description */ +"Pump Error" = "Pumpenfehler"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pumpe ist gesperrt"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pumpe ist pausiert"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pumpenreservoir leer"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pumpenreservoir niedrig"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pumpe hat unerwartet geantwortet"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpennachricht(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Reprogram Error"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Fortsetzen"; + +/* Event title for rewind */ +"Rewind" = "Zurückspulen"; + +/* Error description */ +"RileyLink radio tune failed" = "Einstellen des RileyLink Funksignals fehlgeschlagen"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Geplante Basalrate"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Profil auswählen"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signalverlust"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Unterbrechen"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporäre Basalrate"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Temporäre Basalrate: %1$.3f E/St"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Temporäre Basalrate: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Temporäre Basalrate: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Pumpendaten können nicht gespeichert werden"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Unerwartete Antwort vom Pod"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Unbekannter Alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Unbekannter Glukosedatensatztyp: %-1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Unbekannter Verlaufsdatensatztyp: %1 @"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Unbekannter Fehlercode der Pumpe: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Unbekanntes Pumpenmodell: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Unbekannte Antwort oder %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Weltweit"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/es.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..bc12cda667 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/es.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" tiene batería baja"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U restantes"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U restantes: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Un bolo ya está en progreso"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alcalina"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Alarma de apagado automático"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Perfil Basal %1$@: %2$@ U/hora"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batería agotada"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Alerta de Batería Baja"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "Problema de bateria 17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "Problema de bateria 21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolo en progreso"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolo en curso"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Es posible que el bolo haya fallado: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canadá"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Cancelar basal temporal"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Cambiar programa de perfil basal"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Cambiar programa basal"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Cambie la batería de la bomba de inmediato"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Cambie el depósito de la bomba ahora"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Cambiar hora"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Revisa que la microinfusora no esté suspendida o en cebado, o que tenga una basal de tipo temporal"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Borrar alarma"; + +/* Pump error code returned when command refused */ +"Command refused" = "Comando rechazado"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Comunicación con otra microinfusadora detectado."; + +/* Error description */ +"Decoding Error" = "Error de decodificación"; + +/* Error description */ +"Device Error" = "Error de Dispositivo"; + +/* Title for deviceReset */ +"Device Reset" = "Reinicio del dispositivo"; + +/* Default alert dismissal */ +"Dismiss" = "Ignorar"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Depósito vacío"; + +/* Describing the pump history insulin data source */ +"Event History" = "Historial de Eventos"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "La página de glucosa falló en la verificación de CRC"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Vaya a la configuración de la bomba y seleccione el tipo de insulina"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "La página de historial no existe"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "La página de historial falló en la verificación de CRC"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulina Suspendida"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "El tipo de insulina no está configurado"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Respuesta inválida durante %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litio"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop envió una orden de bolo a la bomba, pero no pudo confirmar que la bomba recibiera el comando. Por seguridad, Loop asumirá que el bolo fue administrado. Cuando Loop obtenga finalmente el historial de la bomba, y haya pasado la hora estimada de finalización del bolo, Loop actualizará sus registros de administración para que coincidan con lo que reporta la bomba."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Batería Baja"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Reserva baja"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batería baja de RileyLink"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Asegúrese de que su RileyLink está cerca y encendido"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Ajuste máximo excedido"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Comida"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed Serie 500/700"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Nuevo Tiempo"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "No hay alarma de administración de insulina"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "No hay un RileyLink conectado"; + +/* Describing the North America pump region */ +"North America" = "Norte America"; + +/* Default alert dismissal */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Porcentaje de insulina basal temporal"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Por favor compruebe el historial de bolos de su bomba para determinar si se administró la insulina de bolo."; + +/* Event title for prime pump event */ +"Prime" = "Purgar"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Batería de la bomba baja"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "La microinfusora no respondió"; + +/* Error description */ +"Pump Error" = "Error de la bomba"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "La microinfusora está suspendida"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "La bomba está suspendida"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Reserva de bomba vacía"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Reserva de bomba baja"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "La microinfusora respondió de forma inesperada"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "MensageMicroinfusadora(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Error de reprogramación"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservorio"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reanudar"; + +/* Event title for rewind */ +"Rewind" = "Rebobinar"; + +/* Error description */ +"RileyLink radio tune failed" = "Sintonización de señal de radio de RileyLink falló"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Insulina basal programada"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Seleccionar perfil"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pérdida de señal"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Insulina basal temporal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Basal Temporal: %1$.3f U/hora"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Basal Temporal: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Basal Temporal: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "No se pueden almacenar los datos de la bomba"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Respuesta inesperada %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Alarma desconocida"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Tipo de registro de glucosa desconocido: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Tipo de registro histórico desconocido: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Error desconocido de código de microinfusora: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Modelo desconocido de microinfusora: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Respuesta desconocida durante %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Mundial"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/fi.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..c158e45020 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,173 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U jäljellä"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U jäljellä: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Bolus on jo käynnissä"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "HerätysKelloMuistutus"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "HälytysSensori"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaliini"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basaaliprofiili %1$@: %2$@ U/h"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus vireillä"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus käynnissä"; + +/* Describing the Canada pump region */ +"Canada" = "Kanada"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Vaihda pumpun paristo välittömästi"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Vaihda pumpun säiliö"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Muuta aika"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Tarkista, että pumppu ei ole pysäytetty, vakiotäytöllä tai basaalityypiksi ei ole valittu prosentteja"; + +/* Pump error code returned when command refused */ +"Command refused" = "Komento hylättiin"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Toisen pumpun viestintää havaittu."; + +/* Error description */ +"Decoding Error" = "Dekoodausvirhe"; + +/* Error description */ +"Device Error" = "Laitevirhe"; + +/* Default alert dismissal */ +"Dismiss" = "Ohita"; + +/* Describing the pump history insulin data source */ +"Event History" = "Tapahtumahistoria"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Glukoosisivun CRC-tarkistus epäonnistui"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Historiasivua ei ole olemassa"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Historiasivun CRC-tarkistus epäonnistui"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuliini pysäytetty"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Virheellinen vastaus %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litium"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Akku lähes tyhjä"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja kytketty päälle"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Maksimiasetus ylitetty"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 -sarja"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "RileyLink ei ole yhdistetty"; + +/* Describing the North America pump region */ +"North America" = "Pohjois-Amerikka"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pumpun paristo vähissä"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumppu ei vastannut"; + +/* Error description */ +"Pump Error" = "Pumpun virhe"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pumppu on pysäytetty"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pumpun säiliö tyhjä"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pumpun säiliö vähissä"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pumppu vastasi epätavallisesti"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumppuViesti(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Säiliö"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink-radion viritys epäonnistui"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Ohjelmoitu basaali"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tilapäinen basaali"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Tilapäinen basaali: %1$.3f U/h"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Tilapäinen basaali: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Tilapäinen basaali: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Pumpun tietoja ei voitu tallentaa"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Tuntematon glukoositietuetyyppi: %$1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Tuntematon historiatietuetyyppi: %$1 @"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Tuntematon pumpun virhekoodi: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Tuntematon pumppumalli: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Tuntematon vastaus %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Maailmanlaajuinen"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/fr.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..679a60553e --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,259 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" a un niveau de batterie bas"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U restantes"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U restantes: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Un bolus est déjà en cours"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alcaline"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Alarme d'arrêt automatique"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Profil basal %1$@: %2$@ U/heure"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batterie épuisée"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Limite de sortie de batterie"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "Problème de batterie17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "Problème de batterie21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus en cours"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus en cours"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Le bolus a peut-être échoué : %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Annulation du débit basal temporaire"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Changer immédiatement la pile de la pompe"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Changer maintenant le réservoir de la pompe"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Changer l’heure"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Vérifiez que la pompe n’est pas suspendue ou en amorçage, ou a un basal temporaire en pourcentage"; + +/* Pump error code returned when command refused */ +"Command refused" = "Commande refusée"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Communications avec une autre pompe détectée"; + +/* Error description */ +"Decoding Error" = "Erreur de décodage"; + +/* Error description */ +"Device Error" = "Erreur de périphérique"; + +/* Title for deviceReset */ +"Device Reset" = "Réinitialisation de l'appareil"; + +/* Default alert dismissal */ +"Dismiss" = "Fermer"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Réservoir vide"; + +/* Describing the pump history insulin data source */ +"Event History" = "Historique des événements"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Échec de la vérification CRC de la page de glucose"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Accédez aux paramètres de la pompe et sélectionnez le type d'insuline"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "La page d'historique n'existe pas"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Échec de la vérification CRC de la page d'historique"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline suspendue"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Type d'insuline"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Réponse invalide pendant %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop a envoyé une commande de bolus à la pompe, mais n'a pas pu confirmer que la pompe a reçu la commande. Par sécurité, Loop considère que le bolus a été administré. Lorsque Loop récupère l'historique de la pompe, et que l'heure estimée de fin du bolus est dépassée, Loop met à jour ses enregistrements de livraison pour correspondre à ce que la pompe rapporte."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Batterie faible"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Réservoir bas"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batterie RileyLink faible"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Assurez-vous que votre RileyLink est à proximité et allumé"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Réglage maximum dépassé"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Serié Minimed 500/700"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Alarme: Pas d'administration"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Aucun RileyLink connecté"; + +/* Describing the North America pump region */ +"North America" = "Amérique du Nord"; + +/* Default alert dismissal */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Pourcentage pour le débit basal temporaire"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Veuillez vérifier l'historique des bolus de votre pompe pour vérifier si le bolus a été administré."; + +/* Event title for prime pump event */ +"Prime" = "Purge"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Batterie de la pompe faible"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "La pompe n’a pas répondu"; + +/* Error description */ +"Pump Error" = "Erreur détectée"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "La pompe est suspendue"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "La pompe est suspendue"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Réservoir de la pompe vide"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Réservoir de la pompe bas"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "La pompe a réagi de manière inattendue"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Message de pompe(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Erreur de reprogrammation"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Réservoir"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reprendre"; + +/* Event title for rewind */ +"Rewind" = "Retour du piston"; + +/* Error description */ +"RileyLink radio tune failed" = "La synthèse radio RileyLink a échoué"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Basal programmé"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perte de signal"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendre"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Débit basal temporaire"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Basal temporaire: %1$.3f U/heure"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Basal temporaire: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Basal temporaire: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Impossible de stocker les données de la pompe"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Réponse inattendue %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Alarme inconnue"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Type de glycémie inconnu : %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Type d'historique inconnu : %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Code d’erreur de pompe inconnu: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Modèle de pompe inconnu: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Réponse inconnue pendant %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Monde Entier"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/he.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..109f94f19e --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/he.lproj/Localizable.strings @@ -0,0 +1,145 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U left"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U left: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "A bolus is already in progress"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaline"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basal Profile %1$@: %2$@ U/hour"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus in progress"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Change the pump battery immediately"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Change the pump reservoir now"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Change Time"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Check that the pump is not suspended or priming, or has a percent temp basal type"; + +/* Pump error code returned when command refused */ +"Command refused" = "Command refused"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Comms with another pump detected."; + +/* Error description */ +"Decoding Error" = "Decoding Error"; + +/* Error description */ +"Device Error" = "Device Error"; + +/* Default alert dismissal */ +"Dismiss" = "Dismiss"; + +/* Describing the pump history insulin data source */ +"Event History" = "Event History"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Invalid response during %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "סוללה חלשה"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Max setting exceeded"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "ארוחה"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Describing the North America pump region */ +"North America" = "North America"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pump Battery Low"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pump did not respond"; + +/* Error description */ +"Pump Error" = "Pump Error"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pump is suspended"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pump Reservoir Empty"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pump Reservoir Low"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pump responded unexpectedly"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink radio tune failed"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Scheduled Basal"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "אובדן אות"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Temporary Basal: %1$.3f U/hour"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "בזאלי זמני: %1$d דקות"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Temporary Basal: %1$d%%"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Unknown pump error code: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Unknown pump model: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Unknown response during %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/it.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..ec1568add6 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/it.lproj/Localizable.strings @@ -0,0 +1,259 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "%1$@ ha la batteria quasi scarica"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U sinistra"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U sinistra: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Un bolo è già in esecuzione"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "Promemoria sveglia"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "Allarme Sensori"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alcalina"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Allarme spegnimento automatico"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Profilo basale %1$@: %2$@ U/ora"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batteria scarica"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Batteria fuori limite"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "Problema17 batteria"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "Problema21 batteria"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolo in corso"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolo in corso"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Il bolo potrebbe essere fallito: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Annulla Basale temporanea"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Cambiare immediatamente la batteria del microinfusore"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Cambiare subito il serbatoio del microinfusore"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Cambia Orario"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verificare che il microinfusore non sia sospeso o che stia riavvolgendo o che abbia un tipo basale impostato su percentuale"; + +/* Pump error code returned when command refused */ +"Command refused" = "Comando negato"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Comunicazione con un altro microinfusore rilevata"; + +/* Error description */ +"Decoding Error" = "Errore di Decodifica"; + +/* Error description */ +"Device Error" = "Errore del Dispositivo"; + +/* Title for deviceReset */ +"Device Reset" = "Ripristino del Dispositivo"; + +/* Default alert dismissal */ +"Dismiss" = "OK"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Serbatoio Vuoto"; + +/* Describing the pump history insulin data source */ +"Event History" = "Storia degli Eventi"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Il registro dati della Glicemia ha fallito il controllo crc"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Andare nelle impostazioni del microinfusore e selezionare il tipo d'insulina"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "La pagina della storia non esiste"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "La pagina della cronologia non ha superato il controllo crc"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Erogazione Insulina sospesa"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Il tipo d'insulina non è stato configurato"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Risposta non valida per %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litio"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop ha inviato un comando di bolo al microinfusore, ma non è stato in grado di confermare che il microinfusore abbia ricevuto il comando. Per sicurezza, Loop presume che il bolo sia stato erogato. Quando alla fine Loop recupera la cronologia dal microinfusore e l'ora prevista per la fine del bolo, Loop aggiorna i propri record di erogazione in modo che corrispondano a quanto riportato dal microinfusore."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Batteria Bassa"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Livello Serbatoio basso"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batteria Rileylink quasi scarica"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Assicurati che RileyLink si trovi nelle vicinanze e sia acceso"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Impostazione massima superata"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed serie 500/700"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Allarme di non erogazione"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Nessun Rileylink Connesso"; + +/* Describing the North America pump region */ +"North America" = "Nord America"; + +/* Default alert dismissal */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Percentuale basale temporanea"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Controllare la cronologia dei boli del microinfusore per determinare se il bolo è stato erogato."; + +/* Event title for prime pump event */ +"Prime" = "Caricare "; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Batteria Microinfusore bassa"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Il microinfusore non risponde"; + +/* Error description */ +"Pump Error" = "Errore Mincroinfusore"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Il microinfusore è sospeso"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Il microinfusore è sospeso"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Serbatoio microinfusore Vuoto"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Serbatoio microinfusore Basso"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Il microinfusore ha risposto inaspettatamente"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Errore di riprogrammazione"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Serbatoio"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Riprendi"; + +/* Event title for rewind */ +"Rewind" = "Riavvolgi"; + +/* Error description */ +"RileyLink radio tune failed" = "Sintonizzazione radio RileyLink fallita"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Basale Programmata"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perdita Segnale"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Blocco Erogazione"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Basale Temporanea"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Basale Temporanea: %1$.3f U/ora"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Basale Temporanea: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Basale Temporanea: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Impossibile memorizzare i dati del Microinfusore"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Risposta inaspettata %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Allarme sconosciuto"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Tipo di record glicemico sconosciuto: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Tipo di record storico sconosciuto: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Codice errore microinfusore sconosciuto: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Modello di microinfusore sconosciuto: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Risposta sconosciuta per %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Internazionale"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/ja.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..8e7c9b70b4 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,139 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "残 %1$@単位"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "残 %1$@単位: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "ボーラス注入中"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "アラームリマインダー"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "アラームセンサー"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "アルカリ"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "ベーサルプロファイル %1$@: %2$@ U/時"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "ボーラス"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "ボーラスが進行中"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "すぐにポンプの電池を替えてください"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "ポンプのレザーバを替えてください"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "時刻を変更"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "ポンプが停止、プライミング中、または基礎レートが一時的に変更になっていないことを確認してください"; + +/* Pump error code returned when command refused */ +"Command refused" = "コマンド拒否"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "他のポンプが検出"; + +/* Error description */ +"Decoding Error" = "デコーディングエラー"; + +/* Error description */ +"Device Error" = "デバイスエラー"; + +/* Default alert dismissal */ +"Dismiss" = "閉じる"; + +/* Describing the pump history insulin data source */ +"Event History" = "Event History"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "%1$@ で反応が無効: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "リチウム"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "電池残量低下"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "RileyLink が近くにあり電源が入っているか確認"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "設定の制限を超えています"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 シリーズ"; + +/* Describing the North America pump region */ +"North America" = "North America"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "ポンプの電池が不足"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "ポンプが反応しません"; + +/* Error description */ +"Pump Error" = "ポンプエラー"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "ポンプが停止しています"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "ポンプのリザーバが空です"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "ポンプのリザーバが低です"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "ポンプが不意に反応しました"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "ポンプメッセージ(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink 通信に失敗しました"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "定期基礎"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "一時基礎レート: %1$.3f U/hour"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "一時基礎レート: %1$d 分"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "一時基礎レート: %1$d%%"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "ポンプエラーコード 不明: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "ポンプモデル 不明: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "反応が不明 %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/nb.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..7e3bd1faf7 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\" %1$@ \" har lavt batterinivå"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ E igjen"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ E gjenstår: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "En bolus pågår allerede"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "PåminnelseAlarmklokke"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkalisk"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Auto-av alarm"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/timen"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batteriet er tomt"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Grense for batterinivå"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "BatteriIssue17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "BatteriIssue21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus pågår"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus pågår"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus kan ha mislyktes: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Avbryt Temp Basal"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Endre basalprofilplan"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Endre basal tidsplan"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Skift pumpebatteri umiddelbart"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Bytt pumpereservoar nå"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Endre tid"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Sjekk at pumpa ikke har stoppet tilførsel av insulin, at priming ikke foregår, eller har en midlertidig prosentbasaltype pågående."; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Fjern alarm"; + +/* Pump error code returned when command refused */ +"Command refused" = "Kommando avvist"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Oppdaget kommunikasjon med en annen pumpe"; + +/* Error description */ +"Decoding Error" = "Dekodingsfeil"; + +/* Error description */ +"Device Error" = "Enhetsfeil"; + +/* Title for deviceReset */ +"Device Reset" = "Tilbakestilling av enhet"; + +/* Default alert dismissal */ +"Dismiss" = "Avvis"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Tomt reservoar"; + +/* Describing the pump history insulin data source */ +"Event History" = "Hendelseshistorie"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Glukoseside mislyktes ved crc-sjekk"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Gå til pumpeinnstillinger og velg insulintype"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Historie siden eksisterer ikke"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Historikksiden mislyktes med crc kontroll"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintilførsel utsatt"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Insulintype ikke konfigurert"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Ugyldig respons ved %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop sendte en boluskommando til pumpen, men kunne ikke bekrefte at pumpen mottok kommandoen. For sikkerhets skyld vil Loop anta at bolusen ble levert. Når Loop til slutt henter historikk fra pumpen, og den estimerte bolussluttiden er passert, vil Loop oppdatere sine leveringsposter for å samsvare med det pumpen rapporterer."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Lavt batterinivå"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Lavt reservoar"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Lavt RileyLink-batteri"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Pass på at din RileyLink er slått på og er i nærheten"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Maksinnstilling overskredet"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Måltid"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 series"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Ny tid"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Ingen levering alarm"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Ingen RileyLink tilkoblet"; + +/* Describing the North America pump region */ +"North America" = "Nord Amerika"; + +/* Default alert dismissal */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "Ok"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Prosent midlertidig basal"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Vennligst kontroller pumpens bolushistorikk for å finne ut om bolusen ble levert."; + +/* Event title for prime pump event */ +"Prime" = "Prime"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Lavt pumpebatteri"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumpa svarte ikke"; + +/* Error description */ +"Pump Error" = "Pumpefeil"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pumpe er pauset"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pumpen satt på pause"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pumpereservoar Tomt"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pumpereservoar Lavt"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pumpen svarte uventet"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpemelding(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Omprogrammeringsfeil"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoar"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Gjenoppta"; + +/* Event title for rewind */ +"Rewind" = "Spole tilbake"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink radiotuning feilet"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Planlagt basal"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Velg profil"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signal Tap"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Utsette"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Midlertidig basaldose: %1$.3f E/timen"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Midlertidig basaldose: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Midlertidig basaldose: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Kan ikke lagre pumpedata"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Uventet svar %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Ukjent alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Ukjent glukose registrering: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Ukjent historieopptakstype: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Ukjent feilkode fra pumpe: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Ukjent pumpemodell: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Ukjent respons ved %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/nl.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..16c18d2e67 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" batterij bijna leeg"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ E over"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ E over: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Er is al een bolus actief"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaline"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Automatisch Uit Alarm"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basaal profiel %1$@: %2$@ E/uur"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Batterij Leeg"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Limiet Batterij Uit"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "BatterijProbleem17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "BatterijProbleem21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus in uitvoering"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus in Uitvoering"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus mogelijk mislukt: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Annuleer Tijdelijk Basaal"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Basaalprofielschema aanpassen"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Basaal Schema Aanpassen"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Vervang direct de batterij van de pomp"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Vervang het pompreservoir nu"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Tijd Aanpassen"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Controleer dat de pomp niet is onderbroken of aan het voorbereiden is, of dat er een percentage tijdelijke basaal staat ingesteld"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Alarm Wissen"; + +/* Pump error code returned when command refused */ +"Command refused" = "Commando geweigerd"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Communicatie met een andere pomp gedetecteerd"; + +/* Error description */ +"Decoding Error" = "Decodingsfout"; + +/* Error description */ +"Device Error" = "Apparaatfout"; + +/* Title for deviceReset */ +"Device Reset" = "Apparaat resetten"; + +/* Default alert dismissal */ +"Dismiss" = "Sluiten"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Reservoir Leeg"; + +/* Describing the pump history insulin data source */ +"Event History" = "Logboek"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Crc controle Glucosepagina mislukt"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Ga naar pompinstellingen en selecteer insulinetype"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Geschiedenis pagina bestaat niet"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Crc controle Geschiedenispagina mislukt"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline Onderbroken"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Het insulinetype is niet geconfigureerd"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Foutief antwoord gedurende %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop stuurde een boluscommando naar de pomp, maar kon niet bevestigen dat de pomp het commando ontving. Voor de zekerheid gaat Loop ervan uit dat de bolus is toegediend. Wanneer Loop uiteindelijk de geschiedenis van de pomp ophaalt en de geschatte eindtijd van de bolus is verstreken, zal Loop zijn gegevens over de toediening aanpassen aan wat de pomp rapporteert."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Batterij Bijna Leeg"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Reservoir Bijna Leeg"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batterij RileyLink Bijna Leeg"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aan staat"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Max instelling overschreden"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Maaltijd"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 series"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Nieuwe Tijd"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Geen Toedieningsalarm"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Geen RileyLink verbonden"; + +/* Describing the North America pump region */ +"North America" = "Noord-Amerika"; + +/* Default alert dismissal */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "Ok"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Percentage Tijdelijk Basaal"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Controleer je pompbolusgeschiedenis om te bepalen of de bolus is toegediend."; + +/* Event title for prime pump event */ +"Prime" = "Voorbereiden"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pompbatterij Bijna Leeg"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pomp reageert niet"; + +/* Error description */ +"Pump Error" = "Pomp Foutmelding"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pomp is onderbroken"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pomp is Onderbroken"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pompreservoir Leeg"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pompreservoir Bijna Leeg"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pomp reageerde onverwacht"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Bericht Pomp (%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Herprogrammeringsfout"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Hervatten"; + +/* Event title for rewind */ +"Rewind" = "Terugspoelen"; + +/* Error description */ +"RileyLink radio tune failed" = "Afstemmen van de RileyLink Radio mislukt"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Ingesteld Basaal"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Profiel Selecteren"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaalverlies"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Onderbreek"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tijdelijk Basaal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Tijdelijk basaal: %1$.3f E/uur"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Tijdelijk basaal: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Tijdelijk basaal: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Kan pompgegevens niet opslaan"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Onverwachte reactie %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Onbekendd Alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Onbekend glucoserecordtype: %$1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Onbekende geschiedenis van het record type: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Onbekende foutmelding pomp: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Onbekend model pomp: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Onbekend antwoord gedurende %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Wereldwijd"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/pl.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..d100156a57 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "„ %1$@ ” ma słabą baterię"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ J pozostało"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ J pozostało: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Podawanie bolusa jest już w toku"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaliczna"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Alarm automatycznego wyłączania"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Profil bazy %1$@: %2$@ J/godzinę"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Bateria wyczerpana"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Przekroczono limit wyczerpania baterii"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "Problem z baterią"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "Problem z baterią"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus w toku"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus w toku"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus mógł się nie udać: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Kanada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Anuluj Tymczasową Bazę"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Zmień harmonogram profilu podstawowego"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Zmień schemat bazy"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Natychmiast wymienić baterię pompy"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Zmień zbiorniczek w pompie"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Zmień godzinę"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Sprawdź, czy pompa nie jest zawieszona, nie trwa wypełnianie lub nie ma ustawionej procentowej dawki tymczasowej w ustawieniach."; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Wyczyść alarm"; + +/* Pump error code returned when command refused */ +"Command refused" = "Odmowa wykonania polecenia"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Wykryto połączenie z inną pompą."; + +/* Error description */ +"Decoding Error" = "Błąd dekodowania"; + +/* Error description */ +"Device Error" = "Błąd urządzenia"; + +/* Title for deviceReset */ +"Device Reset" = "Resetowanie urządzenia"; + +/* Default alert dismissal */ +"Dismiss" = "Odrzucać"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Pusty zbiorniczek"; + +/* Describing the pump history insulin data source */ +"Event History" = "Historia zdarzeń"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Strona z glukozą nie przeszła kontroli crc."; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Przejdź do ustawień pompy i wybierz typ insuliny"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Strona historii nie istnieje"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Strona historii nie przeszła kontroli crc."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Podawanie insuliny zawieszone"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Nie skonfigurowano rodzaju insuliny"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Nieprawidłowa odpowiedź podczas %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litowa"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Pętla wysłała polecenie bolusa do pompy, ale nie była w stanie potwierdzić, że pompa odebrała to polecenie. Ze względów bezpieczeństwa Loop założy, że bolus został podany. Gdy Loop w końcu pobierze historię z pompy i minie szacowany czas zakończenia bolusa, Loop zaktualizuje swoją historię podawania, aby była zgodna z raportami pompy."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Słaba bateria"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Niski poziom w zbiorniczku"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Niski poziom baterii RileyLink"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Upewnij się, że RileyLink jest w pobliżu i jest włączony"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Maksymalne ustawienie przekroczone"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Posiłek"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed serii 500/700"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Nowy czas"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Alarm! Brak Podawania"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Brak połączenia z RileyLink"; + +/* Describing the North America pump region */ +"North America" = "Ameryka Północna"; + +/* Default alert dismissal */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Procent Tymczasowej Bazy"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Sprawdź historię pompy, aby sprawdzić, czy bolus został podany."; + +/* Event title for prime pump event */ +"Prime" = "Główny"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Niski poziom baterii w pompie"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pompa nie odpowiada"; + +/* Error description */ +"Pump Error" = "Błąd pompy"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pompa jest zawieszona"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pompa jest zawieszona"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Zbiorniczek w pompie jest pusty"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Niski poziom w zbiorniczku pompy"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pompa odpowiedziała w nieoczekiwany sposób"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Wiadomość od pompy(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Błąd przeprogramowania"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Zbiorniczek"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Wznów"; + +/* Event title for rewind */ +"Rewind" = "Przewiń"; + +/* Error description */ +"RileyLink radio tune failed" = "Dostrajanie radia RileyLink zakończone niepowodzeniem"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Zaplanowana dawka podstawowa"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Wybierz profil"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Utrata sygnału"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Wstrzymaj"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tymczasowa dawka podstawowa"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Baza tymczasowa: %1$.3f J/godz"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Baza tymczasowa: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Baza tymczasowa: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Nie można zapisać danych pompy"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Nieoczekiwana odpowiedź %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Nieznany Alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Nieznany typ zapisu glukozy: %$1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Nieznany typ zapisu historii: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Nieznany kod błędu pompy: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Nieznany model pompy: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Nieoczekiwana odpowiedź podczas %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Ogólnoświatowa"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..37509597fe --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,139 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U restante"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U restante: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Um bolus está em andamento"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "LembreteDeAlarme"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmeDeSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alcalina"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Perfil Basal %1$@: %2$@ U/hora"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus em andamento"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Troque a bateria da bomba imediatamente"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Troque o reservatório da bomba agora"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Mudar Horário"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verifique se a bomba não está suspensa ou em preparação ou tem uma basal temporária percentual"; + +/* Pump error code returned when command refused */ +"Command refused" = "Comando recusado"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Comunicação com outra bomba detectada."; + +/* Error description */ +"Decoding Error" = "Erro de Decodificação"; + +/* Error description */ +"Device Error" = "Erro no Dispositivo"; + +/* Default alert dismissal */ +"Dismiss" = "Dispensar"; + +/* Describing the pump history insulin data source */ +"Event History" = "Event History"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Resposta inválida durante %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lítio"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Bateria Fraca"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Verifique se o seu RileyLink está próximo e ligado"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Configuração máxima excedida"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Describing the North America pump region */ +"North America" = "América do Norte"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Batteria da Bomba Fraca"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "A bomba não respondeu"; + +/* Error description */ +"Pump Error" = "Erro na Bomba"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Bomba suspensa"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Reservatório da Bomba Vazio"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Reservatório da Bomba Vazio"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = " Bomba respondeu inesperadamente"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "MensagemDaBomba(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Error description */ +"RileyLink radio tune failed" = "A sintonia do rádio RileyLink falhou"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Basal Agendado"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Basal Temporária: %1$.3f U/hora"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Basal Temporária: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Basal Temporária: %1$d%%"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Código de erro da bomba desconhecido: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Modelo de bomba desconhecido: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Resposta desconhecida durante %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Mundial"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/ro.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..04bd342552 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" are o baterie scăzută"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U rămase"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U rămase: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Există deja un bolus în curs de administrare"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alcalină"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Alarma de oprire automată"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Profil bazal %1$@: %2$@ U/oră"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Bateria descărcată"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Limită de descărcare a bateriei"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "ProblemaBaterie17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "ProblemaBaterie21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus în derulare"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus în curs de administrare"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Este posibil ca bolusul să fi eșuat: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Anulați bazala temporară"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Modificarea profilului programului de insulină bazală"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Modificarea programului de insulină bazală"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Schimbați imediat bateria pompei"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Schimbați rezervorul pompei acum"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Schimbare oră"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verificați că pompa nu este suspendată sau în curs de inițiere sau ca nu folosește un tip procentual de bazală temporară"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Ștergeți alarma"; + +/* Pump error code returned when command refused */ +"Command refused" = "Comandă refuzată"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "S-a detectat o comunicare cu altă pompă."; + +/* Error description */ +"Decoding Error" = "Eroare la decodare"; + +/* Error description */ +"Device Error" = "Eroare dispozitiv"; + +/* Title for deviceReset */ +"Device Reset" = "Resetare dispozitiv"; + +/* Default alert dismissal */ +"Dismiss" = "Renunță"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Rezervor gol"; + +/* Describing the pump history insulin data source */ +"Event History" = "Istoric evenimente"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Pagina de glicemie nu a reușit verificarea crc"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Accesați setările pompei și selectați tipul de insulină"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Pagina de istoric nu există"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Pagina pentru istoric nu a reușit verificarea crc"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Administrarea insulinei suspendată"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Tipul de insulină nu este configurat"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Răspuns invalid în timpul %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litiu"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop a trimis o comandă de bolus pompei, dar nu a putut confirma că pompa a primit comanda. Pentru siguranță, Loop va presupune că bolusul a fost administrat. Când Loop preia istoricul de la pompă și timpul estimat de terminare a bolusului este trecut, Loop își va actualiza înregistrările de livrare pentru a se potrivi cu ceea ce raportează pompa."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Baterie descărcată"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Rezervor scăzut"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Baterie RileyLink scăzută"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropriere"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Setare maximă depășită"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Masă"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Timp nou"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Fără alarmă de administrare"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Niciun RileyLink conectat"; + +/* Describing the North America pump region */ +"North America" = "America de Nord"; + +/* Default alert dismissal */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Procentul de bazală temporară"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Vă rugăm să verificați istoricul bolusurilor de pe pompă pentru a determina dacă bolusul a fost administrat."; + +/* Event title for prime pump event */ +"Prime" = "Inițiere"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Nivel scăzut baterie pompă"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumpa nu a răspuns"; + +/* Error description */ +"Pump Error" = "Eroare pompă"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pompa este suspendată"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pompa este suspendată"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Rezervorul pompei este gol"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Rezervor de pompare scăzut"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pompa a răspuns în mod neașteptat"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Eroare de reprogramare"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Rezervor"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reluați"; + +/* Event title for rewind */ +"Rewind" = "Derulare"; + +/* Error description */ +"RileyLink radio tune failed" = "Eșec RileyLink la reglarea radio"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Bazală programată"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Alegeți profilul"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pierdere de semnal"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendați"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Bazală temporară"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Bazală temporară: %1$.3f U/oră"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Bazală temporară: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Bazală temporară: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Imposibil de salvat datele pompei"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Răspuns neașteptat %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Alarmă necunoscută"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Tip necunoscut de înregistrare glicemie: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Tip necunoscut de înregistrare istoric: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Cod de eroare pompă necunoscut: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Model de pompă necunoscut: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Răspuns nerecunoscut în timpul %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Global"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/ru.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..838831e694 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,277 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" имеет низкий заряд батареи"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ Ед осталось"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ Ед осталось: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Болюс уже подается"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "Напоминание будильника"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "Предупреждение от сенсора"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Щелочная"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Автоматическое выключение сигнала тревоги"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Профиль базала %1$@: %2$@ ед/ч"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Батарея разряжена"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Предел разряда батареи"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "BatteryIssue17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "BatteryIssue21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Болюс"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Подача болюса"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Подается болюс"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Возможно, болюс не прошел: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Канада"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Отмена ВБС"; + +/* Event title for ChangeBasalProfilePatternPumpEvent */ +"Change Basal Profile Schedule" = "Смена профиля базала по расписанию"; + +/* Event title for ChangeBasalProfilePumpEvent */ +"Change Basal Schedule" = "Изменение расписания базала"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Немедленно замените батарейку в помпе"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Замените резервуар помпы сейчас"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Смена времени"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Убедитесь, что помпа не остановлена или не находится в режиме заправки, а так же что ВБС в помпе установлен в Ед/ч, а не в процентах"; + +/* Event title for clear alarm pump event */ +"Clear Alarm" = "Очистить оповещения"; + +/* Pump error code returned when command refused */ +"Command refused" = "Отказ в выполнении команды"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Обнаружена коммуникация с другой помпой"; + +/* Error description */ +"Decoding Error" = "Ошибка декодирования"; + +/* Error description */ +"Device Error" = "Ошибка устройства"; + +/* Title for deviceReset */ +"Device Reset" = "Сброс устройства"; + +/* Default alert dismissal */ +"Dismiss" = "Отклонить"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Резервуар пуст"; + +/* Describing the pump history insulin data source */ +"Event History" = "История событий"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Страница глюкозы не прошла проверку crc"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Перейдите в настройки помпы и выберите тип инсулина"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Страница истории не существует"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Страница истории не прошла проверку crc"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Подача инсулина приостановлена"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "Тип инсулина не настроен"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Неверный отклик %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Литиевая"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop отправил помпе команду на введение болюса, но не смог подтвердить, что помпа получила эту команду. Для безопасности Loop будет считать, что болюс был доставлен. Когда Loop в конечном итоге получит историю болюсов от помпы и пройдет расчетное время окончания введения болюса, Loop обновит свои записи о болюсах, чтобы они соответствовали данным, полученным от помпы."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Батарейка садится"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Мало инсулина в резервуаре"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Низкий заряд батареи RileyLink"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink находится поблизости и включен"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Максимальное значение превышено"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Еда"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 серий"; + +/* Event title for NewTimePumpEvent */ +"New Time" = "Новое время"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "Нет сигнала тревоги подачи"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Не подключен RileyLink"; + +/* Describing the North America pump region */ +"North America" = "Сев Америка"; + +/* Default alert dismissal */ +"Ok" = "Ок"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Проценты временного базала"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Пожалуйста, проверьте историю болюсов в помпе, чтобы определить, был ли болюс доставлен."; + +/* Event title for prime pump event */ +"Prime" = "Заполнение"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Батарея помпы разряжена"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Помпа не отвечает"; + +/* Error description */ +"Pump Error" = "Ошибка помпы"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Помпа остановлена"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Помпа остановлена"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Резервуар помпы пуст"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Мало инсулина в резервуаре"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Неожиданный отклик помпы"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Сообщение помпы(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Ошибка перепрограммирования"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Возобновление"; + +/* Event title for rewind */ +"Rewind" = "Перемотка назад"; + +/* Error description */ +"RileyLink radio tune failed" = "Настройка радиосвязи с RileyLink не удалась"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Запланированная база"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Выбор профиля"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Сигнал потерян"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Приостановка"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "ВБС"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Временный базал: %1$.3f ед/ч"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Временный базал: %1$d мин"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Временный базал: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Не удается сохранить данные помпы"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Неожиданный ответ %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Неизвестный сигнал тревоги"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Неизвестный тип записи глюкозы: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Неизвестный тип записи истории: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Неизвестный код ошибки помпы: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Неизвестная модель помпы: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Неизвестный отклик %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Глобальный"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/sk.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..9a2a3f6d7a --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,51 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "Zostáva %1$@ j"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "Zostáva %1$@ j: %2$@"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Prebieha bolus"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Ihneď vymeňte batériu pumpy"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Ihneď vymeňte zásobník pumpy"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Slabá batéria"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Nízka hladina v rezervoári"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Nízky stav batérie RileyLinku"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Uistite sa, že je váš RileyLink v blízkosti a je zapnutý"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Rezervoár"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Naplánovaný bazál"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Strata signálu"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Pozastavenie"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Dočasný bazál"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/sv.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..a2b2650833 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,173 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ E kvar"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ E kvar: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "En bolusdos ges redan"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaliskt"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/h"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus pågår"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus pågår"; + +/* Describing the Canada pump region */ +"Canada" = "Canada"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Byt pumpbatteri nu"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Byt pumpreservoar nu"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Ändra tid"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Kontrollera att pumpen inte är pausad eller håller på att fyllas, eller har en temporär basal inställd med procentuellt värde."; + +/* Pump error code returned when command refused */ +"Command refused" = "Kommandot avvisades"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Kommunikation med en annan pump upptäcktes."; + +/* Error description */ +"Decoding Error" = "Avkodingsfel"; + +/* Error description */ +"Device Error" = "Enhetsfel"; + +/* Default alert dismissal */ +"Dismiss" = "Avfärda"; + +/* Describing the pump history insulin data source */ +"Event History" = "Händelsehistorik"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "Glukossida misslyckades med crc-kontroll"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Sidan med händelsehistorik finns inte"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Historiksidan misslyckades med kontroll av Crc"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintillförsel pausad"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Ogiltigt svar under %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Litium"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Lågt batteri"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära och påslagen"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Inställt maxvärde överskridet"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "Ingen RileyLink ansluten"; + +/* Describing the North America pump region */ +"North America" = "Nordamerika"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Låg batterinivå i pump"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pumpen svarade inte"; + +/* Error description */ +"Pump Error" = "Pumpfel"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pumpen är pausad"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pumpreservoaren är tom"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pumpreservoaren har låg nivå"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pump svarade oväntat"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpmeddelande(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoar"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink radiosignal misslyckad"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Schemalagd basal"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporär basal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Temporär basal: %1$.3f E/timme"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Temporär basal: %1$d min"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Temporär basal: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Det går inte att lagra pumpdata"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Okänd glukosposttyp: %$1 @"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Okänd historikposttyp: %$1@"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Okänt pumpfel: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Okänd pumpmodell: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Okänt svar under %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "Global"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/tr.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..d2a3229a0f --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,265 @@ +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\" %1$@ \" pili zayıf"; + +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ Ü kaldı"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ Ü kalan: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Bir bolus zaten devam ediyor"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmSaatiHatırlatma"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "Alarm Sensörü"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkalin"; + +/* Title for PumpAlarmType.autoOff */ +"Auto-Off Alarm" = "Oto-kapanma alarmı"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Bazal Profili %1$@: %2$@ Ü/saat"; + +/* Title for PumpAlarmType.batteryDepleted */ +"Battery Depleted" = "Pil Tükenmiş"; + +/* Title for PumpAlarmType.batteryOutLimitExceeded */ +"Battery Out Limit" = "Pil Bitme Sınırı"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue17 */ +"BatteryIssue17" = "PilSorunu17"; + +/* Title for PumpAlarmType.deviceResetBatteryIssue21 */ +"BatteryIssue21" = "PilSorunu21"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Bolus devam ediyor"; + +/* Error description when failure due to bolus in progress */ +"Bolus in Progress" = "Bolus Devam Ediyor"; + +/* Format string for uncertain bolus. (1: the reported error during bolusing) */ +"Bolus may have failed: %1$@" = "Bolus başarısız olmuş olabilir: %1$@"; + +/* Describing the Canada pump region */ +"Canada" = "Kanada"; + +/* Event title for temp basal cancel */ +"Cancel Temp Basal" = "Geçici Bazalı İptal Et"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Pompa pilini hemen değiştirin"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Pompa rezervuarını şimdi değiştirin"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Saati Değiştir"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Pompanın askıya alınmadığını, dolum aşamasında olmadığını veya yüzde geçici bazal tipine sahip olmadığını kontrol edin."; + +/* Pump error code returned when command refused */ +"Command refused" = "Komut reddedildi"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Başka bir pompa algılandı."; + +/* Error description */ +"Decoding Error" = "Kod Çözme Hatası"; + +/* Error description */ +"Device Error" = "Cihaz Hatası"; + +/* Title for deviceReset */ +"Device Reset" = "Cihaz Sıfırlama"; + +/* Default alert dismissal */ +"Dismiss" = "Reddet"; + +/* Title for PumpAlarmType.emptyReservoir */ +"Empty Reservoir" = "Boş Rezervuar"; + +/* Describing the pump history insulin data source */ +"Event History" = "Etkinlik Geçmişi"; + +/* Error description for glucose page failing crc check */ +"Glucose page failed crc check" = "KŞ sayfası crc kontrolünde başarısız oldu"; + +/* Recovery suggestion for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Go to pump settings and select insulin type" = "Pompa ayarlarına gidin ve insülin tipini seçin"; + +/* Pump error code when invalid history page is requested */ +"History page does not exist" = "Geçmiş sayfası mevcut değil"; + +/* Error description for history page failing crc check */ +"History page failed crc check" = "Geçmiş sayfası crc kontrolünde başarısız oldu"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "İnsülin Askıya Alındı"; + +/* Error description for MinimedPumpManagerError.insulinTypeNotConfigured */ +"Insulin Type is not configured" = "İnsülin Tipi yapılandırılmamış"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "%1$@: %2$@ sırasında geçersiz yanıt"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lityum"; + +/* Help anchor for uncertain bolus */ +"Loop sent a bolus command to the pump, but was unable to confirm that the pump received the command. For safety, Loop will assume the bolus was delivered. When Loop eventually fetches history from the pump, and the estimated bolus finish time is passed, Loop will update its records of delivery to match what the pump reports." = "Loop, pompaya bir bolus komutu gönderdi, ancak pompanın komutu aldığını doğrulayamadı. Güvenlik için, Loop bolusun iletildiğini varsayar. Loop sonunda pompadan geçmişi aldığında ve tahmini bolus bitiş süresi geçtiğinde, Loop iletim kayıtlarını pompanın raporlarıyla eşleşecek şekilde günceller."; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "Düşük Pil"; + +/* Event title for JournalEntryPumpLowReservoirPumpEvent */ +"Low Reservoir" = "Düşük Rezervuar"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Düşük RileyLink Pili"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "RileyLink'inizin yakında olduğundan ve açık olduğundan emin olun"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Maksimum ayar aşıldı"; + +/* Event title for JournalEntryMealMarkerPumpEvent */ +"Meal" = "Öğün"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Title for PumpAlarmType.noDelivery */ +"No Delivery Alarm" = "İletim Alarmı Yok"; + +/* Error description when no rileylink connected */ +"No RileyLink Connected" = "RileyLink Bağlantısı Yok"; + +/* Describing the North America pump region */ +"North America" = "North America"; + +/* Default alert dismissal */ +"Ok" = "Tamam"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "Tamam"; + +/* Event title for percent based temp basal */ +"Percent Temp Basal" = "Geçici Bazal Yüzdesi"; + +/* recoverySuggestion for uncertain bolus */ +"Please check your pump bolus history to determine if the bolus was delivered." = "Bolusun iletilip iletilmediğini belirlemek için lütfen pompa bolus geçmişinizi kontrol edin."; + +/* Event title for prime pump event */ +"Prime" = "Hazırlık"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pompa Pili Düşük"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Pompa yanıt vermedi"; + +/* Error description */ +"Pump Error" = "Pompa Hatası"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Pompa askıya alındı"; + +/* Error description when failure due to pump suspended */ +"Pump is Suspended" = "Pompa Askıya Alındı"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Pompa Rezervuarı Boş"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Pompa Rezervuarı Düşük"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Pompa beklenmedik bir şekilde yanıt verdi"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PompaMesajı(%1$@, %2$@, %3$@, %4$@)"; + +/* Title for PumpAlarmType.reprogramError */ +"Reprogram Error" = "Yeniden Programlama Hatası"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Rezervuar"; + +/* Event title for resume + Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Devam et"; + +/* Event title for rewind */ +"Rewind" = "Geri sarma"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink ayarı başarısız oldu"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Programlanan Bazal"; + +/* Event title for SelectBasalProfilePumpEvent */ +"Select Profile" = "Profil Seç"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Sinyal Kaybı"; + +/* Event title for suspend + Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Askıya al"; + +/* Event title for temporary basal rate start + Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Geçici Bazal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Geçici Bazal: %1$.3f Ü/saat"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Geçici Bazal: %1$d dk"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Geçici Bazal: %1$d%%"; + +/* Error description when storage fails */ +"Unable to store pump data" = "Pompa verileri depolanamıyor"; + +/* Format string for an unexpectedResponse. (2: The response) */ +"Unexpected response %1$@" = "Beklenmeyen yanıt %1$@"; + +/* Title for PumpAlarmType.unknownType */ +"Unknown Alarm" = "Bilinmeyen Alarm"; + +/* Format string for error description for an unknown record type in a glucose page. (1: event type number) */ +"Unknown glucose record type: %$1@" = "Bilinmeyen KŞ kayıt türü: %$1@"; + +/* Format string for error description for an unknown record type in a history page. (1: event type number) */ +"Unknown history record type: %$1@" = "Bilinmeyen geçmiş kayıt türü: %$1 @"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Bilinmeyen pompa hata kodu:%1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Bilinmeyen pompa modeli: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "%1$@: %2$@ sırasında bilinmeyen yanıt"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/MinimedKit/MinimedKit/Resources/vi.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..d211ccd4f8 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKit/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,139 @@ +/* Low reservoir alert format string. (1: Number of units remaining) */ +"%1$@ U left" = "%1$@ U còn lại"; + +/* Low reservoir alert with time remaining format string. (1: Number of units remaining)(2: approximate time remaining) */ +"%1$@ U left: %2$@" = "%1$@ U còn lại: %2$@"; + +/* Communications error for a bolus currently running */ +"A bolus is already in progress" = "Liều bolus đang được thực hiện"; + +/* The description of AlarmClockReminderPumpEvent */ +"AlarmClockReminder" = "AlarmClockReminder"; + +/* The description of AlarmSensorPumpEvent */ +"AlarmSensor" = "AlarmSensor"; + +/* Describing the battery chemistry as Alkaline */ +"Alkaline" = "Alkaline"; + +/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ +"Basal Profile %1$@: %2$@ U/hour" = "Hồ sơ Basal %1$@: %2$@ U/giờ"; + +/* Event title for bolus + Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Pump error code when bolus is in progress */ +"Bolus in progress" = "Liều Bolus đang được thực hiện"; + +/* The notification alert describing a low pump battery */ +"Change the pump battery immediately" = "Thay pin máy bơm ngay"; + +/* The notification alert describing an empty pump reservoir */ +"Change the pump reservoir now" = "Thay ngăn chứa insulin bây giờ"; + +/* Event title for ChangeTimePumpEvent */ +"Change Time" = "Thay đổi thời gian"; + +/* Suggestions for diagnosing a command refused pump error */ +"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Kiểm tra và đảm bảo bơm không tạm ngưng hoặc đang bơm hoặc đang thực hiện liều basal tạm thời"; + +/* Pump error code returned when command refused */ +"Command refused" = "Lệnh bị từ chối"; + +/* No comment provided by engineer. */ +"Comms with another pump detected" = "Comms cho bơm khác được phát hiện."; + +/* Error description */ +"Decoding Error" = "Đang giải mã bị lỗi"; + +/* Error description */ +"Device Error" = "Thiết bị lỗi"; + +/* Default alert dismissal */ +"Dismiss" = "Từ bỏ"; + +/* Describing the pump history insulin data source */ +"Event History" = "Event History"; + +/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ +"Invalid response during %1$@: %2$@" = "Phản ứng không phù hợp trong khoảng %1$@: %2$@"; + +/* Describing the battery chemistry as Lithium */ +"Lithium" = "Lithium"; + +/* Event title for JournalEntryPumpLowBatteryPumpEvent */ +"Low Battery" = "pin yếu"; + +/* Recovery suggestion */ +"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật"; + +/* Pump error code describing max setting exceeded */ +"Max setting exceeded" = "Cài đặt tối đa vượt giới hạn"; + +/* Pump title (1: model number) */ +"Minimed %@" = "Minimed %@"; + +/* Generic title of the minimed pump manager */ +"Minimed 500/700 Series" = "Minimed 500/700 Series"; + +/* Describing the North America pump region */ +"North America" = "North America"; + +/* Acknowledge button label for RileyLink low battery alert */ +"OK" = "OK"; + +/* The notification title for a low pump battery */ +"Pump Battery Low" = "Pin của bơm thấp"; + +/* No comment provided by engineer. */ +"Pump did not respond" = "Bơm không phản hồi"; + +/* Error description */ +"Pump Error" = "Bơm lỗi"; + +/* No comment provided by engineer. */ +"Pump is suspended" = "Bơm đang được tạm ngưng"; + +/* The notification title for an empty pump reservoir */ +"Pump Reservoir Empty" = "Ngăn chứa hết insulin"; + +/* The notification title for a low pump reservoir */ +"Pump Reservoir Low" = "Ngăn chứa insulin thấp"; + +/* No comment provided by engineer. */ +"Pump responded unexpectedly" = "Bơm phản ứng bất ngờ"; + +/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ +"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; + +/* Describing the reservoir insulin data source */ +"Reservoir" = "Reservoir"; + +/* Error description */ +"RileyLink radio tune failed" = "RileyLink radio thất bại"; + +/* Event title for starting scheduled basal */ +"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ +"Temporary Basal: %1$.3f U/hour" = "Liều Basal tạm thời: %1$.3f U/giờ"; + +/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ +"Temporary Basal: %1$d min" = "Liều Basal tạm thời: %1$d phút"; + +/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ +"Temporary Basal: %1$d%%" = "Liều Basal tạm thời: %1$d%%"; + +/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ +"Unknown pump error code: %1$@" = "Không xác định lỗi của bơm: %1$@"; + +/* No comment provided by engineer. */ +"Unknown pump model: %@" = "Không xác định mẫu bơm: %@"; + +/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ +"Unknown response during %1$@: %2$@" = "Phản hồi không xác định trong %1$@: %2$@"; + +/* Describing the worldwide pump region */ +"World-Wide" = "World-Wide"; + diff --git a/Dependencies/rileylink_ios/MinimedKit/zh-Hans.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKit/Resources/zh-Hans.lproj/Localizable.strings similarity index 100% rename from Dependencies/rileylink_ios/MinimedKit/zh-Hans.lproj/Localizable.strings rename to Dependencies/MinimedKit/MinimedKit/Resources/zh-Hans.lproj/Localizable.strings diff --git a/Dependencies/MinimedKit/MinimedKitPlugin/Extensions/OSLog.swift b/Dependencies/MinimedKit/MinimedKitPlugin/Extensions/OSLog.swift new file mode 100644 index 0000000000..0bf2196f03 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitPlugin/Extensions/OSLog.swift @@ -0,0 +1,51 @@ +// +// OSLog.swift +// MinimedKitPlugin +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import os.log + + +extension OSLog { + convenience init(category: String) { + self.init(subsystem: "com.loopkit.MinimedKit", category: category) + } + + func debug(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .debug, args) + } + + func info(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .info, args) + } + + func `default`(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .default, args) + } + + func error(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .error, args) + } + + private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { + switch args.count { + case 0: + os_log(message, log: self, type: type) + case 1: + os_log(message, log: self, type: type, args[0]) + case 2: + os_log(message, log: self, type: type, args[0], args[1]) + case 3: + os_log(message, log: self, type: type, args[0], args[1], args[2]) + case 4: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) + case 5: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) + default: + os_log(message, log: self, type: type, args) + } + } +} diff --git a/Dependencies/rileylink_ios/MinimedKitPlugin/Info.plist b/Dependencies/MinimedKit/MinimedKitPlugin/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitPlugin/Info.plist rename to Dependencies/MinimedKit/MinimedKitPlugin/Info.plist diff --git a/Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.swift b/Dependencies/MinimedKit/MinimedKitPlugin/MinimedKitPlugin.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.swift rename to Dependencies/MinimedKit/MinimedKitPlugin/MinimedKitPlugin.swift index cecaf1e8fa..b3996441a0 100644 --- a/Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.swift +++ b/Dependencies/MinimedKit/MinimedKitPlugin/MinimedKitPlugin.swift @@ -3,7 +3,7 @@ // MinimedKitPlugin // // Created by Pete Schwamb on 8/24/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import os.log diff --git a/Dependencies/MinimedKit/MinimedKitTests/BasalScheduleTests.swift b/Dependencies/MinimedKit/MinimedKitTests/BasalScheduleTests.swift new file mode 100644 index 0000000000..27e2128bb9 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitTests/BasalScheduleTests.swift @@ -0,0 +1,76 @@ +// +// BasalScheduleTests.swift +// RileyLink +// +// Created by Jaim Zuber on 5/2/17. +// Copyright © 2017 LoopKit Authors. All rights reserved. +// + +import XCTest +@testable import MinimedKit + +class BasalScheduleTests: XCTestCase { + + var sampleData: Data { + let sampleDataString = "06000052000178050202000304000402000504000602000704000802000904000a02000b04000c02000d02000e02000f040010020011040012020013040014020015040016020017040018020019000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + + return Data(hexadecimalString: sampleDataString)! + } + + func testBasicConversion() { + let profile = BasalSchedule(rawValue: sampleData)! + + XCTAssertEqual(profile.entries.count, 26) + + let basalSchedule = profile.entries + + // Test each element + XCTAssertEqual(basalSchedule[0].index, 0) + XCTAssertEqual(basalSchedule[0].timeOffset, TimeInterval(minutes: 0)) + XCTAssertEqual(basalSchedule[0].rate, 0.15, accuracy: .ulpOfOne) + + XCTAssertEqual(basalSchedule[1].index, 1) + XCTAssertEqual(basalSchedule[1].timeOffset, TimeInterval(minutes: 30)) + XCTAssertEqual(basalSchedule[1].rate, 2.05, accuracy: .ulpOfOne) + + // Tests parsing rates that take two bytes to encode + XCTAssertEqual(basalSchedule[2].index, 2) + XCTAssertEqual(basalSchedule[2].timeOffset, TimeInterval(minutes: 60)) + XCTAssertEqual(basalSchedule[2].rate, 35.00, accuracy: .ulpOfOne) + + // Tests parsing entry on the second page + XCTAssertEqual(basalSchedule[25].index, 25) + XCTAssertEqual(basalSchedule[25].timeOffset, TimeInterval(minutes: 750)) + XCTAssertEqual(basalSchedule[25].rate, 0.05, accuracy: .ulpOfOne) + + XCTAssertEqual(sampleData.hexadecimalString, profile.rawValue.hexadecimalString) + } + + func testTxData() { + let profile = BasalSchedule(entries: [ + BasalScheduleEntry(index: 0, timeOffset: .hours(0), rate: 1.0), + BasalScheduleEntry(index: 1, timeOffset: .hours(4), rate: 2.0), + ]) + + XCTAssertEqual("280000500008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", profile.rawValue.hexadecimalString) + } + + func testDataFrameParsing() { + let frames = DataFrameMessageBody.dataFramesFromContents(sampleData) + + XCTAssertEqual("0106000052000178050202000304000402000504000602000704000802000904000a02000b04000c02000d02000e02000f04001002001104001202001304001402", frames[0].txData.hexadecimalString) + XCTAssertEqual("0200150400160200170400180200190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", frames[1].txData.hexadecimalString) + XCTAssertEqual("8300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", frames[2].txData.hexadecimalString) + + XCTAssertEqual(3, frames.count) + } + + func testEmptySchedule() { + let emptyData = Data(hexadecimalString: "00003f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")! + + let profile = BasalSchedule(rawValue: emptyData) + XCTAssertNil(profile) + + XCTAssertEqual(emptyData, BasalSchedule(entries: []).rawValue) + } +} diff --git a/Dependencies/rileylink_ios/MinimedKitTests/CRC16Tests.swift b/Dependencies/MinimedKit/MinimedKitTests/CRC16Tests.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKitTests/CRC16Tests.swift rename to Dependencies/MinimedKit/MinimedKitTests/CRC16Tests.swift index d9abbbe373..9c335be89a 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/CRC16Tests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/CRC16Tests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/CRC8Tests.swift b/Dependencies/MinimedKit/MinimedKitTests/CRC8Tests.swift similarity index 86% rename from Dependencies/rileylink_ios/MinimedKitTests/CRC8Tests.swift rename to Dependencies/MinimedKit/MinimedKitTests/CRC8Tests.swift index d0dd7e4f47..2d60fe88ee 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/CRC8Tests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/CRC8Tests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/MinimedKit/MinimedKitTests/Extensions/Data.swift b/Dependencies/MinimedKit/MinimedKitTests/Extensions/Data.swift new file mode 100644 index 0000000000..8ac359fa2c --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitTests/Extensions/Data.swift @@ -0,0 +1,90 @@ +// +// Data.swift +// MinimedKitTests +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension Data { + private func toDefaultEndian(_: T.Type) -> T { + return self.withUnsafeBytes({ (rawBufferPointer: UnsafeRawBufferPointer) -> T in + let bufferPointer = rawBufferPointer.bindMemory(to: T.self) + guard let pointer = bufferPointer.baseAddress else { + return 0 + } + return T(pointer.pointee) + }) + } + + func to(_ type: T.Type) -> T { + return T(littleEndian: toDefaultEndian(type)) + } + + func toBigEndian(_ type: T.Type) -> T { + return T(bigEndian: toDefaultEndian(type)) + } + + mutating func append(_ newElement: T) { + var element = newElement.littleEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + mutating func appendBigEndian(_ newElement: T) { + var element = newElement.bigEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + init(_ value: T) { + var value = value.littleEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } + + init(bigEndian value: T) { + var value = value.bigEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } +} + + +// String conversion methods, adapted from https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 +extension Data { + init?(hexadecimalString: String) { + self.init(capacity: hexadecimalString.utf16.count / 2) + + // Convert 0 ... 9, a ... f, A ...F to their decimal value, + // return nil for all other input characters + func decodeNibble(u: UInt16) -> UInt8? { + switch u { + case 0x30 ... 0x39: // '0'-'9' + return UInt8(u - 0x30) + case 0x41 ... 0x46: // 'A'-'F' + return UInt8(u - 0x41 + 10) // 10 since 'A' is 10, not 0 + case 0x61 ... 0x66: // 'a'-'f' + return UInt8(u - 0x61 + 10) // 10 since 'a' is 10, not 0 + default: + return nil + } + } + + var even = true + var byte: UInt8 = 0 + for c in hexadecimalString.utf16 { + guard let val = decodeNibble(u: c) else { return nil } + if even { + byte = val << 4 + } else { + byte += val + self.append(byte) + } + even = !even + } + guard even else { return nil } + } + + var hexadecimalString: String { + return map { String(format: "%02hhx", $0) }.joined() + } +} diff --git a/Dependencies/MinimedKit/MinimedKitTests/Extensions/TimeInterval.swift b/Dependencies/MinimedKit/MinimedKitTests/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..e2e99b7a57 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitTests/Extensions/TimeInterval.swift @@ -0,0 +1,81 @@ +// +// TimeInterval.swift +// MinimedKitTests +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeInterval { + + static func days(_ days: Double) -> TimeInterval { + return self.init(days: days) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + static func minutes(_ minutes: Int) -> TimeInterval { + return self.init(minutes: Double(minutes)) + } + + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func seconds(_ seconds: Double) -> TimeInterval { + return self.init(seconds) + } + + static func milliseconds(_ milliseconds: Double) -> TimeInterval { + return self.init(milliseconds / 1000) + } + + init(days: Double) { + self.init(hours: days * 24) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(seconds: Double) { + self.init(seconds) + } + + init(milliseconds: Double) { + self.init(milliseconds / 1000) + } + + var milliseconds: Double { + return self * 1000 + } + + init(hundredthsOfMilliseconds: Double) { + self.init(hundredthsOfMilliseconds / 100000) + } + + var hundredthsOfMilliseconds: Double { + return self * 100000 + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } + + var days: Double { + return hours / 24.0 + } + +} diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift index b118c92235..196068d9a9 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/BatteryChangeGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift index ff7fd744bb..a2341078bf 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/CalBGForGHGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift index e1a2a04fc9..3f99d1dcd4 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/DateTimeChangeGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift index 511cf9ea66..9f5d3c95d7 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/GlucoseSensorDataGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift index 9e7a2a63d6..b0c84fe6ab 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalFactorGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift index d5ae703a6c..2c0b7b60c7 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorCalGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift index 4cd7eb7bc8..8f3f5d0311 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataHighGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift index bc043e8512..b78264c7bb 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorDataLowGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/5/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift similarity index 89% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift index 544cb53edc..cc1487b246 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorErrorGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift similarity index 89% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift index cc9e2a1ed1..1817d2ba6d 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorPacketGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 12/6/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift index add392e483..da371494bc 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorStatusGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift index cf3a365d19..5f503147f5 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorSyncGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift index 9d22862b2b..b778728f55 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/SensorTimestampGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift index 884e979d8e..1564c65791 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucoseEvents/TenSomethingGlucoseEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/GlucosePageTests.swift b/Dependencies/MinimedKit/MinimedKitTests/GlucosePageTests.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/GlucosePageTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/GlucosePageTests.swift index ba4c1ead71..152ab58917 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/GlucosePageTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/GlucosePageTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/HistoryPageTests.swift b/Dependencies/MinimedKit/MinimedKitTests/HistoryPageTests.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/HistoryPageTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/HistoryPageTests.swift index 7ac1d1d3b2..f9ecef73fc 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/HistoryPageTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/HistoryPageTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Info.plist b/Dependencies/MinimedKit/MinimedKitTests/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/Info.plist rename to Dependencies/MinimedKit/MinimedKitTests/Info.plist diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/BolusCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/BolusCarelinkMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/BolusCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/BolusCarelinkMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift index 7aa2d5c3f0..18ed70adb1 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBasalRateMessageBodyTests.swift @@ -2,7 +2,7 @@ // ChangeMaxBasalRateMessageBodyTests.swift // MinimedKitTests // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift index 67a0907644..d92f6e836a 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeMaxBolusMessageBodyTests.swift @@ -2,7 +2,7 @@ // ChangeMaxBolusMessageBodyTests.swift // MinimedKitTests // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift index 95d3cb4630..ee10e511be 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeRemoteControlIDMessageBodyTests.swift @@ -2,7 +2,7 @@ // ChangeRemoteControlIDMessageBodyTests.swift // MinimedKitTests // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeTempBasalCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeTempBasalCarelinkMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeTempBasalCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeTempBasalCarelinkMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeTimeCarelinMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeTimeCarelinMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ChangeTimeCarelinMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ChangeTimeCarelinMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift index 94e565c4b2..3c35b62fbc 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/DeviceLinkMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift index 8bf43a6168..f1bf8d9b73 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/FindDeviceMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/7/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift index 6df1bac492..272ce53f87 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetBatteryCarelinkMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/16/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift similarity index 87% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift index 0af09bfbc8..ea24d24c1d 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetGlucosePageMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift index bf4df55e58..c8c3ddae25 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/GetPumpModelCarelinkMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/14/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/MeterMessageTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/MeterMessageTests.swift similarity index 90% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/MeterMessageTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/MeterMessageTests.swift index 2e4b6309b7..4620951771 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/MeterMessageTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/MeterMessageTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift similarity index 91% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift index c8094b11a5..cc9e05d09c 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadCurrentGlucosePageMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/19/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift index 2e3e478f7d..df0de3fd92 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadOtherDevicesIDsMessageBodyTests.swift @@ -2,7 +2,7 @@ // ReadOtherDevicesIDsMessageBodyTests.swift // MinimedKitTests // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift index 46119cff2d..8ad101eab0 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemainingInsulinMessageBodyTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nathan Racklyeft on 5/25/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift index 63609d7ab7..06114cadc7 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadRemoteControlIDsMessageBodyTests.swift @@ -2,7 +2,7 @@ // ReadRemoteControlIDsMessageBodyTests.swift // MinimedKitTests // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadTempBasalCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/Messages/ReadTempBasalCarelinkMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/Messages/ReadTempBasalCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/Messages/ReadTempBasalCarelinkMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/MinimedPacketTests.swift b/Dependencies/MinimedKit/MinimedKitTests/MinimedPacketTests.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/MinimedPacketTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/MinimedPacketTests.swift index 14141923f7..bc1cf9cf8b 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/MinimedPacketTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/MinimedPacketTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Pete Schwamb on 2/27/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/MinimedPumpManagerTests.swift b/Dependencies/MinimedKit/MinimedKitTests/MinimedPumpManagerTests.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/MinimedPumpManagerTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/MinimedPumpManagerTests.swift index 21f08f0d89..58a555544f 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/MinimedPumpManagerTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/MinimedPumpManagerTests.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 5/3/20. -// Copyright © 2020 Pete Schwamb. All rights reserved. +// Copyright © 2020 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift rename to Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift index 7b478360e8..9e1813b564 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpManagerDelegate.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 9/5/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpMessageSender.swift b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpMessageSender.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpMessageSender.swift rename to Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpMessageSender.swift index 0fa4b42ae9..1956547159 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpMessageSender.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpMessageSender.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 1/7/23. -// Copyright © 2023 Pete Schwamb. All rights reserved. +// Copyright © 2023 LoopKit Authors. All rights reserved. // import MinimedKit diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpOps.swift b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpOps.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpOps.swift rename to Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpOps.swift index 8b326fef36..f6e5c99bd0 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockPumpOps.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockPumpOps.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 9/5/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkDevice.swift b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkDevice.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkDevice.swift rename to Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkDevice.swift index 2610d881bc..642d4cd6c5 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkDevice.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkDevice.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 9/5/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkProvider.swift b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkProvider.swift similarity index 94% rename from Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkProvider.swift rename to Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkProvider.swift index 29a2686f51..ca842f2a62 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/Mocks/MockRileyLinkProvider.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/Mocks/MockRileyLinkProvider.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 9/5/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/MySentryPumpStatusMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/MySentryPumpStatusMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/MySentryPumpStatusMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/MySentryPumpStatusMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/NSDataTests.swift b/Dependencies/MinimedKit/MinimedKitTests/NSDataTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/NSDataTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/NSDataTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/NSDateComponents.swift b/Dependencies/MinimedKit/MinimedKitTests/NSDateComponents.swift similarity index 89% rename from Dependencies/rileylink_ios/MinimedKitTests/NSDateComponents.swift rename to Dependencies/MinimedKit/MinimedKitTests/NSDateComponents.swift index 4cca08c3fc..78a55ce207 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/NSDateComponents.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/NSDateComponents.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nathan Racklyeft on 4/9/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/NSDateComponentsTests.swift b/Dependencies/MinimedKit/MinimedKitTests/NSDateComponentsTests.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitTests/NSDateComponentsTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/NSDateComponentsTests.swift index b61ee07b1a..25276c0572 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/NSDateComponentsTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/NSDateComponentsTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Nate Racklyeft on 6/13/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/NSStringExtensions.swift b/Dependencies/MinimedKit/MinimedKitTests/NSStringExtensions.swift similarity index 89% rename from Dependencies/rileylink_ios/MinimedKitTests/NSStringExtensions.swift rename to Dependencies/MinimedKit/MinimedKitTests/NSStringExtensions.swift index 99985b139a..9d75a7e11d 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/NSStringExtensions.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/NSStringExtensions.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Timothy Mecklem on 10/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. +// Copyright © 2016 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift index d80ba24708..4007c7d5a4 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/PumpEvents/BolusNormalPumpEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 3/8/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift similarity index 90% rename from Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift index 6df1b9b0cb..00197c7274 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/PumpEvents/ResumePumpEventTests.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 11/10/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/PumpModelTests.swift b/Dependencies/MinimedKit/MinimedKitTests/PumpModelTests.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitTests/PumpModelTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/PumpModelTests.swift index 27da1ffb94..6500453374 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/PumpModelTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/PumpModelTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 2/24/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift b/Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift index 0944ff5248..0b7d42502e 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousBuildFromFramesTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 3/8/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousTests.swift b/Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousTests.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousTests.swift index a105447364..0aebe05499 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/PumpOpsSynchronousTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/PumpOpsSynchronousTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 2/21/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/ReadSettingsCarelinkMessageBodyTests.swift b/Dependencies/MinimedKit/MinimedKitTests/ReadSettingsCarelinkMessageBodyTests.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitTests/ReadSettingsCarelinkMessageBodyTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/ReadSettingsCarelinkMessageBodyTests.swift diff --git a/Dependencies/rileylink_ios/MinimedKitTests/ReconciliationTests.swift b/Dependencies/MinimedKit/MinimedKitTests/ReconciliationTests.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKitTests/ReconciliationTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/ReconciliationTests.swift index 87f6559e41..b5c9faa2d3 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/ReconciliationTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/ReconciliationTests.swift @@ -3,7 +3,7 @@ // MinimedKitTests // // Created by Pete Schwamb on 9/5/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import XCTest diff --git a/Dependencies/rileylink_ios/MinimedKitTests/TimestampedHistoryEventTests.swift b/Dependencies/MinimedKit/MinimedKitTests/TimestampedHistoryEventTests.swift similarity index 78% rename from Dependencies/rileylink_ios/MinimedKitTests/TimestampedHistoryEventTests.swift rename to Dependencies/MinimedKit/MinimedKitTests/TimestampedHistoryEventTests.swift index 81898eea48..65e1ca9118 100644 --- a/Dependencies/rileylink_ios/MinimedKitTests/TimestampedHistoryEventTests.swift +++ b/Dependencies/MinimedKit/MinimedKitTests/TimestampedHistoryEventTests.swift @@ -3,7 +3,7 @@ // RileyLink // // Created by Jaim Zuber on 2/24/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. +// Copyright © 2017 LoopKit Authors. All rights reserved. // import XCTest @@ -29,36 +29,6 @@ class TimestampedHistoryEventTests: XCTestCase { historyPage522 = try! HistoryPage(pageData: hexData522, pumpModel: PumpModel.model522) } - func testEventIsntMutable() { - let data = Data(Array([7,6,5,4,3,2,1,0])) - let event = BatteryPumpEvent(availableData: data, pumpModel: PumpModel.model523)! - - let sut = TimestampedHistoryEvent(pumpEvent:event, date:Date()) - - XCTAssertFalse(sut.isMutable(forPump: .model522)) - } - - func testEventIsNotMutableFor522() { - let data = Data(Array([7,6,5,4,3,2,1,0])) - let event = BatteryPumpEvent(availableData: data, pumpModel: PumpModel.model522)! - - let sut = TimestampedHistoryEvent(pumpEvent:event, date:Date()) - - XCTAssertFalse(sut.isMutable(forPump: .model522)) - } - - func test523EventIsNotMutable() { - - let bolusEvent = getNormalBolusEvent() - - let timeStampDate = bolusEvent.timestamp.date! - let dateToCheck = timeStampDate.addingTimeInterval(bolusEvent.deliveryTime + 10) // beyond the delivery time - - let sut = TimestampedHistoryEvent(pumpEvent: bolusEvent, date: timeStampDate) - - XCTAssertFalse(sut.isMutable(atDate: dateToCheck, forPump: .model523)) - } - func test523EventIsMutable() { let bolusEvent = getNormalBolusEvent() @@ -68,7 +38,7 @@ class TimestampedHistoryEventTests: XCTestCase { let sut = TimestampedHistoryEvent(pumpEvent: bolusEvent, date: timeStampDate) // normal boluses on x23 are *not* mutable; they are just delayed append. Only square wave boluses are mutable - XCTAssertFalse(sut.isMutable(atDate: dateToCheck, forPump: .model523)) + XCTAssertFalse(bolusEvent.isMutable(atDate: dateToCheck, forPump: .model523)) } @@ -80,17 +50,15 @@ class TimestampedHistoryEventTests: XCTestCase { func testSquareWaveIsMutableOnX23() { let squareBolus = BolusNormalPumpEvent(availableData: Data(hexadecimalString: "010080008000240209a24a1510")!, pumpModel: .model523)! let squareBolusTimestamp = squareBolus.timestamp.date! - let squareBolusTimestampedEvent = TimestampedHistoryEvent(pumpEvent: squareBolus, date: squareBolusTimestamp) let dateToCheckForSquareBolus = squareBolusTimestamp.addingTimeInterval(squareBolus.deliveryTime/2) // within the delivery time - XCTAssertTrue(squareBolusTimestampedEvent.isMutable(atDate: dateToCheckForSquareBolus, forPump: .model523)) + XCTAssertTrue(squareBolus.isMutable(atDate: dateToCheckForSquareBolus, forPump: .model523)) } func testSquareWaveIsNotMutableOnX23AfterDeliveryTime() { let squareBolus = BolusNormalPumpEvent(availableData: Data(hexadecimalString: "010080008000240209a24a1510")!, pumpModel: .model523)! let squareBolusTimestamp = squareBolus.timestamp.date! - let squareBolusTimestampedEvent = TimestampedHistoryEvent(pumpEvent: squareBolus, date: squareBolusTimestamp) let dateToCheckForSquareBolus = squareBolusTimestamp.addingTimeInterval(squareBolus.deliveryTime + 1) // 1s after delivery time - XCTAssertTrue(squareBolusTimestampedEvent.isMutable(atDate: dateToCheckForSquareBolus, forPump: .model523)) + XCTAssertTrue(squareBolus.isMutable(atDate: dateToCheckForSquareBolus, forPump: .model523)) } func getNormalBolusEvent() -> BolusNormalPumpEvent { diff --git a/Dependencies/rileylink_ios/MinimedKitUI/CommandResponseViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/CommandResponseViewController.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitUI/CommandResponseViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/CommandResponseViewController.swift index f89b8a5723..43c7924a21 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/CommandResponseViewController.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/CommandResponseViewController.swift @@ -2,7 +2,7 @@ // CommandResponseViewController.swift // MinimedKitUI // -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2018 LoopKit Authors. All rights reserved. // import UIKit diff --git a/Dependencies/MinimedKit/MinimedKitUI/Extensions/Comparable.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/Comparable.swift new file mode 100644 index 0000000000..61974d4fe9 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/Comparable.swift @@ -0,0 +1,24 @@ +// +// Comparable.swift +// MinimedKitUI +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +extension Comparable { + func clamped(to range: ClosedRange) -> Self { + if self < range.lowerBound { + return range.lowerBound + } else if self > range.upperBound { + return range.upperBound + } else { + return self + } + } + + mutating func clamp(to range: ClosedRange) { + self = clamped(to: range) + } +} diff --git a/Dependencies/MinimedKit/MinimedKitUI/Extensions/IdentifiableClass.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/IdentifiableClass.swift new file mode 100644 index 0000000000..ad825fef71 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/IdentifiableClass.swift @@ -0,0 +1,21 @@ +// +// IdentifiableClass.swift +// MinimedKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + + +protocol IdentifiableClass: AnyObject { + static var className: String { get } +} + + +extension IdentifiableClass { + static var className: String { + return NSStringFromClass(self).components(separatedBy: ".").last! + } +} diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Extensions/Image.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/Image.swift similarity index 88% rename from Dependencies/rileylink_ios/MinimedKitUI/Extensions/Image.swift rename to Dependencies/MinimedKit/MinimedKitUI/Extensions/Image.swift index 1294050818..3d7267f930 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Extensions/Image.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/Image.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/29/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/MinimedKit/MinimedKitUI/Extensions/NibLoadable.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/NibLoadable.swift new file mode 100644 index 0000000000..db5988bc50 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/NibLoadable.swift @@ -0,0 +1,20 @@ +// +// NibLoadable.swift +// MinimedKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import UIKit + +protocol NibLoadable: IdentifiableClass { + static func nib() -> UINib +} + + +extension NibLoadable { + static func nib() -> UINib { + return UINib(nibName: className, bundle: Bundle(for: self)) + } +} diff --git a/Dependencies/MinimedKit/MinimedKitUI/Extensions/NumberFormatter.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..6a945f4140 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/NumberFormatter.swift @@ -0,0 +1,56 @@ +// +// NumberFormatter.swift +// MinimedKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension NumberFormatter { + + func decibleString(from decibles: Int?) -> String? { + if let decibles = decibles, let formatted = string(from: NSNumber(value: decibles)) { + return String(format: LocalizedString("%@ dB", comment: "Unit format string for an RSSI value in decibles"), formatted) + } else { + return nil + } + } + + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } + + func string(from number: Double, unit: String, style: Formatter.UnitStyle = .medium, avoidLineBreaking: Bool = true) -> String? { + guard let stringValue = string(from: number) else { + return nil + } + + let separator: String + switch style { + case .long: + separator = " " + case .medium: + separator = avoidLineBreaking ? .nonBreakingSpace : " " + case .short: + fallthrough + @unknown default: + separator = avoidLineBreaking ? .wordJoiner : "" + } + + let unit = avoidLineBreaking ? unit.replacingOccurrences(of: "/", with: "\(String.wordJoiner)/\(String.wordJoiner)") : unit + + return String( + format: LocalizedString("%1$@%2$@%3$@", comment: "String format for value with units (1: value, 2: separator, 3: units)"), + stringValue, + separator, + unit + ) + } +} + +public extension String { + static let nonBreakingSpace = "\u{00a0}" + static let wordJoiner = "\u{2060}" +} diff --git a/Dependencies/MinimedKit/MinimedKitUI/Extensions/TimeZone.swift b/Dependencies/MinimedKit/MinimedKitUI/Extensions/TimeZone.swift new file mode 100644 index 0000000000..969dfa8b71 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Extensions/TimeZone.swift @@ -0,0 +1,19 @@ +// +// TimeZone.swift +// MinimedKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } + + var fixed: TimeZone { + return TimeZone(secondsFromGMT: secondsFromGMT())! + } +} diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Info.plist b/Dependencies/MinimedKit/MinimedKitUI/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Info.plist rename to Dependencies/MinimedKit/MinimedKitUI/Info.plist diff --git a/Dependencies/MinimedKit/MinimedKitUI/LocalisedString.swift b/Dependencies/MinimedKit/MinimedKitUI/LocalisedString.swift new file mode 100644 index 0000000000..9c70ad7084 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/LocalisedString.swift @@ -0,0 +1,28 @@ +// +// LocalisedString.swift +// MinimedKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("MinimedKitUI_MinimedKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedHUDProvider.swift b/Dependencies/MinimedKit/MinimedKitUI/MinimedHUDProvider.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedHUDProvider.swift rename to Dependencies/MinimedKit/MinimedKitUI/MinimedHUDProvider.swift index 4d3c239c26..b88f481822 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/MinimedHUDProvider.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/MinimedHUDProvider.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 2/4/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. +// Copyright © 2019 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.h b/Dependencies/MinimedKit/MinimedKitUI/MinimedKitUI.h similarity index 79% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.h rename to Dependencies/MinimedKit/MinimedKitUI/MinimedKitUI.h index 77c6c46006..2407773c54 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.h +++ b/Dependencies/MinimedKit/MinimedKitUI/MinimedKitUI.h @@ -2,11 +2,12 @@ // MinimedKitUI.h // MinimedKitUI // -// Created by Nathan Racklyeft on 6/23/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Created by Pete Schwamb on 3/19/23. // #import +#import +#import //! Project version number for MinimedKitUI. FOUNDATION_EXPORT double MinimedKitUIVersionNumber; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedPumpManager+UI.swift b/Dependencies/MinimedKit/MinimedKitUI/MinimedPumpManager+UI.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedPumpManager+UI.swift rename to Dependencies/MinimedKit/MinimedKitUI/MinimedPumpManager+UI.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedPumpUICoordinator.swift b/Dependencies/MinimedKit/MinimedKitUI/MinimedPumpUICoordinator.swift similarity index 98% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedPumpUICoordinator.swift rename to Dependencies/MinimedKit/MinimedKitUI/MinimedPumpUICoordinator.swift index d005f5245e..06e3319caa 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/MinimedPumpUICoordinator.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/MinimedPumpUICoordinator.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/29/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitUI/PumpModel.swift b/Dependencies/MinimedKit/MinimedKitUI/PumpModel.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/PumpModel.swift rename to Dependencies/MinimedKit/MinimedKitUI/PumpModel.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/RadioSelectionTableViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/RadioSelectionTableViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/RadioSelectionTableViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/RadioSelectionTableViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Base.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/Base.lproj/Localizable.strings similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Base.lproj/Localizable.strings rename to Dependencies/MinimedKit/MinimedKitUI/Resources/Base.lproj/Localizable.strings diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Base.lproj/MinimedPumpManager.storyboard b/Dependencies/MinimedKit/MinimedKitUI/Resources/Base.lproj/MinimedPumpManager.storyboard similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Base.lproj/MinimedPumpManager.storyboard rename to Dependencies/MinimedKit/MinimedKitUI/Resources/Base.lproj/MinimedPumpManager.storyboard diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Blue.imageset/5xx Blue.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Blue.imageset/5xx Blue.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Blue.imageset/5xx Blue.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Blue.imageset/5xx Blue.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Blue.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Blue.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Blue.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Blue.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Clear.imageset/5xx Clear.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Clear.imageset/5xx Clear.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Clear.imageset/5xx Clear.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Clear.imageset/5xx Clear.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Clear.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Clear.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Clear.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Clear.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Outline.imageset/5xx Outline.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Outline.imageset/5xx Outline.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Outline.imageset/5xx Outline.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Outline.imageset/5xx Outline.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Outline.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Outline.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Outline.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Outline.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Pink.imageset/5xx Pink.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Pink.imageset/5xx Pink.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Pink.imageset/5xx Pink.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Pink.imageset/5xx Pink.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Pink.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Pink.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Pink.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Pink.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Purple.imageset/5xx Purple.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Purple.imageset/5xx Purple.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Purple.imageset/5xx Purple.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Purple.imageset/5xx Purple.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Purple.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Purple.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Purple.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Purple.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Blue.imageset/5xx Small Blue.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Blue.imageset/5xx Small Blue.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Blue.imageset/5xx Small Blue.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Blue.imageset/5xx Small Blue.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Blue.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Blue.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Blue.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Blue.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Clear.imageset/5xx Small Clear.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Clear.imageset/5xx Small Clear.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Clear.imageset/5xx Small Clear.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Clear.imageset/5xx Small Clear.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Clear.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Clear.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Clear.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Clear.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Outline.imageset/5xx Small Outline.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Outline.imageset/5xx Small Outline.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Outline.imageset/5xx Small Outline.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Outline.imageset/5xx Small Outline.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Outline.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Outline.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Outline.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Outline.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Pink.imageset/5xx Small Pink.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Pink.imageset/5xx Small Pink.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Pink.imageset/5xx Small Pink.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Pink.imageset/5xx Small Pink.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Pink.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Pink.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Pink.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Pink.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Purple.imageset/5xx Small Purple.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Purple.imageset/5xx Small Purple.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Purple.imageset/5xx Small Purple.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Purple.imageset/5xx Small Purple.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Purple.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Purple.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Purple.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Purple.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Smoke.imageset/5xx Small Smoke.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Smoke.imageset/5xx Small Smoke.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Smoke.imageset/5xx Small Smoke.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Smoke.imageset/5xx Small Smoke.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Smoke.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Smoke.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Small Smoke.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Small Smoke.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Smoke.imageset/5xx Smoke.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Smoke.imageset/5xx Smoke.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Smoke.imageset/5xx Smoke.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Smoke.imageset/5xx Smoke.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Smoke.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Smoke.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/5xx Smoke.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/5xx Smoke.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Blue.imageset/7xx Blue.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Blue.imageset/7xx Blue.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Blue.imageset/7xx Blue.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Blue.imageset/7xx Blue.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Blue.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Blue.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Blue.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Blue.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Clear.imageset/7xx Clear.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Clear.imageset/7xx Clear.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Clear.imageset/7xx Clear.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Clear.imageset/7xx Clear.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Clear.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Clear.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Clear.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Clear.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Outline.imageset/7xx Outline.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Outline.imageset/7xx Outline.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Outline.imageset/7xx Outline.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Outline.imageset/7xx Outline.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Outline.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Outline.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Outline.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Outline.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Pink.imageset/7xx Pink.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Pink.imageset/7xx Pink.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Pink.imageset/7xx Pink.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Pink.imageset/7xx Pink.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Pink.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Pink.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Pink.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Pink.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Purple.imageset/7xx Purple.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Purple.imageset/7xx Purple.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Purple.imageset/7xx Purple.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Purple.imageset/7xx Purple.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Purple.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Purple.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Purple.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Purple.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Blue.imageset/7xx Small Blue.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Blue.imageset/7xx Small Blue.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Blue.imageset/7xx Small Blue.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Blue.imageset/7xx Small Blue.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Blue.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Blue.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Blue.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Blue.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Clear.imageset/7xx Small Clear.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Clear.imageset/7xx Small Clear.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Clear.imageset/7xx Small Clear.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Clear.imageset/7xx Small Clear.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Clear.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Clear.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Clear.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Clear.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Outline.imageset/7xx Small Outline.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Outline.imageset/7xx Small Outline.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Outline.imageset/7xx Small Outline.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Outline.imageset/7xx Small Outline.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Outline.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Outline.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Outline.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Outline.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Pink.imageset/7xx Small Pink.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Pink.imageset/7xx Small Pink.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Pink.imageset/7xx Small Pink.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Pink.imageset/7xx Small Pink.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Pink.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Pink.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Pink.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Pink.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Purple.imageset/7xx Small Purple.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Purple.imageset/7xx Small Purple.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Purple.imageset/7xx Small Purple.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Purple.imageset/7xx Small Purple.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Purple.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Purple.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Purple.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Purple.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Smoke.imageset/7xx Small Smoke.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Smoke.imageset/7xx Small Smoke.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Smoke.imageset/7xx Small Smoke.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Smoke.imageset/7xx Small Smoke.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Smoke.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Smoke.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Small Smoke.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Small Smoke.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Smoke.imageset/7xx Smoke.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Smoke.imageset/7xx Smoke.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Smoke.imageset/7xx Smoke.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Smoke.imageset/7xx Smoke.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Smoke.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Smoke.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/7xx Smoke.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/7xx Smoke.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Pump ID Diagram.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Pump ID Diagram.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Pump ID Diagram.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump ID Diagram.imageset/Pump ID Diagram.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump Screen Background.colorset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump Screen Background.colorset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump Screen Background.colorset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump Screen Background.colorset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump Screen Text.colorset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump Screen Text.colorset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/Pump Screen Text.colorset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/Pump Screen Text.colorset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir.imageset/reservoir.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir.imageset/reservoir.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir.imageset/reservoir.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir.imageset/reservoir.pdf diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir_mask.imageset/Contents.json b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir_mask.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir_mask.imageset/Contents.json rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir_mask.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir_mask.imageset/reservoir_mask.pdf b/Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir_mask.imageset/reservoir_mask.pdf similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/MinimedKitUI.xcassets/reservoir_mask.imageset/reservoir_mask.pdf rename to Dependencies/MinimedKit/MinimedKitUI/Resources/MinimedKitUI.xcassets/reservoir_mask.imageset/reservoir_mask.pdf diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..f64d17aeb0 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,21 @@ +/* Cancel button title */ +"Cancel" = "إلغاء"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "المعطيات"; + +/* The alert title for a resume error */ +"Error Resuming" = "خطأ في الاستئناف"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "توصيل الأنسولين"; + +/* Button title to retry sentry setup */ +"Retry" = "أعد المحاولة"; + +/* Units for showing temp basal rate */ +"U/hr" = "وحدة لكل ساعة"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Unknown"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..5bc4040480 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ar.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink Setup"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Find Device"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Other Devices"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Do not change the time using your pumpʼs menu."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilities"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Connect Devices"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pump Clock"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pump ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Your pump is ready for use."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Enter the 6-digit pump ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region and Color"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Setup Complete"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pump Broadcasts"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "On"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pump Setup"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Enter the pump region"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pump Setup"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Main Menu"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..9fc5664ea7 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,33 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Cancel button title */ +"Cancel" = "Zrušit"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Měním čas…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfigurace"; + +/* Text for continue button */ +"Continue" = "Pokračovat"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Typ inzulínu"; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Ne"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pumpy"; + +/* Button title to retry sentry setup */ +"Retry" = "Zkusit znovu"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Plánovaný bazál"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Úspěšně ukončeno"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..0f416c1c48 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/cs.lproj/MinimedPumpManager.strings @@ -0,0 +1,15 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Nastavení RileyLinku"; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID pumpy"; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Zadejte 6místné ID pumpy"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Nastavení dokončeno"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Zapnuto"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..799f150349 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/Localizable.strings @@ -0,0 +1,215 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ planlagt basal \n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ enheder insulin tilbage\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheder tilbage på %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline og Lithium batterier henfalder med forskellige hastigheder. Alkaline har tendens til at have et lineært fald over tid, hvor Lithium batteri celler typisk opretholder deres spænding indtil halvejen i deres levetid. Ved normalt brug i en ikke-MySentry kompatibel Minimed (x22/x15) insulinpumpe, som kører Loop, vil alkalinebatterier holde cirka 4 til 5 dage. Lithium batterier holder mellem 1 til 2 uger. Denne indstilling bruger forskellige batteri henfaldssatser for hver kemiske batteritype og alarmerer brugeren, når et batteri er cirka 8 til 10 timer fra at løbe tør."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Er du sikker på, at du vil fjerne denne pumpe?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Bedste frekvens"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Giver bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Annuller"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annuller midlertidig basal"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Ændrer"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Ændrer tid..."; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Vælg den batteritype, du bruger i din pumpe, for at få bedre advarsler om lavt batteri."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfiguration"; + +/* Button title to connect to pump during setup */ +"Connect" = "Forbind"; + +/* Text for continue button */ +"Continue" = "Fortsæt"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Fjern pumpe"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheder"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Brug ikke MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fejl ved genoptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fejl ved suspendering"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Fejl ved synkronisering af tid"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Henter glukose..."; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Henter historik..."; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Henter pumpemodel..."; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware-version"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulin \nsuspenderet"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulintilførsel"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Levering af insulin kan blive bestemt fra pumpen ved enten at tolke på begivenhedshistorikken eller ved at sammenligne volumen af reservoiret over tid. Aflæsning af begivenhedshistorik kan give mere præcise statusgrafer og uploading af up-to-date behandlings data til Nightscout, men betyder hurtigere dræning af pumpebatteriet, risiko for højere fejlrate i radiokommunikation i forhold til aflæsning af volumen af reservoiret. Hvis den valgte kilde ikke kan anvendes,så vil systemet falde tilbage på den anden mulighed."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulin tilbage"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insulintype"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Medtronic-pumpe-modellerne 523, 723, 554 og 754 har en funktion kaldet \"MySentry\", der regelmæssigt sender batteriniveauet for reservoiret og pumpen. Ved at lytte til disse udsendelser kan Loop kommunikere mindre hyppigt med pumpen, hvilket kan forlænge pumpens batterilevetid. Når denne funktion anvendes, forbliver RileyLink dog vågen i længere tid og bruger mere af sit eget batteri. Hvis du aktiverer denne funktion, kan pumpens batterilevetid forlænges, mens du deaktiverer den kan forlænge RileyLink-batteriets levetid. Denne indstilling ignoreres for andre pumpemodeller."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nej"; + +/* Message display when no response from tuning pump */ +"No response" = "Intet svar"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nej, behold pumpen som den er"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "På din pumpe skal du gå til skærmbilledet Find enhed og vælge \"Find enhed\". \n\n Hovedmenu >\n Hjælpeprogrammer >\n Tilslut enheder >\n Andre enheder >\n På >\n Find enhed"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Foretruken data kilde"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Pumpe batteritype"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pumpe ID"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Læser basal-plan..."; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Læser pumpestatus..."; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Fortsæt indgivelse"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Fortsætter"; + +/* Button title to retry sentry setup */ +"Retry" = "Forsøg igen"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Planlagt basal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Vælg den type insulin, du skal bruge i denne pumpe."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Sender knaptryk "; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starter midlertidig basal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Gennemført"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Afbryd insulintilførsel"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Afbrudt: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Afbryder"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til aktuel tid"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Tiden på din pumpe er forskellig fra den aktuelle tid. Vil du opdatere tiden på din pumpe til det aktuelle tidspunkt?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Tidsændring registreret"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Forsøg"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Indstiller radio..."; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Ukendt"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Brug MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Ja"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, synkroniser til det aktuelle klokkeslæt"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..5518996fe3 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/da.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink indstilling"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Find enhed"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Andre enheder"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Juster ikke uret i pumpens menu."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Tilbehør"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Tilslut enheder"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pumpeur"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Pumpens ID er den 6-cifrede nummeriske del af serienummeret (mærket SN eller S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pumpe ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Pumpen er klar til brug."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Indtast det 6-cifrede pumpe ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Hvis du rejser til en anden tidszone i længere tid, kan du ændre pumpens tidszone i Loop’s indstillinger."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop vil holde din pumpes ur synkroniseret med din telefon i den tidszone, du er i nu."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Pumpe region og farve er angivet som de sidste 3 bogstaver i modelnummeret (mærket REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region og Farve"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Opsætning fuldført"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pumpe-udsendelser"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Tændt"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pumpeindstilling"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Angiv pumperegion"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pumpeindstilling"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop vil lytte efter status beskeder fra pumpen. Følg nedenstående skridt på pumpen, for at aktivere disse beskeder:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Hovedmenu"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..e56f9f7d62 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/Localizable.strings @@ -0,0 +1,221 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basale Zeitplaneinträge\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Insulineinheiten verbleiben\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ IE verbleibend bei %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pumpenzeit einstellen"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkali- und Lithiumbatterien zerfallen unterschiedlich schnell. Alkaline neigen dazu, einen linearen Spannungsabfall im Laufe der Zeit zu haben, während Lithium-Zellen-Batterien neigen dazu, die Spannung bis zur Hälfte ihrer Lebensdauer beizubehalten. Bei normaler Verwendung in einer Nicht-MySentry-kompatiblen Minimed (x22 / x15) Insulinpumpe, die Loop läuft, halten Alkali-Batterien etwa 4 bis 5 Tage. Lithium-Batterien halten zwischen 1-2 Wochen. Diese Auswahl verwendet unterschiedliche Batteriespannungs-Abnahmeraten für jeden der Batteriechemietypen und warnt den Benutzer, wenn eine Batterie ungefähr 8 bis 10 Stunden nach einem Fehler liegt."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Sind Sie sicher, dass Sie diese Pumpe löschen wollen?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batterie: %1$@ Volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Beste Frequenz"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Abbrechen"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Temporäre Basalrate abbrechen"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Wechselt"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Zeit ändern"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Wählen Sie den Batterietyp, den Sie in Ihrer Pumpe verwenden, um besser über einen niedrigen Batteriestand informiert zu werden."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfiguration"; + +/* Button title to connect to pump during setup */ +"Connect" = "Verbinden"; + +/* Text for continue button */ +"Continue" = "Weiter"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Pumpe löschen"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Geräte"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "MySentry nicht verwenden"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fehler beim Fortfahren"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fehler beim Unterbrechen"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Fehler beim Synchronisieren der Zeit"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Glukosewerte abrufen…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Verlauf abrufen…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Pumpenmodell abrufen…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware Version"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulinabgabe\nunterbrochen"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Die Insulinabgabe kann von der Pumpe bestimmt werden, indem entweder die Ereignishistorie interpretiert wird oder das Reservoirvolumen über die Zeit verglichen wird. Das Lesen der Ereignishistorie ermöglicht eine genauere Statusgrafik und das Hochladen aktueller Behandlungsdaten in Nightscout, auf Kosten einer schnelleren Pumpenbatterieentleerung und der Möglichkeit einer höheren Funkfehlerrate im Vergleich zum Lesen des Reservoirvolumens. Wenn das ausgewählte Gerät aus irgendeinem Grund nicht verwendet werden kann, versucht das System, auf die andere Option zurückzugreifen."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Verbleibendes Insulin"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insulintyp"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Die Medtronic-Pumpenmodelle 523, 723, 554 und 754 verfügen über eine Funktion namens \"MySentry\", die in regelmäßigen Abständen den Füllstand des Reservoirs und der Pumpenbatterie meldet. Das Abhören dieser Übertragungen ermöglicht es Loop, weniger häufig mit der Pumpe zu kommunizieren, was die Lebensdauer der Pumpenbatterie verlängern kann. Bei Verwendung dieser Funktion bleibt Ihr RileyLink jedoch länger wach und verbraucht mehr von der eigenen Batterie. Die Aktivierung dieser Funktion kann die Lebensdauer der Pumpenbatterie verlängern, während die Deaktivierung der Funktion die Lebensdauer der RileyLink-Batterie verlängern kann. Diese Einstellung wird bei anderen Pumpenmodellen ignoriert."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nein"; + +/* Message display when no response from tuning pump */ +"No response" = "Keine Antwort"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nein, Pumpe so lassen wie sie ist"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Bevorzugte Datenquelle"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Verbleibende Pumpenbatterie"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Typ Pumpenbatterie"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pumpen-ID"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Uhrzeit der Pumpe"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Basalzeitplan lesen…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Pumpenstand lesen…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Abgabe fortsetzen"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Fortsetzen"; + +/* Button title to retry sentry setup */ +"Retry" = "Wiederholen"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Geplante Basalrate"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Wählen Sie die Art des Insulins aus, die Sie in dieser Pumpe verwenden möchten."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Sende Knopfdruck…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starten der temporären Basalrate"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Erfolgreich"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Abgabe unterbrechen"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Unterbrochen: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Unterbrechen"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Mit aktueller Uhrzeit synchronisieren."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Die Uhrzeit Ihrer Pumpe unterscheidet sich von Ihrer aktuellen Uhrzeit. Möchten Sie die Uhrzeit Ihrer Pumpe auf Ihre aktuelle Uhrzeit aktualisieren?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Änderung der Uhrzeit erkannt"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Versuche"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Frequenz abstimmen…"; + +/* Units for showing temp basal rate */ +"U/hr" = "IE/h"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "unbekannt"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Unbekannt"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "MySentry verwenden"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Ja"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, mit aktueller Zeit synchronisieren"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..b9317e9b36 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/de.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink Einrichten"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Gerät finden"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Andere Geräte"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Ändern Sie nicht die Zeit in Ihrem Pumpenmenü."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Dienstprogramme"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Geräte verbinden"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Uhrzeit der Pumpe"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Die Pumpen-ID ist der 6-stellige numerische Teil der Seriennummer (gekennzeichnet als SN oder S / N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pumpen-ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Ihre Pumpe ist betriebsbereit."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Geben Sie die 6-stellige Pumpen-ID ein"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Wenn Sie für längere Zeit in eine andere Zeitzone verreisen, kann die Zeitzone der Pumpe jederzeit über das Einstellungsmenü von Loop geändert werden."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop synchronisiert die Uhrzeit Ihrer Pumpe mit der Uhrzeit Ihres Smartphones in Ihrer aktuellen Zeitzone."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Die Region und die Farbe der Pumpe sind mit den letzten 3 Buchstaben in der Modellnummer bezeichnet (REF-Nummer in der Kennzeichnung der Pumpe)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region und Farbe"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Einrichtung abgeschlossen"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Datenübertragung der Pumpe"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "An"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Einstellungen der Pumpe"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Geben Sie die Region der Pumpe ein"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Einstellungen der Pumpe"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop wird die Statusberichte Ihrer Pumpe überwachen. Führen Sie die nachfolgenden Schritte in Ihrer Pumpe aus, um diese Statusberichte einzuschalten:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Hauptmenü"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/en.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..710cecca97 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/en.lproj/Localizable.strings @@ -0,0 +1 @@ +/* Empty */ diff --git a/Dependencies/rileylink_ios/MinimedKitUI/en.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/en.lproj/MinimedPumpManager.strings similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/en.lproj/MinimedPumpManager.strings rename to Dependencies/MinimedKit/MinimedKitUI/Resources/en.lproj/MinimedPumpManager.strings diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..50e16e4d77 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/Localizable.strings @@ -0,0 +1,215 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ entradas de configuración basal\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Unidades de insulina restantes\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "quedan %1$@ unidades a las %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustando la hora de la bomba..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Las baterías alcalinas y de litio se degradan en ritmos distintos. La alcalinas tienden a tener una baja de voltaje linear en el tiempo mientras que las de litio tienden a mantener un voltaje hasta que pasan la mitad de su tiempo de vida. Bajo condiciones normales en una micro-infusora no compatible con MySentry ( x22/x15) siendo utilizado con Loop, las baterías alcalinas durarán aproximadamente de 4 a 5 días. Las baterías de litio durarán de una a dos semanas. Esta selección utilizará diferentes rangos de decadencia para el voltaje de cada una de las bataerías y alertará al usuario cuando la batería tenga aproximadamente de 8 a 10 horas restantes de vida."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "¿Está seguro de que desea eliminar esta bomba?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batería: %1$@ voltios\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Mejor frecuencia"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolo en progreso: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Cancelar"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Cancelación de basal temporal"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Cambiando"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Cambiando hora..."; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Elija el tipo de batería que está utilizando en su bomba para una mejor alerta sobre las condiciones de batería baja."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configuración"; + +/* Button title to connect to pump during setup */ +"Connect" = "Conectar"; + +/* Text for continue button */ +"Continue" = "Continuar"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Eliminar Microinfusora"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivos"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "No utilice MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Reanudando"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspendiendo"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Error de sincronización de tiempo"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Obtener glucosa…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Obtener historial…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Obtener modelo de microinfusora…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Versión del programa"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulina Suspendida"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "La entrega de insulina puede ser determinada por la microinfusora interpretando los eventos históricos o comparando el volúmen del reservorio sobre el tiempo. Leer los eventos históricos permite una gráfica de status mas exacta y permite subir tratamientos actualizados a Nightscout, con el costo de una menor duración de la batería y la posiblidad de mayores errores de radio comparado con leer solamente el volúmen del reservorio. Si la fuente seleccionada no puede ser utilizada por cualquier motivo, el sistema intentará utilizar la otra opción."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina restante"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Tipo de Insulina"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Los modelos de bomba Medtronic 523, 723, 554 y 754 tienen una función llamada 'MySentry' que transmite periódicamente los niveles de la batería y del del depósito de la bomba. Escuchar estas transmisiones permite que Loop se comunique con la bomba con menos frecuencia, lo que puede aumentar la duración de la batería de la bomba. Sin embargo, cuando se usa esta función, el RileyLink permanece despierto la mayor parte del tiempo y usa más de su propia batería. Habilitar esto puede prolongar la duración de la batería de la bomba, mientras que deshabilitarlo puede prolongar la duración de la batería de RileyLink. Este ajuste se ignora para otros modelos de bomba."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "No"; + +/* Message display when no response from tuning pump */ +"No response" = "No respuesta"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantenga la bomba como está"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Fuente de Datos Preferida"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Tipo de batería de microinfusora"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID de Bomba"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Hora de la bomba"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Obteniendo perfil basal…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Obteniendo estada de microinfusadora…"; + +/* The title of the cell showing the pump region */ +"Region" = "Región"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Resumir la infusión"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Resumiendo"; + +/* Button title to retry sentry setup */ +"Retry" = "Reintentar"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Insulina basal programada"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Seleccione el tipo de insulina que utilizará en esta bomba."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Enviando presion de botón…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Inicio de basal temporal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Logrado"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspender la infusión"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Suspendido: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspendiendo"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizar con la hora actual"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "La hora de la bomba es diferente de la hora actual. Desea actualizar la hora de su bomba a la hora actual?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Cambio de hora detectado"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Pruebas"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Sintonizando frecuencia de radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hra"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Desconocido"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Usar MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Sí"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sí, sincronizar con la hora actual"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..14e22ed048 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/es.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Configuración de RileyLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Encontrar Dispositivo"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Otros Dispositivos"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "No cambies la hora utilizando el menú de tu microinfusora."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilidades"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Conectar Dispositivos"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Reloj de Microinfusora"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "El número de ID de la microinfusora es la porción de 6 dígitos del número serial (indicados como SN o S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID de Bomba"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Tu microinfusora está lista para usarse."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Ingrese ID de 6 dígitios de la microinfusora"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "En caso de viajar a una zona horaria distinta por un periodo extendido de tiempo, podrás cambiar la zona horaria de la microinfusora en cualquier momento a través de la pantalla de Configuración de Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop mantendrá el reloj de tu microinfusora sincronizado con tu teléfono en la zona horaria en la que te encuentres ahora."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "La región de la microinfusora y el color están indicados en las tres últimas letras del número de modelo (indicados como REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Región y Color"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Instalación completada"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pump Broadcasts"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Encendido"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Configuración de Microinfusora"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Ingresa la región de la Microinfusora"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Configuración de Microinfusora"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop escuchará mensajes de estado enviados por tu microinfusora. Sigue los pasos enlistados a continuación en tu microinfusora para habilitar estos mensajes:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Menú Principal"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..29048e9922 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,156 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basaaliohjelman kirjausta\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ insuliiniyksikköä jäljellä\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ yksikköä jäljellä klo %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkali- ja litiumparistot tyhjenevät eri nopeudella. Alkaliparistojen varaus vähenee yleensä lineaarisesti ajan kuluessa, kun taas litiumparistot ylläpitävät yleensä varaustaan korkeana kunnes käyttöaika on noin puolessa välissä. Normaalilla käytöllä Minimed (x22/x15) insuliinipumppu toimii Loop-käytössä alkaliparistolla noin 4–5 päivää. Litiumparistot kestävät 1–2 viikkoa. Tämä valinta näyttää pariston varauksen vähenemisnopeuden sen perusteella kumpi paristotyyppi on valittu ja varoittaa käyttäjää, kun pariston käyttöaika on loppumassa noin 8–10 tunnin kuluessa"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Paristo: %1$@ volttia\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Paras taajuus"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Annostellaan bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Kumoa"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Kumotaan tilapäinen basaali"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Muutetaan aikaa…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Määritykset"; + +/* Button title to connect to pump during setup */ +"Connect" = "Yhdistä"; + +/* Text for continue button */ +"Continue" = "Jatka"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Poista pumppu"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Laitteet"; + +/* The alert title for a resume error */ +"Error Resuming" = "Virhe jatkamisessa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Virhe pysäytyksessä"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Haetaan glukoosiarvo…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Haetaan viimeaikaisia tapahtumia…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Haetaan pumpun mallia…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Laiteohjelmiston versio"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Pumpun annostelemat insuliinimäärät on mahdollista määrittää joko tulkitsemalla tapahtumahistoriaa tai arvioimalla pumppusäiliön insuliinimäärää ajan kuluessa. Tapahtumahistorian lukeminen antaa tarkemman kuvan tilanteesta ja mahdollistaa ajantasaisen tiedonsiirron Nightscoutiin, mutta toisaalta tämä kuluttaa pumpun paristoa nopeammin ja lisää radiovirheiden todennäköisyyttä siihen verrattuna, että luettaisiin ainoastaan pumppusäiliössä olevan insuliinin määrää. Jos valittua lähdettä ei voida mistä tahansa syystä käyttää, järjestelmä pyrkii käyttämään toista vaihtoehtoa."; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insuliinityyppi"; + +/* Message display when no response from tuning pump */ +"No response" = "Ei vastausta"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Mene pumppusi Etsi laite -näytölle ja valitse \"Etsi laite\".\n\n Päävalikko >\nTyökalut >\nYhdistä laitteet >\nMuut laitteet >\nPäällä >\nEtsi laite"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Ensisijainen tietolähde"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Pumpun paristotyyppi"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pumpun tunniste"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Luetaan basaaliohjelmaa…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Luetaan pumpun tilaa…"; + +/* The title of the cell showing the pump region */ +"Region" = "Alue"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Jatka annostelua"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Jatketaan"; + +/* Button title to retry sentry setup */ +"Retry" = "Yritä uudelleen"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Ohjelmoitu basaali"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Valitse insuliinin tyyppi, jota käytät tässä pumpussa."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Lähetetään napin painallusta…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Aloitetaan tilapäinen basaali"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Onnistui"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pysäytä annostelu"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Annostelu pysäytetty: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pysäytetään"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Yritykset"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Säädetään radiota…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Tuntematon"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..8c76bdacf0 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/fi.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink-asennus"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Etsi laite"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Muut laitteet"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Älä muuta kellonaikaa käyttämällä pumpun omaa valikkoa."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Apuohjelmat"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Yhdistä laitteet"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pumpun kello"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Pumpun tunniste on 6-numeroinen osa sarjanumeroa (alkaa SN tai S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pumpun tunniste"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Pumppu on käyttövalmis."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Syötä 6-numeroinen pumpun tunniste"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Jos matkustat toiselle aikavyöhykkeelle pidemmäksi aikaa, voit muuttaa pumpun aikavyöhykkeen milloin tahansa Loopin Asetukset-näkymässä."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop synkronoi pumpun kellon puhelimesi kanssa samalle aikavyöhykkeelle sijaintisi perusteella."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Pumpun alue ja väri on merkitty kolmella viimeisellä kirjaimella mallinumeron lopussa (nimetty REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Alue ja väri"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Asennus valmis"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pumpun lähetykset"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Päällä"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pumpun asennus"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Syötä pumpun alue"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pumpun asennus"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop kuuntelee pumpun lähettämiä tilaviestejä. Seuraa alla mainittuja ohjeita ottaaksesi nämä viestit käyttöön pumpussasi:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Päävalikko"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..cd08c364f5 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,215 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ entrées du programme basal\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ unités d’insuline restantes\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unités restantes à %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustement de l'horloge de la pompe..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Les piles Alkaline et Lithium se vident à des vitesses différentes. Les Alkalines tendent à avoir une tension qui décroit de façon linéaire alors que les piles Lithium maintiennent leur tension jusqu’à la moitiée de leur durée de vie. Lors d’un usage normale de Loop avec pompe compatible Non-MySentry Minimed (x22/x15), les piles Alkalines durent environ 4-5 jours. Les piles Lithium durent 1-2 semaines. Cette option utilisera différents modèles en fonction du type de pile et alertera l’utilisateur quand la pile sera à 8-10 heures de sa fin de vie. "; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Voulez-vous vraiment supprimer cette pompe?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Pile: %1$@ volts\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Meilleure Fréquence"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolus en cours: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Annuler"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annulation du débit basal temporaire"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Changement en cours..."; + +/* Progress message for changing pump time. */ +"Changing time…" = "Changement de l’heure..."; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Choisissez le type de batterie que vous utilisez dans votre pompe pour une meilleure alerte en cas de batterie faible."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configuration"; + +/* Button title to connect to pump during setup */ +"Connect" = "Relier"; + +/* Text for continue button */ +"Continue" = "Continuer"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Supprimer la pompe"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositifs"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Ne pas utiliser MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erreur lors de la reprise"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erreur lors de la suspension"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Erreur de synchronisation de l'heure"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Obtention des glycémies …"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Obtention de l’historique …"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Obtention du modèle de pompe…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Version du micrologiciel"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nSuspendue"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Administration de l'insuline"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Les données d’administration de l’insuline sont obtenues de la pompe en regardant l’historique des événements ou en comparant le niveau du réservoir avant/après. Récupérer l’historique des événements permet d'obtenir un graphique des donnés plus fiable ainsi qu’un téléchargement plus à jour sur Nightscout, au prix d’une décharge plus rapide de la pile et d'un taux d'erreur radio plus élevé comparé à la lecture seule du niveau du réservoir. Si une de ces options ne marche pas, le système essayera de revenir à l’autre option par défaut."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insuline restante"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Type d'insuline"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Les modèles de pompe Medtronic 523, 723, 554 et 754 sont dotés d'une fonction appelée \"MySentry\" qui émet périodiquement les niveaux de batterie du réservoir et de la pompe. Capter ces émissions permet à Loop de communiquer moins fréquemment avec la pompe, ce qui peut augmenter la durée de vie de la batterie de la pompe. Cependant, lorsque cette fonction est utilisée, le RileyLink reste actif plus longtemps et utilise davantage sa propre batterie. L'activation de cette fonction peut prolonger la durée de vie de la batterie de la pompe, tandis que sa désactivation peut prolonger la durée de vie de la batterie du RileyLink. Ce paramètre est ignoré pour les autres modèles de pompe."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Non"; + +/* Message display when no response from tuning pump */ +"No response" = "Pas de réponse"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Non, garder la pompe telle quelle"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Source de données préférée"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Type de pile dans la pompe"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID de la pompe"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Heure de la pompe"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Lecture du programme basal…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Lecture de l’état de la pompe…"; + +/* The title of the cell showing the pump region */ +"Region" = "Région"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Reprendre l'administration"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Reprise en cours"; + +/* Button title to retry sentry setup */ +"Retry" = "Réessayer"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basal programmé"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Sélectionnez le type d'insuline que vous utiliserez dans cette pompe."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Envoi d'une pression sur le bouton…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Démarrage basal temporaire"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Réussi"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspendre l'administration"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Suspendu: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspension en cours"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniser avec l'heure actuelle"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "L'heure de votre pompe est différente de l'heure actuelle. Voulez vous mettre à jour l'heure de votre pompe avec l'heure actuelle ?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Changement d'heure détecté"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Essais"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Regulation de la fréquence radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Inconnu"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Utiliser MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Oui"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Oui, synchroniser avec l'heure actuelle"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..522ad1eb14 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/fr.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Configuration de RileyLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Découvrir dispositif"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Autres dispositifs"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Ne changez pas l’heure en utilisant le menu de votre pompe."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilitaires"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Connecter des dispositifs"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Horloge de la pompe"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "L’ID de la pompe correspond à la partie numérique à 6 chiffres du numéro de série (étiquetée SN ou S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID de la pompe"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Votre pompe est prête à l’emploi."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Entrée l’ID de pompe de 6 chiffres"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Si vous voyagez dans un fuseau horaire différent pendant une période prolongée, vous pouvez modifier le fuseau horaire de la pompe à tout moment dans l’écran Paramètres de Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop gardera l’horloge de votre pompe synchronisée avec votre téléphone dans le fuseau horaire où vous vous trouvez maintenant."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "La région et la couleur de la pompe sont désignées par les 3 dernières lettres du numéro de modèle (étiquetées REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Région et Couleur"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "L’installation est terminée"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Transmissions de la pompe"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Activé"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Configuration de la Pompe"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Entrez la région de la pompe"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Configuration de la Pompe"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop écoutera les messages d’état envoyés par votre pompe. Suivez les étapes ci-dessous sur votre pompe pour activer ces messages:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Menu Principal"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..cb58684df9 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/Localizable.strings @@ -0,0 +1,162 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Best Frequency"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Cancel"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Canceling Temp Basal"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Changing time…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configuration"; + +/* Button title to connect to pump during setup */ +"Connect" = "Connect"; + +/* Text for continue button */ +"Continue" = "Continue"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Delete Pump"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Devices"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Resuming"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspending"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Fetching glucose…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Fetching history…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Fetching pump model…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware Version"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; + +/* Message display when no response from tuning pump */ +"No response" = "No response"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Preferred Data Source"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Pump Battery Type"; + +/* The title text for the pump ID config value */ +"Pump ID" = "מספר זיהוי המשאבה"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Reading basal schedule…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Reading pump status…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Resume Delivery"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Resuming"; + +/* Button title to retry sentry setup */ +"Retry" = "Retry"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Scheduled Basal"; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Sending button press…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starting Temp Basal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "בוצע בהצלחה"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspend Delivery"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Suspended: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspending"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "בצע עדכון לשעה הנוכחית"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "השעה במשאבה שלך שונה מהשעה הנוכחית. האם ברצונך לעדכן את השעה במשאבה לשעה הנוכחית?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "זוהה שינוי באיזור הזמן"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Trials"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Tuning radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "יח׳/שעה"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Unknown"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "כן"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..a3e63442f1 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/he.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink Setup"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Find Device"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Other Devices"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Do not change the time using your pumpʼs menu."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilities"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Connect Devices"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pump Clock"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "מספר זיהוי המשאבה הוא ששת הספרות של מספר הסידורי (רשום כ-SN או S/N)"; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "מספר זיהוי המשאבה"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Your pump is ready for use."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "הזן את מספר זיהוי המשאבה בן 6 הספרות"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region and Color"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Setup Complete"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pump Broadcasts"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "דולק"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pump Setup"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Enter the pump region"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pump Setup"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Main Menu"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/hi.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..cee529e138 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + +/* Text for continue button */ +"Continue" = "जारी"; + +/* The title of the cell showing device name */ +"Name" = "नाम"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..714afcab93 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/Localizable.strings @@ -0,0 +1,215 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ inserimento basale\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Unità insulina residua\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unità rimanenti alle ore %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Regolazione Orario Microinfusore..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Le batterie alcaline e al litio decadono a velocità diverse. Le batterie alcaline tendono ad avere una caduta di tensione lineare nel tempo mentre le batterie al litio tendono a mantenere la tensione fino a metà della loro durata. In condizioni di utilizzo normali con in esecuzione Loop, in un microinfusore d'insulina non compatibile con MySentry (x22/x15), le batterie alcaline durano dai 4 ai 5 giorni circa. Le batterie al litio durano tra 1-2 settimane. Questa selezione utilizzerà diverse velocità di decadimento della tensione della batteria per ciascuno dei tipi di chimica della batteria e avviserà l'utente quando una batteria si trova a circa 8-10 ore dall'esaurimento."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Sei sicuro di voler eliminare questo microinfusore?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batteria: %1$@ volts\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "La migliore Frequenza"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolo in corso: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Annulla"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Annullamento Basale Temp"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Modifica"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Modifica ora in corso"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Seleziona il tipo di batteria che stai utilizzando nel microinfusore per ricevere più facilmente informazioni sulle condizioni della batteria."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configurazione"; + +/* Button title to connect to pump during setup */ +"Connect" = "Collegarsi"; + +/* Text for continue button */ +"Continue" = "Continua"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Cancella Microinfusore"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivi"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Non utilizzare MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Errore durante la Ripresa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Errore durante l’interruzione"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Errore durante la sincronizzazione"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Sincronizza glicemie…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Sincronizza storia…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Sincronizza modello micro…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Versione Firmware"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Erogazione Insulina sospesa"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulina Somministrata"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "L'insulina somministrata può essere determinata dalla pompa sia interpretando la cronologia eventi o confrontando il volume del serbatoio nel tempo. La lettura della cronologia degli eventi consente una statistica più accurata e trasmette dati sempre aggiornati a Nightscout, a discapito di un maggiore consumo di batteria e con la possibilità di incorrere in un maggior tasso di errore di comunicazione rispetto alla sola lettura del volume del serbatoio. Se la sorgente selezionata non può essere utilizzata per qualsiasi ragione, il sistema tenterà di ripiegare sull'altra opzione."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina Rimanente"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Tipo d'insulina"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "I modelli di pompa Medtronic 523, 723, 554 e 754 dispongono di una funzione denominata \"MySentry\" che trasmette periodicamente i livelli della batteria del serbatoio e della pompa. L'ascolto di queste trasmissioni consente a Loop di comunicare meno frequentemente con il microinfusore, il che può aumentare la durata della batteria del microinfusore. Tuttavia, quando si utilizza questa funzione, RileyLink rimane sveglio per la maggior parte del tempo e utilizza più della propria batteria. Abilitare questa opzione può allungare la durata della batteria della pompa, mentre disabilitarla può allungare la durata della batteria di RileyLink. Questa impostazione viene ignorata per altri modelli di pompa."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "No"; + +/* Message display when no response from tuning pump */ +"No response" = "Nessuna risposta"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantienere la pompa così com'è"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Fonte Dati"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Tipo Batteria Microinfusore"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID microinfusore"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Orario Micro"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Lettura programma basale…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Lettura stato microinfusore…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Riprendi erogazione"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Ripresa in corso"; + +/* Button title to retry sentry setup */ +"Retry" = "Riprova"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basale Programmata"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Seleziona il tipo di insulina che utilizzerai in questo microinfusore."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Inviando prova pressione pulsante…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Attivazione velocità basale temporanea in corso"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Effettuato con successo"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Sospendi erogazione"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Sospeso: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Sospensione in corso"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizza con l'ora corrente"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "l'orario del microinfusore e' diverso da quello del tempo attuale. Vuoi fare un controllo e cambiare l'orario del microinfusore con il tempo attuale?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Rilevato Cambio di orario "; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Prove"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Sintonizzazione radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/ora"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Sconosciuto"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Accoppia MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "sì"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sì, sincronizza con l'ora corrente"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..c502f06aef --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/it.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Configurazione"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Trova Dispositivo"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Altri Device"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Non modificare l'ora utilizzando il menu del microinfusore."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilita'"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Connetti Device"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Orologio Microinfusore"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "L'ID del microinfusore e' il numero di 6 cifre del SN o S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID microinfusore"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Il microinfusore e' pronto per l'uso."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Inserire 6-cifre ID micro"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Se stai viaggiando in un paese con un differente fuso orario, puoi cambiare il fuso orario del tuo microinfusore quando vuoi nel menu' impostazioni di Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop sincronizzera' automaticamente l'orario impostato sul tuo microinfusore con quello del paese in cui ti trovi."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "La provenienza del microinfusore ed il colore sono descritti nelle ultime tre lettere del modello del tuo microinfusore (REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Provenienza e colore"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Impostazione completata"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Trasmissione Microinfusore"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Acceso"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Impostazione Microinfusore"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Inserisci la provenienza del microinfusore"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Impostazione Microinfusore"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop sara' in attesa di messaggi di stato inviati dal microinfusore. Segui i successivi passaggi per abilitare questi messaggi:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Menu Principale"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..135ce5dcd6 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,147 @@ +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "基礎パターン入力 %1$@回\n\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "インスリン 残り%1$@U\n\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%2$@の時点で %1$@ U 残っています"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "アルカリ電池とリチウム電池では消耗速度が異なります。アルカリは徐々に電力が落ちるのに対し、リチウムは電池生命の前半は電圧を保持します。MySentryに互換性のないMinimed (x22/x15)でループを使用する場合は、アルカリ電池は4~5日、リチウム電池は1~2週間使用できることが多いです。それぞれの電池の種類の電圧消耗速度を設定して、電池生命が約8~10時間になるとユーザに知らせます。"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "電池: %1$@ ボルト\n\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "最良周波数"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "ボーラス注入中: %1$@\n\n"; + +/* Cancel button title */ +"Cancel" = "キャンセル"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "一時基礎レートをキャンセルします"; + +/* Progress message for changing pump time. */ +"Changing time…" = "時間を変えています"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "コンフィグレーション"; + +/* Button title to connect to pump during setup */ +"Connect" = "接続"; + +/* Text for continue button */ +"Continue" = "次へ"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "ポンプを削除"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "デバイス"; + +/* The alert title for a resume error */ +"Error Resuming" = "再開エラー"; + +/* The alert title for a suspend error */ +"Error Suspending" = "一時中止エラー"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "グルコースを取得しています..."; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "履歴を取得しています..."; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "ポンプモデルを取得しています ..."; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "ファームウェアバージョン"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "インスリン注入は、イベント履歴を解釈する、またはリザーバの残量を計ることにより決定されます。イベント履歴を読み取ることにより、ステータスグラフがより正確になり、Nightscoutに最新のトリートメントデータをアップロードできます。リザーバの残量のみを計るよりも、ポンプの電池寿命が短くなり、無線周波数のエラーが増える可能性があります。選択されているデータソースが何らかの事情により使えない場合は、システムはもう片方のソースを使用します。"; + +/* Message display when no response from tuning pump */ +"No response" = "反応なし"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "ポンプの Find Device 画面で「Find Device」を選択します。\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "推奨データソース"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "ポンプの電池の種類"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ポンプ ID"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "基礎パターンを読んでいます ..."; + +/* Progress message for reading pump status */ +"Reading pump status…" = "ポンプの状態を読んでいます ..."; + +/* The title of the cell showing the pump region */ +"Region" = "リージョン"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "注入を再開"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "再開中"; + +/* Button title to retry sentry setup */ +"Retry" = "やり直す"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "定期基礎"; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "ボタン押しを送信しています ..."; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "一時基礎を開始"; + +/* A message indicating a command succeeded */ +"Succeeded" = "成功"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "注入を一時停止"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "一時停止: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "一時停止中"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "トライ"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "無線を合わせています ..."; + +/* Units for showing temp basal rate */ +"U/hr" = "U/時"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "不明"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..74559859de --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ja.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink 設定"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "デバイスを探す"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "他のデバイス"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "ポンプのメニュー機能を使って日付時刻を変更しないでください。"; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "ユーティリティ"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "デバイスを接続"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "ポンプ時刻"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "ポンプIDはシリアル番号の 6桁の数字の部分です。(SNやS/Nで表示)"; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ポンプ ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "ポンプを使えます"; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "6桁のポンプ ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "時差がある海外へ旅行に行く時は、ループの設定画面からいつでもポンプの日付時刻を変更出来ます。."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "ループはiPhoneと同期して、あなたが今いる場所のタイムゾーンにポンプの日付時刻を同期し続けます。"; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "ポンプのリージョンと色は型番 (REFで表示)の最終の3文字で表されています。"; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "リージョンと色"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "設定完了"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "ポンプのブロードキャスト"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "オン"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "ポンプ設定"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "ポンプリージョンを入力"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "ポンプ設定"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "ループがポンプが発するステータスメッセージを聞き取ります。ポンプがメッセージを発せられるように次のステップにしたがって設定してください。"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "メインメニュー"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..d58f988860 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,221 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basalsprofilinnslag"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "Gjenstående %1$@ Enheter med insulin"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter gjenstår ved %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaliske- og lithiumbatterier mister spenning med forskjellige kurver. Alkaliske har som regel en lineært minskende spenning, mens lithiumbatterier pleier å holde på spenningen gjennom omtrent halvparten av levetiden. Ved normalt bruk i en Non-MySentry kompatibel Minimed (x22/x15) insulinpumpe som kjører Loop, pleier alkaliske batterier å holde i 4 til 5 dager. Lithiumbatterier holder som regel 1-2 uker. Dette valget vil bruke forskjellige kurver for nedgang i batterispenning for hver av de forskjellige batteritypene, og varsle brukeren når batteriet er omtrent 8 til 10 timer fra å være tomt."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Er du sikker på at du vil slette denne pumpen?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Beste frekvens"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Gir bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Avbryt"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Avbryter midlertidig basal"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Endrer"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Endrer tid..."; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Velg typen batteri du bruker i pumpen for bedre å varsle om lavt batteri."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfigurasjon"; + +/* Button title to connect to pump during setup */ +"Connect" = "Koble til"; + +/* Text for continue button */ +"Continue" = "Fortsett"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Slette pumpe"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheter"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Ikke bruk MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Feil ved gjenopptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Kunne ikke stoppe"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Feil ved synkroniseringstid"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Henter blodsukkerverdi…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Henter historikk…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Henter pumpemodell…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware versjon"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulintilførsel utsatt"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulintilførsel kan hentes fra pumpa, enten ved å tolke hendelsehistorikken, eller ved å sammenligne reservoarvolumet over tid. Ved å lese hendelsehistorikken får man mer nøyaktig statuskurve og kan laste opp oppdaterte hendelser til Nightscout. Ulempen er høyere batteriforbruk i pumpa, og muligheten for større antall feil ved radiokommunikasjon - sammenlignet med å bare lese reservoarvolumet. Hvis den valgte kilden av noen grunn ikke kan brukes, vill systemet prøve den andre måten."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Gjenværende insulin"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insulintype"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Medtronic-pumpemodellene 523, 723, 554 og 754 har en funksjon kalt 'MySentry' som med jevne mellomrom kringkaster reservoar- og pumpebatterinivåene. Når du lytter til disse sendingene, kan Loop kommunisere med pumpen sjeldnere, noe som kan øke pumpens batterilevetid. Men når du bruker denne funksjonen, holder RileyLink seg våken mer av tiden og bruker mer av sitt eget batteri. Aktivering av dette kan forlenge pumpens batterilevetid, mens deaktivering kan forlenge RileyLink-batteriets levetid. Denne innstillingen ignoreres for andre pumpemodeller."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nei"; + +/* Message display when no response from tuning pump */ +"No response" = "Ingen svar"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nei, behold pumpen som den er"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Foretrukken datakilde"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Gjenværende pumpebatteri"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Type pumpebatteri"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pumpe ID"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Leser basalplan…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Leser pumpestatus…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Gjenoppta leveranse"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Gjenopptar"; + +/* Button title to retry sentry setup */ +"Retry" = "Prøv på nytt"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Planlagt basal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Velg hvilken type insulin du skal bruke i denne pumpen."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Sender tastetrykk…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Starter temp-basal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Suksess"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pause leveranse"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Pauset: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pauser"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til gjeldende tid"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Klokken på pumpen er forskjellig fra gjeldende tid. Vil du oppdatere tiden på pumpen til gjeldende tid?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Tidsendring oppdaget"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Forsøk"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Stiller radiofrekvens…"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "ukjent"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Ukjent"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Bruk MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Ja"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synkroniser til gjeldende tid"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..3cb300b132 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/nb.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink-oppsett"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Finn enhet"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Andre enheter"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Ikke endre tiden via pumpemenyen."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Tilbehør"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Tilkoble enheter"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pumpeklokke"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Pumpe-ID er den 6-siffrede (tall) delen av serienummeret (merket som SN eller S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pumpe ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Din pumpe er klar for bruk."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Skriv 6-siffret pumpe-ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Hvis du reiser til en annen tidssone for en lenger tid, kan du endre pumpens tidssone når som helst under innstillinger i Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop holder din pumpes klokke synkronisert med din telefon til den tidssone du er i nå."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Pumperegionen og farge er angitt som de 3 siste bokstavene i modellnummeret (merket som REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region og farge"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Klargjøring ferdig"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pumpe sender"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "På"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pumpeinnstillinger"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Angi pumperegionen"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pumpeinnstillinger"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop hører etter statusmeldinger sendt fra din pumpe. Følg trinnene nedenfor på din pumpe for å gjøre disse meldingene tilgjengelige:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Hovedmenu"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..a8883ff833 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,227 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basaalschema-invoeren\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Eenheden insuline resterend\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ eenheden over om %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pomptijd Aanpassen..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline en Lithium batterijen werken na verloop van tijd minder goed. Alkaline heeft de neiging om in de loop van de tijd een lineair spanningsverlies te hebben, terwijl lithium batterijen de neiging hebben om hun spanning te behouden tot halverwege hun levensduur. Bij normaal gebruik in een niet-MySentry-compatibele Minimed (x22/x15) insulinepomp met Loop, gaan Alkaline batterijen ongeveer 4 tot 5 dagen mee. Lithiumbatterijen gaan tussen de 1-2 weken mee. Deze selectie gebruikt verschillende leegloop snelheden voor batterijvoltage voor elk van de typen batterijen en waarschuwt de gebruiker wanneer een batterij ongeveer in 8 tot 10 uur leeg is."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Weet je zeker dat je deze pomp wilt verwijderen?"; + +/* No comment provided by engineer. */ +"Battery Chemistry" = "Batterij Chemie"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batterij: %1$@ volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Beste Frequentie"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolussen: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Annuleer"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Tijdelijk Basaal Annuleren"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Verandering"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Tijd Aanpassen..."; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Kies het type batterij dat in de pomp wordt gebruikt, voor optimalisering van waarschuwing voor laag batterij niveau."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configuratie"; + +/* Button title to connect to pump during setup */ +"Connect" = "Verbinden"; + +/* Text for continue button */ +"Continue" = "Ga Verder"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Verwijder de pomp"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Apparaten"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Gebruik MySentry niet"; + +/* No comment provided by engineer. */ +"Done" = "Gereed"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fout Bij Hervatten"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fout Bij Onderbreken"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Fout Synchroniseren Tijd"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Glucosegegevens aan het ophalen…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Haal geschiedenis op…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Haal pompmodel op…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmwareversie"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nOnderbroken"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulinetoediening"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "De toediening van insuline kan worden vastgesteld met info van de pomp, ofwel door het logboek te bekijken ofwel door het reservoirvolume over een bepaalde tijd te vergelijken. Het lezen van het logboek zorgt voor een meer accurate statusgrafiek en het uploaden van up-to-date behandelingsgegevens naar Nightscout. Dit gaat ten koste van de batterij en er bestaat een grotere kans op fouten vanwege de draadloze verbinding vergeleken met het alleen lezen van het reservoirvolume. Als de geselecteerde bron om welke reden dan ook niet kan worden gebruikt, probeert het systeem terug te vallen op de andere optie."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Resterende Insuline"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insulinetype"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "De Medtronic-pompmodellen 523, 723, 554 en 754 hebben een functie genaamd 'MySentry' die periodiek het niveau van het reservoir en de pompbatterij uitzendt. Door deze signalen op te vangen, hoeft Loop minder vaak met de pomp te communiceren, waardoor de batterij van de pomp langer meegaat. Bij gebruik van deze functie blijft de RileyLink echter langer actief en gebruikt meer van zijn batterij. Als je dit inschakelt, gaat de batterij van de pomp langer mee en als je dit uitschakelt, gaat de batterij van de RileyLink langer mee. Deze instelling wordt genegeerd voor andere pompmodellen."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nee"; + +/* Message display when no response from tuning pump */ +"No response" = "Geen reactie"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nee, laat de pomp ongewijzigd"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Ga op je pomp, naar het scherm Vind Apparaat en selecteer \"Vind Apparaat\".\n\nHoofdmenu >\nHulpprogramma's >\nVerbind Apparaten >\nAndere Apparaten >\nAan >\nVind Apparaat"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Voorkeur Gegevensbron"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Pompbatterij Resterend"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Pompbatterijtype"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pompserienummer"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pomptijd"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Lees basaal schema…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Lees pomp gegevens…"; + +/* The title of the cell showing the pump region */ +"Region" = "Regio"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Hervat Toediening"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Hervat"; + +/* Button title to retry sentry setup */ +"Retry" = "Opnieuw Proberen"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Ingesteld Basaal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Selecteer het type insuline dat je in deze pomp gaat gebruiken."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Signaal Druk Op Knop Versturen"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Tijdelijk Basaal Starten"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Geslaagd"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Onderbreek Toediening"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Onderbroken: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Onderbreken"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniseer met de huidige tijd"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "De tijd op je pomp is anders dan de huidige tijd. Wil je de tijd op je pomp bijwerken naar de huidige tijd?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Tijdsverschil Ontdekt"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Pogingen"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Radio instellen…"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/uur"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "onbekend"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Onbekend"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Gebruik MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Ja"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synchroniseer met Huidige Tijd"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..354563ceeb --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/nl.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink Installatie"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Zoek Apparaat"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Andere apparaten"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Verander de tijd niet via het menu van de pomp."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Hulpprogramma's"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Koppel apparaten"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pomp klok"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Het pompserienummer is het 6-cijferige gedeelte van het serienummer (aangegeven als SN of S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pompserienummer"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "De pomp is klaar voor gebruik."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Voer het 6-cijferige pompserienummer in"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Als je voor een langere periode in een andere tijdzone verblijft, dan kun je altijd de tijdzone van de pomp veranderen in het instellingenscherm van Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop zorgt ervoor dat de klok van je pomp gesynchroniseerd blijft met je telefoon in de tijdzone waarin je je nu bevindt."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "De regio en kleur van de pomp worden aangeduid in de laatste 3 letters van het modelnummer (gelabeld als REF)"; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Regio en kleur"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Configuratie Voltooid"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pomp Signalen"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Aan"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pompconfiguratie"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Voer regio van de pomp in"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pompconfiguratie"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop luistert naar statusberichten die door de pomp worden verzonden. Volg de stappen hieronder op de pomp om deze statusberichten in te schakelen:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Hoofdmenu"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..c7d720a826 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,227 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@J"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ wpisów dawki podstawowej\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ jednostek insuliny pozostało\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednostek pozostaje w %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Synchronizacja czasu pompy..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterie alkaliczne i litowe różnią się szybkością rozładowywania. Baterie alkaliczne mają tendencję do liniowego spadku napięcia w czasie, natomiast baterie litowe mają tendencję do utrzymywania napięcia do momentu osiągnięcia połowy żywotności. W trakcie normalnego korzystania z Loop w niekompatybilnej z MySentry pompie (x22/x15), czas życia baterii alkalicznych wynosi ok. 4-5 dni. Żywotność baterii litowych wynosi ok. 1-2 tygodni. Wybór odpowiedniego typu baterii pozwoli na wybranie lepszego algorytmu zużycia baterii, dzięki czemu Loop będzie mógł wysłać ostrzeżenie, gdy zostanie ok. 8-10 godzin do całkowitego rozładowania."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Czy na pewno chcesz usunąć tę pompę?"; + +/* No comment provided by engineer. */ +"Battery Chemistry" = "Chemia baterii"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Bateria: %1$@ V\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Najlepsza częstotliwość"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Podawanie bolusa: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Anuluj"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Anulowanie tymczasowej dawki podstawowej"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Zmiana"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Zmiana czasu…"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Wybierz typ baterii używanej w pompie, aby lepiej ostrzegać o niskim stanie baterii."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfiguracja"; + +/* Button title to connect to pump during setup */ +"Connect" = "Połącz"; + +/* Text for continue button */ +"Continue" = "Kontynuuj"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Usuń pompę"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Urządzenia"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Nie używaj MySentry"; + +/* No comment provided by engineer. */ +"Done" = "Gotowe"; + +/* The alert title for a resume error */ +"Error Resuming" = "Błąd wznawiania"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Błąd wstrzymywania"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Błąd synchronizacji czasu"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Pobieranie glukozy…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Pobieranie historii…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Pobieranie modelu pompy…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Wersja oprogramowania"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Podawanie insuliny zawieszone"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Podaż insuliny jest ustalana dzięki pobieraniu danych z pompy. Może się to odbywać na dwa sposoby: poprzez interpretację historii zdarzeń lub poprzez porównywanie objętości zbiornika na insulinę w czasie. Interpretacja historii zdarzeń pozwala na dokładniejsze odwzorowanie wykresu statusu i wysyłanie aktualnych danych dotyczących leczenia do Nightscouta. Odbywa się to kosztem szybszego zużycia baterii i większym ryzykiem błędu transmisji radiowej względem drugiego sposobu, czyli porównywania objętości zbiornika na insulinę w czasie. Jeśli wybrany sposób z jakiegoś powodu nie może być użyty, system podejmie próbę powrotu do drugiej opcji."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Pozostała ilość insuliny"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Rodzaj insuliny"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Modele pomp firmy Medtronic 523, 723, 554 i 754 są wyposażone w funkcję o nazwie „MySentry”, która okresowo wysyła informacje o stanie baterii i poziomie w zbiorniczku pompy. Odbiór tych informacji pozwala Loop na rzadszą komunikację z pompą, co może wydłużyć żywotność baterii pompy. Jednak podczas korzystania z tej funkcji RileyLink pracuje przez większą część czasu i zużywa więcej własnej baterii. Włączenie tej opcji może wydłużyć żywotność baterii pompy, a jej wyłączenie może wydłużyć żywotność baterii RileyLink. To ustawienie jest ignorowane w przypadku innych modeli pomp."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nie"; + +/* Message display when no response from tuning pump */ +"No response" = "Brak odpowiedzi"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nie, pozostaw pompę bez zmian"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "W pompie przejdź do ekranu Znajdź urządzenie i wybierz opcję „Znajdź urządzenie”.\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Preferowane źródło danych"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Kondycja baterii"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Rodzaj baterii w pompie"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pompy"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Czas pompy"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Sprawdzanie dawki podstawowej…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Sprawdzanie statusu pompy…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Wznów podawanie"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Wznawianie"; + +/* Button title to retry sentry setup */ +"Retry" = "Spróbuj ponownie"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Zaplanowana dawka podstawowa"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Wybierz rodzaj insuliny, której będziesz używać w pompie."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Wysyłanie polecenia wciśnięcia przycisku…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Rozpoczynanie tymczasowej dawki podstawowej"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Zakończone powodzeniem"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Wstrzymaj podawanie"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Zawieszona: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Wstrzymywanie"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchronizuj z bieżącym czasem"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Czas na pompie różni się od aktualnego czasu. Czy chcesz zaktualizować czas na pompie do aktualnego czasu?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Wykryto zmianę czasu"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Wyniki testu"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Dostrajanie radia…"; + +/* Units for showing temp basal rate */ +"U/hr" = "J/godz"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "nieznany"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Nieznany"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Użyj MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Tak"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Tak, zsynchronizuj z bieżącym czasem"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..8b60f48e0e --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/pl.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Konfiguracja RileyLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Znajdź urządzenie"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Inne urządzenia"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Nie zmieniaj godziny w menu swojej pompy."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Narzędzia"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Połącz urządzenia"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Zegar w pompie"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "ID pompy to 6-cyfrowy numer (oznaczony jako SN lub S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID pompy"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Twoja pompa jest gotowa do użycia."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Wprowadź 6-cyfrowy numer pompy"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Jeśli podróżujesz do innej strefy czasowej, możesz ją zmienić w dowolnym momencie w zakładce Ustawienia."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop będzie synchronizował zegar w pompie z aktualną strefą czasową ustawioną w Twoim telefonie."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Region i kolor pompy są oznaczone jako 3 ostatnie litery numeru modelu (który jest określony jako REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region i kolor"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Konfiguracja zakończona"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Komunikaty pompy"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Włącz"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Konfiguracja pompy"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Wprowadź region pompy"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Konfiguracja pompy"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop będzie nasłuchiwał komunikatów wysyłanych przez Twoją pompę. Postępuj zgodnie z poniższymi krokami (na Twojej pompie), aby umożliwić wysyłanie komunikatów:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Menu główne"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..736ed2c4d5 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,147 @@ +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ entradas de basal programadas\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Unidades de insulina restantes\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unidades restantes em %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterias alcalinas e de lítio descarregam de formas diferentes. Baterias alcalinas tendem a perder voltagem linearmente, enquanto baterias de célula de lítio tendem a manter a voltagem até metade de sua vida útil. Em condições normais de uso do Loop em uma bomba Minimed que não utiliza o MySentry (x22/x15), baterias alcalinas devem durar entre 4 e 5 dias. Baterias de lítio duram entre 1 e 2 semanas. Essa seleção vai utilizar diferentes taxas de descarregamento para cada tipo de bateria e alertar o usuário quando a bateria estiver entre 8 e 10 horas de falhar."; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Bateria: %1$@ volts\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Melhor Frequência"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Injetando Bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Cancelar"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Cancelar Basal Temporária"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Alterando a hora..."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configuração"; + +/* Button title to connect to pump during setup */ +"Connect" = "Conectar"; + +/* Text for continue button */ +"Continue" = "Continuar"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Deletar Bomba"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivos"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erro ao Retomar"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erro ao Suspender"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Buscando glicose…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "`Buscando histórico…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Buscando modelo da bomba..."; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Versão do Firmware"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "A quantidade de insulina utilizada pode ser determinada tanto interpretando o histórico de eventos quanto medindo a diferença no volume do reservatório. Ler a partir do histórico de eventos permite um gráfico de estado mais preciso e o envio de dados de tratamento mais atualizados para o Nightscout, mas com um maior gasto de bateria e com uma maior possibilidade de erros de transmissão, quando comparado com a leitura apenas do volume do reservatório. Se a fonte selecionada não puder ser utilizada por algum motivo, o sistema tentará a outra opção."; + +/* Message display when no response from tuning pump */ +"No response" = "Sem Resposta"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Na sua Bomba, vá para a tela de encontrar dispositivos (Find Device) e selecione \"Encontrar Dispositivo\" (Find Device).\n\nMenu Principal >\nUtilitários (Utilities) >\nConectar Dispositivos (Connect Devices)\nOutros Dispositivos (Other Devices) >\nLigar (On) >\nEncontrar Dispositivo (Find Device)"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Fonte de Dados Preferido"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Tipo de Bateria da Bomba"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID da Bomba"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Lendo programação de basal…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Lendo estado da bomba…"; + +/* The title of the cell showing the pump region */ +"Region" = "Região"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Retomar Entrega"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Retomando"; + +/* Button title to retry sentry setup */ +"Retry" = "Tentar de Novo"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basal Agendado"; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Enviando aperto do botão"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Iniciando Temp Basal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Completo"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspender Entrega"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Suspenso: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Suspendendo"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Tentativas"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Sintonizando frequência…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Desconhecido"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..2c231bd373 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/pt-BR.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Configuração RileyLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Localizar Dispositivo"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Outro Dispositivo"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Não altere a hora utilizando o menu da sua bomba."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilidades"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Conectar Dispositivos"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Hora da Bomba"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "O ID da bomba é a parte numérica de 6 dígitos do número de série (etiquetado como SN ou S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID da Bomba"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Sua bomba está pronta para uso."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Digite o ID da bomba de 6 dígitos"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Se você viajar para um fuso horário diferente por um longo período de tempo, poderá alterar o fuso horário da bomba a qualquer momento na tela Configurações do Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop manterá o relógio da sua bomba sincronizado com o seu telefone no fuso horário em que você está agora."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "A região e a cor da bomba são indicadas como as três últimas letras do número do modelo (etiquetado como REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Região e Cor"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Instalação Concluída"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Transmissões da Bomba"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Ligado"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Configuração da Bomba"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Entre com a região da bomba"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Configuração da Bomba"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop receberá as mensagens de status enviadas por sua bomba. Siga as etapas abaixo na sua bomba para ativar estas mensagens:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Título Principal"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..8158e50294 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,227 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ intervale de insulină bazală\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Unități de insulină rămase\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unități rămase la %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Reglarea timpului pompei..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterii alcaline și cele cu litiu se descarcă diferit. La cele alcaline, tensiunea scade proporțional cu descărcare, pe când cele cu litiu mențin tensiunea normală pană aproape de descărcare completă. În condiții normale pe pompele Minimed care nu sunt compatibile cu MySentry (x22/x15), rulând Loop, bateriile alcaline durează 4-5 zile. Bateriile cu litiu durează aproximativ 1-2 săptămâni. Prin această opțiune se alege modul de calcul al descărcării bateriilor în funcție de tipul lor, astfel încât utilizatorul să fie anunțat cu 8-10 ore înainte de descărcare completă."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Sunteți sigur că doriți să ștergeți această pompă?"; + +/* No comment provided by engineer. */ +"Battery Chemistry" = "Chimia bateriei"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Baterie: %1$@ volți\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Frecvența optimă"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Se livrează: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Renunță"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Oprește bazala temporară"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Se modifică"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Se modifică ora…"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Alegeți tipul de baterie pe care îl utilizați în pompă pentru o mai bună avertizare cu privire la condițiile scăzute ale bateriei."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Configurare"; + +/* Button title to connect to pump during setup */ +"Connect" = "Conectare"; + +/* Text for continue button */ +"Continue" = "Continuă"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Elimină pompa"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispozitive"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Nu utilizați MySentry"; + +/* No comment provided by engineer. */ +"Done" = "Realizat"; + +/* The alert title for a resume error */ +"Error Resuming" = "Eroare în timpul reluării"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Eroare în timpul suspendării"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Eroare la sincronizarea timpului"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Obținerea glicemiei…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Obținerea istoricului…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Obținerea modelului pompei…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Versiunea Firmware"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Administrarea insulinei suspendată"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Livrarea insulinei poate fi determinată din interpretarea istoricului citit din pompă sau analizând nivelul rezervorului în timp. Citirea istoricului de evenimente permite o construcție mai exacta a graficului și uploadarea datelor actualizate în Nightscout cu prețul descărcării mai rapide a bateriei pompei si a probabilității mai mari de erori de transmisie radio, comparând cu citire numai a nivelului rezervorului. Dacă dintr-o cauză sau alta sistemul nu va reuși să folosească opțiunea aleasă, se va încerca revenirea la cealaltă posibilitate."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulină rămasă"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Tipul de insulină"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Modelele de pompe Medtronic 523, 723, 554 și 754 au o funcție numită \"MySentry\" care transmite periodic nivelul rezervorului și al bateriei pompei. Ascultarea acestor transmisiuni permite ca Loop să comunice mai rar cu pompa, ceea ce poate crește durata de viață a bateriei pompei. Cu toate acestea, atunci când se utilizează această funcție, RileyLink rămâne treaz mai mult timp și utilizează mai mult din propria baterie. Activarea acestei funcții poate prelungi durata de viață a bateriei pompei, în timp ce dezactivarea acesteia poate prelungi durata de viață a bateriei RileyLink. Această setare este ignorată pentru alte modele de pompe."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nu"; + +/* Message display when no response from tuning pump */ +"No response" = "Niciun răspuns"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nu, păstrați pompa așa cum este"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Pe pompa, mergeți la ecranul \"Find Device\" și selectați \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Sursa de date preferată"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Nivel baterie pompă"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Tipul bateriei pompei"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pompă"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Ora pompei"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Se citește programul bazalelor…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Se citește starea pompei…"; + +/* The title of the cell showing the pump region */ +"Region" = "Regiune"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Reia administrarea"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Se reia"; + +/* Button title to retry sentry setup */ +"Retry" = "Reîncearcă"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Bazală programată"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Selectaţi tipul de insulină pe care o veţi utiliza în această pompă."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Se trimite apăsarea butonului…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Pornire bazală temporară"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Succes"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Suspendă administrarea"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Suspendat: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Se suspendă"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizați cu ora curentă"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Ora de pe pompă este diferită de ora curentă. Puteți revizui ora pompei și să o sincronizați cu ora curentă în meniul setări."; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "S-a detectat schimbarea orei"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Încercări"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Se ajustează frecvența…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/oră"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "necunoscut"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Necunoscut"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Utilizați MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Da"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Da, sincronizați cu ora curentă"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..4a6a34a43f --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ro.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Configurarea RileyLink-ului"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Caută dispozitivul"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Alte dispozitive"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Nu modificați timpul folosind meniul pompei."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Utilitare"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Dispozitive conectate"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Ceas pompă"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "ID-ul de pompă este porțiunea de 6 cifre din numărul serial (afișat ca SN sau S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID pompă"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Pompa este gata de utilizare."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Introduceți ID-ul de pompă din 6 cifre"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "În cazul în care călătoriți într-un alt fus orar pentru o perioadă extinsă, puteți modifica fusul orar al pompei din ecranul de setări Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop va menține sincronizat ceasul pompei cu cel al telefonului, în fusul orar în care vă aflați acum."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Regiunea pompei și culoarea sunt indicate prin ultimele 3 litere ale numărului de model (afișat ca REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Regiune și culoare"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Configurare finalizată"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Transmisii pompă"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Pornit"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Setare pompă"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Introduceți regiunea pompei"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Setare pompă"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop va recepționa mesajele de status transmise de pompă. Urmații pașii de mai jos pentru a activa aceste mesaje:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Meniu principal"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..2b2c381572 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,221 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ед"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ записи базального расписания\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Осталось единиц инсулина\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ед остается в %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Настройка времени помпы..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Щелочные и литиевые батарейки садятся с различной скоростью. У щелочных падение линейное, в то время как литиевые сохраняют напряжение в течение половины срока службы. При нормальном пользовании в помпе Minimed без Mysentry (x22/x15) с применением алгоритма ИПЖ щелочные батарейки служат примерно от 4 до 5 дней. Литиевые служат от 1 до 2 недель. Эта настройка будет использовать разную скорость падения напряжения батареек в зависимости от их химического типа и предупреждать пользователя за 8-10 часов до отказа "; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Вы уверены, что хотите удалить эту помпу?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Батарея: %1$@ вольт\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Лучшая частота"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Болюс: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Отмена"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Отмена врем базала"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Изменение"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Выполняется изменение времени"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Выберите тип батарейки, используемой в помпе, для лучшего оповещения о низком заряде батареи."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Конфигурация"; + +/* Button title to connect to pump during setup */ +"Connect" = "Соединение с помпой"; + +/* Text for continue button */ +"Continue" = "Продолжить"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Удалить помпу"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Устройства"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "Не использовать MySentry"; + +/* The alert title for a resume error */ +"Error Resuming" = "Ошибка возобновления"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Ошибка приостановки"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Ошибка синхронизации времени"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Получаю гликемию…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Получаю логи…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Получаю модель помпы…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware Version"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Подача инсулина остановлена"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Подача инсулина может определяться с помпы путем интерпретации истории событий или сравнением изменения объемов резервуара за прошедшее время. Чтение истории событий позволяет вычертить более точный график состояния и загрузить в Nightscout актуальные данные лечения/назначений (за счет более быстрого истощения батареи помпы и более высокого процента ошибок радиосвязи) по сравнению со считыванием данных только об объеме резервуара."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Остаток инсулина"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Тип инсулина"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Модели помпы Medtronic 523, 723, 554 и 754 имеют функцию MySentry, которая периодически передает данные об уровне заряда батареи в резервуаре и помпе. Прослушивание этих передач позволяет Loop реже связываться с помпой, что может увеличить срок службы батареи помпы. Однако при использовании этой функции RileyLink дольше не спит и использует больше собственной батареи. Включение этого параметра может увеличить срок службы батареи помпы, а его отключение может продлить срок службы батареи RileyLink. Этот параметр игнорируется для других моделей помп."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Нет"; + +/* Message display when no response from tuning pump */ +"No response" = "Нет ответа"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Нет, оставить время в помпе как есть"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "На помпе перейдите к экрану «Найти устройство» и выберите «Найти устройство». \n\n Главное меню >\n Утилиты >\n Подключить устройства >\n Другие устройства >\n Вкл >\n Найти устройство"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Предпочтительный источник данных"; + +/* Text for medtronic pump battery percent remaining */ +"Pump Battery Remaining" = "Оставшийся заряд батареи помпы"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Тип батарейки в помпе"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Идентификатор ID помпы"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Время в помпе"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Чтение графика базала…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Чтение статуса помпы…"; + +/* The title of the cell showing the pump region */ +"Region" = "Регион"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Возобновить подачу"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Возобновляется"; + +/* Button title to retry sentry setup */ +"Retry" = "Повторить"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Запланированная база"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Выберите тип инсулина, который вы будете использовать в этой помпе."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Отправляется команда нажать кнопку…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Время начала временного базала"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Успешно"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Остановить подачу"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Приостановлено: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Выполняется остановка"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Синхронизация с текущим временем"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Время на вашей помпе отличается от текущего времени. Вы хотите обновить время на вашей помпе на текущее?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Обнаружено изменение времени"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Попытки"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Настраивается радиочастота…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Text to indicate battery percentage is unknown */ +"unknown" = "Неизвестно"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Неизвестно"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "Использование MySentry"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Да"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Да, синхронизировать с текущим временем"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..8794e54122 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/ru.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Настройка RilryLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Найти устройство"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Другие устройства"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Не меняйте настройки времени через меню помпы."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Утилиты"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Соединить устройства"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Часы помпы"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "ID помпы это 6-значная цифровая часть серийного номера (обозначаемого SN or S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Идентификатор ID помпы"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Помпа готова к работе."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Ввести 6-значный ID помпы"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Если вы перемещаетесь в другой часовой пояс на длительное время, вы можете изменить часовой пояс в любое время через экран общих настроек Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop будет синхронизировать часы помпы с часами телефона в том часовом поясе, в котором вы сейчас находитесь."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Регион помпы и ее цвет обозначаются тремя последними буквами номера модели (маркируется как REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Регион и цвет"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Настройка завершена"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Помпа передает"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Включено"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Настройки помпы"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Введите регион помпы"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Настройки помпы"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop будет отслеживать сообщения о состоянии с помпы. Выполните следующие шаги на помпе чтобы активировать такие сообщения"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Главное меню"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..763492a979 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,81 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ j"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednotiek zostávajúcich na %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Cancel button title */ +"Cancel" = "Zrušiť"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Mení sa čas…"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Vyberte typ batérie, ktorú používate v pumpe, aby ste mohli byť lepšie upozornení na stav vybitia batérie."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfigurácia"; + +/* Text for continue button */ +"Continue" = "Pokračovať"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Zariadenia"; + +/* The alert title for a resume error */ +"Error Resuming" = "Chyba pri obnovení"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Chyba pri pozastavení"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Podávanie inzulínu"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Podávanie inzulínu možno určiť z pumpy buď interpretáciou histórie udalostí alebo porovnaním objemu zásobníka v priebehu času. Čítanie histórie udalostí umožňuje presnejší stavový graf a nahrávanie aktuálnych údajov o liečbe do Nightscoutu za cenu rýchlejšieho vybíjania batérie pumpy a možnosti vyššej chybovosti rádia v porovnaní so samotným čítaním objemu zásobníka. Ak zvolený zdroj nemožno z akéhokoľvek dôvodu použiť, systém sa pokúsi vrátiť späť k inej možnosti."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Zostávajúci inzulín"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Typ inzulínu"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Modely pumpy Medtronic 523, 723, 554 a 754 majú funkciu s názvom „MySentry“, ktorá pravidelne vysiela úroveň nabitia batérie zásobníka a pumpy. Počúvanie týchto vysielaní umožňuje Loopu komunikovať s pumpou menej často, čo môže predĺžiť výdrž batérie pumpy. Pri používaní tejto funkcie však RileyLink zostáva viac času v bdelom stave a využíva viac vlastnej batérie. Povolenie môže predĺžiť životnosť batérie pumpy, zatiaľ čo jej vypnutie môže predĺžiť životnosť batérie RileyLink. Toto nastavenie sa pri iných modeloch čerpadiel ignoruje."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Nie"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Na pumpe prejdite na obrazovku Nájsť zariadenie a vyberte možnosť „Nájsť zariadenie“. \n\n Hlavné menu >\n Pomôcky >\n Pripojiť zariadenia >\n Iné zariadenia >\n Zapnuté >\n Nájsť zariadenie"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pumpy"; + +/* Button title to retry sentry setup */ +"Retry" = "Skúsiť znova"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Naplánovaný bazál"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Vyberte typ inzulínu, ktorý budete v tejto pumpe používať."; + +/* A message indicating a command succeeded */ +"Succeeded" = "Úspešné"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Zistila sa zmena času"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Neznáme"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Áno"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..c4eb7212f7 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/sk.lproj/MinimedPumpManager.strings @@ -0,0 +1,39 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Nastavenie RileyLinku"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Nájsť zariadenie"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Nemeňte čas pomocou ponuky pumpy."; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "ID pumpy je 6-ciferná číselná časť sériového čísla (označené ako SN alebo S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "ID pumpy"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Vaša pumpa je pripravená na použitie."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Zadajte 6-miestne ID pumpy"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Ak cestujete do iného časového pásma na dlhší čas, časové pásmo pumpy môžete kedykoľvek zmeniť na obrazovke Nastavenia Loop."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop bude udržiavať hodiny pumpy synchronizované s telefónom v časovom pásme, v ktorom sa práve nachádzate."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Oblasť pumpy a farba sú označené ako posledné 3 písmená modelového čísla (označené ako REF)."; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Nastavenie je dokončené"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Zapnuté"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop bude počúvať stavové správy odoslané vašou pumpou. Ak chcete povoliť tieto správy, postupujte na pumpe podľa nasledujúcich krokov:"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..7e11bde55e --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,156 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ basalscheman\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Enheter insulin återstår\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter återstår kl. %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Besta frekvensen"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Ger bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Avbryt"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Avbryt temporär basal"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Ändra tid…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfiguration"; + +/* Button title to connect to pump during setup */ +"Connect" = "Anslut"; + +/* Text for continue button */ +"Continue" = "Fortsätt"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Radera pump"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheter"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fel vid återupptagande"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fel vid försök till paus"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Hämtar glukos…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Hämtar historik…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Hämtar pumpmodell…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "Insulintyp"; + +/* Message display when no response from tuning pump */ +"No response" = "Inget svar"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Föredragen datakälla"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Typ av pumpbatteri"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pump-ID"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Läser basalscheman…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Läser pumpstatus…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Återuppta insulindosering"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Återupptar"; + +/* Button title to retry sentry setup */ +"Retry" = "Försök igen"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Schemalagd basal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Välj vilken typ av insulin du kommer att använda."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Skicka knapptryckning…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Börjar temporär basal"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Lyckades"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Pausa insulintillförsel"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Pausad: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Pausar"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Försök"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Justera radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/timme"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Okänd"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..9a86238f28 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/sv.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink inställning"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Hitta enhet"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Annan enhet"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Ädra inte tiden i din pumps menyer."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Tillbehör"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Anslut eheter"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pumpklocka"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Ditt pump-ID är den 6-siffriga nemeriska delen av serienumret (markerat med SN eller S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pump-ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Din pump är redo att användas."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Ange 6-siffrigt pump-ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Om du reser till annan tidszon under en längre tid, kan du ändra tidszonen närsomhelst i Loops iställningar."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop kommer att synkronisera pumpens klocka med din telefon i tidszonen du befinner dig nu."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Pumpregion och färg är märkta som de 3 sista siffrorna i modellnumret (markerad som REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Region och färg"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Inställning klar"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pumpsändningar"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "På"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pumpinställning"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Ange pumpregion"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pumpinställning"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop kommer att lyssna på statusmeddelanden skickade av din pump. Följ de här stegen nedan på din pump för att aktivera dessa meddelanden:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Huvudmeny"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..009f64f771 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,215 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ü"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ bazal girişleri programla\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Ünite kalan insülin\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ünite kaldı %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pompa Zamanı Ayarlanıyor..."; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkalin ve Lityum piller farklı oranlarda biterler. Alkali, zamanla doğrusal bir voltaj düşüşüne sahip olma eğilimindeyken, lityum hücreli piller, kullanım ömürlerinin yarısına kadar voltajı koruma eğilimindedir. MySentry uyumlu olmayan Minimed (x22/x15) insülin pompası ile çalışan Döngüde normal kullanım altında, Alkalin piller yaklaşık 4 ila 5 gün dayanırken, Lityum piller ise 1-2 hafta arasında dayanabilir. Bu seçim, pil kimyası türlerinin her biri için farklı pil voltajı oranlarını kullanır ve kullanıcıyı bir pilin bitmesine yaklaşık 8 ila 10 saat kaldığında uyarır."; + +/* Text to confirm delete this pump */ +"Are you sure you want to delete this Pump?" = "Bu Pompayı silmek istediğinizden emin misiniz?"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Pil: %1$@ volt\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "En İyi Frekans"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "İptal"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Geçici Bazalı İptal Et"; + +/* Text shown in basal rate space when basal is changing */ +"Changing" = "Değiştirme"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Saat değiştiriliyor…"; + +/* Instructions on selecting battery chemistry type */ +"Choose the type of battery you are using in your pump for better alerting about low battery conditions." = "Düşük pil koşulları hakkında daha iyi uyarı almak için pompanızda kullandığınız pil türünü seçin."; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Konfigürasyon"; + +/* Button title to connect to pump during setup */ +"Connect" = "Bağla"; + +/* Text for continue button */ +"Continue" = "Devam et"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Pompayı Sil"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Cihazlar"; + +/* Description for option to not use MySentry */ +"Do not use MySentry" = "MySentry'i kullanmayın"; + +/* The alert title for a resume error */ +"Error Resuming" = "Sürdürme Hatası"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Askıya Alma Hatası"; + +/* The alert title for an error while synching time */ +"Error Syncing Time" = "Zaman Senkronizasyon Hatası"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Glikoz alınıyor…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Geçmiş Alınıyor…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Pompa Modeli Alınıyor…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Donanım yazılımı sürümü"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "İnsülin\nAskıya alındı"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "İnsulin İletimi"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "İnsülin iletimi, olay geçmişi yorumlanarak veya zaman içindeki rezervuar hacmi karşılaştırılarak pompadan belirlenebilir. Olay geçmişinin okunması, daha doğru bir durum grafiğine ve Nightscout'a güncel tedavi verilerinin yüklenmesine izin verir, bu da sadece rezervuar hacmini okumaya kıyasla daha hızlı pompa pili tüketimi ve daha yüksek bir radyo hatası olasılığına sebep olur. Seçilen kaynak herhangi bir nedenle kullanılamıyorsa sistem diğer seçeneğe geri dönmeye çalışacaktır."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Kalan İnsülin"; + +/* Text for confidence reminders navigation link */ +"Insulin Type" = "İnsülin Tipi"; + +/* Format string fof navigation bar title for MinimedPumpSettingsView (1: model number) */ +"Medtronic %1$@" = "Medtronic %1$@"; + +/* Instructions on selecting setting for MySentry */ +"Medtronic pump models 523, 723, 554, and 754 have a feature called 'MySentry' that periodically broadcasts the reservoir and pump battery levels. Listening for these broadcasts allows Loop to communicate with the pump less frequently, which can increase pump battery life. However, when using this feature the RileyLink stays awake more of the time and uses more of its own battery. Enabling this may lengthen pump battery life, while disabling it may lengthen RileyLink battery life. This setting is ignored for other pump models." = "Medtronic pompa modelleri 523, 723, 554 ve 754, rezervuar ve pompa pil seviyelerini periyodik olarak yayınlayan 'MySentry' adlı bir özelliğe sahiptir. Bu yayınların dinlenmesi, Loop'un pompayla daha az iletişim kurmasını sağlayarak pompanın pil ömrünü uzatabilir. Ancak, bu özelliği kullanırken, RileyLink daha çok uyanık kalır ve kendi pilinden daha fazla tüketir. Bunun etkinleştirilmesi pompa pil ömrünü uzatabilir, devre dışı bırakılması ise RileyLink pil ömrünü uzatabilir. Bu ayar, diğer pompa modelleri için dikkate alınmaz."; + +/* Value string for MySentry config when MySentry is not being used */ +"No" = "Hayır"; + +/* Message display when no response from tuning pump */ +"No response" = "Cevap yok"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Hayır, Pompayı Olduğu Gibi Tutun"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Pompanızda Cihaz Bul ekranına gidin ve \"Cihaz Bul\" öğesini seçin.\n\nAna Menü >\nAraçlar>\nCihazları Bağlayın >\nDiğer cihazlar >\nAçık >\nCihaz Bul"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Tercih Edilen Veri Kaynağı"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Pompa Pil Tipi"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pompa Kimliği"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pompa Zamanı"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Bazal Programı Okunuyor…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Pompa Durumu Okunuyor…"; + +/* The title of the cell showing the pump region */ +"Region" = "Bölge"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "İletimi Devam Ettir"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Devam ediyor"; + +/* Button title to retry sentry setup */ +"Retry" = "Yeniden dene"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Programlanan Bazal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pump." = "Bu pompada kullanacağınız insülin tipini seçin."; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Gönder butonuna basılıyor…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Geçici Bazal başlatılıyor"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Başarılı"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "İletimi Askıya Al"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Askıya alındı: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Askıya alınıyor"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Geçerli Saate Senkronize Et"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Pompanızdaki saat geçerli saatten farklı. Pompanızdaki saati geçerli saate güncellemek istiyor musunuz?"; + +/* Title for pod sync time action sheet. */ +"Time Change Detected" = "Zaman Değişikliği Algılandı"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Denemeler"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Radyo ayarlanıyor…"; + +/* Units for showing temp basal rate */ +"U/hr" = "Ü/sa"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Bilinmeyen"; + +/* Description for option to use MySentry + navigation title for pump battery type selection + Text for medtronic pump to use MySentry */ +"Use MySentry" = "MySentry'yi kullanın"; + +/* Value string for MySentry config when MySentry is being used */ +"Yes" = "Evet"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Evet, Geçerli Saatle Senkronize Et"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..3fe1c4c6e8 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/tr.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink Kurulumu"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Cihaz Bul"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Diğer cihazlar"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Pompanızın menüsünü kullanarak zamanı değiştirmeyin."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Araçlar"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Cihazları Bağlayın"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Pompa Saati"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Pompa kimliği, seri numarasının (SN veya S/N olarak etiketlenmiş) 6 haneli sayısal kısmıdır."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Pompa Kimliği"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Pompanız kullanıma hazır."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "6 haneli pompa kimliğini girin"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Uzun süreli farklı bir saat dilimine seyahat ederseniz, pompanın saat dilimini istediğiniz zaman Loop'un Ayarlar ekranından değiştirebilirsiniz."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop, pompanızın saatini şu anda bulunduğunuz saat diliminde telefonunuzla senkronize halde tutacaktır."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Pompa bölgesi ve rengi, model numarasının (REF olarak etiketlenmiştir) son 3 harfi olarak belirtilir."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Bölge ve Renk"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Kurulum tamamlandı"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pompa Yayınları"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "Açık"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Pompa Kurulumu"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Pompa bölgesini girin"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Pompa Kurulumu"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop, pompanız tarafından gönderilen durum mesajlarını dinleyecektir. Bu mesajları etkinleştirmek için pompanızda aşağıdaki adımları izleyin:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Ana Menü"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..8bae1bda17 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,147 @@ +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ Lịch biểu liều nền\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "%1$@ Số unit insulin còn lại\n"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units vẫn đang còn lúc %2$@"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Pin kềm và pin lithium phân rã ở các mức độ khác nhau. Pin kềm có xu hướng giảm điện áp tuyến tính theo thời gian trong khi pin lithium có xu hướng duy trì điện áp cho đến khi hết nửa vòng đời. Trong điều kiện sử dụng bình thường trên bơm Minimed (loại X22 hay X15) khi chạy Loop, pin kiềm có thể dùng được trong khoảng 4 đến 5 ngày trong khi pin lithium dùng dc 2 tuần. Việc lựa chọn này được sử dụng theo các mức phân rã điện áp khác nhau cho mỗi loại pin hóa học và sẽ có cảnh báo đối với người dùng khi pin hỏng đạt khoảng từ 8-10 giờ."; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "Pin: %1$@ volts\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "Tần số tối ưu"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "Đang tiêm liều bolus: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "Hủy bỏ"; + +/* Title text for suspend resume button when temp basal canceling */ +"Canceling Temp Basal" = "Đang hủy liều Basal tạm thời"; + +/* Progress message for changing pump time. */ +"Changing time…" = "Đang thay đổi giờ…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "Cấu hình"; + +/* Button title to connect to pump during setup */ +"Connect" = "Kết nối"; + +/* Text for continue button */ +"Continue" = "Tiếp tục"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "Xóa bơm"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Thiết bị"; + +/* The alert title for a resume error */ +"Error Resuming" = "Lỗi khi đang tái thực hiện"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Lỗi khi đang tạm ngưng"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "Đang lấy dữ liệu đường huyết…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "Đang lấy thông tin…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "Đang lấy model bơm…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Chương trình cơ sở"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Việc tiêm insulin có thể được quyết định từ bơm bằng cách kết hợp giải thuật dữ liệu của người sử dụng và so sánh với khối lượngngăn chứa insulin theo thời gian. Việc đọc các dữ liệu cũ sẽ đảm bảo biểu đồ đường huyết luôn được tính chính xác và tải dữ liệu điều trị cập nhật lên Nightscout, nhưng lại tăng việc tiêu hao pin cũng như lỗi giao tiếp tần số radio cao hơn việc chỉ đọc mỗi dữ liệu ngăn chứa insulin. Trong trường hợp nguồn dữ liệu không được lựa chọn vì bất kỳ lý do gì thì phần mềm sẽ quay sang lựa chọn khác."; + +/* Message display when no response from tuning pump */ +"No response" = "Không có phản hồi nào"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "Nguồn dữ liệu được ưa thích"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "Loại pin của bơm"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Số ID của bơm"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "Đang đọc lịch biểu liều nền…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "Đang đọc tình trạng bơm…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Title text for button to resume insulin delivery */ +"Resume Delivery" = "Tiếp tục lại việc tiêm insulin"; + +/* Title text for button when insulin delivery is in the process of being resumed */ +"Resuming" = "Đang tiếp tục lại"; + +/* Button title to retry sentry setup */ +"Retry" = "Thử lại"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "Đang gửi nút bấm…"; + +/* Title text for suspend resume button when temp basal starting */ +"Starting Temp Basal" = "Đang bắt đầu liều Basal tạm thời"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Đã thành công"; + +/* Title text for button to suspend insulin delivery */ +"Suspend Delivery" = "Tạm ngưng liều insulin"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "Đã tạm ngưng: %1$@\n"; + +/* Title text for button when insulin delivery is in the process of being stopped */ +"Suspending" = "Đang tạm ngưng"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "Các thử nghiệm"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "Chuyển tần số radio…"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/giờ"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "Không nhận ra"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..6fa6b0b65a --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/vi.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "Cài đặt RileyLink"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "Tìm kiếm thiết bị"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "Các thiết bị khác"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "Không thay đổi thời gian sử dụng trên menu bơm của bạn."; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "Các tiện ích"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "Kết nối thiết bị"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "Đồng hồ của bơm"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "Số ID của bơm là phần số củ dãy số seri (được ký hiệu là SN hay S/N)."; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "Số ID của bơm"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "Bơm của bạn đã sẵn sàng."; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "Nhập 6 số ID của bơm"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "Trường hợp bạn du lịch đến vùng khác múi giờ trong thời gian dài, bạn có thể thay dổi múi giờ của bơm bất kỳ lúc nào trong phần cấu hình của bơm."; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop sẽ giữ đồng hồ của bơm đồng hóa với điện thoại trong múi giờ mà bạn đang hiện diện."; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "Khu vực và màu sắc của bơm được thể hiện qua 3 chữ cuối của chủng loại bơm (thể hiện là REF)."; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "Vùng và Màu sắc"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "Cấu hình hoàn thành"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "Pump Broadcasts"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "On"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "Cấu hình cho bơm"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "Nhập khu vực của bơm"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "Cấu hình cho bơm"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop sẽ lắng nghe các thông điệp được gửi từ bơm của bạn. Làm theo các bước dưới đây để thực hiện các thông điệp này:"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "Menu chính"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..dd2dfc4a58 --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,108 @@ +/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ +"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; + +/* The format string describing number of basal schedule entries: (1: number of entries) */ +"%1$@ basal schedule entries\n" = "%1$@ 基础率\n"; + +/* The format string describing units of insulin remaining: (1: number of units) */ +"%1$@ Units of insulin remaining\n" = "胰岛素剩余量 %1$@ U \n"; + +/* String format for value with units (1: value, 2: separator, 3: units) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Instructions on selecting battery chemistry type */ +"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "碱性电池和锂电池以不同的速率衰减。随着时间的推移,碱性电池往往具有线性电压降,而锂电池电池则随时间呈线性下降的电压一直保持到其寿命的一半。在非MySentry兼容Minimed(x22 / x15)的胰岛素泵运行Loop时,正常使用情况下,碱性电池可持续大约4至5天,锂电池持续1-2周。此选择将针对每种电池化学类型使用不同的电池电压衰减速率,并在电池电量耗尽前8至10小时前提醒用户。"; + +/* The format string describing pump battery voltage: (1: battery voltage) */ +"Battery: %1$@ volts\n" = "电池:%1$@ V\n"; + +/* The label indicating the best radio frequency */ +"Best Frequency" = "最优频率"; + +/* The format string describing pump bolusing state: (1: bolusing) */ +"Bolusing: %1$@\n" = "大剂量: %1$@\n"; + +/* Cancel button title */ +"Cancel" = "取消"; + +/* Progress message for changing pump time. */ +"Changing time…" = "正在修改时间…"; + +/* The title of the configuration section in MinimedPumpManager settings */ +"Configuration" = "配置"; + +/* Button title to connect to pump during setup */ +"Connect" = "连接"; + +/* Button label for removing Pump + Text to delete pump */ +"Delete Pump" = "删除泵"; + +/* The alert title for a resume error */ +"Error Resuming" = "无法恢复"; + +/* The alert title for a suspend error */ +"Error Suspending" = "无法暂停"; + +/* Progress message for fetching pump glucose. */ +"Fetching glucose…" = "正在获取葡萄糖信息…"; + +/* Progress message for fetching pump history. */ +"Fetching history…" = "正在获取历史数据…"; + +/* Progress message for fetching pump model. */ +"Fetching pump model…" = "正在获取胰岛素泵型号…"; + +/* The title of the cell showing the pump firmware version */ +"Firmware Version" = "Firmware Version"; + +/* Instructions on selecting an insulin data source */ +"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "可以通过解释事件历史记录或比较随时间推移的储存容量来确定胰岛素输注总量。阅读事件历史记录可以获得更精确的胰岛素输注量并将最新的数据上传到Nightscout,但该方式会造成更快的电池消耗以及可能造成Rileylink通信失败概率增大。如果选中的方式无法正常工作,系统将自动尝试运行另一个方案。"; + +/* Message display when no response from tuning pump */ +"No response" = "无响应"; + +/* Pump find device instruction */ +"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; + +/* navigation title for pump battery type selection + Text for medtronic pump preferred data source */ +"Preferred Data Source" = "首选数据源"; + +/* navigation title for pump battery type selection + Text for medtronic pump battery type */ +"Pump Battery Type" = "胰岛素泵电池类型"; + +/* The title text for the pump ID config value */ +"Pump ID" = "胰岛素泵序列号"; + +/* Progress message for reading basal schedule */ +"Reading basal schedule…" = "正在读取基础率配置文件…"; + +/* Progress message for reading pump status */ +"Reading pump status…" = "正在读取胰岛素泵状态…"; + +/* The title of the cell showing the pump region */ +"Region" = "Region"; + +/* Button title to retry sentry setup */ +"Retry" = "重试"; + +/* Progress message for sending button press to pump. */ +"Sending button press…" = "正在发送亮屏指令…"; + +/* A message indicating a command succeeded */ +"Succeeded" = "成功"; + +/* The format string describing pump suspended state: (1: suspended) */ +"Suspended: %1$@\n" = "暂停: %1$@\n"; + +/* The label indicating the results of each frequency trial */ +"Trials" = "尝试"; + +/* Progress message for tuning radio */ +"Tuning radio…" = "正在调频…"; + +/* Text shown in basal rate space when delivery status is unknown */ +"Unknown" = "未知"; + diff --git a/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/MinimedPumpManager.strings b/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/MinimedPumpManager.strings new file mode 100644 index 0000000000..4d2d021e4f --- /dev/null +++ b/Dependencies/MinimedKit/MinimedKitUI/Resources/zh-Hans.lproj/MinimedPumpManager.strings @@ -0,0 +1,69 @@ +/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ +"0MV-2k-Dty.title" = "RileyLink设置"; + +/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ +"1fp-45-qWK.text" = "发现设备"; + +/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ +"A6i-Cb-baR.text" = "其他设备"; + +/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ +"Bdb-j4-WcR.text" = "不要通过胰岛素泵来修改时间"; + +/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ +"c7t-pZ-WqY.text" = "功能"; + +/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ +"erq-yb-anx.text" = "连接设备"; + +/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ +"Fps-h3-V4K.title" = "泵时钟"; + +/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.footerTitle" = "泵的ID是6位数字的序列号(标签为SN或S/N)"; + +/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ +"fVG-pl-jT9.headerTitle" = "泵ID"; + +/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ +"g1m-3k-XI3.text" = "泵设置已完成"; + +/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ +"HeG-VF-L5P.placeholder" = "输入六位数字的泵ID"; + +/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ +"HuY-fE-vM8.text" = "如果你在不同的时区旅行,可以通过Loops直接设置泵的时区。"; + +/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ +"IQ5-53-x9s.text" = "Loop将会对泵和手机所处的时区保持一致"; + +/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.footerTitle" = "泵的区域和颜色包含在设备型号的最后三个字母中(标记为REF)。"; + +/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ +"lGI-LD-xR7.headerTitle" = "区域与颜色"; + +/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ +"Nwf-TJ-KmJ.title" = "设置完成"; + +/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ +"oBL-lh-SHI.title" = "泵广播"; + +/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ +"ojQ-ob-gBx.text" = "开"; + +/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ +"OZk-Db-KCs.title" = "泵设置"; + +/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ +"tGa-FP-JqD.text" = "输入泵区域"; + +/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ +"V47-Nq-7ew.title" = "泵设置"; + +/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ +"yLn-Ya-p1R.text" = "Loop将监听泵的状态信息,并按照如下步骤操作胰岛素泵来开启此功能"; + +/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ +"ZnF-zy-5gR.headerTitle" = "主菜单"; + diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpClockSetupViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpClockSetupViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpClockSetupViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpClockSetupViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpIDSetupViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpIDSetupViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpIDSetupViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpIDSetupViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpManagerSetupViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpManagerSetupViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpManagerSetupViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpManagerSetupViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpSentrySetupViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpSentrySetupViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpSentrySetupViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpSentrySetupViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpSetupCompleteViewController.swift b/Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpSetupCompleteViewController.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Setup/MinimedPumpSetupCompleteViewController.swift rename to Dependencies/MinimedKit/MinimedKitUI/Setup/MinimedPumpSetupCompleteViewController.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/BatteryTypeSelectionView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/BatteryTypeSelectionView.swift similarity index 95% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/BatteryTypeSelectionView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/BatteryTypeSelectionView.swift index d7658462f9..7bb0752e62 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/BatteryTypeSelectionView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/BatteryTypeSelectionView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/30/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/DataSourceSelectionView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/DataSourceSelectionView.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/DataSourceSelectionView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/DataSourceSelectionView.swift index 8387dbf7b3..103c66aa26 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/DataSourceSelectionView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/DataSourceSelectionView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/30/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/InsulinTypeConfirmation.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/InsulinTypeConfirmation.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/InsulinTypeConfirmation.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/InsulinTypeConfirmation.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsView.swift similarity index 92% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsView.swift index bc605d297d..8ed8ce61a8 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/29/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation @@ -78,7 +78,7 @@ struct MinimedPumpSettingsView: View { } NavigationLink(destination: BatteryTypeSelectionView(batteryType: $viewModel.batteryChemistryType)) { HStack { - Text("Pump Battery Type").foregroundColor(Color.primary) + Text(LocalizedString("Pump Battery Type", comment: "Text for medtronic pump battery type")).foregroundColor(Color.primary) Spacer() Text(viewModel.batteryChemistryType.description) .foregroundColor(.secondary) @@ -87,7 +87,7 @@ struct MinimedPumpSettingsView: View { NavigationLink(destination: DataSourceSelectionView(batteryType: $viewModel.preferredDataSource)) { HStack { - Text("Preferred Data Source").foregroundColor(Color.primary) + Text(LocalizedString("Preferred Data Source", comment: "Text for medtronic pump preferred data source")).foregroundColor(Color.primary) Spacer() Text(viewModel.preferredDataSource.description) .foregroundColor(.secondary) @@ -97,7 +97,7 @@ struct MinimedPumpSettingsView: View { if viewModel.pumpManager.state.pumpModel.hasMySentry { NavigationLink(destination: UseMySentrySelectionView(mySentryConfig: $viewModel.mySentryConfig)) { HStack { - Text("Use MySentry").foregroundColor(Color.primary) + Text(LocalizedString("Use MySentry", comment: "Text for medtronic pump to use MySentry")).foregroundColor(Color.primary) Spacer() Text((viewModel.mySentryConfig == .useMySentry ? LocalizedString("Yes", comment: "Value string for MySentry config when MySentry is being used") : @@ -146,6 +146,15 @@ struct MinimedPumpSettingsView: View { Section() { + HStack { + Text(LocalizedString("Pump Battery Remaining", comment: "Text for medtronic pump battery percent remaining")).foregroundColor(Color.primary) + Spacer() + if let chargeRemaining = viewModel.pumpManager.status.pumpBatteryChargeRemaining { + Text(String("\(Int(round(chargeRemaining * 100)))%")) + } else { + Text(String(LocalizedString("unknown", comment: "Text to indicate battery percentage is unknown"))) + } + } HStack { Text(LocalizedString("Pump Time", comment: "The title of the command to change pump time zone")) Spacer() @@ -346,9 +355,9 @@ struct MinimedPumpSettingsView: View { .foregroundColor(.red) }).actionSheet(isPresented: $showingDeletionSheet) { ActionSheet( - title: Text("Are you sure you want to delete this Pump?"), + title: Text(LocalizedString("Are you sure you want to delete this Pump?", comment: "Text to confirm delete this pump")), buttons: [ - .destructive(Text("Delete Pump")) { + .destructive(Text(LocalizedString("Delete Pump", comment: "Text to delete pump"))) { viewModel.deletePump() }, .cancel(), diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift similarity index 99% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift index 86e707e402..523d8bb4fe 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/29/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedReservoirView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedReservoirView.swift similarity index 97% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedReservoirView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/MinimedReservoirView.swift index 6aa55c534d..329edf9f27 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/MinimedReservoirView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/MinimedReservoirView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/30/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/ReservoirHUDView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/ReservoirHUDView.swift similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/ReservoirHUDView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/ReservoirHUDView.swift diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/ReservoirHUDView.xib b/Dependencies/MinimedKit/MinimedKitUI/Views/ReservoirHUDView.xib similarity index 100% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/ReservoirHUDView.xib rename to Dependencies/MinimedKit/MinimedKitUI/Views/ReservoirHUDView.xib diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/TimeView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/TimeView.swift similarity index 93% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/TimeView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/TimeView.swift index 20752c5a34..1ef7d65a86 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/TimeView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/TimeView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/30/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/rileylink_ios/MinimedKitUI/Views/UseMySentrySelectionView.swift b/Dependencies/MinimedKit/MinimedKitUI/Views/UseMySentrySelectionView.swift similarity index 96% rename from Dependencies/rileylink_ios/MinimedKitUI/Views/UseMySentrySelectionView.swift rename to Dependencies/MinimedKit/MinimedKitUI/Views/UseMySentrySelectionView.swift index 59d8d25a41..e4b7d7e6bb 100644 --- a/Dependencies/rileylink_ios/MinimedKitUI/Views/UseMySentrySelectionView.swift +++ b/Dependencies/MinimedKit/MinimedKitUI/Views/UseMySentrySelectionView.swift @@ -3,7 +3,7 @@ // MinimedKitUI // // Created by Pete Schwamb on 11/30/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. +// Copyright © 2022 LoopKit Authors. All rights reserved. // import SwiftUI diff --git a/Dependencies/MinimedKit/README.md b/Dependencies/MinimedKit/README.md new file mode 100644 index 0000000000..f43207e3e8 --- /dev/null +++ b/Dependencies/MinimedKit/README.md @@ -0,0 +1,8 @@ +# MinimedKit +Medtronic PumpManager For Loop + +## Status +Supported, and included in Loop + +## For more information +Please join loop zulipchat at https://loop.zulipchat.com/ diff --git a/Dependencies/OmniBLE/Common/OSLog.swift b/Dependencies/OmniBLE/Common/OSLog.swift index 27269aacbc..2a53a50e01 100644 --- a/Dependencies/OmniBLE/Common/OSLog.swift +++ b/Dependencies/OmniBLE/Common/OSLog.swift @@ -3,139 +3,30 @@ // OmniBLE // // Copyright © 2017 LoopKit Authors. All rights reserved. -// OSLog updated for FreeAPSX logs // import os.log -import Foundation -let storeLoopLog: Bool = false - - -let loggerLock = NSRecursiveLock() -let baseReporter: IssueReporter = SimpleLogReporter() -let category = Logger.Category.OmniBLE - -extension NSLocking { - func perform(_ block: () throws -> T) rethrows -> T { - lock() - defer { unlock() } - return try block() - } -} - -extension NSRecursiveLock { - convenience init(label: String) { - self.init() - name = label - } -} - -extension NSLock { - convenience init(label: String) { - self.init() - name = label - } -} extension OSLog { - convenience init(category: String) { self.init(subsystem: "com.randallknutson.OmniBLE", category: category) } func debug(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .debug, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } + log(message, type: .debug, args) } func info(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .info, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.info( - {msg}(), - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - + log(message, type: .info, args) } func `default`(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .default, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .default, args) } func error(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .error, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - - loggerLock.perform { - category.logger.warning( - {msg}(), - description: {msg}(), - error: nil, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .error, args) } private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { @@ -157,275 +48,3 @@ extension OSLog { } } } - -protocol IssueReporter: AnyObject { - /// Call this method in `applicationDidFinishLaunching()`. - func setup() - - func setUserIdentifier(_: String?) - - func reportNonFatalIssue(withName: String, attributes: [String: String]) - - func reportNonFatalIssue(withError: NSError) - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) -} - -final class Logger { - static let `default` = Logger(category: .default, reporter: baseReporter) - static let OmniBLE = Logger(category: .OmniBLE, reporter: baseReporter) - - enum Category: String { - case `default` - case OmniBLE - - var name: String { - rawValue - } - - var logger: Logger { - switch self { - case .default: return .default - case .OmniBLE: return .OmniBLE - - } - } - - fileprivate var log: OSLog { - let subsystem = Bundle.main.bundleIdentifier! - switch self { - case .default: return OSLog.default - case .OmniBLE: return OSLog(subsystem: subsystem, category: name) - } - } - } - - fileprivate enum Error: Swift.Error { - case error(String) - case errorWithInnerError(String, Swift.Error) - case errorWithDescription(String, String) - case errorWithDescriptionAndInnerError(String, String, Swift.Error) - - private func domain() -> String { - switch self { - case let .error(domain), - let .errorWithDescription(domain, _), - let .errorWithDescriptionAndInnerError(domain, _, _), - let .errorWithInnerError(domain, _): - return domain - } - } - - private func innerError() -> Swift.Error? { - switch self { - case let .errorWithDescriptionAndInnerError(_, _, error), - let .errorWithInnerError(_, error): - return error - default: return nil - } - } - - func asNSError() -> NSError { - var info: [String: Any] = ["Description": String(describing: self)] - - if let error = innerError() { - info["Error"] = String(describing: error) - } - - return NSError(domain: domain(), code: -1, userInfo: info) - } - } - - private let category: Category - private let reporter: IssueReporter - let log: OSLog - - private init(category: Category, reporter: IssueReporter) { - self.category = category - self.reporter = reporter - log = category.log - } - - static func setup() { - loggerLock.perform { - baseReporter.setup() - } - } - - func debug( - _ message: @autoclosure () -> String, - printToConsole: Bool = true, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let message = "DEV: \(message())" - if printToConsole { - os_log("%@ - %@ - %d %{public}@", log: log, type: .debug, file.file, function, line, message) - } - reporter.log(category.name, message, file: file, function: function, line: line) - } - - func info( - _ message: String, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let printedMessage = "INFO: \(message)" - os_log("%@ - %@ - %d %{public}@", log: log, type: .info, file.file, function, line, printedMessage) - reporter.log(category.name, printedMessage, file: file, function: function, line: line) - } - - func warning( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "WARN: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .default, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - - } - - func error( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) -> Never { - errorWithoutFatalError(message, description: description, error: maybeError, file: file, function: function, line: line) - - fatalError( - "\(message) @ \(String(describing: description)) @ \(String(describing: maybeError)) @ \(file) @ \(function) @ \(line)" - ) - } - - - fileprivate func errorWithoutFatalError( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "ERR: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .error, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - } -} - -private extension Optional where Wrapped == Swift.Error { - func loggerError(message: String, withDescription description: String?) -> Logger.Error { - switch (description, self) { - case (nil, nil): - return .error(message) - case let (descr?, nil): - return .errorWithDescription(message, descr) - case let (nil, error?): - return .errorWithInnerError(message, error) - case let (descr?, error?): - return .errorWithDescriptionAndInnerError(message, descr, error) - } - } -} - - -final class SimpleLogReporter: IssueReporter { - private let fileManager = FileManager.default - - private var dateFormatter: DateFormatter { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - return dateFormatter - } - - func setup() {} - - func setUserIdentifier(_: String?) {} - - func reportNonFatalIssue(withName _: String, attributes _: [String: String]) {} - - func reportNonFatalIssue(withError _: NSError) {} - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) { - let now = Date() - let startOfDay = Calendar.current.startOfDay(for: now) - - if !fileManager.fileExists(atPath: SimpleLogReporter.logDir) { - try? fileManager.createDirectory( - atPath: SimpleLogReporter.logDir, - withIntermediateDirectories: false, - attributes: nil - ) - } - - if !fileManager.fileExists(atPath: SimpleLogReporter.logFile) { - createFile(at: startOfDay) - } else { - if let attributes = try? fileManager.attributesOfItem(atPath: SimpleLogReporter.logFile), - let creationDate = attributes[.creationDate] as? Date, creationDate < startOfDay - { - try? fileManager.removeItem(atPath: SimpleLogReporter.logFilePrev) - try? fileManager.moveItem(atPath: SimpleLogReporter.logFile, toPath: SimpleLogReporter.logFilePrev) - createFile(at: startOfDay) - } - } - - let logEntry = "\(dateFormatter.string(from: now)) [\(category)] \(file.file) - \(function) - \(line) - \(message)\n" - let data = logEntry.data(using: .utf8)! - try? data.append(fileURL: URL(fileURLWithPath: SimpleLogReporter.logFile)) - } - - private func createFile(at date: Date) { - fileManager.createFile(atPath: SimpleLogReporter.logFile, contents: nil, attributes: [.creationDate: date]) - } - - static var logFile: String { - getDocumentsDirectory().appendingPathComponent("logs/log.txt").path - } - - static var logDir: String { - getDocumentsDirectory().appendingPathComponent("logs").path - } - - static var logFilePrev: String { - getDocumentsDirectory().appendingPathComponent("logs/log_prev.txt").path - } - - static func getDocumentsDirectory() -> URL { - let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) - let documentsDirectory = paths[0] - return documentsDirectory - } -} - -private extension Data { - func append(fileURL: URL) throws { - if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) { - defer { - fileHandle.closeFile() - } - fileHandle.seekToEndOfFile() - fileHandle.write(self) - } else { - try write(to: fileURL, options: .atomic) - } - } -} - -private extension String { - var file: String { components(separatedBy: "/").last ?? "" } -} diff --git a/Dependencies/OmniBLE/OmniBLE.xcodeproj/project.pbxproj b/Dependencies/OmniBLE/OmniBLE.xcodeproj/project.pbxproj index 6622fd34ac..7a2e7246cc 100644 --- a/Dependencies/OmniBLE/OmniBLE.xcodeproj/project.pbxproj +++ b/Dependencies/OmniBLE/OmniBLE.xcodeproj/project.pbxproj @@ -67,7 +67,7 @@ 10389A3C26FF7841002115E9 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10389A1D26FF7841002115E9 /* Message.swift */; }; 10389A3F26FF7841002115E9 /* CRC16.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10389A2026FF7841002115E9 /* CRC16.swift */; }; 10389A4126FF7841002115E9 /* MessageTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10389A2226FF7841002115E9 /* MessageTransport.swift */; }; - 193E48D529B4AEF3006927CB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 193E48BA29B4AEF3006927CB /* Localizable.strings */; }; + 4B67E2D5289B4EDB002D92AF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4B67E2D3289B4EDB002D92AF /* Localizable.strings */; }; 84752E9326ED0FFE009FD801 /* OmniBLE.h in Headers */ = {isa = PBXBuildFile; fileRef = 84752E8526ED0FFE009FD801 /* OmniBLE.h */; settings = {ATTRIBUTES = (Public, ); }; }; 84752ED626ED13F5009FD801 /* Id.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84752EBF26ED13F5009FD801 /* Id.swift */; }; 84752ED726ED13F5009FD801 /* X25519KeyGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84752EC126ED13F5009FD801 /* X25519KeyGenerator.swift */; }; @@ -265,34 +265,6 @@ 10389A1D26FF7841002115E9 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; 10389A2026FF7841002115E9 /* CRC16.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC16.swift; sourceTree = ""; }; 10389A2226FF7841002115E9 /* MessageTransport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTransport.swift; sourceTree = ""; }; - 193E485A29B4187E006927CB /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; - 193E485B29B41881006927CB /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - 193E48BB29B4AEF3006927CB /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 193E48BC29B4AEF3006927CB /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; - 193E48BD29B4AEF3006927CB /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; - 193E48BE29B4AEF3006927CB /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; - 193E48BF29B4AEF3006927CB /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C029B4AEF3006927CB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C129B4AEF3006927CB /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C229B4AEF3006927CB /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C329B4AEF3006927CB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C429B4AEF3006927CB /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C529B4AEF3006927CB /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C629B4AEF3006927CB /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C729B4AEF3006927CB /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C829B4AEF3006927CB /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; - 193E48C929B4AEF3006927CB /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 193E48CA29B4AEF3006927CB /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 193E48CB29B4AEF3006927CB /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; - 193E48CC29B4AEF3006927CB /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = ""; }; - 193E48CD29B4AEF3006927CB /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - 193E48CE29B4AEF3006927CB /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 193E48CF29B4AEF3006927CB /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; - 193E48D029B4AEF3006927CB /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; - 193E48D129B4AEF3006927CB /* bn */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bn; path = bn.lproj/Localizable.strings; sourceTree = ""; }; - 193E48D229B4AEF3006927CB /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; - 193E48D329B4AEF3006927CB /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; - 193E48D429B4AEF3006927CB /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; 4B23AA6328D909E2009B453B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 4B23AA6428D909E7009B453B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; 4B23AA6528D909E9009B453B /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; @@ -353,11 +325,14 @@ A9D349312764F5D30037F77C /* PayloadJoinerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PayloadJoinerTest.swift; sourceTree = ""; }; C10D6D6B27A2393800F53D58 /* OmniBLETests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmniBLETests.swift; sourceTree = ""; }; C10D6D6D27A2395700F53D58 /* OmniBLEPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmniBLEPlugin.swift; sourceTree = ""; }; + C121D8D829C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C15A583029C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; C187C190278FCEC9006E3557 /* InsulinTypeConfirmation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinTypeConfirmation.swift; sourceTree = ""; }; C187C197279086A8006E3557 /* OmniBLEPlugin.loopplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OmniBLEPlugin.loopplugin; sourceTree = BUILT_PRODUCTS_DIR; }; C187C199279086A8006E3557 /* OmniBLEPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OmniBLEPlugin.h; sourceTree = ""; }; C187C1A2279087A4006E3557 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; C187C1A427908B1C006E3557 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C19E3881298638CE00851444 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; C1C001BE27A2337B00533D35 /* PeripheralManager+OmniBLE.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PeripheralManager+OmniBLE.swift"; sourceTree = ""; }; C1C001C027A2349D00533D35 /* OmniBLE.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmniBLE.swift; sourceTree = ""; }; C1C001C227A2351D00533D35 /* OmniBLEReservoirView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OmniBLEReservoirView.xib; sourceTree = ""; }; @@ -402,6 +377,9 @@ C1F67EDD2797AFF10017487F /* Image.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; C1F67EDF2797B1EF0017487F /* OmniBLEHUDProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmniBLEHUDProvider.swift; sourceTree = ""; }; C1F67EE127985F580017487F /* ReservoirLevel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReservoirLevel.swift; sourceTree = ""; }; + C1FAB5C729C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C1FDCC1029C786F90056E652 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FF3D5229C786A900BDC1EC /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; D800CF1827E682E90090EADB /* ZeroBasalScheduleTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZeroBasalScheduleTest.swift; sourceTree = ""; }; D802CCFB27DD97210072E3A1 /* AcknowledgeAlertsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgeAlertsTests.swift; sourceTree = ""; }; D802CCFD27DD98AF0072E3A1 /* BolusTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusTests.swift; sourceTree = ""; }; @@ -529,18 +507,9 @@ path = MessageBlocks; sourceTree = ""; }; - 193E48B929B4AEF3006927CB /* Localizations */ = { - isa = PBXGroup; - children = ( - 193E48BA29B4AEF3006927CB /* Localizable.strings */, - ); - path = Localizations; - sourceTree = ""; - }; 84752E7826ED0FFE009FD801 = { isa = PBXGroup; children = ( - 193E48B929B4AEF3006927CB /* Localizations */, A91B2DEB276E1E5E001B0E95 /* README.md */, 84752EE926ED1402009FD801 /* Common */, 84752E8426ED0FFE009FD801 /* OmniBLE */, @@ -967,8 +936,10 @@ he, tr, ar, - uk, + cs, + hi, sk, + uk, lt, bn, "pt-PT", @@ -995,7 +966,7 @@ buildActionMask = 2147483647; files = ( C1F67E9527975B830017487F /* HUDAssets.xcassets in Resources */, - 193E48D529B4AEF3006927CB /* Localizable.strings in Resources */, + 4B67E2D5289B4EDB002D92AF /* Localizable.strings in Resources */, 1029AE4F27094E1900B7F5B6 /* OmniBLEUI.xcassets in Resources */, 8475313726ED838B009FD801 /* PodLifeHUDView.xib in Resources */, A91B2DEC276E1E5E001B0E95 /* README.md in Resources */, @@ -1209,39 +1180,6 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 193E48BA29B4AEF3006927CB /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 193E48BB29B4AEF3006927CB /* de */, - 193E48BC29B4AEF3006927CB /* he */, - 193E48BD29B4AEF3006927CB /* ar */, - 193E48BE29B4AEF3006927CB /* zh-Hans */, - 193E48BF29B4AEF3006927CB /* ja */, - 193E48C029B4AEF3006927CB /* en */, - 193E48C129B4AEF3006927CB /* uk */, - 193E48C229B4AEF3006927CB /* nb */, - 193E48C329B4AEF3006927CB /* es */, - 193E48C429B4AEF3006927CB /* da */, - 193E48C529B4AEF3006927CB /* it */, - 193E48C629B4AEF3006927CB /* sk */, - 193E48C729B4AEF3006927CB /* sv */, - 193E48C829B4AEF3006927CB /* tr */, - 193E48C929B4AEF3006927CB /* pl */, - 193E48CA29B4AEF3006927CB /* pt-BR */, - 193E48CB29B4AEF3006927CB /* vi */, - 193E48CC29B4AEF3006927CB /* lt */, - 193E48CD29B4AEF3006927CB /* ru */, - 193E48CE29B4AEF3006927CB /* fr */, - 193E48CF29B4AEF3006927CB /* fi */, - 193E48D029B4AEF3006927CB /* nl */, - 193E48D129B4AEF3006927CB /* bn */, - 193E48D229B4AEF3006927CB /* pt-PT */, - 193E48D329B4AEF3006927CB /* ro */, - 193E48D429B4AEF3006927CB /* ca */, - ); - name = Localizable.strings; - sourceTree = ""; - }; 4B67E2D3289B4EDB002D92AF /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( @@ -1262,8 +1200,12 @@ 4B23AA7128D90A06009B453B /* es */, 4B23AA7228D90A08009B453B /* sv */, 4B23AA7428D90A0D009B453B /* vi */, - 193E485A29B4187E006927CB /* he */, - 193E485B29B41881006927CB /* tr */, + C19E3881298638CE00851444 /* tr */, + C15A583029C7866600D3A5A1 /* ar */, + C121D8D829C7866D00DA0520 /* cs */, + C1FF3D5229C786A900BDC1EC /* he */, + C1FAB5C729C786B000D25073 /* hi */, + C1FDCC1029C786F90056E652 /* sk */, ); name = Localizable.strings; sourceTree = ""; @@ -1325,6 +1267,12 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + FrameworkLocalText, + ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -1384,6 +1332,12 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + FrameworkLocalText, + ); MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; diff --git a/Dependencies/OmniBLE/OmniBLE.xcodeproj/xcshareddata/xcschemes/OmniBLETests.xcscheme b/Dependencies/OmniBLE/OmniBLE.xcodeproj/xcshareddata/xcschemes/OmniBLETests.xcscheme deleted file mode 100644 index 7ea064eb1d..0000000000 --- a/Dependencies/OmniBLE/OmniBLE.xcodeproj/xcshareddata/xcschemes/OmniBLETests.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/AlertSlot.swift b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/AlertSlot.swift index 242bf9eea9..cef58d31b4 100644 --- a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/AlertSlot.swift +++ b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/AlertSlot.swift @@ -165,7 +165,7 @@ public enum PodAlert: CustomStringConvertible, RawRepresentable, Equatable { duration = 0 trigger = .timeUntilAlert(.minutes(0)) beepRepeat = .once - beepType = .noBeep + beepType = .noBeepCancel } return AlertConfiguration(alertType: .slot5, active: active, duration: duration, trigger: trigger, beepRepeat: beepRepeat, beepType: beepType) case .suspendTimeExpired(let suspendTime): @@ -180,7 +180,7 @@ public enum PodAlert: CustomStringConvertible, RawRepresentable, Equatable { } else { trigger = .timeUntilAlert(.minutes(0)) beepRepeat = .once - beepType = .noBeep + beepType = .noBeepCancel } return AlertConfiguration(alertType: .slot6, active: active, duration: 0, trigger: trigger, beepRepeat: beepRepeat, beepType: beepType) } @@ -364,7 +364,7 @@ public struct AlertSet: RawRepresentable, Collection, CustomStringConvertible, E return alarmDescriptions.joined(separator: ", ") } } - + public func compare(to other: AlertSet) -> (added: AlertSet, removed: AlertSet) { let added = Set(other.elements).subtracting(Set(elements)) let removed = Set(elements).subtracting(Set(other.elements)) diff --git a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/BeepType.swift b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/BeepType.swift index e9cd90e06f..0511f21093 100644 --- a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/BeepType.swift +++ b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/BeepType.swift @@ -9,27 +9,19 @@ import Foundation -// BeepType is used for the $19 Configure Alerts and $1F Cancel Commands -// Values 1 thru 8 are exactly the same as in BeepConfigType below -// N.B. for BeepType, noBeep is 0x0, while for BeepConfigType it is 0xF +// +// BeepType is used for the 0x19 Configure Alerts, 0x1E Set Beep Options and 0x1F Cancel Delivery commands. +// Some beep types values behave differently based on the command & circumstances due to Omnipod internals. +// +// Beep types 0x0, 0x9 & 0xA (as well as 0xE when the pod isn't suspended) will have no beeps or errors +// (when used in 0x19 Configure Alerts with an 'a' bit of 0 or 0x1F Cancel) and will return 0x6 Error +// response, code 7 (when used in 0x19 Configure Alerts with an 'a' bit of 1 or in 0x1E Beep Configure). +// +// Beep type 0xF will will have no beeps or errors (when used in 0x19 Configure Alerts +// or 0x1E Beep Configure), but will generate a 0x37 pod fault when used in 0x1F Cancel! +// public enum BeepType: UInt8 { - case noBeep = 0x0 - case beepBeepBeepBeep = 0x1 - case bipBeepBipBeepBipBeepBipBeep = 0x2 - case bipBip = 0x3 - case beep = 0x4 - case beepBeepBeep = 0x5 - case beeeeeep = 0x6 - case bipBipBipbipBipBip = 0x7 - case beeepBeeep = 0x8 - // values greater than 0x8 for $19 and $1F commands can fault pod! -} - -// BeepConfigType is used for the $1E Beep Config Command. -// Values 1 thru 8 are exactly the same as in BeepType above -// N.B. for BeepConfigType, noBeep is 0xF, while for BeepType it is 0x0 -public enum BeepConfigType: UInt8 { - // 0 always returns an error response for Beep Config + case noBeepCancel = 0x0 // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts case beepBeepBeepBeep = 0x1 case bipBeepBipBeepBipBeepBipBeep = 0x2 case bipBip = 0x3 @@ -38,10 +30,13 @@ public enum BeepConfigType: UInt8 { case beeeeeep = 0x6 case bipBipBipbipBipBip = 0x7 case beeepBeeep = 0x8 - // 0x9 and 0xA always return an error response for Beep Config + case unusedBeepType0x9 = 0x9 // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case unusedBeepType0xA = 0xA // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts case beepBeep = 0xB case beeep = 0xC case bipBeeeeep = 0xD - case fiveSecondBeep = 0xE // can only be used if Pod is currently suspended! - case noBeep = 0xF + // If pod is currently suspended, 5 second beep for the 0x19, 0x1E & 0x1F commands + // If pod is not suspended, silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case fiveSecondBeep = 0xE + case noBeepNonCancel = 0xF // silent for 0x1E Beep Options & 0x19 Configure Alerts, 0x37 pod fault for 0x1F Cancel! } diff --git a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/FaultEventCode.swift b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/FaultEventCode.swift index 44e5cea079..7af8c45e7f 100644 --- a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/FaultEventCode.swift +++ b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/FaultEventCode.swift @@ -18,10 +18,12 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case failedFlashErase = 0x01 case failedFlashStore = 0x02 case tableCorruptionBasalSubcommand = 0x03 + case basalPulseTableCorruption = 0x04 case corruptionByte720 = 0x05 case dataCorruptionInTestRTCInterrupt = 0x06 case rtcInterruptHandlerInconsistentState = 0x07 case valueGreaterThan8 = 0x08 + case invalidBeepRepeatPattern = 0x09 case bf0notEqualToBF1 = 0x0A case tableCorruptionTempBasalSubcommand = 0x0B case resetDueToCOP = 0x0D @@ -89,6 +91,7 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case problemFindingBestTrimValue = 0x4C case badSetTPM1MultiCasesValue = 0x4D case unexpectedRFErrorFlagDuringReset = 0x4F + case timerPulseWidthModulatorOverflow = 0x50 case tickcntError = 0x51 case badRfmXtalStart = 0x52 case badRxSensitivity = 0x53 @@ -152,7 +155,7 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case bleEr48DualNack = 0xC0 case bleQnExceedMaxRetry = 0xC1 case bleQnCritVarFail = 0xC2 - case valuesDoNotMatchOrAreGreaterThan0xC3 = 0xC3 + case valuesDoNotMatchOrAreGreaterThan0xC2 = 0xC3 } public var faultType: FaultEventType? { @@ -177,6 +180,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Flash store failed" case .tableCorruptionBasalSubcommand: return "Basal subcommand table corruption" + case .basalPulseTableCorruption: + return "Basal pulse table corruption" case .corruptionByte720: return "Corruption in byte_720" case .dataCorruptionInTestRTCInterrupt: @@ -185,6 +190,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "RTC interrupt handler called with inconstent state" case .valueGreaterThan8: return "Value > 8" + case .invalidBeepRepeatPattern: + return "Invalid beep repeat pattern" case .bf0notEqualToBF1: return "Corruption in byte_BF0" case .tableCorruptionTempBasalSubcommand: @@ -319,6 +326,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Bad set_TPM1_multi_cases value" case .unexpectedRFErrorFlagDuringReset: return "Unexpected TXSCR2 RF Tranmission Error Flag set during reset" + case .timerPulseWidthModulatorOverflow: + return "Timer pulse-width modulator overflow" case .tickcntError: return "Bad tick count state before starting pump" case .badRfmXtalStart: @@ -445,7 +454,7 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "BLE QN exceed max retry" case .bleQnCritVarFail: return "BLE QN critical variable fail" - case .valuesDoNotMatchOrAreGreaterThan0xC3: + case .valuesDoNotMatchOrAreGreaterThan0xC2: return "Unknown fault code" } }() diff --git a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift index b25adc33bf..d41f5e1ac4 100644 --- a/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift +++ b/Dependencies/OmniBLE/OmniBLE/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift @@ -14,7 +14,7 @@ public struct BeepConfigCommand : MessageBlock { // 1e 04 AABBCCDD public let blockType: MessageBlockType = .beepConfig - public let beepConfigType: BeepConfigType + public let beepType: BeepType public let basalCompletionBeep: Bool public let basalIntervalBeep: TimeInterval public let tempBasalCompletionBeep: Bool @@ -22,8 +22,8 @@ public struct BeepConfigCommand : MessageBlock { public let bolusCompletionBeep: Bool public let bolusIntervalBeep: TimeInterval - public init(beepConfigType: BeepConfigType, basalCompletionBeep: Bool = false, basalIntervalBeep: TimeInterval = 0, tempBasalCompletionBeep: Bool = false, tempBasalIntervalBeep: TimeInterval = 0, bolusCompletionBeep: Bool = false, bolusIntervalBeep: TimeInterval = 0) { - self.beepConfigType = beepConfigType + public init(beepType: BeepType, basalCompletionBeep: Bool = false, basalIntervalBeep: TimeInterval = 0, tempBasalCompletionBeep: Bool = false, tempBasalIntervalBeep: TimeInterval = 0, bolusCompletionBeep: Bool = false, bolusIntervalBeep: TimeInterval = 0) { + self.beepType = beepType self.basalCompletionBeep = basalCompletionBeep self.basalIntervalBeep = basalIntervalBeep self.tempBasalCompletionBeep = tempBasalCompletionBeep @@ -36,8 +36,8 @@ public struct BeepConfigCommand : MessageBlock { if encodedData.count < 6 { throw MessageBlockError.notEnoughData } - if let beepConfigType = BeepConfigType.init(rawValue: encodedData[2]) { - self.beepConfigType = beepConfigType + if let beepType = BeepType.init(rawValue: encodedData[2]) { + self.beepType = beepType } else { throw MessageBlockError.parseError } @@ -54,7 +54,7 @@ public struct BeepConfigCommand : MessageBlock { blockType.rawValue, 4, ]) - data.append(beepConfigType.rawValue) + data.append(beepType.rawValue) data.append((basalCompletionBeep ? (1<<6) : 0) + (UInt8(basalIntervalBeep.minutes) & 0x3f)) data.append((tempBasalCompletionBeep ? (1<<6) : 0) + (UInt8(tempBasalIntervalBeep.minutes) & 0x3f)) data.append((bolusCompletionBeep ? (1<<6) : 0) + (UInt8(bolusIntervalBeep.minutes) & 0x3f)) @@ -64,6 +64,6 @@ public struct BeepConfigCommand : MessageBlock { extension BeepConfigCommand: CustomDebugStringConvertible { public var debugDescription: String { - return "BeepConfigCommand(beepConfigType:\(beepConfigType), basalIntervalBeep:\(basalIntervalBeep), tempBasalCompletionBeep:\(tempBasalCompletionBeep), tempBasalIntervalBeep:\(tempBasalIntervalBeep), bolusCompletionBeep:\(bolusCompletionBeep), , bolusIntervalBeep:\(bolusIntervalBeep))" + return "BeepConfigCommand(beepType:\(beepType), basalIntervalBeep:\(basalIntervalBeep), tempBasalCompletionBeep:\(tempBasalCompletionBeep), tempBasalIntervalBeep:\(tempBasalIntervalBeep), bolusCompletionBeep:\(bolusCompletionBeep), bolusIntervalBeep:\(bolusIntervalBeep))" } } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManager/OmniBLEPumpManager.swift b/Dependencies/OmniBLE/OmniBLE/PumpManager/OmniBLEPumpManager.swift index 90feb096c4..af0516f8d7 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManager/OmniBLEPumpManager.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManager/OmniBLEPumpManager.swift @@ -421,14 +421,14 @@ extension OmniBLEPumpManager { // Returns a suitable beep command MessageBlock based the current beep preferences and // whether there is an unfinializedDose for a manual temp basal &/or a manual bolus. - private func beepMessageBlock(beepType: BeepConfigType) -> MessageBlock? { + private func beepMessageBlock(beepType: BeepType) -> MessageBlock? { guard self.beepPreference.shouldBeepForManualCommand else { return nil } // Enable temp basal & basal completion beeps if there is a cooresponding manual unfinalizedDose let beepMessageBlock = BeepConfigCommand( - beepConfigType: beepType, + beepType: beepType, tempBasalCompletionBeep: self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: self.hasUnfinalizedManualBolus ) @@ -1172,7 +1172,7 @@ extension OmniBLEPumpManager { // preserve Pod completion beep state for any unfinalized manual insulin delivery let beep = self.beepPreference.shouldBeepForManualCommand let result = session.beepConfig( - beepConfigType: .bipBeepBipBeepBipBeepBipBeep, + beepType: .bipBeepBipBeepBipBeepBipBeep, tempBasalCompletionBeep: beep && self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: beep && self.hasUnfinalizedManualBolus ) @@ -1241,9 +1241,9 @@ extension OmniBLEPumpManager { case .success(let session): // enable/disable Pod completion beep state for any unfinalized manual insulin delivery let enabled = newPreference.shouldBeepForManualCommand - let beepConfigType: BeepConfigType = enabled ? .bipBip : .noBeep + let beepType: BeepType = enabled ? .bipBip : .noBeepNonCancel let result = session.beepConfig( - beepConfigType: beepConfigType, + beepType: beepType, tempBasalCompletionBeep: enabled && self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: enabled && self.hasUnfinalizedManualBolus ) @@ -1626,7 +1626,7 @@ extension OmniBLEPumpManager: PumpManager { } // when cancelling a bolus use the built-in type 6 beeeeeep to match PDM if confirmation beeps are enabled - let beeptype: BeepType = self.beepPreference.shouldBeepForManualCommand ? .beeeeeep : .noBeep + let beeptype: BeepType = self.beepPreference.shouldBeepForManualCommand ? .beeeeeep : .noBeepCancel let result = session.cancelDelivery(deliveryType: .bolus, beepType: beeptype) switch result { case .certainFailure(let error): @@ -1692,7 +1692,7 @@ extension OmniBLEPumpManager: PumpManager { let status: StatusResponse // if resuming scheduled basal delivery & an acknowledgement beep is needed, use the cancel TB beep - let beepType: BeepType = resumingScheduledBasal && acknowledgementBeep ? .beep : .noBeep + let beepType: BeepType = resumingScheduledBasal && acknowledgementBeep ? .beep : .noBeepCancel let result = session.cancelDelivery(deliveryType: .tempBasal, beepType: beepType) switch result { case .certainFailure(let error): diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManager/PodCommsSession.swift b/Dependencies/OmniBLE/OmniBLE/PumpManager/PodCommsSession.swift index 27b50dd512..2434eb95a3 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManager/PodCommsSession.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManager/PodCommsSession.swift @@ -188,6 +188,12 @@ public class PodCommsSession { private unowned let delegate: PodCommsSessionDelegate private var transport: MessageTransport + // used for testing + var mockCurrentDate: Date? + var currentDate: Date { + return mockCurrentDate ?? Date() + } + init(podState: PodState, transport: MessageTransport, delegate: PodCommsSessionDelegate) { self.podState = podState self.transport = transport @@ -200,7 +206,7 @@ public class PodCommsSession { if podState.fault == nil { podState.fault = fault // save the first fault returned if let activatedAt = podState.activatedAt { - podState.activeTime = Date().timeIntervalSince(activatedAt) + podState.activeTime = currentDate.timeIntervalSince(activatedAt) } else { podState.activeTime = fault.faultEventTimeSinceActivation } @@ -209,7 +215,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: derivedStatusResponse) } - podState.updateFromStatusResponse(derivedStatusResponse) + podState.updateFromStatusResponse(derivedStatusResponse, at: currentDate) } log.error("Pod Fault: %@", String(describing: fault)) } @@ -332,7 +338,7 @@ public class PodCommsSession { } else { // Not the first time through, check to see if prime bolus was successfully started let status: StatusResponse = try send([GetStatusCommand()]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if status.podProgressStatus == .priming || status.podProgressStatus == .primingCompleted { podState.setupProgress = .priming return podState.primeFinishTime?.timeIntervalSinceNow ?? primeDuration @@ -341,7 +347,7 @@ public class PodCommsSession { // Mark Pod.primeUnits (2.6U) bolus delivery with Pod.primeDeliveryRate (1) between pulses for prime - let primeFinishTime = Date() + primeDuration + let primeFinishTime = currentDate + primeDuration podState.primeFinishTime = primeFinishTime podState.setupProgress = .startingPrime @@ -349,7 +355,7 @@ public class PodCommsSession { let scheduleCommand = SetInsulinScheduleCommand(nonce: podState.currentNonce, units: Pod.primeUnits, timeBetweenPulses: timeBetweenPulses) let bolusExtraCommand = BolusExtraCommand(units: Pod.primeUnits, timeBetweenPulses: timeBetweenPulses) let status: StatusResponse = try send([scheduleCommand, bolusExtraCommand]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) podState.setupProgress = .priming return primeFinishTime.timeIntervalSinceNow } @@ -358,7 +364,7 @@ public class PodCommsSession { if podState.setupProgress == .settingInitialBasalSchedule { // We started basal schedule programming, but didn't get confirmation somehow, so check status let status: StatusResponse = try send([GetStatusCommand()]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if status.podProgressStatus == .basalInitialized { podState.setupProgress = .initialBasalScheduleSet return @@ -369,7 +375,7 @@ public class PodCommsSession { // Set basal schedule let _ = try setBasalSchedule(schedule: basalSchedule, scheduleOffset: scheduleOffset) podState.setupProgress = .initialBasalScheduleSet - podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: Date(), scheduledCertainty: .certain, insulinType: podState.insulinType)) + podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: currentDate, scheduledCertainty: .certain, insulinType: podState.insulinType)) } @discardableResult @@ -380,21 +386,21 @@ public class PodCommsSession { for alert in alerts { podState.registerConfiguredAlert(slot: alert.configuration.slot, alert: alert) } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return status } // emits the specified beep type and sets the completion beep flags, doesn't throw - public func beepConfig(beepConfigType: BeepConfigType, tempBasalCompletionBeep: Bool, bolusCompletionBeep: Bool) -> Result { + public func beepConfig(beepType: BeepType, tempBasalCompletionBeep: Bool, bolusCompletionBeep: Bool) -> Result { if let fault = self.podState.fault { log.info("Skip beep config with faulted pod") return .failure(PodCommsError.podFault(fault: fault)) } - let beepConfigCommand = BeepConfigCommand(beepConfigType: beepConfigType, tempBasalCompletionBeep: tempBasalCompletionBeep, bolusCompletionBeep: bolusCompletionBeep) + let beepConfigCommand = BeepConfigCommand(beepType: beepType, tempBasalCompletionBeep: tempBasalCompletionBeep, bolusCompletionBeep: bolusCompletionBeep) do { let statusResponse: StatusResponse = try send([beepConfigCommand]) - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return .success(statusResponse) } catch let error { return .failure(error) @@ -422,15 +428,15 @@ public class PodCommsSession { let status: StatusResponse = try send([GetStatusCommand()]) if status.podProgressStatus == .insertingCannula { podState.setupProgress = .cannulaInserting - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return insertionWait // Not sure when it started, wait full time to be sure } if status.podProgressStatus.readyForDelivery { markSetupProgressCompleted(statusResponse: status) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return TimeInterval(0) // Already done; no need to wait } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) } else { // Configure all the non-optional Pod Alarms let expirationTime = activatedAt + Pod.nominalPodLife @@ -449,7 +455,7 @@ public class PodCommsSession { podState.setupProgress = .startingInsertCannula let bolusExtraCommand = BolusExtraCommand(units: cannulaInsertionUnits, timeBetweenPulses: timeBetweenPulses) let status2: StatusResponse = try send([bolusScheduleCommand, bolusExtraCommand]) - podState.updateFromStatusResponse(status2) + podState.updateFromStatusResponse(status2, at: currentDate) podState.setupProgress = .cannulaInserting return insertionWait @@ -461,7 +467,7 @@ public class PodCommsSession { if response.podProgressStatus.readyForDelivery { markSetupProgressCompleted(statusResponse: response) } - podState.updateFromStatusResponse(response) + podState.updateFromStatusResponse(response, at: currentDate) } } @@ -491,7 +497,7 @@ public class PodCommsSession { if podState.unfinalizedBolus != nil { var ongoingBolus = true if let statusResponse: StatusResponse = try? send([GetStatusCommand()]) { - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) ongoingBolus = podState.unfinalizedBolus != nil } guard !ongoingBolus else { @@ -501,11 +507,11 @@ public class PodCommsSession { let bolusExtraCommand = BolusExtraCommand(units: units, timeBetweenPulses: timeBetweenPulses, extendedUnits: extendedUnits, extendedDuration: extendedDuration, acknowledgementBeep: acknowledgementBeep, completionBeep: completionBeep, programReminderInterval: programReminderInterval) do { - podState.unacknowledgedCommand = PendingCommand.program(.bolus(volume: units, automatic: automatic), transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.program(.bolus(volume: units, automatic: automatic), transport.messageNumber, currentDate) let statusResponse: StatusResponse = try send([bolusScheduleCommand, bolusExtraCommand]) podState.unacknowledgedCommand = nil - podState.unfinalizedBolus = UnfinalizedDose(bolusAmount: units, startTime: Date(), scheduledCertainty: .certain, insulinType: podState.insulinType, automatic: automatic) - podState.updateFromStatusResponse(statusResponse) + podState.unfinalizedBolus = UnfinalizedDose(bolusAmount: units, startTime: currentDate, scheduledCertainty: .certain, insulinType: podState.insulinType, automatic: automatic) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return DeliveryCommandResult.success(statusResponse: statusResponse) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { podState.unacknowledgedCommand = podState.unacknowledgedCommand?.commsFinished @@ -530,14 +536,14 @@ public class PodCommsSession { return DeliveryCommandResult.certainFailure(error: .unfinalizedBolus) } - let startTime = Date() + let startTime = currentDate do { podState.unacknowledgedCommand = PendingCommand.program(.tempBasal(unitsPerHour: rate, duration: duration, isHighTemp: isHighTemp, automatic: automatic), transport.messageNumber, startTime) let status: StatusResponse = try send([tempBasalCommand, tempBasalExtraCommand]) podState.unacknowledgedCommand = nil podState.unfinalizedTempBasal = UnfinalizedDose(tempBasalRate: rate, startTime: startTime, duration: duration, isHighTemp: isHighTemp, automatic: automatic, scheduledCertainty: .certain, insulinType: podState.insulinType) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return DeliveryCommandResult.success(statusResponse: status) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { podState.unacknowledgedCommand = podState.unacknowledgedCommand?.commsFinished @@ -552,7 +558,7 @@ public class PodCommsSession { @discardableResult private func handleCancelDosing(deliveryType: CancelDeliveryCommand.DeliveryType, bolusNotDelivered: Double) -> UnfinalizedDose? { var canceledDose: UnfinalizedDose? = nil - let now = Date() + let now = currentDate if deliveryType.contains(.basal) { podState.unfinalizedSuspend = UnfinalizedDose(suspendStartTime: now, scheduledCertainty: .certain) @@ -602,7 +608,7 @@ public class PodCommsSession { var suspendTimeExpiredAlert: PodAlert? = nil let suspendTime: TimeInterval = suspendReminder != nil ? suspendReminder! : 0 - let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: .all, beepType: .noBeep) + let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: .all, beepType: .noBeepCancel) var commandsToSend: [MessageBlock] = [cancelDeliveryCommand] // podSuspendedReminder provides a periodic pod suspended reminder beep until the specified suspend time. @@ -625,11 +631,11 @@ public class PodCommsSession { commandsToSend += [configureAlerts] } - podState.unacknowledgedCommand = PendingCommand.stopProgram(.all, transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.stopProgram(.all, transport.messageNumber, currentDate) let status: StatusResponse = try send(commandsToSend, beepBlock: beepBlock) podState.unacknowledgedCommand = nil let canceledDose = handleCancelDosing(deliveryType: .all, bolusNotDelivered: status.bolusNotDelivered) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if let alert = podSuspendedReminderAlert { podState.registerConfiguredAlert(slot: alert.configuration.slot, alert: alert) @@ -667,20 +673,20 @@ public class PodCommsSession { // Cancel beeping can be done implemented using beepType (for a single delivery type) or a separate confirmation beep message block (for cancel all). // N.B., Using the built-in cancel delivery command beepType method when cancelling all insulin delivery will emit 3 different sets of cancel beeps!!! - public func cancelDelivery(deliveryType: CancelDeliveryCommand.DeliveryType, beepType: BeepType = .noBeep, beepBlock: MessageBlock? = nil) -> CancelDeliveryResult { + public func cancelDelivery(deliveryType: CancelDeliveryCommand.DeliveryType, beepType: BeepType = .noBeepCancel, beepBlock: MessageBlock? = nil) -> CancelDeliveryResult { guard podState.unacknowledgedCommand == nil else { return .certainFailure(error: .unacknowledgedCommandPending) } do { - podState.unacknowledgedCommand = PendingCommand.stopProgram(deliveryType, transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.stopProgram(deliveryType, transport.messageNumber, currentDate) let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: deliveryType, beepType: beepType) let status: StatusResponse = try send([cancelDeliveryCommand], beepBlock: beepBlock) podState.unacknowledgedCommand = nil let canceledDose = handleCancelDosing(deliveryType: deliveryType, bolusNotDelivered: status.bolusNotDelivered) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return CancelDeliveryResult.success(statusResponse: status, canceledDose: canceledDose) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { @@ -722,7 +728,7 @@ public class PodCommsSession { do { var status: StatusResponse = try send([basalScheduleCommand, basalExtraCommand]) - let now = Date() + let now = currentDate podState.suspendState = .resumed(now) podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: now, scheduledCertainty: .certain, insulinType: podState.insulinType) if hasActiveSuspendAlert(configuredAlerts: podState.configuredAlerts), @@ -730,14 +736,14 @@ public class PodCommsSession { { status = cancelStatus // update using the latest status } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return status } catch PodCommsError.nonceResyncFailed { throw PodCommsError.nonceResyncFailed } catch PodCommsError.rejectedMessage(let errorCode) { throw PodCommsError.rejectedMessage(errorCode: errorCode) } catch let error { - podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: Date(), scheduledCertainty: .uncertain, insulinType: podState.insulinType) + podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: currentDate, scheduledCertainty: .uncertain, insulinType: podState.insulinType) throw error } } @@ -751,7 +757,7 @@ public class PodCommsSession { let status = try setBasalSchedule(schedule: schedule, scheduleOffset: scheduleOffset, acknowledgementBeep: acknowledgementBeep, programReminderInterval: programReminderInterval) - podState.suspendState = .resumed(Date()) + podState.suspendState = .resumed(currentDate) return status } @@ -771,7 +777,7 @@ public class PodCommsSession { case .success(let response, _): statusResponse = response } - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return statusResponse } @@ -783,7 +789,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: statusResponse) } - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return statusResponse } @@ -802,7 +808,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: derivedStatusResponse) } - podState.updateFromStatusResponse(derivedStatusResponse) + podState.updateFromStatusResponse(derivedStatusResponse, at: currentDate) } return detailedStatus } @@ -890,10 +896,10 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: status) } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if podState.activeTime == nil, let activatedAt = podState.activatedAt { - podState.activeTime = Date().timeIntervalSince(activatedAt) + podState.activeTime = currentDate.timeIntervalSince(activatedAt) } } catch let error as PodCommsError { switch error { @@ -908,7 +914,7 @@ public class PodCommsSession { public func acknowledgeAlerts(alerts: AlertSet, beepBlock: MessageBlock? = nil) throws -> [AlertSlot: PodAlert] { let cmd = AcknowledgeAlertCommand(nonce: podState.currentNonce, alerts: alerts) let status: StatusResponse = try send([cmd], beepBlock: beepBlock) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return podState.activeAlerts } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManager/PodState.swift b/Dependencies/OmniBLE/OmniBLE/PumpManager/PodState.swift index 4d2c189037..ecc0b92e12 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManager/PodState.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManager/PodState.swift @@ -200,9 +200,9 @@ public struct PodState: RawRepresentable, Equatable, CustomDebugStringConvertibl return now } - public mutating func updateFromStatusResponse(_ response: StatusResponse) { + public mutating func updateFromStatusResponse(_ response: StatusResponse, at date: Date = Date()) { let now = updatePodTimes(timeActive: response.timeActive) - updateDeliveryStatus(deliveryStatus: response.deliveryStatus, podProgressStatus: response.podProgressStatus, bolusNotDelivered: response.bolusNotDelivered) + updateDeliveryStatus(deliveryStatus: response.deliveryStatus, podProgressStatus: response.podProgressStatus, bolusNotDelivered: response.bolusNotDelivered, at: date) let setupUnits = setupUnitsDelivered ?? Pod.primeUnits + Pod.cannulaInsertionUnits + Pod.cannulaInsertionUnitsExtra @@ -283,22 +283,29 @@ public struct PodState: RawRepresentable, Equatable, CustomDebugStringConvertibl } - private mutating func updateDeliveryStatus(deliveryStatus: DeliveryStatus, podProgressStatus: PodProgressStatus, bolusNotDelivered: Double) { + private mutating func updateDeliveryStatus(deliveryStatus: DeliveryStatus, podProgressStatus: PodProgressStatus, bolusNotDelivered: Double, at date: Date) { // See if the pod deliveryStatus indicates an active bolus or temp basal that the PodState isn't tracking (possible Loop restart) if deliveryStatus.bolusing && unfinalizedBolus == nil { // active bolus that Loop doesn't know about? if podProgressStatus.readyForDelivery { // Create an unfinalizedBolus with the remaining bolus amount to capture what we can. - unfinalizedBolus = UnfinalizedDose(bolusAmount: bolusNotDelivered, startTime: Date(), scheduledCertainty: .certain, insulinType: insulinType, automatic: false) + unfinalizedBolus = UnfinalizedDose(bolusAmount: bolusNotDelivered, startTime: date, scheduledCertainty: .certain, insulinType: insulinType, automatic: false) } } - if let bolus = unfinalizedBolus, !deliveryStatus.bolusing { + if var bolus = unfinalizedBolus, !deliveryStatus.bolusing { + // Due to clock drift or comms delays, boluses can finish earlier than we expect + if !bolus.isFinished() { + bolus.finishTime = date + } finalizedDoses.append(bolus) unfinalizedBolus = nil } - if let tempBasal = unfinalizedTempBasal, !deliveryStatus.tempBasalRunning { + if var tempBasal = unfinalizedTempBasal, !deliveryStatus.tempBasalRunning { + if !tempBasal.isFinished() { + tempBasal.finishTime = date + } finalizedDoses.append(tempBasal) unfinalizedTempBasal = nil } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/OmniBLEHUDProvider.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/OmniBLEHUDProvider.swift index 07e542dfd9..03501503f7 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/OmniBLEHUDProvider.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/OmniBLEHUDProvider.swift @@ -39,8 +39,6 @@ internal class OmniBLEHUDProvider: NSObject, HUDProvider { didSet { if oldValue != visible && visible { hudDidAppear() - } else if oldValue != visible && !visible { - stopRefreshTimer() } } } @@ -69,7 +67,6 @@ internal class OmniBLEHUDProvider: NSObject, HUDProvider { func hudDidAppear() { updateReservoirView() refresh() - updateRefreshTimer() } public var hudViewRawState: HUDProvider.HUDViewRawState { @@ -128,28 +125,6 @@ internal class OmniBLEHUDProvider: NSObject, HUDProvider { reservoirView.update(level: pumpManager.reservoirLevel, at: lastStatusDate, reservoirLevelHighlightState: reservoirLevelHighlightState) } - - private func ensureRefreshTimerRunning() { - guard refreshTimer == nil else { - return - } - - refreshTimer = Timer(timeInterval: .seconds(30) , repeats: true) { [weak self] _ in - self?.refresh() - } - RunLoop.main.add(refreshTimer!, forMode: .default) - } - - private func stopRefreshTimer() { - refreshTimer?.invalidate() - refreshTimer = nil - } - - private func updateRefreshTimer() { - if visible { - ensureRefreshTimerRunning() - } - } } extension OmniBLEHUDProvider: PodStateObserver { @@ -158,7 +133,6 @@ extension OmniBLEHUDProvider: PodStateObserver { } func podStateDidUpdate(_ state: PodState?) { - updateRefreshTimer() updateReservoirView() } } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/BeepPreferenceSelectionView.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/BeepPreferenceSelectionView.swift index d992b0f867..b6ff6998db 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/BeepPreferenceSelectionView.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/BeepPreferenceSelectionView.swift @@ -38,7 +38,7 @@ struct BeepPreferenceSelectionView: View { VStack { List { Section { - Text("Confidence reminders are beeps from the pod which can be used to acknowledge selected commands.").fixedSize(horizontal: false, vertical: true) + Text(LocalizedString("Confidence reminders are beeps from the pod which can be used to acknowledge selected commands.", comment: "Help text for BeepPreferenceSelectionView")).fixedSize(horizontal: false, vertical: true) .padding(.vertical, 10) } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/InsertCannulaView.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/InsertCannulaView.swift index e603a030d6..bf625b0482 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/InsertCannulaView.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/InsertCannulaView.swift @@ -59,7 +59,7 @@ struct InsertCannulaView: View { }) { Text(LocalizedString("Deactivate Pod", comment: "Button text for deactivate pod button")) .accessibility(identifier: "button_deactivate_pod") - .actionButtonStyle(.destructive) + .actionButtonStyle(.secondary) } .disabled(self.viewModel.state.isProcessing) } diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/NotificationSettingsView.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/NotificationSettingsView.swift index 60637fdbcd..259d39ce1d 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/NotificationSettingsView.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/NotificationSettingsView.swift @@ -44,7 +44,7 @@ struct NotificationSettingsView: View { RoundedCard( footer: LocalizedString("This is a reminder that you scheduled when you paired your current Pod.", comment: "Footer text for scheduled reminder area")) { - Text("Scheduled Reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Title of scheduled reminder card on NotificationSettingsView")) Divider() scheduledReminderRow(scheduledDate: scheduledReminderDate, allowedDates: allowedDates) } @@ -56,7 +56,7 @@ struct NotificationSettingsView: View { RoundedCard( title: LocalizedString("Critical Alerts", comment: "Title for critical alerts description"), - footer: LocalizedString("The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if you device is set to Silent or Do Not Disturb mode.", comment: "Description text for critical alerts") + footer: LocalizedString("The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode.", comment: "Description text for critical alerts") ) } .navigationBarTitle(LocalizedString("Notification Settings", comment: "navigation title for notification settings")) diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/ScheduledExpirationReminderEditView.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/ScheduledExpirationReminderEditView.swift index 0266ab4fe8..39162ca2f4 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/ScheduledExpirationReminderEditView.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/ScheduledExpirationReminderEditView.swift @@ -49,7 +49,7 @@ struct ScheduledExpirationReminderEditView: View { // Keep picker outside of card in compact view, because it forces full device width. VStack(spacing: 0) { RoundedCard { - Text("Scheduled Reminder", comment: "Card title for scheduled reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Card title for scheduled reminder")) Divider() valueRow } @@ -59,7 +59,7 @@ struct ScheduledExpirationReminderEditView: View { } else { RoundedCard { - Text("Scheduled Reminder", comment: "Card title for scheduled reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Card title for scheduled reminder")) Divider() valueRow picker diff --git a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/SetupCompleteView.swift b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/SetupCompleteView.swift index 5faf8b1043..d23a01cc95 100644 --- a/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/SetupCompleteView.swift +++ b/Dependencies/OmniBLE/OmniBLE/PumpManagerUI/Views/SetupCompleteView.swift @@ -44,7 +44,7 @@ struct SetupCompleteView: View { .fixedSize(horizontal: false, vertical: true) Divider() VStack(alignment: .leading) { - Text("Scheduled Reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Scheduled reminder card title on SetupCompleteView")) Divider() NavigationLink( destination: ScheduledExpirationReminderEditView( @@ -84,7 +84,7 @@ struct SetupCompleteView: View { .zIndex(1) } .animation(.default) - .navigationBarTitle("Setup Complete", displayMode: .automatic) + .navigationBarTitle(LocalizedString("Setup Complete", comment: "Title of SetupCompleteView"), displayMode: .automatic) } private func scheduledReminderDateString(_ scheduledDate: Date?) -> String { diff --git a/Dependencies/OmniBLE/OmniBLE/ar.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..bc1004f36b --- /dev/null +++ b/Dependencies/OmniBLE/OmniBLE/ar.lproj/Localizable.strings @@ -0,0 +1,35 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ ago"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "إلغاء"; + +/* Section header for configuration section */ +"Configuration" = "المعطيات"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "توصيل الأنسولين"; + +/* Alert acknowledgment OK button */ +"OK" = "موافق"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "أعد المحاولة"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Setup Complete"; + +/* Units for showing temp basal rate */ +"U/hr" = "وحدة لكل ساعة"; + diff --git a/Dependencies/OmniBLE/OmniBLE/cs.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..66f91d0dd0 --- /dev/null +++ b/Dependencies/OmniBLE/OmniBLE/cs.lproj/Localizable.strings @@ -0,0 +1,391 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Zpět"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazál inicializován"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Méně než 50 jednotek"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Probíhající bolus"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@ U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusování"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolusování dočasným bazálem"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Zrušit"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyla byla úspěšně zavedena. Pokračovat."; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Zavádění kanyly"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Znamá"; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Vyměňte pod. Výdej inzulinu se zastaví 8 hodin poté, co pod vypršel, nebo když už v něm nezbývá žádný inzulín."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Vyměňte pod. Výdej inzulínu se zastaví za %1$@ nebo když dojde inzulín."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Zkontrolujte kanylu"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Zkontrolujte pod, aplikujte na místo a potvrďte umístění podu."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrola zavedení"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Zjišťuji..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Komunikace obnovena"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Ujištující upozornění jsou pípnutí podu, které lze použít k potvrzení zadaných příkazů."; + +/* Section header for configuration section */ +"Configuration" = "Konfigurace"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Pokračovat"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritická upozornění"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deaktivovat Pod"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivováno"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktivace."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktivuji..."; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Podrobnosti o zařízení"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Vyřadit pod"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Prázdný zásobník"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Prázdná odpověď z podu"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Zaprotokolována událost chyby, vypínám"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Doporučení k vypršení"; + +/* Description for expiration alert */ +"Expiration alert" = "Upozornění na vypršení"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Probíhající prodloužený bolus"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Probíhající prodloužený bolus s dočasným bazálem"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Došlo k chybové události"; + +/* Description for finish setup */ +"Finish setup " = "Dokončení nastavení "; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Připomínka k dokončení nastavení"; + +/* Pod inititialized */ +"Initialized" = "Inicializováno"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Zavádím kanylu"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podávání inzulínu bylo zastaveno. Vyměňte pod nyní."; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interní chyba podu %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Přerušený bolus: %1$@ U ( %2$@ U naplánované) %3$@ %4$@ %5$@"; + +/* description label for last status date pod details row */ +"Last Status" = "Poslední stav"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop automaticky neupraví výdej inzulínu, dokud nastavení dočasné bazální dávky neskončí nebo nebude zrušeno."; + +/* description label for lot number pod details row */ +"Lot Number" = "Číslo šarže"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Poloprázdný zásobník"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Upozornění na poloprázdný zásobník"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Ujistěte se, že váš telefon a pod jsou blízko sebe. Pokud problémy s komunikací přetrvávají, zkuste přesunutí na jiné místo."; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Chybějící konfigurace"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Není k dispozici"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Další"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Ne"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žádný inzulín"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Žádný pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Žádné upozornění"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Nastavení upozornění"; + +/* No comment provided by engineer. */ +"Numbers" = "Hodnoty"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Upozornění Omnipodu"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Spárovat pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Spárovat pod."; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Páruji."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod je pozastaven"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Platnost okna nastavení podu vypršela"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pozastavená upozornění podu"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Připravuji"; + +/* Pod state when priming completed */ +"Priming completed" = "Příprava dokončena"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Připraveno k programování bazálu"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Připraven k zavedení kanyly"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Upozornění inicializováno"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Obnovit podávání inzulínu"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Pokračovat: %1$@ %2$@"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Obnovování podávání inzulínu..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Zkusit znovu"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Uložit"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Ukládám..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Plánovaný bazál"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Plánovaný bazál"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Naplánované upozornění"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vyberte typ inzulinu, který budete v tomto Podu používat."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Pořadové číslo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Nastavit dočasný bazál"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Nastavení dokončeno"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Vypnutí blížícího "; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Vypnutí blížícího se alarmu"; + +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Ztráta signálu"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Přeskočit onboarding Omnipodu?"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Pozastavit podávání inzulínu..."; + +/* Description for suspend time expired */ +"Suspend time expired" = "Období pozastavení vypršelo"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pozastavit: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pozastaveno"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Pozastavení podávání inzulínu..."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Plnění zásobníku dokončeno"; + +/* Pod power to motor activated */ +"Tank power activated" = "Napájení zásobníku aktivováno"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Klepnutím na tlačítko níže zahájíte zavádění kanyly."; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Dočasný bazál v platnosti"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Dočasný bazál v platnosti"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "DočBazál: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Dočasný bazál"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Nastavení dočasného bazálu selhalo"; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikace vás předem upozorní na vypršení platnosti Podu. \n\nPosouváním nastavte počet hodin před vypršením, kdy chcete obdržet notifikaci."; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Čas vyměnit pod! Platnost vašeho podu vyprší za %1$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Nejasné"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Neočekávané pořadové číslo zprávy"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Neočekávaná odpověď od podu"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Neznámá chyba podu %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Neznámá hodnota ( %1$@ ) pro typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Ověření se nezdařilo: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Počkejte na dokončení podávání stávajícího bolusu nebo bolus zrušte"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Počkejte na dokončení stávajícího dočasného bazálu nebo ho pozastavte pro zrušení."; + diff --git a/Dependencies/OmniBLE/OmniBLE/da.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/da.lproj/Localizable.strings index 2111cb5d4f..c2fb961f98 100644 --- a/Dependencies/OmniBLE/OmniBLE/da.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/da.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inaktiv)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ siden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ har genoprettet kommunikationen med Pod'en på din krop.\n\nHistorik for insulintilførsel er blevet opdateret og skal matche det, der faktisk er leveret.\n\nDu kan fortsætte med at bruge %@ normalt nu."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ for %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ har ikke været i stand til at kommunikere med Pod'en på din krop siden %2$@.\n\nUden kommunikation med Pod'en kan appen ikke fortsætte med at sende kommandoer for insulintilførsel eller vise nøjagtige, nylige oplysninger om dit aktive insulin eller det insulin, der leveres af Pod'en.\n\nOvervåg din glukose nøje i de næste 6 eller flere timer, da der måske eller måske ikke er insulin, der aktivt arbejder i din krop, som %3$@ ikke kan vise."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulin eller mindre tilbage i Pod. Skift Pod snart."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheder tilbage på %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 time"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 time 30 minutter"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 timer"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutter"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktiveringstid overskredet"; + +/* description label for active time pod details row */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Er du sikker på, at du vil annullere Pod-opsætningen?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Er du sikker på, at du vil springe Omnipod Onboarding over?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Er du sikker på, at du vil stoppe med at bruge Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Påfør Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Forsøger at genetablere kommunikationen"; + +/* Description for auto-off */ +"Auto-off" = "Auto-sluk"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Auto-sluk alarm"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbage"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialiseret"; + /* Pod state when running below fifty units */ "Below 50 units" = "Under 50 enheder"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "BLE Firmware Version"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth er slukket"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth nulstilles"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth er ikke tilgængelig af en ukendt årsag."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth ikke tilgængelig: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Brug af Bluetooth er uautoriseret"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth understøttes ikke på denne enhed"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus i gang"; @@ -11,80 +124,579 @@ "Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; /* Delivery status when bolusing */ -"Bolusing" = "Indgiver Bolus"; +"Bolusing" = "Indgiver bolus"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Indgiver Bolus med midlertidig basal"; +"Bolusing with temp basal" = "Indgiver bolus med midlertidig basal"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Annuller"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annuller manuel basal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanylen blev indsat korrekt. Fortsæt."; /* Pod state when inserting cannula */ -"Cannula inserting" = "Indfører Kanyle"; +"Cannula inserting" = "Indfører kanyle"; /* String describing a dose that was certainly scheduled */ "Certain" = "Sikker"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Skift Pod nu. Insulintilførsel stopper 8 timer efter, at Pod'en er udløbet, eller når der ikke er mere insulin tilbage."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Skift Pod nu. Insulintilførsel stopper om %1$@, eller når der ikke er mere insulin tilbage."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Skift Pod nu. Insulintilførsel stopper om 1 time."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Skift Pod nu. Pod har været aktiv i 72 timer."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Kontroller kanylen"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Tjek Pod, sæt på kroppen og bekræft derefter Pod er sat korrekt på."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrollerer indsættelse"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrollerer..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofejl %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikationsproblem"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Kommunikation genoprettet"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Kommunikationsproblem: Uerkendt kommando afventer."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Påmindelse om succesfulde aktiviteter"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Påmindelse om succesfulde aktiviteter er bip fra Pod'en, som kan bruges til at bekræfte valgte kommandoer."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Påmindelser om succesfulde handlinger vil lyde for de kommandoer du sætter igang, annulleret, suspenderet, genoptaget bolus, gemme notifikationspåmindelser etc. Når Loop automatisk justerer tilførslen, bliver påmindelser om succesfulde handlinger ikke benyttet."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Påmindelser om succesfulde handlinger vil lyde, når Loop automatisk justerer tilførslen og de kommandoer, du sætter igang."; + +/* Section header for configuration section */ +"Configuration" = "Konfiguration"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bekræft"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bekræft fastgørelse af Pod"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Fortsæt"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Kunne ikke analysere meddelelsen: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritiske advarsler"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritisk Pod-fejl"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Kommunikationsfejl. Flyt til et nyt område"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dage"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deaktiver Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Deaktiveret"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktiverer."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktiverer..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Slet Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Enhedsdetaljer"; + +/* description label for device name pod details row */ +"Device Name" = "Enhedsnavn"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Deaktiveret"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Kassér Pod"; + +/* No comment provided by engineer. */ +"Done" = "Udført"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Tomt reservoir"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Tomt reservoir"; + /* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tom svar fra pod"; +"Empty response from pod" = "Tomt svar fra Pod"; + +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Tom værdi"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Aktiveret"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fejl"; /* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fejl hændelse logget, lukker ned"; +"Error event logged, shutting down" = "Fejlhændelse logget, lukker ned"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Påmindelse om udløb"; /* Description for expiration alert */ -"Expiration alert" = "Udløbs advarsel"; +"Expiration alert" = "Udløbs-advarsel"; + +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Påmindelse om udløb"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Standard for udløbspåmindelse"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Forlænget"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Forlænget bolus kører"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Forlænget bolus med midlertidig basal"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Kunne ikke annullere manuel basal"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Kunne ikke genoptage insulintilførsel"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Kunne ikke indstille pumpetid"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Kunne ikke suspendere insulintilførsel"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Kunne ikke opdatere påmindelser for succesfulde aktiviteter"; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Kunne ikke opdatere påmindelse om udløb"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Kunne ikke opdatere påmindelse om lavt reservoir"; + +/* Pod life HUD view label */ +"Fault" = "Fejl"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fejlhændelse indtraf"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Fyld en ny pod med E-100 insulin (lad den blå hætte på podnålen sidde på)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Afslut deaktivering"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Afslut deaktivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Afslut parring"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Afslut setup"; /* Description for finish setup */ -"Finish setup " = "Afslut indstilling"; +"Finish setup " = "Afslut opsætning"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Påmindelse om færdiggørelse af opsætning"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware-version"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Flere end %1$@ enheder tilbage ved %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "time"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "Timer"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Hvis du annullerer Pod-opsætningen, deaktiveres den aktuelle Pod og den vil være ubrugelig."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Forkert pakkeundtagelse: %1$@ (placering=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Forkert svar"; /* Pod inititialized */ "Initialized" = "Initialiseret"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Indfør kanyle"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Indsat"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Indsætter kanyle"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Indsætter. Vent venligst."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Indsætter..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulin \nsuspenderet"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulintilførsel"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførslen er stoppet. Skift Pod nu."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Insulintilførsel vil blive stoppet, indtil du genoptager manuelt. Hvornår vil du have Loop til at minde dig om at genoptage leveringen?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulin tilbage"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulin suspenderet"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulintype ikke konfigureret"; + /* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Intern pod fejl %1$03d"; +"Internal pod fault %1$03d" = "Intern Pod-fejl %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AfbrudtBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ugyldig adresse 0x%1$x. Forventet 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ugyldig adresse: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ugyldig CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Ugyldig LTK-nøgle: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ugyldig indstilling"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Er kanylen indsat korrekt?"; + +/* description label for last status date pod details row */ +"Last Status" = "Sidste status"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Lyt efter 2 bip."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop justerer ikke automatisk din insulindosering, før den midlertidige basalrate er afsluttet eller annulleret."; + +/* description label for lot number pod details row */ +"Lot Number" = "Partinummer"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Lavt reservoir"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Lavt reservoir"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Vejledning om lavt reservoir (%1$gU)"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Lavt reservoir alarm"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Påmindelse om lavt reservoir"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Sørg for, at iPhone er i nærheden af den aktive Pod"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Sørg for, at din telefon og Pod er tæt på hinanden. Hvis der fortsat er kommunikationsproblemer, skal du flytte til et nyt område."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Sørg for din Pod er fyldt og i nærheden"; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Sørg for, at din Pod er tæt på og prøv igen."; + /* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Sørg for at din RileyLink er i nærheden og tændt"; +"Make sure your RileyLink is nearby and powered on" = "Sørg for, at din RileyLink er i nærheden og tændt"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manual basal"; + +/* Pod memory initialized */ +"Memory initialized" = "Hukommelse initialiseret"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Meddelelse IO-undtagelse: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutter"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Manglende konfiguration"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Flyt til et nyt område væk fra andre Pods og prøv igen."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Advarsel om flere kommandoer"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Næste"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nej"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Ingen\nlevering"; /* Pod alert state when no alerts are active */ "No alerts" = "Ingen alarmer"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Ingen påmindelser for succesfulde aktiviteter benyttet"; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ingen fejl"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Pod"; + /* Error message shown when no pod is paired */ -"No pod paired" = "Ingen pod parret"; +"No pod paired" = "Ingen Pod parret"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Ingen Pods fundet"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Ingen påmindelse"; /* Error message shown when no response from pod was received */ -"No response from pod" = "Intet svar fra pod"; +"No response from pod" = "Intet svar fra Pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Ingen RileyLink til stede"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nej, fortsæt med Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nej, behold pumpen som den er"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Ikke nok data"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Notifikationsindstillinger"; + +/* No comment provided by engineer. */ +"Numbers" = "Tal"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Blokkering opdaget"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Blokkering opdaget"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod-påmindelser"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Par Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Par Pod"; + /* Pod status after pairing */ "Paired" = "Parret"; +/* Pod status when pairing completed */ +"Pairing completed" = "Parring afsluttet"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Parringsundtagelse: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Parrer..."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Parrer..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Indlæsningfejl: %1$@ i %2$@"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Payload crc32 %1$@ does not match computed crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Ekstern enhed er ikke forbundet"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Hav kun den originale Pod tæt på eller deaktiver den original Pod"; + /* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Venligst flyt pod’en tættere på din RileyLink og prøv igen"; +"Please bring your pod closer to the RileyLink and try again" = "Venligst flyt Pod’en tættere på din RileyLink og prøv igen"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Bekræft venligst, at Pod er sikkert fastgjort til din krop.\n\nKanylen kan kun indsættes én gang med hver Pod. Tryk på \"Bekræft\", når Pod er tilsluttet."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Deaktiver Poden. Når deaktiveringen er fuldført, kan du parre en ny Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Deaktiver Poden. Når deaktiveringen er fuldført, kan du fjerne den og parre en ny Pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Aktivér Bluetooth-tilladelser for denne app i systemindstillinger"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Afslut parringen af din Pod."; /* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Venligst par med en ny pod"; +"Please pair a new pod" = "Venligst par med en ny Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Flyt iPhone længere væk fra Poden"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Flyt iPhone i forhold til Pod'en"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Brug en anden enhed med Bluetooth-funktioner"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod aktiveret"; + +/* Label describing pod age view */ +"Pod Age" = "Pod-alder"; /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod allerede parret"; @@ -92,60 +704,262 @@ /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod allerede klargjort"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod deaktiveret med succes. Fortsæt."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Pod-fejl"; + /* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod udløbs alarm"; +"Pod expiration advisory alarm" = "Pod udløbsalarm"; /* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod udløbs påmindelse"; +"Pod Expiration Notice" = "Pod udløbspåmindelse"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Påmindelse om udløb af Pod"; /* Description for Pod expired pod fault */ "Pod expired" = "Pod udløbet"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod udløbet"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod udløber"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod udløber om"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod udløber om %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detaljer om fejl i Pod"; + /* Format string for pod fault code */ "Pod Fault: %1$@" = "Pod Fejl: %1$@"; /* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar til kanyle indførsel."; +"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar til kanyleindførsel."; /* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod er ikke klar til ‘klargøring’."; +"Pod is not in a state ready for priming." = "Pod er ikke parat til klargøring."; /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod er pauset"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod ikke tilsluttet"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod er blokeret"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod'en blev parret med succes. Fortsæt."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Pod-parring ufuldstændig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendt acknowledge i stedet for svar"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod Setup"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod indstillings vindue udløbet"; +"Pod setup window expired" = "Pod indstillingsvindue udløbet"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Påmindelse om suspenderet Pod "; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dårlig signalstyrke"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Forbered indstikssted."; + +/* title for previous pod page */ +"Previous Pod" = "Forrige Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Oplysninger om forrige Pod"; /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Klargør"; +/* Pod state when priming completed */ +"Priming completed" = "Klargøring afsluttet"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Klargør. Vent venligst."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Klargør…"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + /* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar til basal programmering"; +"Ready for basal programming" = "Klar til basal-indstilling"; /* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar til kanyle indførsel"; +"Ready to insert cannula" = "Klar til kanyleindførsel"; + +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Tilbage"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påmindelse initialiseret"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Fjern den blå Pod-nålehætte, og kontrollér kanylen. Fjern derefter papiret."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Fjern Pod fra kroppen"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Fjern pumpe"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Udskift Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Genoptag"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Fortsæt indgivelse"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Genoptag insulin"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Genoptag insulintilførsel..."; /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Fortsæt: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Genoptager insulintilførsel..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Forsøg igen"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Gem"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Gemmer..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Planlagt basal"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Planlagt Basal"; +"Scheduled Basal" = "Planlagt basal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Planlagt påmindelse"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vælg den type insulin, du vil bruge i denne Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvensnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Indstil midlertidig basal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Indstil midlertidig basalrate"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Opsætning fuldført"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Luk akut"; /* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Afbryd forestående alarm"; +"Shutdown imminent alarm" = "Afbryd akut alarm"; + +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaltab"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrken er for høj"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Spring Omnipod Onboarding over?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Afbryd insulintilførsel"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Påmindelse om igangværende suspension"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Afbryd insulintilførsel"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Suspenderet tid udløbet"; /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; +"Suspended" = "Suspenderet"; + +/* Label for suspended at time */ +"Suspended At" = "Suspenderet"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Afbryder insulintilførsel..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Suspensionstiden er udløbet. Åbn appen, og genoptag."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Skift til en anden insulintilførselsenhed"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til aktuel tid"; /* Pod tank fill completed */ -"Tank fill completed" = "Reservoir påfyldning komplet"; +"Tank fill completed" = "Reservoirpåfyldning færdig"; /* Pod power to motor activated */ -"Tank power activated" = "Reservoir strøm aktiveret"; +"Tank power activated" = "Reservoir-strøm aktiveret"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tryk nedenfor for at starte kanyleindsættelse."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Midlertidig basal allerede i gang"; @@ -154,25 +968,160 @@ "Temp basal running" = "Midlertidig basal i gang"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "MidlertidigBasal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Midlertidig basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Midlertidig basal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Midlertidig basal mislykkedes"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Appen konfigurerer en påmindelse på Pod'en for at give dig besked inden Pod-udløb. Indstil antallet af timer i forvejen, du vil konfigurere, når du parrer en ny Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Appen giver dig besked før Pod'en udløber.\n\nIndstil antallet af timer før udløb som påmindelse."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Appen giver dig besked, når mængden af insulin i Pod'en når dette niveau (50-10 E)\n\nIndstil antallet enheder, du vil bruge som påmindelse. "; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Appen giver dig besked, når mængden af insulin i Pod'en når dette niveau."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioden for suspension af insulin er afsluttet.\n\nDu kan genoptage afgivelsen fra den øverste del af startskærmen eller fra skærmen med pumpeindstillinger. Du vil blive mindet om dette igen om 15 minutter."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Tiden på din pumpe er forskellig fra den aktuelle tid. Vil du opdatere tiden på din pumpe til det aktuelle tidspunkt?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Tiden på din pumpe er forskellig fra den aktuelle tid. Din pumpes tid styrer dine planlagte behandlingsindstillinger. Gå til Pumpetid for at gennemgå tidsforskellen og konfigurere din pumpe."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Tiden på din pumpe er forskellig fra den aktuelle tid. Din pumpes tid styrer dine planlagte behandlingsindstillinger. Gå til Pumpetid for at gennemgå tidsforskellen og konfigurere din pumpe."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Vinduet på toppen af Pod'en skal være farvet pink, når kanylen er korrekt indsat i huden."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Kunne ikke kommunikere med Pod'en. Hvis problemet fortsætter, tryk Afbryd og kassér Pod'en. Du kan herefter aktivere en ny Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dette er en påmindelse om, at du planlagde, hvornår du parrede din nuværende Pod."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Denne PumpManager er ikke konfigureret med en maksimal basalhastighed, fordi den blev tilføjet, før manuel midlertidig basal var en funktion. Gå til Behandlingsindstillinger -> leveringsgrænser og indstil en ny maksimal basalhastighed."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tidsændring registreret"; /* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Tid til udskiftning af pod! Din pod udløber om %1$@"; +"Time to replace your pod! Your pod will expire in %1$@" = "Tid til udskiftning af Pod! Din Pod udløber om %1$@"; + +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Timeout"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Skift tegn"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Der er fundet for mange Pods"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Samlet indgivelse"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Prøv igen"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Slå bluetooth til"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan ikke få kontakt til pumpen"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan ikke få kontakt til pumpen"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Kan ikke indstille en midlertidig basalrate: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Kan ikke indstille en midlertidig basalrate: %1$@\n\n%2$@"; /* String describing a dose that was possibly scheduled */ "Uncertain" = "Usikker"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Uventet meddelelsessekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Uventet Pod-skifte"; + /* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Uventet svar fra pod"; +"Unexpected response from pod" = "Uventet svar fra Pod"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Uafsluttet aktivering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Uafsluttet deaktivering"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Ukendt egenskab"; /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Ukendt pod fejl %1$03d"; +"Unknown pod fault %1$03d" = "Ukendt Podfejl %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Ukendt værdi (%1$@) for type %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validering mislykkedes: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vent indtil eksisterende bolus er færdig, eller annuller bolus"; +"Wait for existing bolus to finish, or cancel bolus" = "Vent, indtil eksisterende bolus er færdig, eller annuller bolus"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Vent indtil den eksisterende midlertidige basal er færdig, eller pause for at annullere"; +"Wait for existing temp basal to finish, or suspend to cancel" = "Vent, indtil den eksisterende midlertidige basal er færdig, eller pause for at annullere"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Vent, indtil indsættelsen er afsluttet."; /* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Venter på parrings påmindelse"; +"Waiting for pairing reminder" = "Venter på parrings-påmindelse"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, deaktiver Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, synkroniser til det aktuelle klokkeslæt"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Du skal nu begynde at konfigurere dine påmindelser, fylde din Pod med insulin, parre den med din enhed og placere den på din krop."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Din pod er klar til brug.\n\n%1$@ minder dig om, at du skal skifte din pod, inden den udløber. Du kan ændre dette til et tidspunkt, der passer dig."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Din Pod leverer muligvis stadig insulin.\nFjern den fra din krop og tryk derefter på \"Fortsæt\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/de.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/de.lproj/Localizable.strings index c03f93d902..c5ec1ac935 100644 --- a/Dependencies/OmniBLE/OmniBLE/de.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/de.lproj/Localizable.strings @@ -1,14 +1,38 @@ /* Description for an inactive alert modifier */ " (inactive)" = " (inaktiv)"; +/* No comment provided by engineer. */ +"—" = "—"; + /* Format string for last status date on pod details screen */ -"%@ ago" = "seit %@"; +"%@ ago" = "%@ vor"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ hat die Kommunikation mit dem Pod an Ihrem Körper wiederhergestellt.\n\nDie Insulinabgabeaufzeichnungen wurden aktualisiert und sollten mit dem übereinstimmen, was tatsächlich abgegeben wurde.\n\nSie können %@ jetzt normal weiter verwenden."; /* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ "%@+ U" = "%@+ IE"; /* Format string for reservoir volume. (1: The localized volume) */ -"%@U" = "%@IE"; +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ für %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ konnte seit %2$@ nicht mehr mit Ihrem Pod kommunizieren.\n\nOhne Kommunikation mit dem Pod kann die App keine Befehle für die Insulinabgabe senden oder genaue, aktuelle Informationen über Ihr aktives Insulin oder das vom Pod abgegebene Insulin anzeigen.\n\nÜberwachen Sie Ihren Blutzucker für die nächsten 6 oder mehr Stunden genau, da in Ihrem Körper Insulin aktiv sein kann oder auch nicht, das %3$@ nicht anzeigen kann."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ Insulin oder weniger verbleibend im Pod. Pod bald wechseln."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ IE verbleibend bei %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; /* Format string for total delivery on pod details screen */ "%g U" = "%g IE"; @@ -25,8 +49,12 @@ /* Button text for 30 minute suspend duration */ "30 minutes" = "30 Minuten"; +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivierungszeit überschritten"; + /* description label for active time pod details row */ -"Active Time" = "Pod Uhrzeit"; +"Active Time" = "Laufzeit"; /* Section header for activity section */ "Activity" = "Aktivität"; @@ -34,42 +62,72 @@ /* Text indicating ongoing pump time synchronization */ "Adjusting Pump Time..." = "Pumpenzeit einstellen"; +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sind Sie sicher, dass Sie die Pod-Einrichtung abbrechen möchten?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sind Sie sicher, dass Sie das Omnipod Onboarding überspringen wollen?"; + /* Message for Omnipod DASH PumpManager deletion action sheet */ -"Are you sure you want to stop using Omnipod DASH?" = "Bist Du Sicher, dass Du keinen Omnipod mehr benutzen möchtest?"; +"Are you sure you want to stop using Omnipod DASH?" = "Sind Sie sicher, dass Sie keinen Omnipod DASH mehr benutzen möchten?"; /* navigation bar title attach pod Title for Attach Pod screen */ "Attach Pod" = "Pod anbringen"; /* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ -"Attemping to re-establish communication" = "Versuche die Kommunikation wiederherzustellen"; +"Attemping to re-establish communication" = "Versuche die Verbindung wieder aufzubauen"; /* Description for auto-off */ -"Auto-off" = "Auto-Aus"; +"Auto-off" = "Auto-Off"; /* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-Aus Alarm"; +"Auto-off alarm" = "Auto-Off Alarm"; /* Back button text on DeliveryUncertaintyRecoveryView */ "Back" = "Zurück"; /* Pod state when basal initialized */ -"Basal initialized" = "Basalrate initialisiert"; +"Basal initialized" = "Basal initialisiert"; /* Pod state when running below fifty units */ -"Below 50 units" = "Unter 50 IE"; +"Below 50 units" = "Weniger als 50 Einheiten"; + +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "BLE Firmware Version"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth ist ausgeschaltet"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth wird zurückgesetzt"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth ist aus einem unbekannten Grund nicht verfügbar."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth ist nicht verfügbar: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Bluetooth-Nutzung ist nicht erlaubt"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth-Verwendung wird auf diesem Gerät nicht unterstützt"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; /* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus läuft"; +"Bolus in progress" = "Bolusabgabe läuft "; /* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ "Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@IE %2$@ %3$@ %4$@"; /* Delivery status when bolusing */ -"Bolusing" = "Bole"; +"Bolusing" = "Bolusabgabe"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bole mit temporärem Basal"; +"Bolusing with temp basal" = "Bolus-Abgabe mit temporärer Basalrate"; /* Button title for cancelling low reservoir reminder edit Button title for cancelling scheduled reminder date edit @@ -83,10 +141,10 @@ "Cancel Manual Basal" = "Manuelles Basal abbrechen"; /* Insert cannula action button accessibility label when cannula insertion succeeded */ -"Cannula inserted successfully. Continue." = "Katheter erfolgreich eingeführt. Weiter."; +"Cannula inserted successfully. Continue." = "Kanüle erfolgreich eingeführt. Weiter."; /* Pod state when inserting cannula */ -"Cannula inserting" = "führe Katheter ein"; +"Cannula inserting" = "Einsetzen der Kanüle"; /* String describing a dose that was certainly scheduled */ "Certain" = "Sicher"; @@ -105,13 +163,13 @@ /* navigation bar title for check cannula Title for check cannula screen */ -"Check Cannula" = "Prüfe Katheter"; +"Check Cannula" = "Prüfe die Kanüle"; /* Label text for step three of attach pod instructions */ -"Check Pod, apply to site, then confirm pod attachment." = "Prüfe den Pod, bringe ihn an der gereinigten Stelle an und bestätige das Anbringen."; +"Check Pod, apply to site, then confirm pod attachment." = "Überprüfe den Pod, bringe ihn an und bestätige dann die Pod-Anbringung."; /* Insert cannula action button accessibility label checking insertion */ -"Checking Insertion" = "Prüfe den Katheter"; +"Checking Insertion" = "Prüfe die Einfügung"; /* Cannula insertion button text while checking insertion */ "Checking..." = "Prüfe…"; @@ -120,23 +178,26 @@ "Command error %1$u" = "Befehlsfehler %1$u"; /* Status highlight that delivery is uncertain. */ -"Comms Issue" = "Kommunikationsproblem"; +"Comms Issue" = "Comms Problem"; /* Title for uncertainty recovered screen */ "Comms Recovered" = "Kommunikation wiederhergestellt"; /* Error message when command is rejected because an unacknowledged command is pending. */ -"Communication issue: Unacknowledged command pending." = "Kommunikationsproblem: Unbestätigter Befehl steht an."; +"Communication issue: Unacknowledged command pending." = "Kommunikationsproblem: Unbestätigter Befehl steht noch aus."; /* navigation title for confidence reminders Text for confidence reminders navigation link */ "Confidence Reminders" = "Sicherheitserinnerung"; +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Vertrauenserinnerungen sind Pieptöne vom Pod, die verwendet werden können, um ausgewählte Befehle zu bestätigen."; + /* Description for BeepPreference.manualCommands */ -"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Vertrauenserinnerungen ertönen für von Dir initiierte Befehle, wie Bolus, Bolus abbrechen, Unterbrechen, Fortsetzen, Benachrichtigungserinnerungen speichern usw. Wenn Loop die Abgabe automatisch anpasst, werden keine Vertrauenserinnerungen verwendet."; +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Vertrauenserinnerungen ertönen für von Ihnen initiierte Befehle, wie Bolus, Bolus abbrechen, Unterbrechen, Fortsetzen, Benachrichtigungserinnerungen speichern usw. Wenn Loop die Abgabe automatisch anpasst, werden keine Vertrauenserinnerungen verwendet."; /* Description for BeepPreference.extended */ -"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Vertrauenserinnerungen ertönen, wenn Loop die Lieferung automatisch anpasst, sowie für von Dir initiierte Befehle."; +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Vertrauenserinnerungen ertönen, wenn Loop die Lieferung automatisch anpasst, sowie für von Ihnen initiierte Befehle."; /* Section header for configuration section */ "Configuration" = "Konfiguration"; @@ -160,6 +221,15 @@ /* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ "Could not parse message: %1$@" = "Nachrichte konnte nicht analysiert werden: %1$@"; +/* Title for critical alerts description */ +"Critical Alerts" = "Kritische Warnungen"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritischer Pod-Fehler"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Überlagerungen möglich. Bitte wechseln Sie an einen neuen Standort"; + /* Unit for singular day in pod life remaining */ "day" = "Tag"; @@ -194,43 +264,90 @@ "Device Name" = "Gerätename"; /* Title string for BeepPreference.silent */ -"Disabled" = "Aus"; +"Disabled" = "Ausgeschaltet"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Pod verwerfen"; /* No comment provided by engineer. */ "Done" = "Fertig"; /* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Leeres Reservoir"; +"Empty reservoir" = "Reservoir leer"; /* The title for Empty Reservoir alarm notification */ "Empty Reservoir" = "Leeres Reservoir"; +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Leere Antwort vom Pod"; + /* Error message description for PeripheralManagerError.emptyValue */ "Empty Value" = "Leerer Wert"; /* Title string for BeepPreference.manualCommands */ -"Enabled" = "Ein"; +"Enabled" = "Aktiviert"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fehler"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Fehlerereignis protokolliert, fahre herunter"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Ablaufhinweis"; + +/* Description for expiration alert */ +"Expiration alert" = "Ablaufalarm"; + +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Erinnerung an den Ablauf der Nutzungsdauer"; /* Label text for expiration reminder default row */ -"Expiration Reminder Default" = "Ablauferinnerungs Standard"; +"Expiration Reminder Default" = "Standard Erinnerung an den Ablauf der Nutzungsdauer"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Verzögerung"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Verzögerter Bolus aktiv"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Verzögerter Bolus mit temporärer Basalrate aktiv"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Fehler beim Abbrechen der manuellen Basalrate"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Wiederaufnahme der Insulinabgabe fehlgeschlagen"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Fehler beim Einstellen der Pumpenzeit"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Fehler beim Anhalten der Insulinabgabe"; /* Alert title for error when updating confidence reminder preference */ -"Failed to update confidence reminder preference." = "Fehler beim Aktualisieren der Einstellung für die Erinnerung."; +"Failed to update confidence reminder preference." = "Fehler beim Aktualisieren der Einstellung für die Sicherheitserinnerung."; /* Alert title for error when updating expiration reminder */ -"Failed to Update Expiration Reminder" = "Konnte die Ablauferinnerung nicht aktualisieren"; +"Failed to Update Expiration Reminder" = "Fehler beim Aktualisieren der Ablauferinnerung"; /* Alert title for error when updating low reservoir reminder */ -"Failed to Update Low Reservoir Reminder" = "Konnte die Erinnerung für niedriges Reservoir nicht aktualisieren"; +"Failed to Update Low Reservoir Reminder" = "Fehler beim Aktualisieren der Erinnerung für einen niedrigen Vorratsbehälter"; /* Pod life HUD view label */ -"Fault" = "Fehler"; +"Fault" = "Störung"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fehlerereignis aufgetreten"; /* Label text for step 1 of pair pod instructions */ "Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Fülle U-100 Insulin in den Pod (lasse die blaue Kappe drauf)"; /* Settings page link description when next lifecycle action is to finish deactivation */ -"Finish deactivation" = "Deaktivierung abgeschlossen"; +"Finish deactivation" = "Deaktivierung abschließen"; /* Status highlight that when pod is deactivating. */ "Finish Deactivation" = "Deaktivierung abgeschlossen"; @@ -239,7 +356,7 @@ "Finish Pairing" = "Kopplung abgeschlossen"; /* Action button title to continue at Setup Complete */ -"Finish Setup" = "Einrichtung abgeschlossen"; +"Finish Setup" = "Einrichtung abschließen"; /* Description for finish setup */ "Finish setup " = "Einrichtung abgeschlossen"; @@ -247,8 +364,11 @@ /* Description for finish setup reminder */ "Finish setup reminder" = "Einrichtungserinnerung abgeschlossen"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware Version"; + /* Accessibility format string for (1: localized volume)(2: time) */ -"Greater than %1$@ units remaining at %2$@" = "Größer als %1$@ IE verbleiben um %2$@"; +"Greater than %1$@ units remaining at %2$@" = "Mehr als %1$@ verbleibende Einheiten um %2$@"; /* Unit for singular hour in pod life remaining */ "hour" = "Stunde"; @@ -259,6 +379,12 @@ /* Alert message body for confirm pod attachment */ "If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Wenn Du die Einrichtung abbrichst, dann wird der Pod deaktiviert und unbrauchbar."; +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Incorrect Packet Exception: %1$@ (location=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Falsche Antwort"; + /* Pod inititialized */ "Initialized" = "Initialisiert"; @@ -266,32 +392,32 @@ Insert cannula action button accessibility label while ready to pair navigation bar title for insert cannula Title for insert cannula screen */ -"Insert Cannula" = "Katheter einführen"; +"Insert Cannula" = "Kanüle einsetzen"; /* Label text indicating insertion finished. */ "Inserted" = "Eingeführt"; /* Pod state when inserting cannula */ -"Inserting cannula" = "Führe Katheter ein"; +"Inserting cannula" = "Einfügen von Kanüle"; /* Insert cannula action button accessibility label while pairing */ -"Inserting. Please wait." = "Führe ein. Bitte warten."; +"Inserting. Please wait." = "Füge ein, bitte warte…"; /* Cannula insertion button text while inserting */ -"Inserting..." = "Führe ein…"; +"Inserting..." = "Füge ein…"; /* Text shown in insulin delivery space when insulin suspended */ -"Insulin\nSuspended" = "Insulin\nunterbrochen"; +"Insulin\nSuspended" = "Insulinabgabe\nunterbrochen"; /* Title of insulin delivery section */ -"Insulin Delivery" = "Insulinabgabe"; +"Insulin Delivery" = "Insulin Delivery"; /* The action string on pod status page when pod faulted The default notification body for AlarmCodes */ -"Insulin delivery stopped. Change Pod now." = "Insulinabgabe gestoppt. Pod jetzt ersetzen."; +"Insulin delivery stopped. Change Pod now." = "Insulinabgabe wurde gestoppt. Pod jetzt wechseln."; /* Message for suspend duration selection action sheet */ -"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Die Insulinabgabe wird angehalten, bis Du sie manuell wieder aufnimmst. Wann soll Loop Dich daran erinnern, die Lieferung fortzusetzen?"; +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Die Insulinabgabe wird angehalten, bis Sie sie manuell wieder aufnehmen. Wann soll Loop Sie daran erinnern, die Abgabe fortzusetzen?"; /* Header for insulin remaining on pod settings screen */ "Insulin Remaining" = "Verbleibendes Insulin"; @@ -306,9 +432,24 @@ /* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ "Insulin type not configured" = "Insulintyp nicht konfiguriert"; +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interner Podfehler %1$03d"; + /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Abgebrochener Bolus: %1$@ IE (%2$@ IE geplant) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ungültige Adresse (%1$x). Adresse %2$x erwartet"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ungültige Adresse (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ungültiger CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Invalid LTK Key: %1$@"; + /* Error description for OmniBLEPumpManagerError.invalidSetting */ "Invalid Setting" = "Ungültige Einstellung"; @@ -322,7 +463,10 @@ "Listen for 2 beeps." = "Achte auf zwei Pieptöne."; /* Description text on manual temp basal action sheet */ -"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop passt die Insulinabgabe nicht automatisch an, bis die temporäre Basalrate beendet oder abgebrochen wird."; +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop passt Ihre Insulinabgabe nicht automatisch an, bis die temporäre Basalrate beendet oder abgebrochen wurde."; + +/* description label for lot number pod details row */ +"Lot Number" = "LOT Nummer"; /* Pod state when running with fifty or less units */ "Low reservoir" = "Niedriges Reservoir"; @@ -333,21 +477,40 @@ Title for LowReservoirReminderSetupView */ "Low Reservoir" = "Niedriges Reservoir"; +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Hinweis auf niedriges Reservior (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Hinweisalarm für fast leeres Reservoir"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Erinnerung an niedriges Reservoir"; + /* Recovery suggestion when no response is received from pod */ -"Make sure iPhone is nearby the active pod" = "Stelle sicher, dass Dein iPhone nah beim Pod ist"; +"Make sure iPhone is nearby the active pod" = "Stellen Sie sicher, dass Ihr iPhone nah am Pod ist"; /* The action string on pod status page when pod data is stale */ -"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Stelle sicher, dass sich Dein iPhone und Dein Pod nahe beieinander befinden. Wenn die Kommunikationsprobleme bestehen bleiben, dann wechsel in einen anderen Bereich."; +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Stellen Sie sicher, dass sich Ihr iPhone und Ihr Pod nahe beieinander befinden. Wenn die Kommunikationsprobleme bestehen bleiben, dann gehen Sie an einen anderen Ort."; /* Recovery suggestion for PodCommsError.noPodsFound */ -"Make sure your pod is filled and nearby." = "Stelle sicher, dass Dein Pod gefüllt und in der Nähe ist."; +"Make sure your pod is filled and nearby." = "Stellen Sie sicher, dass Ihr Pod gefüllt und in der Nähe ist."; /* Recovery suggestion when no pod is available */ -"Make sure your pod is nearby and try again." = "Stelle sicher, dass sich Dein Pod in der Nähe befindet, und versuche es erneut."; +"Make sure your pod is nearby and try again." = "Stellen Sie sicher, dass sich Ihr Pod in der Nähe befindet, und versuchen Sie es erneut."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Stellen Sie sicher, dass sich Ihr RileyLink in der Nähe befindet und eingeschaltet ist"; /* Status highlight when manual temp basal is running. */ "Manual Basal" = "Manuelle Basalrate"; +/* Pod memory initialized */ +"Memory initialized" = "Speicher initialisiert"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Message IO Exception: %1$@"; + /* Unit for singular minute in pod life remaining */ "minute" = "Minute"; @@ -357,10 +520,17 @@ /* Alert title for missing temp basal configuration */ "Missing Config" = "Fehlende Konfiguration"; +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Begeben Sie sich in einen anderen Bereich, entfernt von anderen Pods und versuchen Sie es erneut."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Warnung bei mehreren Befehlen"; + /* String shown on pod details for active time when conversion fails. String shown on pod details for last status date when not available. String shown on pod details for total delivery when not available. */ -"NA" = "--"; +"NA" = "NV"; /* Error message description for PeripheralManagerError.nack */ "Nack" = "nicht bestätigt"; @@ -375,10 +545,10 @@ "No\nDelivery" = "Keine\nAbgabe"; /* Pod alert state when no alerts are active */ -"No alerts" = "Keine Warnungen"; +"No alerts" = "Keine Alarme"; /* Description for BeepPreference.silent */ -"No confidence reminders are used." = "Es werden keine Erinnerungen verwendet."; +"No confidence reminders are used." = "Es werden keine Sicherheitserinnerungen verwendet."; /* Description for Fault Event Code .noFaults */ "No faults" = "Keine Fehler"; @@ -391,7 +561,7 @@ /* Label for pod life state when no pod paired Status highlight that when no pod is paired. Text shown in insulin remaining space when no pod is paired */ -"No Pod" = "Kein Pod"; +"No Pod" = "Kein Pod gekoppelt"; /* Error message shown when no pod is paired */ "No pod paired" = "Kein Pod gekoppelt"; @@ -403,14 +573,23 @@ "No Reminder" = "Keine Erinnerung"; /* Error message shown when no response from pod was received */ -"No response from pod" = "Keine Antwort vom Pod"; +"No response from pod" = "Keine Rückmeldung vom Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Kein RileyLink verfügbar"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nein, mit Pod fortfahren"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nein, Pumpe so lassen wie sie ist"; /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; /* Description for MessageError notEnoughData */ -"Not enough data" = "Nicht genug Daten"; +"Not enough data" = "Nicht genügend Daten"; /* navigation title for notification settings Text for pod details disclosure row */ @@ -420,10 +599,10 @@ "Numbers" = "Zahlen"; /* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Verstopfung entdeckt"; +"Occlusion detected" = "Verstopfung erkannt"; /* The title for Occlusion alarm notification */ -"Occlusion Detected" = "Verstopfung entdeckt"; +"Occlusion Detected" = "Verstopfung erkannt"; /* Action button default text for PodAlerts */ "Ok" = "OK"; @@ -431,70 +610,115 @@ /* Alert acknowledgment OK button */ "OK" = "OK"; +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + /* Title for omnipod reminders section */ -"Omnipod Reminders" = "Omnipoderinnerungen"; +"Omnipod Reminders" = "Omnipod Erinnerung"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; /* Pair Pod navigationBarTitle Pod pairing action button text while ready to pair Settings page link description when next lifecycle action is to pair new pod Title for pod pairing screen */ -"Pair Pod" = "Pod Koppeln"; +"Pair Pod" = "Pod koppeln"; /* Pairing action button accessibility label while ready to pair */ -"Pair pod." = "Pod Koppeln"; +"Pair pod." = "Pod koppeln."; /* Pod status after pairing */ "Paired" = "Gekoppelt"; /* Pod status when pairing completed */ -"Pairing completed" = "Koppeln abgeschlossen"; +"Pairing completed" = "Kopplung abgeschlossen"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Kopplungsausnahme: %1$@"; /* Pairing action button accessibility label while pairing */ "Pairing." = "Koppeln"; /* Pod pairing action button text while pairing */ -"Pairing..." = "Kopplen…"; +"Pairing..." = "Koppeln…"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Parsing-Fehler: %1$@ in (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Payload crc32 %1$@ does not match computed crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Percent = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Peripheriegerät nicht bereit"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Bitte nur Original-Pod in Reichweite bringen oder Original-Pod deaktivieren"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Bitte bringen Sie Ihren Pod näher an Ihr RileyLink und versuchen Sie es erneut"; /* Alert message body for confirm pod attachment */ -"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Bitte vergewissere Dich, dass der Pod sicher an Deinem Körper befestigt ist.\n\nDer Katheter kann mit jedem Pod nur einmal eingeführt werden. Tippe auf „Bestätigen“, wenn der Pod angeschlossen ist."; +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Bitte vergewissern Sie sich, dass der Pod sicher an Ihrem Körper befestigt ist.\n\nDer Katheter kann mit jedem Pod nur einmal eingeführt werden. Tippen Sie auf „Bestätigen“, wenn der Pod angeschlossen ist."; /* Instructions for deactivate pod when pod not on body */ -"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Bitte deaktiviere den Pod. Wenn die Deaktivierung abgeschlossen ist, kannst Du einen neuen Pod koppeln."; +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Bitte deaktivieren Sie den Pod. Wenn die Deaktivierung abgeschlossen ist, können Sie einen neuen Pod koppeln."; /* Instructions for deactivate pod when pod is on body */ -"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Bitte deaktiviere den Pod. Wenn die Deaktivierung abgeschlossen ist, kannst Du ihn entfernen und einen neuen Pod koppeln."; +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Bitte deaktivieren Sie den Pod. Wenn die Deaktivierung abgeschlossen ist, können Sie ihn entfernen und einen neuen Pod koppeln."; /* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ "Please enable bluetooth permissions for this app in system settings" = "Bitte aktiviere die Bluetooth-Berechtigungen für diese App in den Systemeinstellungen"; /* Alert content body for finishSetupReminder pod alert */ -"Please finish pairing your pod." = "Bitte schliesse die Kopplung des Pod ab."; +"Please finish pairing your pod." = "Bitte schließen Sie die Kopplung Ihres Pods ab."; /* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Bitte Koppel einen neuen Pod"; +"Please pair a new pod" = "Bitte koppel einen neuen Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Bitte positionieren Sie das iPhone weiter vom Pod entfernt"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Bitte positionieren Sie das iPhone relativ zum Pod neu"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Bitte verwenden Sie ein anderes Gerät mit Bluetooth-Funktion"; /* description label for activated at timne pod details row Label for pod insertion row */ "Pod Activated" = "Pod aktiviert"; /* Label describing pod age view */ -"Pod Age" = "Pod Alter"; +"Pod Age" = "Pod-Alter"; /* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod schon gekoppelt"; +"Pod already paired" = "Pod bereits gekoppelt"; /* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod schon vorbereitet"; +"Pod already primed" = "Pod bereits gefüllt"; /* Deactivate pod action button accessibility label when deactivation complete */ "Pod deactivated successfully. Continue." = "Pod erfolgreich deaktiviert. Weiter."; /* Error message for reservoir view during general pod fault Status highlight message for other alarm. */ -"Pod Error" = "Pod Fehler"; +"Pod Error" = "Pod-Fehler"; /* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = ""; +"Pod expiration advisory alarm" = "Ablaufalarm des Pods"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Hinweis zum Ablaufen des Pods"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod-Ablauferinnerung"; /* Description for Pod expired pod fault */ "Pod expired" = "Pod abgelaufen"; @@ -505,44 +729,62 @@ Label for pod expiration row, past tense Status highlight message for podExpired alarm. The title for Pod Expired alarm notification */ -"Pod Expired" = "Pod Abgelaufen"; +"Pod Expired" = "Pod abgelaufen"; /* Label for pod expiration row */ "Pod Expires" = "Pod läuft ab"; /* Label for pod life state when time remaining */ -"Pod expires in" = "Pod läuft ab in "; +"Pod expires in" = "Pod läufen ab in"; /* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ -"Pod expires in %1$@." = "Pod läuft ab in %1$@."; +"Pod expires in %1$@." = "Pod läuft in %1$@ ab."; /* description label for pod fault details */ -"Pod Fault Details" = "Pod-Fehlerdetails"; +"Pod Fault Details" = "Pod Fehlerdetails"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Podfehler: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Der Pod ist nicht bereit zum Einführen der Kanüle."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Der Pod ist nicht bereit zum Befüllen."; /* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod ist unterbrochen"; +"Pod is suspended" = "Pod ist angehalten"; /* Error message shown when the pod is not connected. */ "Pod not connected" = "Pod nicht verbunden"; /* Error message for reservoir view when pod occlusion checks failed Status highlight message for occlusion alarm. */ -"Pod Occlusion" = "Pod verstopft"; +"Pod Occlusion" = "Pod Verstopfung"; /* Pairing action button accessibility label when pairing succeeded */ -"Pod paired successfully. Continue." = "Pod Kopplung erfolgreich. Weiter."; +"Pod paired successfully. Continue." = "Pod erfolgreich gekoppelt. Weiter."; /* Alert content title for finishSetupReminder pod alert */ -"Pod Pairing Incomplete" = "Pod Kopplung unvollständig"; +"Pod Pairing Incomplete" = "Pod-Kopplung unvollständig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendet Bestätigung anstelle von Antwort"; /* Title for PodSetupView */ -"Pod Setup" = "Pod-Einrichtung"; +"Pod Setup" = "Pod Einrichtung"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Das Zeitfenster für die Pod-Einrichtung ist abgelaufen"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Erinnerung über abgelaufenen Pod "; /* Format string for poor pod signal strength */ "Poor signal strength" = "Schlechte Signalstärke"; /* Label text for step one of attach pod instructions */ -"Prepare site." = "Stelle reinigen"; +"Prepare site." = "Stelle vorbereiten."; /* title for previous pod page */ "Previous Pod" = "Vorheriger Pod"; @@ -552,32 +794,32 @@ /* Delivery status when pod is priming Pod status when priming */ -"Priming" = "Vorbereiten"; +"Priming" = "Befüllen"; /* Pod state when priming completed */ -"Priming completed" = "Vorbereiten abgeschlossen"; +"Priming completed" = "Befüllen des Pods abgeschlossen"; /* Pairing action button accessibility label while priming */ -"Priming. Please wait." = "Vorbereiten. Bitte Warten."; +"Priming. Please wait." = "Befülle, bitte warte."; /* Pod pairing action button text while priming */ -"Priming..." = "Vorbereiten…"; +"Priming..." = "Befülle…"; /* The title of the command to change pump time zone */ -"Pump Time" = "Uhrzeit"; +"Pump Time" = "Uhrzeit der Pumpe"; /* Label text for basal rate summary */ "Rate" = "Rate"; /* Pod state when ready for basal programming */ -"Ready for basal programming" = "Bereit zur Basalratenprogrammierung"; +"Ready for basal programming" = "Bereit für die Programmierung der Basalrate"; /* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Bereit zum Einführen des Katheters"; +"Ready to insert cannula" = "Bereit zum Einführen der Kanüle"; /* Label describing time remaining view Label for remaining time of manual basal */ -"Remaining" = "Verbleiben"; +"Remaining" = "Verbleibend"; /* Pod pairing reminder initialized */ "Reminder initialized" = "Erinnerung initialisiert"; @@ -593,25 +835,25 @@ /* Label indicating pod replacement necessary Settings page link description when next lifecycle action is to replace pod */ -"Replace Pod" = "Ersetze den Pod"; +"Replace Pod" = "Pod ersetzen"; /* Pump Event title for UnfinalizedDose with doseType of .resume */ "Resume" = "Fortsetzen"; /* Recovery suggestion when pod is suspended */ -"Resume delivery" = "Abgabe wiederaufnehmen"; +"Resume delivery" = "Insulinabgabe fortsetzen"; /* Alert content title for suspendEnded pod alert */ -"Resume Insulin" = "Insulin fortsetzen"; +"Resume Insulin" = "Insulinabgabe fortsetzen"; /* Text for suspend resume button when insulin delivery is suspended */ "Resume Insulin Delivery" = "Insulinabgabe wiederaufnehmen"; /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Wiederaufnehmen: %1$@ %2$@"; +"Resume: %1$@ %2$@" = "Fortsetzen: %1$@ %2$@"; /* Text for suspend resume button when insulin delivery is resuming */ -"Resuming insulin delivery..." = "Insulinabgabe wiederaufnehmen"; +"Resuming insulin delivery..." = "Nehme Insulinabgabe wieder auf…"; /* Action button description for deactivate after failed attempt Cannula insertion button text while showing error @@ -627,32 +869,58 @@ "Saving..." = "Speichere…"; /* Delivery status when scheduled basal is running */ -"Scheduled basal" = "Geplantes Basal"; +"Scheduled basal" = "Geplante Basalrate"; /* Delivery status when basal is running */ -"Scheduled Basal" = "Geplantes Basal"; +"Scheduled Basal" = "Geplante Basalrate"; -/* Title for scheduled expiration reminder edit page */ +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ "Scheduled Reminder" = "Geplante Erinnerung"; /* Title text for insulin type confirmation page */ "Select the type of insulin that you will be using in this pod." = "Wähle die Insulinart aus, die Du für diesen Pod benutzen möchtest."; +/* description label for sequence number pod details row */ +"Sequence Number" = "Sequenznummer"; + /* Button text for setting manual temporary basal rate */ -"Set Temporary Basal" = "Temporärere Basalrate setzen"; +"Set Temporary Basal" = "Temporäre Basalrate setzen"; /* Button title to set temporary basal rate */ "Set Temporary Basal Rate" = "Temporärere Basalrate setzen"; -/* Title for setup complete screen */ +/* Title for setup complete screen + Title of SetupCompleteView */ "Setup Complete" = "Einrichtung abgeschlossen"; +/* Description for shutdown imminent */ +"Shutdown imminent" = "Pod-Abschaltung steht bevor"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarm für die bevorstehende Pod-Abschaltung"; + /* Error message for reservoir view during general pod fault Status highlight when communications with the pod haven't happened recently. */ "Signal Loss" = "Signalverlust"; /* Format string for pod signal strength too high */ -"Signal strength too high" = "Signalstärke zu hoch"; +"Signal strength too high" = "Signalstärke ist zu hoch"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod-Onboarding überspringen?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Unterbrechen"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Abgabe unterbrechen"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Unterbrechungsfortschritts-Erinnerung"; /* Text for suspend resume button when insulin delivery active */ "Suspend Insulin Delivery" = "Insulinabgabe unterbrechen"; @@ -661,59 +929,95 @@ "Suspend time expired" = "Unterbrechungszeit abgelaufen"; /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Unterbrechen: %1$@ %2$@"; +"Suspend: %1$@ %2$@" = "Unterbrochen: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ "Suspended" = "Unterbrochen"; +/* Label for suspended at time */ +"Suspended At" = "Unterbrochen um"; + /* Text for suspend resume button when insulin delivery is suspending */ "Suspending insulin delivery..." = "Unterbreche die Insulinabgabe…"; +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Die Unterbrechungszeit ist abgelaufen. Öffnen Sie die App und fahren Sie fort."; + /* Label for PumpManager deletion button */ "Switch to other insulin delivery device" = "Zu einer anderen Pumpe wechseln"; +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Mit aktueller Uhrzeit synchronisieren."; + /* Pod tank fill completed */ -"Tank fill completed" = "Befüllen abgeschlossen."; +"Tank fill completed" = "Befüllen des Pods erfolgreich"; + +/* Pod power to motor activated */ +"Tank power activated" = "Energieversorgung für den Podmotor aktiviert"; /* Label text for step one of insert cannula instructions */ -"Tap below to start cannula insertion." = "Tippe unterhalb um das Einführen des Katheters zu starten."; +"Tap below to start cannula insertion." = "Tippe unten, um das Einführen der Kanüle zu starten."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporäre Basalrate"; /* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp. Basal wird abgegeben"; +"Temp basal in progress" = "Temporäre Basalrate läuft bereits."; /* Delivery status when temp basal is running */ -"Temp basal running" = "Temp. Basal läuft"; +"Temp basal running" = "Temporäre Basalrate läuft"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Temp Basal: %1$@ IE/h %2$@ %3$@ %4$@ IE %5$@"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ IE/h %2$@ %3$@ %4$@ IE %5$@"; /* Navigation Title for ManualTempBasalEntryView */ -"Temporary Basal" = "Temporärere Basalrate"; +"Temporary Basal" = "Temporäre Basalrate"; /* Alert title for a failure to set temporary basal */ -"Temporary Basal Failed" = "Temporärere Basalrate fehlgeschlagen"; +"Temporary Basal Failed" = "Temporary Basal fehlgeschlagen"; /* Footer text for omnipod reminders section */ -"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Die App konfiguriert eine Erinnerung auf dem Pod, um Dich vor Ablauf des Pods zu benachrichtigen. Lege die Anzahl der Stunden fest, die Du vor Ablauf des Pods benachrichtigt werden möchtest."; +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Die App konfiguriert eine Erinnerung auf dem Pod, um Dich vor Ablauf des Pods zu benachrichtigen. Legen die Anzahl der Stunden fest, die Du vor Ablauf des Pods benachrichtigt werden möchtest."; /* Description text on ExpirationReminderSetupView */ "The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Die App benachrichtigt Dich vor Ablauf des Pods.\n\nScrolle, um die gewünschte Anzahl von Stunden im Voraus festzulegen."; /* Description text on LowReservoirReminderSetupView */ -"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Die App benachrichtigt Dich, wenn die Insulinmenge im Pod diesen Wert erreicht (50-10 E).\n\nScrolle, um die Anzahl der Einheiten festzulegen, bei denen Du erinnert werden möchtest."; +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Die App benachrichtigt Dich, wenn die Insulinmenge im Pod diesen Wert erreicht (50-10 IE).\n\nScrolle, um die Anzahl der Einheiten festzulegen, bei der Du erinnert werden möchtest."; /* Footer text for low reservoir value row */ "The App notifies you when the amount of insulin in the Pod reaches this level." = "Die App benachrichtigt Dich, wenn die Insulinmenge im Pod diesen Wert erreicht."; /* Alert content body for suspendEnded pod alert */ -"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Die Insulinabschaltung ist beendet.\n\nDu kannst die Abgabe über das Banner auf dem Startbildschirm oder über den Bildschirm mit den Pumpeneinstellungen fortsetzen. Du wirst in 15 Minuten erneut erinnert."; +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Die Insulinabschaltung ist beendet.\n\nSie können die Abgabe über das Banner auf dem Startbildschirm oder über den Bildschirm mit den Pumpeneinstellungen fortsetzen. Sie werden in 15 Minuten erneut erinnert."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Die obigen Erinnerungen ertönen nicht, wenn sich Dein Gerät im Lautlos- oder Nicht-Stören-Modus befindet.\n\nEs gibt andere kritische Pod-Warnungen und -Alarme, die auch dann ertönen, wenn Dein Gerät auf „Lautlos“ oder „Nicht stören“ eingestellt ist."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Die Uhrzeit Ihrer Pumpe unterscheidet sich von Ihrer aktuellen Uhrzeit. Möchten Sie die Uhrzeit Ihrer Pumpe auf Ihre aktuelle Uhrzeit aktualisieren?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Die Uhrzeit Ihrer Pumpe weicht von der aktuellen Uhrzeit ab. Sie können die Uhrzeit der Pumpe überprüfen und in den Einstellungen mit der aktuellen Uhrzeit synchronisieren."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Die Uhrzeit der Pumpe weicht von der aktuellen Uhrzeit ab. Die Zeit der Pumpe steuert die geplanten Therapieeinstellungen. Scrolle nach unten zur Zeile Pumpenzeit, um den Zeitunterschied zu überprüfen und die Pumpe zu konfigurieren."; /* Description of proper cannula insertion */ "The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Das Fenster oben auf dem Pod sollte pinkfarben sein, wenn der Katheter ordentlich in die Haut eingeführt wurde."; +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Es gab ein Problem bei der Kommunikation mit dem Pod. Wenn dieses Problem weiterhin besteht, tippen Sie auf \"Pod verwerfen\". Sie können dann einen neuen Pod aktivieren."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dies ist eine Erinnerung, die Du beim Koppeln Deines aktuellen Pods eingestellt hast."; + /* Alert format string for missing temp basal configuration. */ "This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Dieser Pumpenmanager wurde nicht mit einer maximalen Basalrate konfiguriert, da er hinzugefügt wurde, bevor die Funktion manuelle temporäre Basalrate hinzugefügt wurde. Bitte gehe zu Therapieeinstellungen -> Abgabegrenzen und stelle eine neue maximale Basalrate ein."; +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + /* Label for expiration reminder row Label for scheduled expiration reminder row Label for scheduled reminder value row */ @@ -722,47 +1026,89 @@ /* Alert content title for timeOffsetChangeDetected pod alert Title for pod sync time action sheet. title for time change detected notice */ -"Time Change Detected" = "Zeitänderung erkannt."; +"Time Change Detected" = "Änderung der Uhrzeit erkannt"; /* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Es ist Zeit Deinen Pod zu wechseln! Der Pod läuft ab in %1$@"; +"Time to replace your pod! Your pod will expire in %1$@" = "Es ist Zeit Ihren Pod zu wechseln! Der Pod läuft ab in %1$@"; /* Error message description for PeripheralManagerError.timeout */ "Timeout" = "Zeitüberschreitung"; +/* No comment provided by engineer. */ +"Toggle sign" = "Zeichen umschalten"; + /* Error message for PodCommsError.tooManyPodsFound */ -"Too many pods found" = "Zu viele Pods gefunden"; +"Too many pods found" = "Zu viele Pods in Reichweite"; /* description label for total delivery pod details row */ -"Total Delivery" = "Gesamte Abgabe"; +"Total Delivery" = "Gesamt Abgabe"; /* Recovery suggestion when ack received instead of response recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ -"Try again" = "Wiederhole"; +"Try again" = "Versuchen Sie es erneut"; /* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ "Turn bluetooth on" = "Schalte Bluetooth ein"; +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + /* Units for showing temp basal rate */ "U/hr" = "IE/h"; /* Title of delivery uncertainty recovery page */ -"Unable to Reach Pod" = "Pod kann nicht erreichte werden"; +"Unable to Reach Pod" = "Pod kann nicht erreicht werden"; /* Title for pending command recovery screen */ "Unable To Reach Pod" = "Pod kann nicht erreicht werden"; +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Eine temporäre Basalrate kann nicht gesetzt werden: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Eine temporäre Basalrate kann nicht gesetzt werden: %1$@\n\n%2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Unsicher"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Unerwartete Sequenznummer der Nachricht"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Unerwarteter Podwechsel"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Unerwartete Antwort vom Pod"; + /* Label for pod life state when pod not fully activated */ -"Unfinished Activation" = ""; +"Unfinished Activation" = "Nicht abgeschlossene Aktivierung"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Nicht abgeschlossene Deaktivierung"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Unbekannte Charakteristik"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Unbekannter Podfehler %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Unbekannter Wert ( %1$@ ) für Typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Überprüfung fehlgeschlagen: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Warte bis der aktuelle Bolus abgeschlossen ist, oder brich den Bolus ab"; +"Wait for existing bolus to finish, or cancel bolus" = "Warte, bis der aktuelle Bolus abgegeben wurde, oder unterbreche diesen."; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Warten Sie, bis die aktuelle temporäre Basalrate beendet ist, oder unterbrechen Sie diese"; /* Label text for step two of insert cannula instructions */ -"Wait until insertion is completed." = "Warte bis das Einführen abgeschlossen ist."; +"Wait until insertion is completed." = "Warte bis das Einführen der Kanüle fertig ist."; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Warten auf Kopplungserinnerung"; /* Button label for user to answer cannula was properly inserted */ "Yes" = "Ja"; @@ -771,14 +1117,14 @@ "Yes, Deactivate Pod" = "Ja, deaktiviere Pod"; /* Button text to confirm pump time sync */ -"Yes, Sync to Current Time" = "Ja, auf die aktuelle Zeit stellen"; +"Yes, Sync to Current Time" = "Ja, mit aktueller Zeit synchronisieren"; /* bodyText for PodSetupView */ -"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Beginne nun damit, die Erinnerungen zu konfigurieren, Deinen Pod mit Insulin zu füllen, ihn mit Deinem Gerät zu koppeln und ihn an Deinem Körper zu platzieren."; +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Beginne nun damit, die Erinnerungen zu konfigurieren, Dein Pod mit Insulin zu füllen, ihn mit Deinem Gerät zu koppeln und ihn an Deinem Körper zu platzieren."; /* Format string for instructions for setup complete view. (1: app name) */ -"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Dein Pod ist bereit zur Nutzung.\n\n%1$@ wird Dich vor Ablauf des Pods erinnern. Du kannst dies auf eine für Dich angenehme Zeit einstellen. "; +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Dein Pod ist einsatzbereit.\n\n%1$@ erinnert Dich daran, Deinen Pod zu wechseln, bevor er abläuft. Du kannst eine für Dich passende Zeit wählen."; /* Alert message body for confirm pod attachment */ -"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Dein Pod gibt möglicherweise immer noch Insulin ab.\nEntferne ihn vom Körper und tippe dann auf „Weiter“."; +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Ihr Pod gibt möglicherweise immer noch Insulin ab.\nEntfernen Sie ihn vom Körper und tippen dann auf „Weiter“."; diff --git a/Dependencies/OmniBLE/OmniBLE/es.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/es.lproj/Localizable.strings index 31189b9075..e93e12ed71 100644 --- a/Dependencies/OmniBLE/OmniBLE/es.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/es.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactivo)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "Hace %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ ha recuperado la comunicación con el Pod que esta adherido a su cuerpo. \n\nLos registros de entrega de insulina se han actualizado y deben coincidir con lo que realmente se entregó. \n\nPuede ahora continuar usando %@ normalmente."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ para %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ no ha podido comunicarse con el Pod que esta adherido a su cuerpo desde %2$@.\n\nSin comunicación con el Pod, la app no puede seguir enviando órdenes de administración de insulina ni mostrar información precisa y reciente sobre su insulina activa o la insulina que está administrando el Pod.\n\nVigile de cerca sus niveles de glucosa durante las próximas 6 horas o más, ya que puede haber o no insulina activa en su cuerpo que %3$@ no puede mostrar."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "Queda %1$@ de insulina o menos en el Pod. Cambie el Pod pronto."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "quedan %1$@ unidades a las %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 hora"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 hora 30 minutos"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 horas"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutos"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tiempo de activación excedido"; + +/* description label for active time pod details row */ +"Active Time" = "Tiempo Activo"; + +/* Section header for activity section */ +"Activity" = "Actividad"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustando la hora de la bomba..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "¿Está seguro de que desea cancelar la configuración del Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "¿Está seguro de que desea saltearse de Omnipod Onboarding?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "¿Está seguro de que desea dejar de usar Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Coloque el Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Intentando restablecer la comunicación"; + +/* Description for auto-off */ +"Auto-off" = "Apagado automático"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarma de apagado automático"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Atrás"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal inicializada"; + /* Pod state when running below fifty units */ "Below 50 units" = "Menos de 50 unidades"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Versión del firmware BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth está apagado"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth se está reiniciando"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth no está disponible por una razón desconocida."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth no está disponible: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "El uso de Bluetooth no está autorizado"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "No se admite el uso de Bluetooth en este dispositivo"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolo en progreso"; @@ -16,91 +129,620 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Poniendo bolo con basal temporal"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Cancelar"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Cancelar basal manual"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Cánula insertada con éxito. Continúa."; + /* Pod state when inserting cannula */ "Cannula inserting" = "Cánula insertándose"; /* String describing a dose that was certainly scheduled */ "Certain" = "Programación acertada"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Cambie el Pod ahora. La administración de insulina se detendrá 8 horas después de que el Pod haya caducado o cuando no quede más insulina."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Cambie el Pod ahora. La administración de insulina se detendrá en %1$@ o cuando no quede más insulina."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Cambie el Pod ahora. La administración de insulina se detendrá en una hora."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Cambie el Pod ahora. El Pod ha estado activo durante 72 horas."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Revise la cánula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Revise el Pod, aplíquelo y, a continuación, confirme que este está bien colocado."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Comprobando inserción"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Comprobando..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Error de comando %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema de comunicaciones"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicaciones recuperadas"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problema de comunicación: Pendiente de confirmar comando."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Recordatorios de confianza"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Los recordatorios de confianza son pitidos que emite el Pod que pueden utilizarse para tener certeza de que se han seleccionado comandos."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Los recordatorios de confianza sonarán para los comandos que seleccione, como bolo, cancelar bolo, suspender, reanudar, guardar recordatorios de notificación, etc. Cuando Loop ajusta automáticamente la administración de insulina, no se utilizan recordatorios de confianza."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Recordatorios de confianza sonarán cuando Loop automáticamente ajuste la administración de insulina, así como para los comandos que selecciones."; + +/* Section header for configuration section */ +"Configuration" = "Configuración"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmar"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirme la fijación del Pod"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continuar"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "No se pudo analizar el mensaje: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alertas críticas"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Error crítico del Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interferencia posible. Muévase a una nueva ubicación"; + +/* Unit for singular day in pod life remaining */ +"day" = "día"; + +/* Unit for plural days in pod life remaining */ +"days" = "días"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Desactivar Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Pod desactivado"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Desactivando."; + +/* Action button description while deactivating */ +"Deactivating..." = "Desactivando..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Borrar Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Detalles del dispositivo"; + +/* description label for device name pod details row */ +"Device Name" = "Nombre del dispositivo"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Desactivado"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Descartar Pod"; + +/* No comment provided by engineer. */ +"Done" = "Completado"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Reservorio vacío"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Depósito vacío"; + /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Respuesta vacía del pod"; +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Valor vacío"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Habilitado"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Error"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Evento de error de registro, apagándose"; +/* Description for expiration advisory */ +"Expiration advisory" = "Aviso de caducidad"; + /* Description for expiration alert */ "Expiration alert" = "Alerta de caducidad"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Recordatorio de Caducidad"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Recordatorio de expiración predeterminado"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Extendido"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolo extendido ejecutándose"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolo extendido ejecutándose con basal temporal"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "No se pudo cancelar la insulina basal manual"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "No se pudo reanudar la administración de insulina"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "No se establecio la hora de la bomba"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "No se pudo suspender la administración de insulina"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "No se ha podido actualizar la preferencia de recordatorio de confianza."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "No se ha podido actualizar el recordatorio de Expiración"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "No se ha podido actualizar el recordatorio de Reserva Baja"; + +/* Pod life HUD view label */ +"Fault" = "Fallo"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Se ha producido un fallo"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Llene un nuevo Pod con insulina U-100 (deje puesta la tapa azul de la aguja del Pod)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Finalizar la desactivación"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Finalizar la desactivación"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Finalizar Emparejamiento"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Finalizar la Configuración"; + /* Description for finish setup */ "Finish setup " = "Fin de la configuración"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Finalizar recordatorio de configuración"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Versión del programa"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Quedan más de %1$@ unidades a las %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "hora"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "horas"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Si cancela la configuración del Pod, el Pod actual se desactivará y quedará inutilizable."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Excepción de paquete incorrecta: %1$@ (localizacion=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Respuesta incorrecta"; + /* Pod inititialized */ "Initialized" = " iniciado"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Insertar Cánula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Insertada"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Insertando cánula"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Insertando. Espere, por favor."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Insertando..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulina Suspendida"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "El suministro de insulina se detuvo. Cambiar Pod ahora."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "La administración de insulina se detendrá hasta que la reanude manualmente. ¿Cuándo desea que Loop le recuerde que debe reanudar la administración?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina restante"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulina Suspendida"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipo de Insulina"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipo de insulina no configurada"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Error pod interno %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrumpido: %1$@ U (%2$@ U planeadas) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Dirección no válida 0x %1$x. Esperada 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Dirección no válida: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC no válido"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Clave LTK no válida: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Configuración no válida"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "¿La cánula está insertada correctamente?"; + +/* description label for last status date pod details row */ +"Last Status" = "Último estado"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Escuche 2 pitidos."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop no ajustará automáticamente la administración de insulina hasta que la tasa de administracion de insulina basal temporal finalice o se cancele."; + +/* description label for lot number pod details row */ +"Lot Number" = "Número de lote"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Reserva baja"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Reserva baja"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Aviso de reserva baja (%1$gU)"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Alarma de aviso de depósito bajo"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Recordatorio de reserva baja"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Asegúrese de que el iPhone está cerca del pod activo"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Asegúrese de que su teléfono y su pod estén cerca uno del otro. Si los problemas de comunicación persisten, muévase a otra área."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Asegúrese de que su pod esté lleno y cerca."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Asegúrate que tu Pod se encuentra cerca e inténtalo de nuevo."; + /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Asegúrese de que su RileyLink está cerca y encendido"; +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Basal Manual"; + +/* Pod memory initialized */ +"Memory initialized" = "Memoria inicializada"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Mensaje de excepción de E/S: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuto"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutos"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuración faltante"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Muévete a una nueva área lejos de cualquier otro Pod e inténtalo de nuevo."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alerta de comandos múltiples"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "No disponible"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "No confirmado"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Siguiente"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "No"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "No hay administración"; + /* Pod alert state when no alerts are active */ "No alerts" = "No hay alertas"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "No se utilizan recordatorios de confianza."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Sin fallos"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "No hay insulina"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "No hay Pod"; + /* Error message shown when no pod is paired */ "No pod paired" = "No hay pod emparejado"; +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "No se encontraron Pods"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Sin recordatorio"; + /* Error message shown when no response from pod was received */ "No response from pod" = "Sin respuesta del pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "No hay RileyLink disponible"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "No, continúe con el Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantenga la bomba como está"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "No hay suficientes datos"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Configuración de las notificaciones"; + +/* No comment provided by engineer. */ +"Numbers" = "Números"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Oclusion detectada"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Oclusión detectada"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Recordatorios Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Emparejar Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Emparejar Pod"; + /* Pod status after pairing */ "Paired" = "Emparejado"; +/* Pod status when pairing completed */ +"Pairing completed" = "Emparejamiento completo"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Excepción de emparejamiento: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Emparejando."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Emparejando..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Error de parseo: %1$@ en (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "La carga útil crc32 %1$@ no coincide con el crc32 %2$@ calculado."; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Porcentaje = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Periférico no preparado"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Por favor, ponga solamente el Pod original en rango o desactivelo"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Por favor, acerque su pod al RileyLink e inténtelo de nuevo"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Compruebe que el Pod está bien adherido a su cuerpo.\n\nLa cánula sólo puede insertarse una vez con cada Pod. Pulse \"Confirmar\" cuando el Pod esté ya bien adherido a su cuerpo."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Por favor desactivar el Pod. Cuando la desactivación se haya completado, puede emparejar un nuevo Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Por favor desactivar el Pod. Cuando la desactivación se haya completado, puede retirarlo y emparejar un nuevo pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Habilite los permisos de bluetooth para esta aplicación en la configuración del sistema"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Por favor, termine de emparejar su Pod."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Por favor, empareje un nuevo pod"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Por favor, reposicione el iPhone más lejos del Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Por favor, cambie la posición del iPhone con respecto al Pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Por favor, utilice un dispositivo diferente con capacidades bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Activado"; + +/* Label describing pod age view */ +"Pod Age" = "Tiempo de Uso del Pod"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Ya hay un pod emparejado"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "El pod ya está purgado"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod desactivado correctamente. Continúa"; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Error del Pod"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Alarma de aviso de caducidad de un pod"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Aviso de vencimiento de un pod"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Recordatorio de expiración del Pod"; + /* Description for Pod expired pod fault */ "Pod expired" = "Pod caducado"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod caducado"; + +/* Label for pod expiration row */ +"Pod Expires" = "El Pod caduca"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "El Pod caduca en"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "El Pod expira en %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detalles de la falla del Pod"; + /* Format string for pod fault code */ "Pod Fault: %1$@" = "Error de pod: %1$@"; @@ -113,40 +755,212 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "El Pod está suspendido"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod no conectado"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Oclusión del Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod emparejado correctamente. Continúa."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Emparejamiento del Pod incompleto"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod envió acuse de recibo en lugar de respuesta"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configuración del Pod"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "La pantalla de configuración del pod ha caducado"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Recordatorio de que el Pod está suspendido"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Mala señal"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Prepare lugar de inserción"; + +/* title for previous pod page */ +"Previous Pod" = "Pod anterior"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Información anterior del Pod"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Purgando"; +/* Pod state when priming completed */ +"Priming completed" = "Purgado completado"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Purgando. Por favor, espere."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Purgando..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Hora de la bomba"; + +/* Label text for basal rate summary */ +"Rate" = "Tasa"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Listo para programar basales"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Listo para insertar la cánula"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Restante"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Recordatorio inicializado"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Retire la tapa azul de la aguja del Pod y revise la cánula. A continuación, retire el cobertor de papel."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Quitar el Pod del cuerpo"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Retire la bomba"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Reemplace el Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reanudar"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reanudar la entrega de insulina"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reanudar insulina"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reanude la administración de insulina"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Reanudar: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Reanudando la administración de insulina..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Reintentar"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Agregar"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Guardando..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Insulina basal programada"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Basal programada"; +"Scheduled Basal" = "Insulina basal programada"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Recordatorio programado"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Seleccione el tipo de insulina que utilizará en esta bomba."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Número de secuencia"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Establecer insulina basal temporal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Establecer tasa basal temporal"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Instalación completada"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Cierre inminente"; /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Apagar la alarma inminente"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pérdida de señal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Intensidad de la señal demasiado alta"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "¿Saltearse el Onboarding de Omnipod?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspender la infusión"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Recordatorio de Suspensión en curso"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspender la administración de insulina"; + +/* Description for suspend time expired */ +"Suspend time expired" = "El tiempo de suspensión ha expirado"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ "Suspended" = "Suspendido"; +/* Label for suspended at time */ +"Suspended At" = "Suspendido a las"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Suspendiendo la administración de insulina..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "El tiempo de suspensión ha terminado. Abra la aplicación y reanúdela."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Cambiar a otro dispositivo de administración de insulina"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizar con la hora actual"; + /* Pod tank fill completed */ "Tank fill completed" = "Completado el llenado del depósito"; /* Pod power to motor activated */ "Tank power activated" = "Depósito encendido"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Toque abajo para iniciar la inserción de la cánula."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Insulina basal temporal"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Basal temporal en progreso"; @@ -156,23 +970,158 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemporal: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Insulina basal temporal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "La insulina basal temporal ha fallado"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "La aplicación configura un recordatorio en el Pod para notificarle con antelación sobre la expiración del Pod. Establezca el número de horas de antelación con las que desea que le avise para emparejar un nuevo Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "La aplicación le avisa con antelación de la expiración del Pod.\n\nDesplácese para establecer el número de horas de antelación que le gustaría tener."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "La App le avisa cuando la cantidad de insulina en el Pod alcanza este nivel (50-10 U).\n\nDesplácese para establecer el número de unidades en las que desea que la App le avise."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "La aplicación le notifica cuando la cantidad de insulina en el Pod alcanza este nivel."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "El periodo de suspensión de la insulina ha finalizado.\n\nPuedes reanudar la administración desde el banner de la pantalla de inicio o desde la pantalla de ajustes de tu bomba. Se le recordará de nuevo en 15 minutos."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "La hora de la bomba es diferente de la hora actual. Desea actualizar la hora de su bomba a la hora actual?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "La hora de la bomba es diferente de la hora actual. Puedes revisar la hora de la bomba y sincronizarla con la hora actual en los ajustes."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "La hora de su bomba es diferente de la hora actual. La hora de su bomba controla los ajustes programados de su terapia. Desplácese hacia abajo hasta la fila que muestra la Hora de la Bomba para revisar la diferencia horaria y configurar su bomba."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La ventana situada en la parte superior del Pod debe volverse de color rosa cuando la cánula esté correctamente insertada en la piel."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Se ha producido un problema de comunicación con el Pod. Si el problema persiste, pulse Descartar Pod. A continuación, puede activar un nuevo Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Este es un recordatorio que programó cuando enlazó su Pod actual."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Este PumpManager no se ha configurado con una tasa basal máxima porque se añadió antes de que la tasa basal manual fuera una función disponible. Vaya a Configuración del tratamiento -> Límites de administración y establezca una nueva tasa basal máxima."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Hora"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Cambio de hora detectado"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Es hora de reemplazar el pod! El pod expira en %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Se acabó el tiempo"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Botón de alternar"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Se encontraron demasiados Pods"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Dosis total administrada"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Vuelva a intentarlo"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Activar bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hra"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "No se puede conectar el Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "No se puede conectar el Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "No se ha podido establecer una tasa de insulina basal temporal: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "No se ha podido establecer una tasa de insulina basal temporal: %1$@\n\n%2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Incierto"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Número de secuencia de mensaje inesperado"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Cambio inesperado de Pod"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Respuesta inesperada del pod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activación no terminada"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Desactivación no terminada"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Característica desconocida"; + /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Fallo de pod desconocido %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valor Desconocido (%1$@) para el tipo %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "La validación falló: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Espere a que termine el bolo o cancele el bolo"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Espere a que termine la basal temporal existente o suspénda para cancelar"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Espere hasta que finalice la inserción."; + /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Esperando el recordatorio de emperejamiento"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Sí"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Sí, desactivar Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sí, sincronizar con la hora actual"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Ahora comenzará el proceso de configurar sus recordatorios, llenar su Pod con insulina, emparejarlo con su dispositivo y colocárselo en el cuerpo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Su Pod está listo para usar.\n\n%1$@ le recordará cambiar su Pod antes de que caduque. Puede cambiarlo cuando sea un momento conveniente para usted."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Es posible que su Pod siga suministrando insulina.\nRetírelo de su cuerpo y pulse \"Continuar\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/fi.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/fi.lproj/Localizable.strings index 9d39921aec..6069150bb4 100644 --- a/Dependencies/OmniBLE/OmniBLE/fi.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/fi.lproj/Localizable.strings @@ -1,18 +1,46 @@ /* Description for an inactive alert modifier */ " (inactive)" = " (ei-aktiivinen)"; -/* The format string for minutes (1: number of minutes string) */ -"%1$@ minutes" = "%1$@ minuuttia"; +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@"; -/* The format string for Alerts: (1: the alerts string) */ -"Alerts: %1$@\n" = "Hälytykset: %1$@\n"; +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ yksikköä jäljellä klo %2$@"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivointiaika ylitetty"; + +/* description label for active time pod details row */ +"Active Time" = "Aktiivinen aika"; + +/* Section header for activity section */ +"Activity" = "Liikunta"; /* Description for auto-off alarm */ "Auto-off alarm" = "Autom. pois -varoitus"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Takaisin"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basaali alustettu"; + /* Pod state when running below fifty units */ "Below 50 units" = "Alle 50 yksikköä"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus vireillä"; @@ -25,17 +53,55 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Annostellaan bolus ja tilap. basaali"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Kumoa"; + /* Pod state when inserting cannula */ "Cannula inserting" = "Asetetaan kanyyli"; /* String describing a dose that was certainly scheduled */ "Certain" = "Varma"; +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Tarkistetaan..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Komentovirhe %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Yhteysongelma"; + +/* Section header for configuration section */ +"Configuration" = "Määritykset"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Jatka"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deaktivoi pumppu"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Deaktivoitu"; -/* The format string for Delivery Status: (1: delivery status string) */ -"Delivery Status: %1$@\n" = "Annostelun tila: %1$@\n"; +/* No comment provided by engineer. */ +"Done" = "Valmis"; /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Säiliö tyhjä"; @@ -43,26 +109,79 @@ /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Tyhjä vastaus pumpulta"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Käytössä"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Virhe"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Virhetapahtuma, suljetaan"; /* Description for expiration alert */ "Expiration alert" = "Pumppu vanhenee -varoitus"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Vanhenemismuistutus"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Annostelun jatkaminen epäonnistui"; + +/* Pod life HUD view label */ +"Fault" = "Virhe"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Virhetapahtuma"; + /* Description for finish setup */ "Finish setup " = "Lopeta asennus"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Laiteohjelmiston versio"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Enemmän kuin %1$@ yksikköä jäljellä klo %2$@"; + /* Pod inititialized */ "Initialized" = "Aloitettu"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Aseta kanyyli"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Asetetaan kanyyli"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuliini pysäytetty"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insuliinityyppi"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Sisäinen pumpun vika %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KeskeytettyBolus: %1$@ U (%2$@ U ohjelmoitu) %3$@ %4$@ %5$@"; -/* The format string for Last Bolus Not Delivered: (1: bolus not delivered string) */ -"Last Bolus Not Delivered: %1$@ U\n" = "Viim. bolusta ei annosteltu: %1$@ U\n"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Virheellinen osoite 0x%1$x. Odotettu 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Virheellinen osoite: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Virheellinen CRC"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Säiliö vähissä"; /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Säiliö lähes tyhjä -tiedotehälytys"; @@ -70,9 +189,25 @@ /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja kytketty päälle"; +/* Pod memory initialized */ +"Memory initialized" = "Muisti alustettu"; + /* Pod alert state when no alerts are active */ "No alerts" = "Ei hälytyksiä"; +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ei vikoja"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ei insuliinia"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ei pumppua"; + /* Error message shown when no pod is paired */ "No pod paired" = "Ei yhdistettyä pumppua"; @@ -86,21 +221,36 @@ Pod state when running above fifty units */ "Normal" = "Normaali"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Tietoja ei ole tarpeeksi"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Tukos havaittu"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + /* Pod status after pairing */ "Paired" = "Yhdistetty"; +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Tuo vain alkuperäinen pumppu kantaman sisälle tai poista alkuperäinen pumppu käytöstä"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Vie pumppu ja RileyLink lähemmäksi toisiaan ja yritä uudelleen"; /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Yhdistä uusi pumppu"; +/* Label describing pod age view */ +"Pod Age" = "Pumpun ikä"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pumppu on jo yhdistetty"; @@ -116,6 +266,14 @@ /* Description for Pod expired pod fault */ "Pod expired" = "Pumppu vanhentunut"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pumppu vanhentunut"; + /* Format string for pod fault code */ "Pod Fault: %1$@" = "Pumppuvirhe: %1$@"; @@ -128,28 +286,73 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pumppu on pysäytetty"; +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pumppu lähetti kuittauksen vastauksen sijaan"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Pumpun asennusaika umpeutui"; +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Heikko signaali"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Alustetaan"; +/* Pod state when priming completed */ +"Priming completed" = "Alustus valmis"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Valmis basaalin ohjelmointiin"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Valmis kanyylin asetukseen"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Jäljellä"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Muistutus alustettu"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Vaihda pumppu"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Jatka: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Yritä uudelleen"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Tallenna"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Ohjelmoitu basaali"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Ohjelmoitu basaali"; +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Valitse insuliinin tyyppi, jota käytät tässä pumpussa."; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Asennus valmis"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Mykistä hälytys"; +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signaali liian voimakas"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pysäytä annostelu"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Pysäytä: %1$@ %2$@"; @@ -162,6 +365,9 @@ /* Pod power to motor activated */ "Tank power activated" = "Säiliön virta aktivoitu"; +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tilapäinen basaali"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Tilapäinen basaali meneillään"; @@ -171,18 +377,48 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TilapBasaali: %1$@ U/h %2$@ %3$@ %4$@ U %5$@"; +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Aika"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Aika vaihtaa pumppu! Pumppu vanhenee %1$@"; +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Yritä uudelleen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Epävarma"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Odottamaton viestin järjestysnumero"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Odottamaton pumpun vaihto"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Odottamaton vastaus pumpusta"; /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Tuntematon pumppuvirhe %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Tuntematon arvo (%1$@) tyypille %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Vahvistus epäonnistui: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Odota, että meneillään oleva bolus päättyy tai kumoa bolus"; diff --git a/Dependencies/OmniBLE/OmniBLE/fr.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/fr.lproj/Localizable.strings index 56e9b7844c..55790abdbc 100644 --- a/Dependencies/OmniBLE/OmniBLE/fr.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/fr.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactif)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "Il y a %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "La communication entre %@ et le Pod sur votre corps a été rétablie.\n\nLes enregistrements d'administration d'insuline ont été mis à jour et devraient correspondre à ce qui a été effectivement administré.\n\nVous pouvez continuer à utiliser %@ normalement maintenant."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ pendant %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ n'a pas pu communiquer avec le Pod sur votre corps depuis %2$@ . \n\nSans communication avec le Pod, l'application ne peut pas continuer à envoyer des commandes pour l'administration d'insuline ou afficher des informations précises et récentes sur votre insuline active ou l'insuline administrée par le Pod. \n\nSurveillez attentivement votre glycémie pendant les 6 prochaines heures ou plus, car il peut y avoir ou non de l'insuline active dans votre corps que %3$@ ne peut pas afficher."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insuline ou moins restant dans le Pod. Remplacer le Pod bientôt."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unités restantes à %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 heure"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 heure 30 minutes"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 heures"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutes"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Délai d'activation dépassé"; + +/* description label for active time pod details row */ +"Active Time" = "Heure d’activation"; + +/* Section header for activity section */ +"Activity" = "Activité"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustement de l'horloge de la pompe..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Voulez-vous vraiment annuler la configuration du Pod ?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Voulez-vous vraiment sauter l'intégration Omnipod ?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Voulez-vous vraiment arrêter d'utiliser Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Appliquer le Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Tenter de rétablir la communication"; + +/* Description for auto-off */ +"Auto-off" = "Arrêt automatique"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarme d’arrêt automatique"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Retour"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialisé"; + /* Pod state when running below fifty units */ "Below 50 units" = "en dessous de 50 unités"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Version du micrologiciel BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth désactivé"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Le Bluetooth se réinitialise"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth n’est pas disponible pour une raison inconnue."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth n’est pas disponible : %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "L’utilisation de Bluetooth n’est pas autorisée"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "L'utilisation de Bluetooth n'est pas prise en charge sur cet appareil"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus en cours"; @@ -14,7 +127,21 @@ "Bolusing" = "Bolus en cours"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus en cours avec basale temporaire"; +"Bolusing with temp basal" = "Bolus en cours avec basal temporaire"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Annuler"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annulation du débit basal manuel"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "La canule a été insérée correctement. Continuez"; /* Pod state when inserting cannula */ "Cannula inserting" = "Canule en cours d'insertion"; @@ -22,69 +149,554 @@ /* String describing a dose that was certainly scheduled */ "Certain" = "Certain"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Remplacer le pod maintenant. L'administration d'insuline s'arrêtera 8 heures après l'expiration du pod ou lorsque qu'il ne restera plus d'insuline."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Remplacer le Pod maintenant. L'administration d'insuline s'arrêtera dans %1$@ ou lorsqu'il ne restera plus d'insuline."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Remplacer le Pod maintenant. L'administration d'insuline s'arrêtera dans 1 heure."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Remplacer le Pod maintenant. Le Pod est actif depuis 72 heures."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Vérifier la canule"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Vérifiez le pod, placez-le sur le site, puis confirmez qu'il est bien appliqué."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Vérification de l'insertion en cours"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Vérification en cours..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Erreur de commande %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problème de com."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Communications récupérées"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problème de communication : Commande en attente sans accusé de réception."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Rappels de confiance"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Les rappels de confiance sont des bips émis par le Pod qui peuvent être utilisés pour confirmer l'exécution des commandes sélectionnées."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Les rappels de confiance retentiront pour les commandes que vous initiez, comme administrer ou annuler un bolus, suspendre, reprendre, enregistrer les rappels de notification, etc. Lorsque Loop ajuste automatiquement l'administration, aucun rappel de confiance n’est utilisé."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Des rappels de confiance retentiront lorsque Loop ajustera automatiquement l'administration ainsi que pour les commandes que vous lancez."; + +/* Section header for configuration section */ +"Configuration" = "Configuration"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmer"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirmer l'application du Pod"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continuer"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Impossible d'analyser le message : %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alertes critiques"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Erreur critique du Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interférences possibles. Veuillez vous déplacer vers un nouvel emplacement"; + +/* Unit for singular day in pod life remaining */ +"day" = "jour"; + +/* Unit for plural days in pod life remaining */ +"days" = "jours"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Désactiver le Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Désactivé"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Désactivation."; + +/* Action button description while deactivating */ +"Deactivating..." = "Désactivation en cours..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Supprimer Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Information de l’appareil"; + +/* description label for device name pod details row */ +"Device Name" = "Nom de l'appareil"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Désactivé"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Jeter le Pod"; + +/* No comment provided by engineer. */ +"Done" = "Terminé"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Réservoir vide"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Réservoir vide"; + /* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Réponse vide du pod"; +"Empty response from pod" = "Réponse vide du Pod"; + +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Valeur vide"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Activé"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Erreur"; /* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Événement d’erreur envoyé, arrêt en cours"; +"Error event logged, shutting down" = "Erreur enregistrée, arrêt en cours"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Avertissement d'expiration"; /* Description for expiration alert */ "Expiration alert" = "Alerte d'expiration"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Rappel d'expiration"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Rappel d'expiration par défaut"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Étendu"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolus étendu en cours"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus étendu en cours avec basal temporaire"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Échec d'annulation du basal manuel"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Échec de la reprise de l’administration d’insuline"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Échec de réglage de l'heure de la pompe"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Échec de la suspension de l'administration d'insuline"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Échec de la mise à jour des préférences de rappel de confiance."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Échec de la mise à jour du rappel d'expiration"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Échec de la mise à jour du rappel de réservoir bas"; + +/* Pod life HUD view label */ +"Fault" = "Erreur"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Une erreur s'est produite"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Remplir un nouveau Pod avec de l'insuline U-100 (laisser le capuchon bleu de l'aiguille du Pod en place)"; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Terminer la désactivation"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Terminer la désactivation"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Terminer le jumelage"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Terminer l'installation"; + /* Description for finish setup */ -"Finish setup " = "Installation terminée"; +"Finish setup " = "Finir l'installation"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Terminer le paramétrage du rappel"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Version du micrologiciel"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Plus de %1$@ unités restantes à %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "heure"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "heures"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Si vous annulez la configuration du Pod, le Pod actuel sera désactivé et sera inutilisable."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Exception de paquet incorrecte : %1$@ (emplacement=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Réponse incorrecte"; /* Pod inititialized */ "Initialized" = "Initialisé"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Insérer la canule"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inrérée"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Insertion de la canule"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Insertion en cours. Attendez."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Insertion en cours..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nSuspendue"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Administration de l'insuline"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "L'administration d'insuline s'est arrêtée. Changez de Pod maintenant."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "L'administration d'insuline sera interrompue jusqu'à ce que vous la repreniez manuellement. Quand voulez-vous que Loop vous rappelle de reprendre l'administration ?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insuline restante"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline suspendue"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Type d'insuline"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Type d'insuline non configuré"; + /* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "code d'erreur du pod %1$03d"; +"Internal pod fault %1$03d" = "Code d'erreur interne du Pod %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolus interrompu: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolus interrompu: %1$@ U (%2$@ U programmé) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Adresse invalide 0x%1$x. Attendu 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Adresse invalide: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC invalide"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Clé LTK non valide: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Paramètre invalide"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "La canule est-elle insérée correctement?"; + +/* description label for last status date pod details row */ +"Last Status" = "Dernier statut"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Écoutez pour 2 bips."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop n'ajustera pas automatiquement votre administration d'insuline tant que le débit basal temporaire ne sera pas terminé ou annulé."; + +/* description label for lot number pod details row */ +"Lot Number" = "Numéro de lot"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Réservoir bas"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Réservoir bas"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Avis de réservoir bas (%1$gU)"; /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Alarme de réservoir bas"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Rappel de réservoir bas"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Assurez-vous que votre iPhone est à proximité du Pod"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Assurez-vous que votre téléphone et votre Pod sont proches l'un de l'autre. Si les problèmes de communication persistent, déplacez-vous vers un nouvel endroit."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Assurez-vous que votre Pod est rempli et à proximité."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Assurez-vous que votre Pod est à proximité et réessayez."; + /* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Assurez vous que votre RileyLink est à proximité et allumé"; +"Make sure your RileyLink is nearby and powered on" = "Assurez-vous que votre RileyLink est à proximité et allumé"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Débit basal manuel"; + +/* Pod memory initialized */ +"Memory initialized" = "Mémoire initialisée"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Exception sur message E/S: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minute"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutes"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuration manquante"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Déplacez-vous vers un nouvel endroit éloigné de tout autre Pod et réessayez."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alerte de commande multiple"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "N.A."; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Suivant"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Non"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Pas d'administration"; /* Pod alert state when no alerts are active */ "No alerts" = "Pas d'alarme"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Aucun rappel de confiance n'est utilisé."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Pas de défauts"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Pas d'insuline"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Aucun Pod"; + /* Error message shown when no pod is paired */ -"No pod paired" = "Pas de pod appairé"; +"No pod paired" = "Aucun pod appairé"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Aucun Pod trouvé"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Pas de rappel"; /* Error message shown when no response from pod was received */ -"No response from pod" = "Pas de réponse du pod"; +"No response from pod" = "Pas de réponse du Pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Aucun RileyLink disponible"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Non, continuez avec le Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Non, garder la pompe telle quelle"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Pas assez de données"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Paramétrage des notifications"; + +/* No comment provided by engineer. */ +"Numbers" = "Nombres"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Occlusion détectée"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Occlusion détectée"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Rappels Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Appairer le Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Appairer le pod."; + /* Pod status after pairing */ "Paired" = "Appairé"; +/* Pod status when pairing completed */ +"Pairing completed" = "Appairage terminé"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Exception pendant l'appairage : %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Appairage."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Appairage en cours..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Erreur d'analyse : %1$@ dans (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Payload crc32 %1$@ ne correspond pas au crc32 calculé %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Pourcentage = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Le périphérique n'est pas prêt"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Veuillez rapprocher le Pod original ou désactiver le Pod d'origine"; + /* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Merci de rapprocher votre pod du RileyLink et d'essayer à nouveau"; +"Please bring your pod closer to the RileyLink and try again" = "Merci de rapprocher votre Pod du RileyLink et d'essayer à nouveau"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Veuillez confirmer que le Pod est solidement attaché à votre corps. \n\n La canule ne peut être insérée qu'une seule fois avec chaque Pod. Appuyez sur \"Confirmer\" lorsque le Pod est appliqué."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Veuillez désactiver le pod. Une fois la désactivation terminée, vous pouvez appairer un nouveau Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Veuillez désactiver le pod. Une fois la désactivation terminée, vous pouvez le retirer et appairer un nouveau pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Veuillez activer les autorisations Bluetooth pour cette application dans les paramètres système"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Veuillez finir d'appairer votre Pod."; /* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Merci d'appairer un nouveau pod"; +"Please pair a new pod" = "Merci d'appairer un nouveau Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Veuillez repositionner l’iPhone plus loin du Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Veuillez repositionner l’iPhone par rapport au Pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Veuillez utiliser un autre appareil avec Bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod activé"; + +/* Label describing pod age view */ +"Pod Age" = "Âge Pod"; /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod déjà appairé"; @@ -92,54 +704,250 @@ /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod déjà amorcé"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod désactivé avec succès. Continuez."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Erreur du Pod"; + /* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarme d'expiration du pod"; +"Pod expiration advisory alarm" = "Alarme d'expiration du Pod"; /* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notification de l'expiration du pod"; +"Pod Expiration Notice" = "Notification de l'expiration du Pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Rappel d'expiration du Pod"; /* Description for Pod expired pod fault */ "Pod expired" = "Pod expiré"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod expiré"; + +/* Label for pod expiration row */ +"Pod Expires" = "Péremption du Pod"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Péremption du Pod dans"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Péremption du Pod dans %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Détails de l'erreur du pod"; + /* Format string for pod fault code */ -"Pod Fault: %1$@" = "Erreur du pod: %1$@"; +"Pod Fault: %1$@" = "Erreur du Pod: %1$@"; /* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Le pod n’est pas dans un état prêt pour l’insertion de la canule"; +"Pod is not in a state ready for cannula insertion." = "Le Pod n’est pas dans un état prêt pour l’insertion de la canule"; /* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Le pod n’est pas dans un état prêt pour l’amorçage"; +"Pod is not in a state ready for priming." = "Le Pod n’est pas dans un état prêt pour l’amorçage"; /* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Le pod est suspendu"; +"Pod is suspended" = "Le Pod est suspendu"; + +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod non connecté"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Occlusion du Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod appairé avec succès. Continuez."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Appairage du Pod incomplet"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Le Pod a envoyé un ack au lieu d'une réponse"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configuration du Pod"; /* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "La fenêtre de mise en place du pod a expiré"; +"Pod setup window expired" = "La fenêtre de mise en place du Pod a expiré"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Rappel de la suspension du Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Faible intensité du signal"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Préparer le site."; + +/* title for previous pod page */ +"Previous Pod" = "Pod précédent"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informations sur le Pod précédent"; /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Amorçage"; +/* Pod state when priming completed */ +"Priming completed" = "Amorçage terminé"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Amorçage. S'il vous plaît, attendez."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Amorçage..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Heure de la pompe"; + +/* Label text for basal rate summary */ +"Rate" = "Débit"; + /* Pod state when ready for basal programming */ -"Ready for basal programming" = "Prêt pour la programmation de la basale"; +"Ready for basal programming" = "Prêt pour la programmation basal"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Prêt à insérer la canule"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Restant"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Rappel initialisé"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Retirez le capuchon d'aiguille bleu du pod et vérifiez la canule. Retirez ensuite le film en papier de l'autocollant."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Retirer le Pod du corps"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Retirer la pompe"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Remplacer le Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reprendre"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reprendre l'administration"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reprendre l'insuline"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reprendre l'administration d'insuline"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Reprise : %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Reprise de l'administration d'insuline..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Réessayer"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Sauvegarder"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Sauvegarde en cours..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Basal programmé"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmée"; +"Scheduled Basal" = "Basal programmé"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Rappel programmé"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Sélectionnez le type d'insuline que vous utiliserez dans ce Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numéro de séquence"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Régler basal temporaire"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Régler basal temporaire"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "L’installation est terminée"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Arrêt imminent"; /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Alarme imminente d’arrêt"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perte de signal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Intensité du signal trop forte"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Ignorer la phase d'intégration d'Omnipod ?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendre"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspendre l'administration"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Rappel de suspension en cours"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspendre l'administration d'insuline"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Délai de suspension expiré"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Suspension : %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendue"; +"Suspended" = "Suspendu"; + +/* Label for suspended at time */ +"Suspended At" = "Suspendu à"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Suspension de l'administration d'insuline..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "La période de suspension est terminée. Ouvrez l'application et reprenez."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Passer à un autre dispositif d'administration d'insuline"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniser avec l'heure actuelle"; /* Pod tank fill completed */ "Tank fill completed" = "Remplissage du réservoir terminé"; @@ -147,32 +955,173 @@ /* Pod power to motor activated */ "Tank power activated" = "Charge du réservoir activée"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Appuyez ci-dessous pour commencer l'insertion de la canule."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Débit basal temporaire"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basale temporaire en cours"; +"Temp basal in progress" = "Basal temporaire en cours"; /* Delivery status when temp basal is running */ -"Temp basal running" = "Basale temporaire active"; +"Temp basal running" = "Basal temporaire active"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Basale temporaire: %1$@ U/heure %2$@ %3$@ %4$@ U %5$@"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Basal temporaire: %1$@ U/heure %2$@ %3$@ %4$@ U %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Basale temporaire"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Échec mise en route basal temporaire"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "L'application configure un rappel pour vous avertir à l'avance de l'expiration du pod. Définissez le nombre d'heures de préavis que vous souhaitez lors de l'appairage d'un nouveau pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "L'application vous avertit à l'avance de l'expiration du pod. \n\n Faites défiler pour définir le nombre d'heures de préavis que vous souhaitez."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "L'application vous avertit lorsque la quantité d'insuline dans le Pod atteint ce niveau (50-10 U).\n\nFaites défiler pour définir le nombre d'unités à partir duquel vous souhaitez être averti."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "L'application vous avertit quand la quantité d'insuline restante dans le pod atteint cette limite"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "La période de suspension de l'insuline est terminée. \n\nVous pouvez relancer l'administration à partir de la bannière sur l'écran d'accueil ou à partir de l'écran des paramètres de votre pompe. Vous recevrez un nouveau rappel dans 15 minutes."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "L'heure de votre pompe est différente de l'heure actuelle. Voulez vous mettre à jour l'heure de votre pompe avec l'heure actuelle ?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "L'heure de votre pompe est différente de l'heure actuelle. Vous pouvez vérifier l'heure de la pompe et la synchroniser avec l'heure actuelle dans les paramètres."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "L'heure de votre pompe est différente de l'heure actuelle. L'heure de votre pompe contrôle les paramètres de votre traitement. Faites défiler jusqu'à la ligne Heure de Pompe pour vérifier le décalage de l'heure et configurer votre pompe."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La fenêtre située sur le dessus du Pod est colorée en rose lorsque la canule est correctement insérée dans la peau."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Il y a eu un problème de communication avec le Pod. Si ce problème persiste, appuyez sur Jeter le pod. Vous pourrez ensuite activer un nouveau Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Ceci est un rappel que vous avez programmé quand vous avez appairé votre Pod actuel."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Ce gestionnaire de pompe n'a pas été configuré avec un débit basal maximal parce qu'il a été rajouté avant que le basal temporaire manuel soit une fonctionnalité. Veuillez aller dans Réglages de thérapie -> Limites d'administration et configurer un nouveau débit basal maximal."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Heure"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Changement d'heure détecté"; /* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "C’est le moment de remplacer votre pod ! Votre pod va expirer dans %1$@"; +"Time to replace your pod! Your pod will expire in %1$@" = "C’est le moment de remplacer votre Pod ! Votre Pod va expirer dans %1$@"; + +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Temps expiré"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Bouton de bascule"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Trop de Pods trouvés"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Total administré"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Réessayer"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Activer le bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Impossible de joindre le Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Impossible de joindre le Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Impossible de définir un débit basal temporaire: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Impossible de définir un débit basal temporaire: %1$@\n\n%2$@"; /* String describing a dose that was possibly scheduled */ "Uncertain" = "Incertain"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Numéro de séquence du message inattendu"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Changement inattendu du pod"; + /* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Reponse inattendue du pod"; +"Unexpected response from pod" = "Reponse inattendue du Pod"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activation inachevée"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Désactivation inachevée"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Caractéristique inconnue"; /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Erreur de pod inconnue %1$03d"; +"Unknown pod fault %1$03d" = "Erreur de Pod inconnue %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valeur inconnue (%1$@) pour le type %2$@."; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Échec de la validation: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Attendez que le bolus en cours se termine, ou annulez le bolus"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Attendez que la basale se termine pour quitter, ou mettez en suspens pour annuler"; +"Wait for existing temp basal to finish, or suspend to cancel" = "Attendez que le débit basal temporaire se termine pour quitter, ou mettez en suspens pour annuler"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Attendez que l'insertion soit terminée."; /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "En attente d'appairage"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Oui"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Oui, désactiver le Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Oui, synchroniser avec l'heure actuelle"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Vous allez maintenant commencer à configurer vos rappels, à remplir votre Pod d'insuline, à l'appairer et à le placer sur votre corps."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Votre Pod est prêt à l'emploi. \n\n %1$@ vous rappellera de le remplacer avant qu'il n'expire. Vous pouvez changer ce rappel qui vous convient."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Votre Pod peut encore délivrer de l'insuline.\nRetirez-le de votre corps, puis appuyez sur \"Continuer\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/he.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/he.lproj/Localizable.strings index acdec02594..4e045d8d14 100644 --- a/Dependencies/OmniBLE/OmniBLE/he.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/he.lproj/Localizable.strings @@ -1,9 +1,36 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ ago"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* description label for active time pod details row */ +"Active Time" = "Active Time"; + +/* Section header for activity section */ +"Activity" = "Activity"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Auto-off alarm"; /* Pod state when running below fifty units */ "Below 50 units" = "Below 50 units"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus in progress"; @@ -16,12 +43,47 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Bolusing with temp basal"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Cancel"; + /* Pod state when inserting cannula */ "Cannula inserting" = "Cannula inserting"; /* String describing a dose that was certainly scheduled */ "Certain" = "Certain"; +/* Section header for configuration section */ +"Configuration" = "Configuration"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continue"; + +/* Unit for singular day in pod life remaining */ +"day" = "יום"; + +/* Unit for plural days in pod life remaining */ +"days" = "ימים"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deactivate Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Deactivated"; @@ -31,18 +93,52 @@ /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Empty response from pod"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Enabled"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Error"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Error event logged, shutting down"; /* Description for expiration alert */ "Expiration alert" = "Expiration alert"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Expiration Reminder"; + +/* Pod life HUD view label */ +"Fault" = "Fault"; + /* Description for finish setup */ "Finish setup " = "Finish setup "; +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware Version"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Greater than %1$@ units remaining at %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "שעה"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "שעות"; + /* Pod inititialized */ "Initialized" = "Initialized"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Insert Cannula"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Internal pod fault %1$03d"; @@ -55,6 +151,12 @@ /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; +/* Unit for singular minute in pod life remaining */ +"minute" = "דקה"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "דקות"; + /* Pod alert state when no alerts are active */ "No alerts" = "No alerts"; @@ -74,6 +176,9 @@ /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Occlusion detected"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; @@ -86,6 +191,9 @@ /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Please pair a new pod"; +/* Label describing pod age view */ +"Pod Age" = "Pod Age"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod already paired"; @@ -113,6 +221,10 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod is suspended"; +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "חסימה בפוד"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Pod setup window expired"; @@ -126,15 +238,43 @@ /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Ready to insert cannula"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Remaining"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Replace Pod"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Retry"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Save"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Scheduled Basal"; +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Setup Complete"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Shutdown imminent alarm"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "אובדן אות"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspend Delivery"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; @@ -156,15 +296,41 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "שעה"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "לא ניתן להשיג את פוד"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "לא ניתן להשיג את פוד"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "לא ניתן להגדיר בזאלי זמני:%1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "לא ניתן להגדיר בזאלי זמני: %1$@ \n\n %2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Uncertain"; /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Unexpected response from pod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "הפעלה לא הושלמה"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "השבתה לא הושלמה"; + /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; @@ -174,5 +340,18 @@ /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "המתן עד להשלמת ההכנסה."; + /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Waiting for pairing reminder"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "כן"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "כעת מתחילים בתהליך של הגדרת התזכורות שלך, מילוי הפוד שלך באינסולין, שיוך למכשיר שלך והנחתו על גופך."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "הפוד שלך מוכן לשימוש. \n\n %1$@ יזכיר לך להחליף את הפוד שלך לפני שתוקפו יפוג. אתה יכול לשנות את זה לזמן שנוח לך."; + diff --git a/Dependencies/OmniBLE/OmniBLE/hi.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..917df1bb96 --- /dev/null +++ b/Dependencies/OmniBLE/OmniBLE/hi.lproj/Localizable.strings @@ -0,0 +1,23 @@ +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "निरस्त"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "जारी"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "समय"; + diff --git a/Dependencies/OmniBLE/OmniBLE/it.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/it.lproj/Localizable.strings index ffc8290a98..f6c26054b8 100644 --- a/Dependencies/OmniBLE/OmniBLE/it.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/it.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(inattivo)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ fa"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ ha ripristinato la comunicazione con il Pod sul tuo corpo.\n\nI dati di somministrazione d'insulina sono stati aggiornati e dovrebbero corrispondere a quanto è stato effettivamente erogato.\n\nOra è possibile continuare a utilizzare %@ normalmente."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ per %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ ha perso la comunicazione con il pod sul suo corpo da %2$@.\n\nSenza comunicazione con il Pod, l'app non può continuare a inviare comandi per la somministrazione d'insulina ne far visualizzare informazioni accurate recenti sull'insulina attiva o sull'insulina erogata dal Pod.\n\nMonitorare attentamente la glicemia per le prossime 6 o più ore, poiché potrebbe esserci o meno insulina attiva nel corpo che %3$@ non è in grado di visualizzare."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulina o meno rimanenti nel Pod. Cambia presto il Pod."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unità rimanenti alle ore %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 ora"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 ora e 30 minuti"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 ore"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minuti"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tempo di attivazione superato"; + +/* description label for active time pod details row */ +"Active Time" = "Tempo Attivo"; + +/* Section header for activity section */ +"Activity" = "Attività"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Regolazione Orario Microinfusore..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sei sicuro di voler annullare la configurazione del Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sei sicuro di voler saltare la procedura di installazione di Omnipod?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Sei sicuro di voler interrompere l’uso di Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Applicare il Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Tentativo in corso di ristabilire la comunicazione"; + +/* Description for auto-off */ +"Auto-off" = "Spegnimento automatico"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Allarme spegnimento automatico"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Indietro"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basale inizializzata"; + /* Pod state when running below fifty units */ "Below 50 units" = "Inferiore a 50 unità"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Versione firmware BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth è spento"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth si sta riconfigurando"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth non disponibile per ragioni sconosciute."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth non disponibile:%1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "L'uso del Bluetooth non è autorizzato"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Questo dispositivo non supporta la connessione Bluetooth"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolo in corso"; @@ -11,96 +124,625 @@ "Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; /* Delivery status when bolusing */ -"Bolusing" = "Somministrazione in bolo in corso"; +"Bolusing" = "Bolo in corso"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Somministrazione in bolo con velocità basale temporanea"; +"Bolusing with temp basal" = "Bolo con basale temp"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Annulla"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annulla basale manuale"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "La cannula è stata inserita con successo. Continua."; /* Pod state when inserting cannula */ "Cannula inserting" = "Inserimento cannula in corso"; /* String describing a dose that was certainly scheduled */ -"Certain" = "Certa"; +"Certain" = "Definita"; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Cambiare il Pod ora. L'erogazione dell'insulina si interromperà dopo 8 ore dalla scadenza del Pod o quando non rimane più insulina nel Pod."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Cambiare Pod ora. L' erogazione d'insulina si interromperà tra %1$@ o quando non ci sarà più insulina nel serbatoio."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Cambia Pod ora. L'erogazione dell'insulina si interromperà tra 1 ora."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Cambia Pod ora. Il Pod è attivo da 72 ore."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Controlla la cannula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Controllare il Pod, applicare sul sito e confermare il fissaggio del pod."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Controllo dell'inserimento"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Controllo in corso"; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Errore di comando %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema di Comunicazione"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicazioni recuperate"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problema di comunicazione: comando di conferma in attesa."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Promemoria di fiducia"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "I promemoria di fiducia sono segnali acustici emessi dal Pod che possono essere utilizzati per confermare i comandi selezionati."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "I promemoria di fiducia suoneranno per i comandi inoltrati, come boli, cancellazione boli, sospensioni, ripristini erogazione, ecc. Quando Loop invece regola in automatico l'erogazione allora non userà alcun promemoria di fiducia."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "I promemoria di fiducia suonano quando Loop regola automaticamente l'erogazione e per i comandi avviati dall'utente."; + +/* Section header for configuration section */ +"Configuration" = "Configurazione"; + +/* Button title for confirm attachment option */ +"Confirm" = "Conferma"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Conferma collegamento Pod"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continua"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Impossibile analizzare il messaggio: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Avvisi critici"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Errore critico Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Possibile dialogo incrociato. Si prega di spostarsi in una nuova posizione"; + +/* Unit for singular day in pod life remaining */ +"day" = "giorno"; + +/* Unit for plural days in pod life remaining */ +"days" = "giorni"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Disattiva Pod"; /* Pod state when pod has been deactivated */ "Deactivated" = "Disattivato"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Disattivazione."; + +/* Action button description while deactivating */ +"Deactivating..." = "Disattivazione..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Elimina Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Dettagli del dispositivo"; + +/* description label for device name pod details row */ +"Device Name" = "Nome del dispositivo"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Disabilitato"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Scarta Pod"; + +/* No comment provided by engineer. */ +"Done" = "Fine"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Serbatoio vuoto"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Serbatoio Vuoto"; + /* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Risposta senza contenuto da Pod"; +"Empty response from pod" = "Risposta senza contenuto dal Pod"; + +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Valore vuoto"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Abilitato"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Errore"; /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "È stato rilevato un errore. Spegnimento in corso"; +/* Description for expiration advisory */ +"Expiration advisory" = "Consultivo di scadenza"; + /* Description for expiration alert */ "Expiration alert" = "Avviso di scadenza"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Promemoria scadenza"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Promemoria scadenza predef."; + +/* Title string for BeepPreference.extended */ +"Extended" = "Prolungato"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolo prolungato in esecuzione"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolo prolungato in esecuzione con Basale Temporanea"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Impossibile Cancellare Basale Manuale"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Impossibile riprendere l'erogazione dell'insulina"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Impossibile impostare Orario Microinfusore"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Impossibile Sospendere Erogazione Insulina"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Impossibile aggiornare la preferenza per il promemoria di fiducia."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Impossibile aggiornare Promemoria di Scadenza"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Impossibile aggiornare il Promemoria Livello Serbatoio Basso"; + +/* Pod life HUD view label */ +"Fault" = "Guasto"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Si è verificato un errore"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Riempire un nuovo Pod con insulina U-100 (lasciare il cappuccio blu del Pod)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Completa la disattivazione"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Disattivazione completata"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Abbinamento completato"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Completa l'installazione"; + /* Description for finish setup */ "Finish setup " = "Termina configurazione"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Promemoria configurazione completa"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Versione Firmware"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Più di %1$@ unità rimanenti a %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "ora"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "ore"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Se annulli la configurazione del Pod, il Pod corrente verrà disattivato e sarà inutilizzabile."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Eccezione pacchetto errato: %1$@ (posizione=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Risposta errata"; + /* Pod inititialized */ "Initialized" = "Inizializzato"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Inserire Cannula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inserito"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Inserimento Cannula"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Inserimento. Attendere prego."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Inserimento..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Erogazione Insulina sospesa"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulina Somministrata"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "L'erogazione d'insulina si è interrotta. Cambiare Pod adesso."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "La somministrazione d'insulina verrà interrotta fino a quando non riprenderà manualmente. Quando vuoi che Loop ti ricordi di riprendere la consegna?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina Rimanente"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Erogazione Insulina sospesa"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipo d'insulina"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipo d'insulina non Configurato"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Errore interno Pod %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrotto: %1$@ U (%2$@ U previste) %3$@ %4$@ %5$@"; +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolo Interrotto: %1$@ U (%2$@ U previste) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Indirizzo non valido 0x %1$x . Previsto 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Indirizzo non valido: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC non valido"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Chiave LTK non valida: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Impostazione non valida"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "La cannula è inserita correttamente?"; + +/* description label for last status date pod details row */ +"Last Status" = "Ultimo stato"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Ascolta 2 segnali acustici."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop non regolerà automaticamente l'erogazione d'insulina fino a quando l'impostazione della basale temporanea non sarà terminata o cancellata."; + +/* description label for lot number pod details row */ +"Lot Number" = "Numero di Lotto"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Livello Serbatoio basso"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Livello Serbatoio basso"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Notifica serbatoio basso (%1$gU)"; /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Allarme di avviso livello serbatoio basso"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Promemoria Livello Serbatoio Basso"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Assicurati che l'iPhone sia vicino al Pod attivo"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Assicurati che il tuo telefono e il Pod siano vicini uno all'altro. Se il problema di comunicazione persiste, spostati in un'altra zona."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Assicurati che il tuo Pod sia pieno e nelle vicinanze."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Assicurati che il tuo Pod sia nelle vicinanze e riprova."; + /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Assicurati che RileyLink si trovi nelle vicinanze e sia acceso"; +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Basale Manuale"; + +/* Pod memory initialized */ +"Memory initialized" = "Memoria inizializzata"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Errore nell'accedere file del tipo IO: %1$@ "; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuto"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuti"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configurazione mancante"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Spostati in una nuova area lontana da qualsiasi altro Pod e riprova."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Avviso di comandi multiplo"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Non disponibile"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Negativo"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Prossimo"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "No"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Non Erogazione"; + /* Pod alert state when no alerts are active */ "No alerts" = "Nessun avviso"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Non vengono utilizzati promemoria sulla fiducia."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Nessun errore"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Insulina Terminata"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "No Pod"; + /* Error message shown when no pod is paired */ "No pod paired" = "Nessun Pod abbinato"; +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nessun Pod trovato"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Nessun promemoria"; + /* Error message shown when no response from pod was received */ "No response from pod" = "Nessuna risposta da Pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Nessun RileyLink disponibile"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "No, Continuare con il Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantienere la pompa così com'è"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normale"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Dati non sufficienti"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Impostazioni"; + +/* No comment provided by engineer. */ +"Numbers" = "Numeri"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Occlusione rilevata"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Occlusione Rilevata"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Promemoria Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Abbina Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Abbina Pod."; + /* Pod status after pairing */ "Paired" = "Abbinato"; +/* Pod status when pairing completed */ +"Pairing completed" = "Abbinamento completato"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Abbinamento non eseguito:%1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Abbinamento in corso."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Abbinamento in corso..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Errore di analisi: %1$@ in ( %2$@ )"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Il payload crc32 %1$@ non corrisponde al crc32 calcolato %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Percentuale = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Periferica non pronta"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Si prega di portare solo il pod originale nel raggio d'azione o disattivare il pod originale"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Avvicina Pod a RileyLink e riprova"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Si prega di confermare che il Pod è saldamente fissato al corpo.\n\nLa cannula può essere inserita una sola volta con ogni Pod. Tocca \"Conferma\" quando Pod è collegato."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Si prega di disattivare il Pod. Al termine della disattivazione, è possibile associare un nuovo Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Si prega di disattivare il Pod. Al termine della disattivazione, è possibile rimuoverlo e accoppiare un nuovo Pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Si prega di abilitare le autorizzazioni bluetooth per questa app nelle impostazioni di sistema"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Completa l'abbinamento del tuo Pod."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Abbina nuovo Pod"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Si prega di riposizionare iPhone più lontano dal Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Si prega di riposizionare iPhone rispetto al Pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Si prega di utilizzare un dispositivo diverso con funzionalità Bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod attivato"; + +/* Label describing pod age view */ +"Pod Age" = "Età Pod"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod già abbinato"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod già caricato"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod disattivato con successo. Continua."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Errore Pod"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Allarme di avviso scadenza Pod"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Avviso di scadenza Pod"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Promemoria scadenza Pod"; + /* Description for Pod expired pod fault */ "Pod expired" = "Pod scaduto"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Scaduto"; + +/* Label for pod expiration row */ +"Pod Expires" = "Scadenza Pod"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod scade in"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod scade in %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Dettagli errore Pod"; + /* Format string for pod fault code */ "Pod Fault: %1$@" = "Errore Pod: %1$@"; @@ -113,40 +755,212 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod sospeso"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod non connesso"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Occlusione Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod accoppiato con successo. Continua."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Accoppiamento Pod incompleto"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod ha inviato una conferma anziché una risposta"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configurazione Pod"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Finestra di configurazione Pod scaduta"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Promemoria sospensione Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Scarsa potenza segnale"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Preparare il sito."; + +/* title for previous pod page */ +"Previous Pod" = "Pod precedente"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informazioni Pod precedente"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Caricamento in corso"; +/* Pod state when priming completed */ +"Priming completed" = "Caricamento completato"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Caricamento in corso. Attendere prego."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Caricamento in corso..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Orario Micro"; + +/* Label text for basal rate summary */ +"Rate" = "Velocità"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Pronto per la programmazione basale"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Pronto per l’inserimento della cannula"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Rimanente"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Promemoria inizializzato"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Rimuovere il cappuccio blu dell'ago del Pod e controllare la cannula. Quindi rimuovere il supporto di carta."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Rimuovi il Pod dal corpo"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Rimuovere microinfusore"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Sostituisci Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Riprendi"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Riprendi erogazione"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Riprendi l'insulina"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Riprendi Erogazione Insulina"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Riprendi: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Ripresa erogazione insulina..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Riprova"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Salva"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Salvataggio..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Basale Programmata"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmato"; +"Scheduled Basal" = "Basale Programmata"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Promemoria Programmato"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Seleziona il tipo d'insulina che utilizzerai in questo Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numero progressivo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Impostazione Base Temporanea"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Impostazione Base Temporanea"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Impostazione completata"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Chiusura imminente"; /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Allarme di spegnimento imminente"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perdita Segnale"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Potenza del segnale troppo alta"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Saltare la procedura di installazione di Omnipod?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Blocco Erogazione"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Sospendi erogazione"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Promemoria sospensione in corso"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Sospendi l'erogazione d'insulina"; + +/* Description for suspend time expired */ +"Suspend time expired" = "il tempo della sospensione e' scaduto"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Sospeso: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ "Suspended" = "Sospeso"; +/* Label for suspended at time */ +"Suspended At" = "Sospeso a"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Sospendere l'erogazione d'insulina..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Il tempo di sospensione è scaduto. Apri l'app e riprendi."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Passare ad un altro dispositivo per la somministrazione d'insulina"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizza con l'ora corrente"; + /* Pod tank fill completed */ "Tank fill completed" = "Riempimento del serbatoio completato"; /* Pod power to motor activated */ "Tank power activated" = "Alimentazione del serbatoio attivata"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tocca sotto per iniziare l'inserimento della cannula."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Basale Temporanea"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Velocità basale temporanea in corso"; @@ -156,23 +970,158 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "VelocitàBasaleTemporanea: %1$@ U/ora %2$@ %3$@ %4$@ U %5$@"; +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Basale Temporanea"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Basale Temporanea Fallita"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "L'App puo' configurare un promemoria capace di avvisare in anticipo della scadenza del Pod.\n\nPer impostare il numero di ore preferito per il preavviso dalla voce Omnipod della schermata principale usare i submenu' Configurazione>Impostazioni Notifiche>Notifica Scadenza e sceglire il numero di ore desiderato per l'avviso di scadenza."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "L'App può avvisare in anticipo della scadenza del Pod.\n\nPer impostare il numero di ore in anticipo desiderato scorrere nella lista ore ed impostare il numero di ore desiderato"; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "L'App puo' dare un avviso quando la quantità di insulina nel Pod raggiunge un certo determinato livello compreso fra 50-10 Unita'.\n\nPer impostare questo avviso scorrere nella lista delle Unita' di insulina e scegliere il numero per il quale si desidera ricevere l'avviso."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "L'App puo' avvisare quando la quantità di insulina nel Pod raggiunge un predisposto determinato livello."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Il periodo di sospensione dell'insulina è terminato.\n\nSi puo' ripristinare l'erogazione usando direttamente l'avviso nella schermata principale oppure dalla schermata delle impostazioni del microinfusore. Ogni 15 minuti ci sara' un avviso che ti ricordera' di ripristinare l'erogazione."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "l'orario del microinfusore e' diverso da quello del tempo attuale. Vuoi fare un controllo e cambiare l'orario del microinfusore con il tempo attuale?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "l'orario del microinfusore e' diverso da quello del tempo reale. Controllare l'orario del microinfusore e sincronizzare il settaggio con il l'orario attuale."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "L'orario impostato nel microinfusore è diverso dall'orario corrente. L'orario del microinfusore detta e controlla le impostazioni della terapia programmata e va corretto: Nella lista degli 'orari del microinfusore verificare la differenza di orario e configurare correttamente il microinfusore."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La finestra nella parte superiore del Pod sara' di colore rosa quando la cannula è stata inserita correttamente nella pelle."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Si è verificato un problema di comunicazione con il Pod. Se il problema persiste, toccare Elimina Pod, e dopo si procedere ad attivare un nuovo Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Questo è un promemoria che hai pianificato quando hai accoppiato il tuo Pod corrente."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Il manager di questo microinfusore non è stato configurato con una dose di basale massima perché questa è stata inserita prima che la basale temporanea manuale diventasse una funzione attiva. Si prega di Andare su Impostazioni terapia - > Limiti erogazione e impostare un nuovo profilo di basale massima."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tempo"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Rilevato Cambio di orario "; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "È ora di sostituire Pod! Pod scadrà tra %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Tempo scaduto"; + +/* No comment provided by engineer. */ +"Toggle sign" = "segnale di attivazione/disattivazione"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Trovati Troppi Pods"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Erogazione Totale"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Riprovare"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Attiva il Bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/ora"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Impossibile raggiungere Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Impossibile raggiungere Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Impossibile impostare una velocità basale temporanea: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Impossibile impostare una velocità basale temporanea: %1$@\n\n%2$@"; + /* String describing a dose that was possibly scheduled */ -"Uncertain" = "Non certa"; +"Uncertain" = "Incerto"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Notifica inaspettata di sequenza numerica "; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Cambio pod imprevisto"; /* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Risposta inaspettata da Pod"; +"Unexpected response from pod" = "Risposta inaspettata dal Pod"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Attivazione non completata"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Disattivazione non completata"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Caratteristica sconosciuta"; /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Errore Pod sconosciuto %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valore sconosciuto%1$@per tipo%2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Convalida fallita: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Attendi il termine del bolo esistente oppure annulla bolo"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Attendi il termine della velocità basale temporanea esistente oppure sospendi per annullare"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Attendere il completamento dell'inserimento."; + /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "In attesa del promemoria di abbinamento"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "sì"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Sì, disattiva il pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sì, sincronizza con l'ora corrente"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Ora inizierai il processo di configurazione dei tuoi promemoria, riempiendo il tuo Pod d'insulina, accoppiandolo al tuo dispositivo e posizionandolo sul tuo corpo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Il tuo Pod è pronto per l'uso. \n\n %1$@ ti ricorderà di cambiare il tuo pod prima che scada. Questo orario puo' cambiato per un altro a te piu' conveniente."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Il tuo Pod potrebbe ancora erogare insulina.\n Rimuovilo dal tuo corpo, e poi tocca \"Continua\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/ja.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/ja.lproj/Localizable.strings index 0acc662740..a933ee71a6 100644 --- a/Dependencies/OmniBLE/OmniBLE/ja.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/ja.lproj/Localizable.strings @@ -1,27 +1,74 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ 前"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%2$@の時点で %1$@ U 残っています"; + +/* description label for active time pod details row */ +"Active Time" = "アクティブ時間"; + +/* Section header for activity section */ +"Activity" = "アクティビティ"; + /* Description for auto-off alarm */ "Auto-off alarm" = "アラーム自動オフ"; /* Pod state when running below fifty units */ "Below 50 units" = "50Uより下"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "ボーラス"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "ボーラスが進行中"; -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"ボーラス: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - /* Delivery status when bolusing */ "Bolusing" = "ボーラス注入中"; /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "一時基礎とボーラス"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "キャンセル"; + /* Pod state when inserting cannula */ "Cannula inserting" = "カニューレ挿入中"; /* String describing a dose that was certainly scheduled */ "Certain" = "確実"; +/* Section header for configuration section */ +"Configuration" = "コンフィグレーション"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "次へ"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "ポッドを無効にする"; + /* Pod state when pod has been deactivated */ "Deactivated" = "停止されました"; @@ -31,18 +78,46 @@ /* Error message shown when empty response from pod was received */ "Empty response from pod" = "ポッドからの反応 - 空"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "有効"; + +/* Accessibility label indicating an error occurred */ +"Error" = "エラー"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "エラーイベントを保存、終了します"; /* Description for expiration alert */ "Expiration alert" = "期限切れアラート"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "有効期限リマインダー"; + +/* Pod life HUD view label */ +"Fault" = "エラー"; + /* Description for finish setup */ "Finish setup " = "設定終了"; -/* Pod initialized */ +/* description label for firmware version pod details row */ +"Firmware Version" = "ファームウェアバージョン"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "%2$@時点で %1$@U以上残っています"; + +/* Pod inititialized */ "Initialized" = "初期化完了"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "カニューレを挿入"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "インターナルポッドエラー %1$03d"; @@ -74,6 +149,9 @@ /* Description for Occlusion detected pod fault */ "Occlusion detected" = "閉塞があります"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; @@ -86,6 +164,9 @@ /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "新しいポッドをペアリングしてください"; +/* Label describing pod age view */ +"Pod Age" = "ポッド経過時間"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "既にペアリングされています"; @@ -120,21 +201,48 @@ Pod status when priming */ "Priming" = "プライミング"; +/* Pod pairing action button text while priming */ +"Priming..." = "プライミング中"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "基礎レート設定できます"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "カニューレを挿入できます"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "残り"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "ポッドを交換"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "再開: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "やり直す"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "保存"; + /* Delivery status when basal is running */ "Scheduled Basal" = "定期基礎"; +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "設定完了"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "今から鳴るアラームを切る"; +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "注入を一時停止"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "一時停止: %1$@ %2$@"; @@ -159,20 +267,12 @@ /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "ポッドの交換時です。 %1$@でポッドの期限が切れます。"; +/* Units for showing temp basal rate */ +"U/hr" = "U/時"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "不明"; /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "ポッドから予期せぬ反応"; -  -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "不明なポッドエラー %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "進行中のボーラスが完了するのを待つか、ボーラスをキャンセルしてください。"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "進行中の一時基礎が完了するのを待つか、一時基礎を停止してください"; -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "ペアリングリマインダー待機中"; diff --git a/Dependencies/OmniBLE/OmniBLE/nb.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/nb.lproj/Localizable.strings index 96540c1f41..ac12ec90db 100644 --- a/Dependencies/OmniBLE/OmniBLE/nb.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/nb.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(inaktiv)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ siden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ har gjenopprettet kommunikasjonen med pod på kroppen din. \n\n Insulintilførselsjournaler er oppdatert og bør samsvare med det som faktisk ble levert. \n\n Du kan fortsette å bruke %@ normalt nå."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ for %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ har ikke vært i stand til å kommunisere med pod på kroppen din siden %2$@ . \n\n Uten kommunikasjon med pod kan ikke appen fortsette å sende kommandoer for insulintilførsel eller vise nøyaktig, fersk informasjon om ditt aktive insulin eller insulinet som leveres av pod. \n\n Overvåk blodsukkerverdi nøye de neste 6 timene eller mer, siden det kan være insulin som virker aktivt i kroppen din som %3$@ ikke kan vise."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulin eller mindre gjenstår i Pod. Bytt Pod snart."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter gjenstår ved %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 time"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 time 30 minutter"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 timer"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutter"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktiveringstiden er overskredet"; + +/* description label for active time pod details row */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Er du sikker på at du vil avbryte Pod-oppsettet?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Er du sikker på at du vil hoppe over Omnipod Onboarding?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Er du sikker på at du vil slutte å bruke Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Fest Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Prøver å gjenopprette kommunikasjonen"; + +/* Description for auto-off */ +"Auto-off" = "Auto-av"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarm for automatisk av"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbake"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialisert"; + /* Pod state when running below fifty units */ "Below 50 units" = "Under 50 enheter"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "BLE fastvareversjon"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth er slått av"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth tilbakestilles"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth er utilgjengelig av en ukjent grunn."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth er utilgjengelig: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Bruk av Bluetooth er uautorisert"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth-bruk støttes ikke på denne enheten"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus pågår"; @@ -16,90 +129,619 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Gir bolus med temp-basal"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Avbryt"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Avbryt manuell basal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyle skutt inn vellykket. Fortsett."; + /* Pod state when inserting cannula */ "Cannula inserting" = "Setter inn kanyle"; /* String describing a dose that was certainly scheduled */ "Certain" = "Sikker"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Bytt Pod nå. Insulintilførselen vil stoppe 8 timer etter at pod har utløpt eller når det ikke er mer insulin igjen."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Bytt Pod nå. Insulintilførselen vil stoppe om %1$@ eller når det ikke er mer insulin igjen."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Bytt Pod nå. Insulintilførselen stoppes om 1 time."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Bytt Pod nå. Pod har vært aktiv i 72 timer."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Sjekk kanyle"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Sjekk pod, påfør, og bekreft deretter at pod er festet."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrollerer innsetting"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Sjekker..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofeil %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikasjonsutgave"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Kommunikasjon gjenopprettet"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Kommunikasjonsproblem: Ukjent kommando venter."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Bekreftelser"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Tillitspåminnelser er pip fra pod som kan brukes til å bekrefte valgte kommandoer."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Tillitspåminnelser høres for kommandoer du starter, for eksempel bolus, avbryt bolus, suspendere, gjenoppta, lagre varslingspåminnelser osv. Når Loop automatisk justerer leveringen, brukes mistillitspåminnelser."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Tillitspåminnelser vil høres når Loop automatisk justerer leveringen så vel som for kommandoer du starter."; + +/* Section header for configuration section */ +"Configuration" = "Konfigurasjon"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bekreft"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bekreft at Pod er festet"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Fortsett"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Kunne ikke analysere meldingen: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritiske varsler"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Pod-feil"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Crosstalk mulig. Vennligst flytt til et nytt sted"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dager"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deaktiver Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Deaktivert"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktiverer."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktiverer..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Slett Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Enhetsdetaljer"; + +/* description label for device name pod details row */ +"Device Name" = "Enhetsnavn"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Deaktivert"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Kast Pod"; + +/* No comment provided by engineer. */ +"Done" = "Ferdig"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Tomt reservoar"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Tomt reservoar"; + /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Tomt svar fra pod"; +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Tom verdi"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Aktivert"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Feil"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Feil logget, avslutter"; +/* Description for expiration advisory */ +"Expiration advisory" = "Veiledning for utløp"; + /* Description for expiration alert */ "Expiration alert" = "Utløpsalarm"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Påminnelse om utløp"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Utløpspåminnelse Standard"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Forlenget"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Forlenget boluskjøring"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Forlenget boluskjøring med temp basal"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Kunne ikke avbryte manuell basal"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Kunne ikke gjenoppta insulinlevering"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Kunne ikke stille inn klokkeslett for pumpe"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Kunne ikke stanse insulintilførselen"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Kan ikke oppdatere innstillinger for påminnelsesalarm."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Kunne ikke oppdatere Utløpspåminnelse"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Kunne ikke oppdatere påminnelsen om lavt reservoar"; + +/* Pod life HUD view label */ +"Fault" = "Feil"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Feilhendelse oppstod"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Fyll en ny pod med U-100 insulin (la den blå nålehetten være på)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Fullfør deaktivering"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Fullfør deaktivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Fullfør sammenkoblingen"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Fullfør oppsettet"; + /* Description for finish setup */ "Finish setup " = "Ferdigstill oppsett"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Fullfør varselinnstilling"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware versjon"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Større enn %1$@ enheter igjen ved %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "time"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "timer"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Hvis du avbryter Pod-oppsettet, vil gjeldende Pod deaktiveres og bli ubrukelig."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Feil pakkeunntak: %1$@ (lokasjon=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Feil respons"; + /* Pod inititialized */ "Initialized" = "Klargjort"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Før inn kanyle"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Ført inn"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Skyter inn kanyle"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Fører inn. Vennligst vent."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Fører inn..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulintilførsel utsatt"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførselen stoppet. Bytt Pod nå."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Insulintilførselen vil bli stoppet til du gjenopptar manuelt. Når vil du at Loop skal minne deg på å gjenoppta leveringen?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Gjenværende insulin"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintilførsel utsatt"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulintype ikke konfigurert"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Intern pod-feil %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ugyldig adresse 0x%1$x. Forventet 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ugyldig adresse: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ugyldig CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Ugyldig LTK-nøkkel: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ugyldig konfigurasjon"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Er kanylen satt inn riktig?"; + +/* description label for last status date pod details row */ +"Last Status" = "Siste status"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Lytt etter 2 pip."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop vil ikke automatisk justere insulintilførselen før den midlertidige basaldosen er ferdig eller avbrytes."; + +/* description label for lot number pod details row */ +"Lot Number" = "Lot-nummer"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Lavt reservoar"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Lavt reservoar"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Varsel om lavt reservoar (%1$gU)"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Anbefalt alarm for lavt reservoar"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Påminnelse om lavt reservoar"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Forsikre deg om at iPhone er i nærheten av den aktive pod"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Forsikre deg om at telefonen og pod er nær hverandre. Hvis kommunikasjonsproblemer vedvarer, flytter du til et nytt område."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Sørg for at pod er fylt og i nærheten."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Kontroller at pod er i nærheten, og prøv på nytt."; + /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Pass på at din RileyLink er slått på og er i nærheten"; +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuell basal"; + +/* Pod memory initialized */ +"Memory initialized" = "Minne initialisert"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Melding IO-unntak: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minutt"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutter"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Mangler Konfigurasjon"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Flytt til et nytt område borte fra andre pods og prøv igjen."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alarm for fler-kommandoer"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "N/A"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Neste"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nei"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Ingen Leveranse"; + /* Pod alert state when no alerts are active */ "No alerts" = "Ingen alarmer"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Ingen aktive påminnelser."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ingen feil"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Pod"; + /* Error message shown when no pod is paired */ "No pod paired" = "Ingen sammenkoblet pod"; +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Ingen pod funnet"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Ingen påminnelse"; + /* Error message shown when no response from pod was received */ "No response from pod" = "Ingen svar fra pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Ingen RileyLink tilgjengelig"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nei, fortsett med Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nei, behold pumpen som den er"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Ikke nok data"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Varslingsinnstillinger"; + +/* No comment provided by engineer. */ +"Numbers" = "Tall"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Tilstoppelse oppdaget"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Okklusjon oppdaget"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Alert acknowledgment OK button */ +"OK" = "Ok"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod-påminnelser"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Par Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Sammenkoble pod."; + /* Pod status after pairing */ "Paired" = "Sammenkoblbet"; +/* Pod status when pairing completed */ +"Pairing completed" = "Sammenkobling fullført"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Paringsunntak: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Kobler sammen."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Kobler sammen..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Analysefeil: %1$@ i (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Payload crc32 %1$@ does not match computed crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Prosent = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Periferutstyr ikke klar"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Ta kun med original pod innenfor rekkevidde eller deaktiver original pod"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Prøv å sette pod og RileyLink nærmere hverandre og prøv så igjen"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Vennligst bekreft at pod er godt festet til kroppen din. \n\n Kanylen kan bare settes inn én gang med hver pod. Trykk på \"Bekreft\" når pod er festet."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Vennligst deaktiver pod. Når deaktiveringen er fullført, kan du pare en ny pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Vennligst deaktiver pod. Når deaktiveringen er fullført, kan du fjerne den og pare en ny pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Aktiver Bluetooth-tillatelser for denne appen i systeminnstillingene"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Vennligst fullfør sammenkoblingen av pod."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Vennligst koble til ny pod"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Vennligst flytt iPhone lenger fra pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Vennligst flytt iPhone i forhold til pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Bruk en annen enhet med Bluetooth-funksjoner"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Aktivert"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Alder"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod er allerede sammenkoblet"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod er allerede fyllt"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod ble deaktivert. Fortsett."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Pod Feil"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Anbefalt utløpsalarm for pod"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Utløpsmelding for pod"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod utløpspåminnelse"; + /* Description for Pod expired pod fault */ -"Pod expired" = "Utløpt pod"; +"Pod expired" = "Pod utløpt"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Utløpt"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod Utløper"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod utløper om"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod utløper om %1$@ ."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod-feildetaljer"; /* Format string for pod fault code */ "Pod Fault: %1$@" = "Pod-feil: %1$@"; @@ -113,33 +755,199 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod er suspendert"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod ikke tilkoblet"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod Okklusjon"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Vellykket sammenkobling av Pod. Fortsett."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Ufullstendig Pod-sammenkobling"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendte ack i stedet for svar"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod oppsett"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Tidsvindu for oppsett av pod er utløpt"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pod påminnelse er suspendert"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dårlig signalstyrke"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Klargjør infusjonsstedet"; + +/* title for previous pod page */ +"Previous Pod" = "Forrige pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informasjon om forrige pod"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Fyller"; +/* Pod state when priming completed */ +"Priming completed" = "Fylling fullført"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Fyller. Vennligst vent."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Fyller..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Klar for basal-programmering"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Klar for å sette inn kanyle"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Gjenstående"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påminnelse initialisert"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Fjern den blå nålehetten og sjekk at kanylen ikke stikker ut. Fjern deretter plasterbeskyttelsen."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Fjern pod fra kroppen"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Fjern pumpen"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Bytt pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Gjenoppta"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Gjenoppta levering"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Gjenoppta insulin"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Gjenoppta insulintilførsel"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Fortsett: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Gjenopptar insulintilførsel..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Prøv på nytt"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Lagre"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Lagrer..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Planlagt basal"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Planlagt basal"; +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Planlagt påminnelse"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Velg hvilken type insulin du skal bruke i denne pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvensnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Still inn midlertidig basal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Still inn midlertidig basaldose"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Klargjøring ferdig"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Avslutning nært forestående"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Avslutt forestående alarm"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signal Tap"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrken er for høy"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Vil du hoppe over Omnipod Introduseringen?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Utsette"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pause leveranse"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Varsel om aktivert Utsettelse"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Insulintilførsel utsatt"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Utsettelse utløpt"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; +"Suspended" = "Suspendert"; + +/* Label for suspended at time */ +"Suspended At" = "Utsatt klokken"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Utsetter insulintilførselen..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Utsettelsestiden er over. Åpne appen og gjenoppta."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Bytt til annen insulintilførselsenhet"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til gjeldende tid"; /* Pod tank fill completed */ "Tank fill completed" = "Tankpåfylling komplett"; @@ -147,32 +955,176 @@ /* Pod power to motor activated */ "Tank power activated" = "Tank-motor aktivert"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Trykk nedenfor for å starte innsetting av kanyle."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp-basal pågår"; +"Temp basal in progress" = "Midlertidig basal pågår"; /* Delivery status when temp basal is running */ -"Temp basal running" = "Temp-basal kjører"; +"Temp basal running" = "Midlertidig basal kjører"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Temp-basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Midlertidig basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Midlertidig basal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Midlertidig basal mislyktes"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Appen konfigurerer en påminnelse på pod for å varsle deg før pod utløper. Angi antall timer forhåndsvarsel du vil konfigurere når du parer en ny Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Appen varsler deg før pod utløper.\n\nBla for å angi antall timer forhåndsvarsel du vil ha."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Appen varsler deg når mengden insulin i Pod når dette nivået (50-10 E).\n\nBla for å angi antall enheter du vil bli minnet på."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Appen varsler deg når mengden insulin i pod når dette nivået."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioden med insulinsuspensjon er avsluttet.\n\nDu kan gjenoppta leveringen fra banneret på startskjermen eller fra skjermbildet for pumpeinnstillinger. Du vil bli påminnet igjen om 15 minutter."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Påminnelsene ovenfor vil ikke høres hvis enheten er i Stille- eller Ikke forstyrr-modus. \n\n Det er andre kritiske Pod-varsler og alarmer som vil høres selv om enheten er satt til Stille eller Ikke forstyrr-modus."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Klokken på pumpen er forskjellig fra gjeldende tid. Vil du oppdatere tiden på pumpen til gjeldende tid?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Klokken på pumpen er forskjellig fra gjeldende tid. Du kan se på pumpetiden og og synkronisere med gjeldende tid i innstillingene."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Klokken på pumpen er forskjellig fra gjeldende tid. Pumpens tid styrer dine planlagte behandlingsinnstillinger. Rull ned til Pumpetid-raden for å se tidsforskjellen og konfigurere pumpen."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Vinduet på toppen av Pod-en skal farges rosa når kanylen er riktig satt inn i huden."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Det oppsto et problem med pod-kommunikasjonen. Hvis problemet fortsetter, trykk Forkaste pod. Deretter kan du aktivere en ny pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dette er en påminnelse som du planla når du koblet til din nåværende pod."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Denne PumpManageren er ikke konfigurert med en maksimal basaldose fordi den ble lagt til før manuell temp basal var en funksjon. Vennligst gå til terapiinnstillinger - > leveringsgrenser og angi en ny maksimal basaldose."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "treNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tidsendring oppdaget"; /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Det er på tide å bytte pod! Pod utløper om %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Tidsavbrudd"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Vis/skjul"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "For mange poder funnet"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Total levering"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Prøv igjen"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Slå på Bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "toNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan ikke nå pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan ikke nå pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Klarte ikke å angi en midlertidig basal: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Klarte ikke å angi en midlertidig basal: %1$@\n\n%2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Usikker"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Uventet meldings sekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Uventet pod-endring"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Uventet svar fra pod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Ufullstendig aktivering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Ufullstendig deaktivering"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Ukjent karakteristikk"; + /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Ukjent pod-feil %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Ukjent verdi ( %1$@ ) for typen %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Valideringen mislyktes: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Vent til at eksisterende bolus skal bli ferdig, eller kanseler bolus"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Venter på at eksisterende temp-basal skal bli ferdig, eller at pause skal avsluttes"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Vent til innsettingen er fullført."; + /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Venter på påminnelse for sammenkobling"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, deaktiver Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synkroniser til gjeldende tid"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Du vil nå begynne prosessen med å konfigurere påminnelsene, fylle pod med insulin, pare til enheten og plassere den på kroppen."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod er klar til bruk. \n\n %1$@ vil minne deg på å bytte pod før den utløper. Du kan endre dette til et tidspunkt som passer deg."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Pod kan fortsatt levere insulin.\nFjern den fra kroppen din, og trykk deretter på \"Fortsett\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/nl.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/nl.lproj/Localizable.strings index 7c8466bcc5..fac8f7a749 100644 --- a/Dependencies/OmniBLE/OmniBLE/nl.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/nl.lproj/Localizable.strings @@ -1,139 +1,932 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactief)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ geleden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ heeft de communicatie met de pod op je lichaam hersteld. \n\nDe gegevens over insulinetoediening zijn bijgewerkt en moeten overeenkomen met wat daadwerkelijk is toegediend. \n\nJe kunt %@ nu weer normaal gebruiken."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ voor %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ kan sinds %2$@ niet communiceren met de pod op je lichaam. \n\nZonder communicatie met de pod kan de app geen opdrachten voor insulinetoediening blijven sturen of nauwkeurige, recente informatie weergeven over je actieve insuline of de insuline die door de pod wordt toegediend. \n\nHoud je glucose de komende 6 uur of langer nauwlettend in de gaten, omdat er wel of geen actieve insuline in je lichaam aanwezig is die %3$@ niet kan weergeven."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insuline of minder resterend in Pod. Vervang Pod spoedig."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ eenheden over om %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 uur"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 uur 30 minuten"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 uur"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minuten"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Activeringstijd overschreden"; + +/* description label for active time pod details row */ +"Active Time" = "Werkzame Tijd"; + +/* Section header for activity section */ +"Activity" = "Activiteit"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pomptijd Aanpassen..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Weet je zeker dat je de Podinstallatie wilt annuleren?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Weet je zeker dat je Omnipod Onboarding wilt overslaan?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Weet je zeker dat je wilt stoppen met het gebruik van Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Pod Aanbrengen"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Poging om de communicatie te herstellen"; + +/* Description for auto-off */ +"Auto-off" = "Automatische uitschakeling"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Auto-uit alarm"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Terug"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basaal geïnitialiseerd"; + /* Pod state when running below fifty units */ "Below 50 units" = "Minder dan 50 eenheden"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "BLE Firmwareversie"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth is uitgeschakeld"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth wordt gereset"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth is om een onbekende reden niet beschikbaar."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth is niet beschikbaar: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Bluetooth gebruik is niet toegestaan"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth-gebruik wordt niet ondersteund op dit apparaat"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus bezig"; +"Bolus in progress" = "Bolus in uitvoering"; /* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; /* Delivery status when bolusing */ "Bolusing" = "Bolussen"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus met tijdelijk basaal"; +"Bolusing with temp basal" = "Bolussen met tijdelijk basaal"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Annuleer"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annuleer Handmatige Basaal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Canule succesvol ingebracht. Ga verder."; /* Pod state when inserting cannula */ -"Cannula inserting" = "Canule wordt geplaatst"; +"Cannula inserting" = "Canule ingebracht"; /* String describing a dose that was certainly scheduled */ "Certain" = "Zeker"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Vervang Pod nu. De insulinetoediening stop 8 uur nadat de Pod is verlopen of wanneer er geen insuline meer over is."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Vervang Pod nu. De insulinetoediening stop over %1$@ of wanneer er geen insuline meer over is."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Vervang Pod nu. Insulinetoediening stopt over 1 uur."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Vervang Pod nu. Pod is 72 uur in gebruik geweest."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Controleer Canule"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Controleer de Pod, breng aan op de infusieplaats en bevestig dat de pod goed zit vastgeplakt."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Controleer Inbrengen Canule"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Controleren..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Opdrachtfout %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Communicatieprobleem"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comms Hersteld"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Communicatieprobleem: niet-bevestigde opdracht in behandeling"; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Bevestigingsherinneringen"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Bevestigingsherinneringen zijn piepjes van de pod die kunnen worden gebruikt ter bevestiging van de geselecteerde opdrachten."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Bevestigingsherinneringen zijn hoorbaar voor opdrachten die je start, zoals bolussen, bolus annuleren, onderbreken, hervatten, meldingsherinneringen opslaan, enz. Wanneer Loop de toediening automatisch aanpast, zijn er geen bevestigingsherinneringen hoorbaar."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Bevestigingsherinneringen zijn hoorbaar wanneer Loop de toediening automatisch aanpast, evenals voor opdrachten die je geeft."; + +/* Section header for configuration section */ +"Configuration" = "Configuratie"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bevestigen"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bevestig Vastgeplakte Pod"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Ga Verder"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Kon bericht niet parseren: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritieke Meldingen"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritieke Podfout"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Overspraak mogelijk. Probeer een andere locatie"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dagen"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deactiveer Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Gedeactiveerd"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deactiveren."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deactiveren..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Verwijder Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Apparaatgegevens"; + +/* description label for device name pod details row */ +"Device Name" = "Naam Pod"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Uitgeschakeld"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Gooi Pod Weg"; + +/* No comment provided by engineer. */ +"Done" = "Gereed"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Reservoir leeg"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Reservoir Leeg"; + /* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Lege/geen reactie van pod"; +"Empty response from pod" = "Geen reactie van pod"; + +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Lege Waarde"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Ingeschakeld"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fout"; /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Fout geconstateerd, sluit af"; +/* Description for expiration advisory */ +"Expiration advisory" = "Vervaldatum melding"; + /* Description for expiration alert */ "Expiration alert" = "Alarm vervaltijd"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Vervaldatumherinnering"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Standaard Herinnering"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Uitgebreid"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Verlengde bolus actief"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Verlengde bolus met tijdelijk basaal actief"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Handmatig Basaal Annuleren Mislukt"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Insulinetoediening Hervatten Mislukt"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Pomptijd Instellen Mislukt"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Insulinetoediening Onderbreken Mislukt"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Bevestigingsherinneringvoorkeuren bijwerken mislukt."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Vervaldatumherinnering Bijwerken Mislukt"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Bijwerken Reservoir Bijna Leeg Herinnering Mislukt"; + +/* Pod life HUD view label */ +"Fault" = "Fout"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fout is opgetreden"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Vul een nieuwe pod met U-100 insuline (laat de blauwe Podnaalddop zitten)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Voltooi deactivering"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Voltooi Deactivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Voltooi Koppelen"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Voltooi Installatie"; + /* Description for finish setup */ "Finish setup " = "Voltooi installatie"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Voltooi instelling van herinnering"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmwareversie"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Meer dan %1$@ eenheden resterend om %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "uur"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "uur"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Als je de Podinstallatie annuleert, wordt de huidige Pod gedeactiveerd en onbruikbaar."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Onjuiste pakketuitzondering: %1$@ (locatie=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Onjuiste Reactie"; + /* Pod inititialized */ "Initialized" = "Geinitialiseerd"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Canule Inbrengen"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Ingebracht"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Canule inbrengen"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Aan het inbrengen. Wacht even."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Canule wordt ingebracht..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nOnderbroken"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulinetoediening"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulinetoediening gestopt. Vervang Pod nu."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "De insulinetoediening wordt gestopt totdat je de toediening handmatig hervat. Wanneer wil je dat Loop je eraan herinnert de toediening te hervatten?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Resterende Insuline"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline Onderbroken"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulinetype"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulinetype niet ingesteld"; + /* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Interne pod fout %1$03d"; +"Internal pod fault %1$03d" = "Interne podfout %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "OnderbrokenBolus: %1$@ U (%2$@ Eenheden gepland) %3$@ %4$@ %5$@"; +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "OnderbrokenBolus: %1$@ E (%2$@ E gepland) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ongeldig adres 0x%1$x. Verwachte 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ongeldig adres: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ongeldige CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Ongeldige LTK sleutel: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ongeldige Instelling"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Is de canule juist ingebracht?"; + +/* description label for last status date pod details row */ +"Last Status" = "Laatste Status"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Luister naar 2 piepjes."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop past je insulinetoediening niet meer automatisch aan totdat de tijdelijke basaalsnelheid afloopt of wordt geannuleerd."; + +/* description label for lot number pod details row */ +"Lot Number" = "Lotnummer"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Reservoir bijna leeg"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Reservoir Bijna Leeg"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Reservoir Bijna Leeg Advies (%1$gE)"; /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Reservoir bijna leeg alarm"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Herinnering Reservoir Bijna Leeg"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Zorg ervoor dat iPhone zich in de buurt van de actieve pod bevindt"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Zorg ervoor dat je telefoon en pod zich dicht bij elkaar bevinden. Als de communicatieproblemen aanhouden, ga dan naar een andere plek."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Zorg ervoor dat je pod gevuld en binnen bereik is."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Zorg dat je pod in de buurt is en probeer opnieuw."; + /* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aanstaat"; +"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aan staat"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Handmatig Basaal"; + +/* Pod memory initialized */ +"Memory initialized" = "Geheugen geïnitialiseerd"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Bericht IO Uitzondering: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuten"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuratie Niet Compleet"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Ga naar een andere plek, weg van andere pods, en probeer opnieuw."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Meerdere Commando's Melding"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NB"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Volgende"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nee"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Geen\nToediening"; /* Pod alert state when no alerts are active */ -"No alerts" = "Geen foutmeldingen"; +"No alerts" = "Geen Waarschuwingen"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Er worden geen bevestigingsherinneringen gebruikt."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Geen fouten"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Geen Insuline"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Geen Pod"; /* Error message shown when no pod is paired */ -"No pod paired" = "Geen pod verbonden"; +"No pod paired" = "Geen pod gekoppeld"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Geen pods gevonden"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Geen Herinnering"; /* Error message shown when no response from pod was received */ "No response from pod" = "Geen reactie van pod"; /* Error message shown when no response from pod was received */ -"No RileyLink available" = "Geen RileyLink aanwezig"; +"No RileyLink available" = "Geen RileyLink beschikbaar"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nee, Ga Verder Met Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nee, laat de pomp ongewijzigd"; /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normaal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Onvoldoende Gegevens"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Meldingsinstellingen"; + +/* No comment provided by engineer. */ +"Numbers" = "Nummers"; + /* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Afsluiting gedetecteerd"; +"Occlusion detected" = "Verstopping gedetecteerd"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Verstopping Gedetecteerd"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Alert acknowledgment OK button */ +"OK" = "Ok"; /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod Herinneringen"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "eenNietGebruikt"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Koppel Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Koppel pod."; + /* Pod status after pairing */ -"Paired" = "Verbonden"; +"Paired" = "Gekoppeld"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Koppelen voltooid"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Koppelingsuitzondering: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Koppelen."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Koppelen…"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Parseerfout: %1$@ in (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Payload crc32 %1$@ komt niet overeen met berekende crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Apparaat Niet Gereed"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Breng alleen de oude pod binnen bereik of deactiveer de originele pod"; /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Breng de pod dichter bij de RileyLink en probeer opnieuw"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Controleer of de Pod goed op je lichaam vastgeplakt zit.\n\nDe canule kan slechts één keer per Pod worden ingebracht. Tik op \"Bevestigen\" wanneer de Pod is vastgeplakt."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Deactiveer de pod. Wanneer de deactivering voltooid is, kun je een nieuwe pod koppelen."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Deactiveer de pod. Wanneer de deactivering voltooid is, kun je deze verwijderen en een nieuwe pod koppelen."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Schakel bluetooth-toestemmingen in voor deze app in de systeeminstellingen."; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Voltooi het koppelen van je pod."; + /* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Verbind een nieuwe pod"; +"Please pair a new pod" = "Koppel een nieuwe pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Plaats Iphone verder van de pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Verplaats de iPhone ten opzichte van de pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Gebruik een ander apparaat met bluetooth-mogelijkheden"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Geactiveerd"; + +/* Label describing pod age view */ +"Pod Age" = "Podleeftijd"; /* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod al verbonden"; +"Pod already paired" = "Pod al gekoppeld"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod is al voorbereid"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod succesvol gedeactiveerd. Ga verder."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Podfout"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Pod vervaltijd advies alarm"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Pod vervaltijd aankondiging"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Herinnering Vervaldatum Pod"; + /* Description for Pod expired pod fault */ -"Pod expired" = "Pod verlopen"; +"Pod expired" = "Pod is verlopen"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Verlopen"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod Verloopt"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod verloopt over"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod verloopt over %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod Foutgegevens"; /* Format string for pod fault code */ -"Pod Fault: %1$@" = " Pod fout: %1S@"; +"Pod Fault: %1$@" = "Pod fout: %1$@"; /* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is niet gereed voor canule plaatsing."; +"Pod is not in a state ready for cannula insertion." = "Pod is niet gereed voor inbrengen canule."; /* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is niet gereed voor het voorvullen."; +"Pod is not in a state ready for priming." = "Pod is niet klaar om voorbereid te worden."; /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod is onderbroken"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod niet verbonden"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Podverstopping"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod succesvol gekoppeld. Ga verder."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Koppeling Pod Onvolledig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod heeft een bevestiging gestuurd in plaats van een antwoord"; + +/* Title for PodSetupView */ +"Pod Setup" = "Podinstallatie"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Insteltijd van de Pod is verlopen"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Herinnering onderbroken Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Zwak signaalsterkte"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Infusieplaats voorbereiden."; + +/* title for previous pod page */ +"Previous Pod" = "Vorige Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informatie Vorige Pod"; + /* Delivery status when pod is priming Pod status when priming */ -"Priming" = "Voorvullen"; +"Priming" = "Voorbereiden"; + +/* Pod state when priming completed */ +"Priming completed" = "Voorbereiden voltooid"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Voorbereiden. Wacht even."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Voorbereiden..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pomptijd"; + +/* Label text for basal rate summary */ +"Rate" = "Snelheid"; /* Pod state when ready for basal programming */ "Ready for basal programming" = "Klaar voor programmeren basaal"; /* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Gereed for canule plaatsing"; +"Ready to insert cannula" = "Gereed voor inbrengen canule"; + +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Resterend"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Herinnering geïnitialiseerd"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Verwijder de blauwe Podnaalddop en controleer de canule. Verwijder vervolgens de beschermlaag van de hechtstrip."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Verwijder Pod van Lichaam"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Verwijder Pomp"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Vervang Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Hervatten"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Hervat toediening"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Hervat Insuline"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Hervat Insulinetoediening"; /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Hervat: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Insulinetoediening hervatten..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Opnieuw Proberen"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Opslaan"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Opslaan..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Gepland basaal"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Gepland basaal"; +"Scheduled Basal" = "Ingesteld Basaal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Geplande Herinnering"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Selecteer het type insuline dat je in deze pod gaat gebruiken."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Volgnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Tijdelijk Basaal Instellen"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Tijdelijke Basaalsnelheid Instellen"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Configuratie Voltooid"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Afsluiting nadert"; /* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Sluit af wegens dreigend alarm"; +"Shutdown imminent alarm" = "Alarm voor naderende afsluiting"; + +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaalverlies"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signaalsterkte te hoog"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod Onboarding Overslaan?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Onderbreek"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Onderbreek Toediening"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Onderbreking in Uitvoering Herinnering"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Onderbreek Insulinetoediening"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Onderbrekingstijd verstreken"; /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Onderbreek: %1$@ %2$@"; @@ -141,38 +934,197 @@ /* Delivery status when insulin delivery is suspended */ "Suspended" = "Onderbroken"; +/* Label for suspended at time */ +"Suspended At" = "Onderbroken om"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Insulinetoediening Onderbreken..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "De onderbrekingsperiode is verstreken. Open de app en hervat."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Schakel over op een ander insulinetoedieningsapparaat"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniseer met de huidige tijd"; + /* Pod tank fill completed */ "Tank fill completed" = "Opslag vullen compleet"; /* Pod power to motor activated */ "Tank power activated" = "Opslag power geactiveerd"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tik hieronder om het inbrengen van de canule te starten."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tijdelijk Basaal"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Tijdelijk basaal wordt uitgevoerd"; /* Delivery status when temp basal is running */ -"Temp basal running" = "Tijdelijk basaal werkend"; +"Temp basal running" = "Tijdelijk basaal actief"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tijdelijk basaal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tijdelijk basaal: %1$@ E/uur %2$@ %3$@ %4$@ E %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Tijdelijke Basaal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Tijdelijk Basaal Mislukt"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "De app stelt een herinnering in op de pod om je van tevoren op de hoogte te stellen van het verlopen van de Pod. Stel het aantal uur in van de vooraankondiging die je wenst in te stellen bij het koppelen van een nieuwe Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "De App kondigt van tevoren aan wanneer de Pod verloopt.\n\nScroll om het aantal uren in te stellen voor de gewenste vooraankondiging."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "De App geeft een melding wanneer de hoeveelheid insuline in de Pod dit niveau bereikt (50-10 E).\n\nScroll om het aantal eenheden in te stellen waarbij je herinnerd wilt worden."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "De App geeft een melding wanneer de hoeveelheid insuline in de Pod dit niveau bereikt."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "De insulineonderbrekingsperiode is verstreken.\n\nJe kunt de toediening hervatten op het startscherm of via je pompinstellingenscherm. Over 15 minuten wordt je er opnieuw aan herinnerd."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Bovenstaande herinneringen zijn niet hoorbaar wanneer je apparaat in de modus Stil of Niet Storen staat.\n\nAndere kritieke Podmeldingen en Podalarmen gaan wel af, zelfs als je apparaat op de modus Stil of Niet Storen staat."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "De tijd op je pomp is anders dan de huidige tijd. Wil je de tijd op je pomp bijwerken naar de huidige tijd?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "De tijd op je pomp is anders dan de huidige tijd. Je kunt de tijd op de pomp bekijken en synchroniseren met de huidige tijd in instellingen."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "De tijd op je pomp is anders dan de huidige tijd. De tijd van je pomp bepaalt je geplande therapieinstellingen. Scroll omlaag naar de Pomptijd om het tijdsverschil te bekijken en de pomp te configureren."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Het venster aan de bovenkant van de pod moet roze gekleurd zijn wanneer de canule correct in de huid is ingebracht."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Er is een communicatieprobleem opgetreden met de pod. Als dit probleem zich blijft voordoen, tik op Pod Verwijderen. Je kunt dan een nieuwe Pod activeren."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dit is een herinnering die je hebt gepland toen je je huidige Pod koppelde."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Deze pomp is niet geconfigureerd met een maximale basaalsnelheid omdat deze toegevoegd is voordat handmatige tijdelijke basaalsnelheid een functie was. Ga naar therapieinstellingen -> toedieningslimieten en stel een nieuwe maximale basaalsnelheid in."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "drieNietGebruikt"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tijd"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tijdsverschil Ontdekt"; /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Tijd om je pod te vervangen! Vervang je pod in %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Timeout"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Schakel symbool"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Te veel pods gevonden"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Totaal Toegediend"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Probeer opnieuw"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Zet bluetooth aan"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "tweeNietGebruikt"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/uur"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan Pod Niet Bereiken"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan Pod niet Bereiken"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Kan geen tijdelijke basaalsnelheid instellen: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Kan geen tijdelijke basaalsnelheid instellen: %1$@ \n\n%2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Onzeker"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Onverwacht volgnummer van bericht"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Onverwachte podwissel"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Onverwachte reactie van pod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Onvoltooide Activering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Onvoltooide deactivering"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Onbekend kenmerk"; + /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Onbekende pod fout %1$03d"; +"Unknown pod fault %1$03d" = "Onbekende podfout %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Onbekende waarde (%1$@) voor type %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validatie mislukt: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wacht op huidige bolus of maak bolus ongedaan"; +"Wait for existing bolus to finish, or cancel bolus" = "Wacht tot huidige bolus is voltooid, of annuleer bolus"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wacht op huidig tijdelijk basaal of onderbreek om te annuleren"; +"Wait for existing temp basal to finish, or suspend to cancel" = "Wacht tot de huidig tijdelijk basaalsnelheid is voltooid, of onderbreek om te annuleren"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Wacht tot het inbrengen voltooid is."; /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Wacht op herinnering om te verbinden"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, Deactiveer Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synchroniseer met Huidige Tijd"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Je begint nu met het configureren van je herinneringen, het vullen van je Pod met insuline, het koppelen van je apparaat en het op je lichaam plaatsen."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Je Pod is klaar voor gebruik.\n\n%1$@ zal je eraan herinneren je pod te vervangen voordat deze verloopt. Je kunt dit wijzigen naar een tijdstip dat beter uitkomt."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Je Pod kan nog steeds insuline toedienen.\nVerwijder de Pod van je lichaam en tik vervolgens op \"Ga Verder\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/pl.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/pl.lproj/Localizable.strings index 16d8cd1571..9b69b4f5e4 100644 --- a/Dependencies/OmniBLE/OmniBLE/pl.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/pl.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (nieaktywny)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ temu"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ odzyskało łączność z POD'em na twoim ciele.\n\nZapisy dotyczące podawania insuliny zostały zaktualizowane i powinny odpowiadać temu, co faktycznie zostało dostarczone.\n\nMożesz teraz normalnie korzystać z %@."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ J"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@J"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ za %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ nie może komunikować się z POD'em na twoim ciele od %2$@ . \n\nBez komunikacji z POD'em aplikacja nie może wysyłać poleceń podania insuliny ani wyświetlać dokładnych, aktualnych informacji o aktywnej insulinie lub insulinie podawanej przez POD'a. \n\nUważnie monitoruj poziom glukozy przez następne 6 lub więcej godzin, ponieważ w organizmie może działać insulina, której %3$@ nie może wyświetlić."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "Pozostało mniej niż 1$@ insuliny w POD. Zmień wkrótce POD'a."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednostek pozostaje w %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g/J"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 godzina"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 godzina 30 minut"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 godziny"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minut"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Przekroczono czas aktywacji"; + +/* description label for active time pod details row */ +"Active Time" = "Czas aktywności"; + +/* Section header for activity section */ +"Activity" = "Aktywność"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Synchronizacja czasu pompy..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Czy na pewno chcesz anulować konfigurację POD'a?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Czy na pewno chcesz pominąć instalację Omnipod’a?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Czy na pewno chcesz przestać używać Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Przyklej POD'a do ciała"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Próba przywrócenia komunikacji"; + +/* Description for auto-off */ +"Auto-off" = "Automatyczne wyłączanie"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarm automatycznego wyłączenia"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Powrót"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Zainicjowano bazę"; + /* Pod state when running below fifty units */ "Below 50 units" = "Poniżej 50 jedn."; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Wersja oprogramowania BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth jest wyłączony"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Trwa resetowanie Bluetooth"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth jest niedostępny z nieznanego powodu."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth jest niedostępny: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Korzystanie z Bluetooth jest niedozwolone"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth nie jest obsługiwany w tym urządzeniu"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus w toku"; @@ -16,90 +129,619 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Podawanie bolusa z dawką podstawową"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Anuluj"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Anuluj ręczną dawkę podstawową"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kaniula wprowadzona prawidłowo. Kontynuuj."; + /* Pod state when inserting cannula */ "Cannula inserting" = "Wprowadzanie kaniuli"; /* String describing a dose that was certainly scheduled */ "Certain" = "Pewna"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Zmień POD teraz. Podawanie insuliny zostanie zatrzymane 8 godzin po wygaśnięciu POD'a lub gdy zabraknie insuliny."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Zmień POD. Podawanie insuliny zostanie zatrzymane za %1$@ lub gdy zabraknie insuliny."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Zmień POD'a teraz. Podawanie insuliny zostanie wstrzymane za 1 godzinę."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Zmień teraz POD'a. POD jest aktywny od 72 godzin."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Sprawdź kaniulę"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Przyklej POD'a, następnie potwierdź jego założenie"; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Sprawdzanie wkłucia"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Sprawdzanie..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Błąd polecenia %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problem z komunikacją"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Odzyskano komunikację"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problem z komunikacją: Niepotwierdzone polecenie w toku."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Przypomnienia (sygnały dźwiękowe) z POD'a"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Przypomnienia potwierdzające to sygnały dźwiękowe, z których można korzystać w celu potwierdzania wybranych poleceń."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Przypomnienia (sygnały dźwiękowe) będą emitowane w przypadku poleceń, które zainicjujesz, takich jak bolus, anulowanie bolusa, wstrzymanie, wznowienie, zapisanie przypomnień o powiadomieniach itp. Kiedy Loop automatycznie dostosowuje podawanie, nie są używane żadne sygnały dźwiękowe."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Przypomnienia potwierdzające są emitowane, gdy Loop automatycznie dostosowuje podawanie insuliny, a także w przypadku poleceń inicjowanych przez użytkownika."; + +/* Section header for configuration section */ +"Configuration" = "Konfiguracja"; + +/* Button title for confirm attachment option */ +"Confirm" = "Potwierdź"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Potwierdź założenie POD'a"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Kontynuuj"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Nie można przeanalizować wiadomości: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alerty krytyczne"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Krytyczny błąd POD'a"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Możliwe zakłócenia. Proszę teleportuj się do innego pomieszczenia"; + +/* Unit for singular day in pod life remaining */ +"day" = "dzień"; + +/* Unit for plural days in pod life remaining */ +"days" = "dni"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Dezaktywuj POD'a"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Deaktywowany"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Dezaktywacja."; + +/* Action button description while deactivating */ +"Deactivating..." = "Dezaktywacja..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Usuń Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Szczegóły urządzenia"; + +/* description label for device name pod details row */ +"Device Name" = "Nazwa urządzenia"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Wyłączony"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Odrzuć POD'a"; + +/* No comment provided by engineer. */ +"Done" = "Gotowe"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Pusty zbiornik"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Pusty zbiorniczek"; + /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Pusta odpowiedź POD"; +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Pusta wartość"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Włączony"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Błąd"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Zarejestrowano zdarzenie błędu, wyłączanie"; +/* Description for expiration advisory */ +"Expiration advisory" = "Ostrzeżenie o wygaśnięciu"; + /* Description for expiration alert */ "Expiration alert" = "Alert o upływie terminu ważności"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Termin Ważności"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Domyślne przypomnienie o terminie ważności"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Rozszerzony"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Trwa podawanie bolusa przedłużonego"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus przedłużony uruchomiony z tymczasową bazą"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Nie udało się anulować dawki podstawowej ustawionej ręcznie"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Nie udało się wznowić podawania insuliny"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nie udało się ustawić czasu pompy"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Nie udało się wstrzymać podawania insuliny"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Błąd aktualizacji ustawień dla przypomnień."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nie udało się zaktualizować przypomnienia o terminie ważności"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nie udało się zaktualizować przypomnienia o niskim poziomie w zbiorniczku"; + +/* Pod life HUD view label */ +"Fault" = "Usterka"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Wystąpiła usterka"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Napełnij nowego POD'a insuliną U-100 (minimum 80j). Pozostaw niebieską osłonkę igły."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Zakończ dezaktywację"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Zakończ dezaktywację"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Zakończ parowanie"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Zakończ konfigurację"; + /* Description for finish setup */ "Finish setup " = "Zakończ konfigurację"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Przypomnienie o zakończeniu konfiguracji"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Wersja oprogramowania"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Więcej niż %1$@ jedn. pozostaje w %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "godzina"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "godziny"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Jeśli anulujesz konfigurację POD'a, bieżący POD zostanie dezaktywowany i nie będzie można go używać."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Wykluczające się dane: %1$@ (lokalizacja= %2$d )"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Nieprawidłowa odpowiedź"; + /* Pod inititialized */ "Initialized" = "Zainicjalizowany"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Wprowadź kaniulę"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Wprowadzono"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Wprowadzanie kaniuli"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Wprowadzanie. Proszę czekać."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Wprowadzanie..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Podawanie insuliny zawieszone"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podawanie insuliny zostało zatrzymane. Wymień POD'a."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Podawanie insuliny zostanie wstrzymane do czasu ręcznego wznowienia. Kiedy chcesz, aby Loop przypomniał Ci o wznowieniu podawania insuliny?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Pozostała ilość insuliny"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Podawanie insuliny zawieszone"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Rodzaj insuliny"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Nie skonfigurowano rodzaju insuliny"; + /* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Wewnętrzny błąd PODa %1$03d"; +"Internal pod fault %1$03d" = "Wewnętrzny błąd POD'a %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Przerwany bolus: %1$@ jedn. (%2$@ jedn. zaplanowanych) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Nieprawidłowy adres 0x %1$x . Oczekiwano 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Nieprawidłowy adres: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Nieprawidłowy CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Nieprawidłowy klucz LTK: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Nieprawidłowe ustawienie"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Czy kaniula jest prawidłowo wprowadzona?"; + +/* description label for last status date pod details row */ +"Last Status" = "Ostatni status"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Nasłuchuj 2 sygnałów dźwiękowych."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Pętla nie będzie automatycznie dostosowywać dawki insuliny, dopóki tymczasowa dawka podstawowa nie zakończy się lub nie zostanie anulowana."; + +/* description label for lot number pod details row */ +"Lot Number" = "Numer LOT"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Niski poziom w zbiorniczku"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Niski poziom w zbiorniczku"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Ostrzeżenie o niskim poziomie w zbiorniczku (%1$gU)"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Alarm informujący o niskim poziomie w zbiorniku"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Przypomnienie o niski poziomie w zbiorniczku"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Upewnij się, że iPhone znajduje się w pobliżu aktywnego POD'a."; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Upewnij się, że telefon i POD znajdują się blisko siebie. Jeśli problemy z komunikacją nie ustąpią, przenieś się w inne miejsce."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Upewnij się, że POD jest wypełniony i znajduje się w pobliżu."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Upewnij się, że POD jest w pobliżu i spróbuj ponownie."; + /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Upewnij się, że RileyLink jest w pobliżu i jest włączony"; +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Baza podstawowa"; + +/* Pod memory initialized */ +"Memory initialized" = "Zainicjowano pamięć"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Problem z komunikacją I/O: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuta"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuty"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Brak konfiguracji"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Przenieś się w nowe miejsce z dala od innych POD'ów i spróbuj ponownie."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alert wielu poleceń"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Niedostępne"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Następny"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nie"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Brak podawania"; + /* Pod alert state when no alerts are active */ "No alerts" = "Brak alertów"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nie są używane żadne przypomnienia."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Brak usterek"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Brak insuliny"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Brak POD'a"; + /* Error message shown when no pod is paired */ "No pod paired" = "Brak sparowanego PODa"; +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nie znaleziono POD'a"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Brak przypomnienia"; + /* Error message shown when no response from pod was received */ "No response from pod" = "Brak odpowiedzi z PODa"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Brak dostępnego RileyLink"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nie, kontynuuj parowanie z POD'em"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nie, pozostaw pompę bez zmian"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normalny"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Za mało danych"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Ustawienia powiadomień"; + +/* No comment provided by engineer. */ +"Numbers" = "Liczby"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Wykryto niedrożność"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Wykryto niedrożność"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Przypomnienia Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Sparuj POD'a"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Sparuj POD'a"; + /* Pod status after pairing */ "Paired" = "Sparowany"; +/* Pod status when pairing completed */ +"Pairing completed" = "Parowanie zakończone"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Problem z parowaniem"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Parowanie."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Parowanie…"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Błąd analizy: %1$@ w (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Ładunek crc32 %1$@ nie pasuje do obliczonego crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Urządzenie peryferyjne nie jest gotowe"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Używaj tylko oryginalny POD w zasięgu sygnału albo dezaktywuj oryginalny POD"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Umieść PODa bliżej RileyLink i spróbuj ponownie"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Potwierdź, że POD jest poprawnie przymocowany do ciała. \n\nKaniulę można wprowadzić tylko raz w każdym POD'dzie. Stuknij „Potwierdź”, gdy POD jest przymocowany."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Proszę dezaktywować POD'a. Po zakończeniu dezaktywacji możesz sparować nowego POD'a."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Proszę dezaktywować POD'a. Po zakończeniu dezaktywacji usuń POD'a i sparuj nowego."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Włącz uprawnienia Bluetooth dla tej aplikacji w ustawieniach systemowych"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Dokończ parowanie POD'a."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Sparuj nowego PODa"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Odsuń dalej POD'a od iPhone'a"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Zmień położenie iPhone'a względem POD'a"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Użyj innego urządzenia z funkcją Bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "POD aktywowany"; + +/* Label describing pod age view */ +"Pod Age" = "Wiek POD'a"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "POD już sparowany"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "POD już napełniony"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "POD został dezaktywowany pomyślnie. Kontynuować."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Błąd POD'a"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Alarm informujący o upływie terminu ważności PODa"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Powiadomienie o upływie terminu ważności PODa"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Przypomnienie o terminie ważności POD'a"; + /* Description for Pod expired pod fault */ -"Pod expired" = "Termin ważności PODa upłynął"; +"Pod expired" = "Termin ważności POD'a upłynął"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Termin ważności POD'a upłynął"; + +/* Label for pod expiration row */ +"Pod Expires" = "POD kończy działanie"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "POD wygasa za"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod wygasa za %1$@ ."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Szczegóły usterki POD'a"; /* Format string for pod fault code */ "Pod Fault: %1$@" = "Usterka PODa: 1$@"; @@ -113,33 +755,199 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "POD wstrzymany"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "POD nie jest podłączony"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Niedrożność POD'a"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod został pomyślnie sparowany. Kontynuować."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Parowanie POD'a nie zostało zakończone"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "POD odtworzył sygnał zamiast odpowiedzi zwrotnej"; + +/* Title for PodSetupView */ +"Pod Setup" = "Konfiguracja POD'a"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Upłynął termin ważności okna konfiguracji PODa"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Przypomnienie o zawieszeniu POD'a"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Słaba siła sygnału"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Przygotuj miejsce"; + +/* title for previous pod page */ +"Previous Pod" = "Poprzedni POD"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informacje o poprzednim POD'dzie"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Napełnianie"; +/* Pod state when priming completed */ +"Priming completed" = "Wypełnianie zakończone"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Wypełnianie. Proszę czekać."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Wypełnianie..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Czas pompy"; + +/* Label text for basal rate summary */ +"Rate" = "Tempo"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Gotowy do zaprogramowania dawki podstawowej"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Gotowy do wprowadzenia kaniuli"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Pozostało"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Zainicjowano przypomnienie"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Usuń niebieską osłonę igły i sprawdź kaniulę. Następnie usuń papierowe zabezpieczenie kleju."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Usuń POD'a z ciała"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Usuń pompę"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Wymień POD'a"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Wznów"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Wznów podawanie"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Wznów insulinę"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Wznów podawanie insuliny"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Wznów: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Wznawianie podawania insuliny..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Spróbuj ponownie"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Zapisz"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Zapisywanie..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Zaplanowana dawka podstawowa"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Zaplanowana dawka podstawowa"; +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Zaplanowane przypomnienie"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Wybierz rodzaj insuliny, której będziesz używać w tym POD."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numer sekwencji"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Ustaw Bazę Tymczasową"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Ustaw tymczasową dawkę podstawową"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Konfiguracja zakończona"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Informacja o zbliżającym się wyłączeniu"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Alarm o nadchodzącym wyłączeniu"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Utrata sygnału"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Zbyt wysoka siła sygnału"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Pominąć instalację Omnipod’a?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Wstrzymaj"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Wstrzymaj podawanie"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Przypomnienie o trwającym zawieszeniu"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Wstrzymaj podawanie insuliny"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Upłynął czas zawieszenia"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Wstrzymaj: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Wstrzymany"; +"Suspended" = "Wstrzymane"; + +/* Label for suspended at time */ +"Suspended At" = "Zawieszony o godz."; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Wstrzymanie podawania insuliny..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Czas zawieszenie dobiegł końca. Otwórz Loop i wznów podawanie"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Zmień pompę insulinową na inną"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchronizuj z bieżącym czasem"; /* Pod tank fill completed */ "Tank fill completed" = "Napełnianie zbiornika zakończone"; @@ -147,6 +955,12 @@ /* Pod power to motor activated */ "Tank power activated" = "Zasilanie zbiornika włączone"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Stuknij poniżej, aby rozpocząć wprowadzanie kaniuli."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tymczasowa dawka podstawowa"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Tymczasowa dawka podstawowa w toku"; @@ -156,17 +970,133 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tymczasowa dawka podstawowa: %1$@ jedn./godz. %2$@ %3$@ %4$@ jedn. %5$@"; +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Baza tymczasowa"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Baza tymczasowa nie powiodła się"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplikacja konfiguruje przypomnienie w POD, aby powiadomić Cię z wyprzedzeniem o wygaśnięciu ważności POD'a. Ustaw liczbę godzin wyprzedzenia, które chcesz skonfigurować podczas parowania nowego POD'a."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikacja z wyprzedzeniem powiadomi użytkownika o wygaśnięciu ważności POD'a.\n\nZaplanuj powiadomienie (wybierz liczbę godzin)."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplikacja powiadomi Cię, gdy ilość insuliny w POD osiągnie poziom (50-10 J). \n\nUstaw liczbę jednostek, przy których chcesz otrzymywać przypomnienia."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplikacja powiadomi Cię, gdy ilość insuliny w POD osiągnie ten poziom."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Okres zawieszenia podawania insuliny dobiegł końca. \n\nPodawanie można wznowić za pomocą banera na ekranie głównym lub na ekranie ustawień pompy. Ponowne przypomnienie pojawi się za 15 minut."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Powyższe przypomnienia nie będą się pojawiały, jeśli urządzenie jest w trybie cichym lub nie przeszkadzać. \n\nIstnieją inne krytyczne alerty i alarmy POD'ów, które będą emitowane, nawet jeśli urządzenie jest ustawione w trybie cichym lub nie przeszkadzać."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Czas na pompie różni się od aktualnego czasu. Czy chcesz zaktualizować czas na pompie do aktualnego czasu?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Czas na pompie różni się od aktualnego czasu. W ustawieniach można sprawdzić czas pompy i zsynchronizować go z aktualnym czasem."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Czas na pompie różni się od aktualnego czasu. Czas pompy steruje ustawieniami zaplanowanej terapii. Przewiń w dół do wiersza Czas pompy, aby przejrzeć różnicę czasu i skonfigurować pompę."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Okienko na górze POD'a powinno zabarwić się na różowo, gdy kaniula jest prawidłowo wprowadzona pod skórę."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Wystąpił problem z komunikacją z POD'em. Jeśli problem się utrzymuje, wybierz opcję Odrzuć POD'a. Następnie możesz aktywować nowy POD."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "To jest przypomnienie, które zaplanowałeś podczas parowania bieżącego Poda."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Nie ustalono limitu podaży dla dawki podstawowej. Wróć do ustawień terapii i ustaw nowy limit maksymalnej dawki podstawowej (bazy)."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Czas"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Wykryto zmianę czasu"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Pora wymienić PODa! Termin ważności PODa upłynie za %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Koniec czasu"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Przełącz znak"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Znaleziono zbyt wiele POD'ów"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Łącznie podano"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Spróbuj ponownie"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Włącz bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "J/godz"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Nie można połączyć się z Podem"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Nie można połączyć się z Podem"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nie można ustawić tymczasowej dawki podstawowej: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nie można ustawić tymczasowej dawki podstawowej: %1$@ \n\n %2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Niepewna"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Nieoczekiwany numer kolejnego komunikatu"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Nieoczekiwana zmiana POD'a"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Nieoczekiwana odpowiedź PODa"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Niedokończona aktywacja"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Niedokończona dezaktywacja"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Nieznane powiadomienie"; + /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Nieznany błąd PODa %1$03d"; +"Unknown pod fault %1$03d" = "Nieznany błąd POD'a %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Nieznana wartość (%1$@) dla typu %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Weryfikacja nie powiodła się: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Poczekaj na zakończenie istniejącego bolusa lub anuluj bolus"; @@ -174,5 +1104,27 @@ /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Poczekaj na zakończenie istniejącej dawki podstawowej lub wstrzymaj, aby anulować"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Poczekaj, aż wprowadzanie zostanie zakończone."; + /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Poczekaj na przypomnienie o parowaniu"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Tak"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Tak, dezaktywuj POD'a"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Tak, zsynchronizuj z bieżącym czasem"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Rozpoczynasz proces konfigurowania przypomnień (dźwięków emitowanych przez POD'a), napełniania POD'a insuliną, parowania z telefonem i umieszczania go na ciele."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Twój POD jest gotowy do użycia. \n\n%1$@ przypomni Ci o zmianie POD'a przed jego wygaśnięciem. Możesz dokonać zmiany na dogodny dla Ciebie termin."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Twój POD może nadal dostarczać insulinę.\nUsuń go z ciała, a następnie wybierz \"Kontynuuj\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/pt-BR.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/pt-BR.lproj/Localizable.strings index 58abd5fa13..18fa263889 100644 --- a/Dependencies/OmniBLE/OmniBLE/pt-BR.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/pt-BR.lproj/Localizable.strings @@ -1,9 +1,30 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ atrás"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unidades restantes em %2$@"; + +/* description label for active time pod details row */ +"Active Time" = "Tempo Ativo"; + +/* Section header for activity section */ +"Activity" = "Atividade"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarme de desligamento automático"; /* Pod state when running below fifty units */ "Below 50 units" = "Abaixo de 50 unidades"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus em andamento"; @@ -16,12 +37,41 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Aplicando bolus com basal temp"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Cancelar"; + /* Pod state when inserting cannula */ "Cannula inserting" = "Inserindo Cânula"; /* String describing a dose that was certainly scheduled */ "Certain" = "Certo"; +/* Section header for configuration section */ +"Configuration" = "Configuração"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continuar"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Desativar Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Desativado"; @@ -31,18 +81,46 @@ /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Resposta vazia do pod"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Ativado"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Erro"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Evento de erro registrado, desligando"; /* Description for expiration alert */ "Expiration alert" = "Alerta de expiração"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Lembrete de Expiração"; + +/* Pod life HUD view label */ +"Fault" = "Falha"; + /* Description for finish setup */ "Finish setup " = "Concluir configuração"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Versão do Firmware"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Mais de %1$@ unidades restantes em %2$@"; + /* Pod inititialized */ "Initialized" = "Inicializado"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Inserir Cânula"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Falha interna do pod %1$03d"; @@ -74,6 +152,9 @@ /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Oclusão detectada"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; @@ -86,6 +167,9 @@ /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Emparelhe um novo pod"; +/* Label describing pod age view */ +"Pod Age" = "Idade do Pod"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod já emparelhado"; @@ -126,20 +210,44 @@ /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Pronto para inserir a cânula"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Restante"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Substituir Pod"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Retomar: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Tentar de Novo"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Salvar"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Basal Agendado"; +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Instalação Concluída"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Alarme de desligamento iminente"; +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspender Entrega"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspenço"; +"Suspended" = "Suspenso"; /* Pod tank fill completed */ "Tank fill completed" = "Enchimento do tanque concluído"; @@ -159,6 +267,9 @@ /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Hora de substituir o seu pod! Seu pod expirará em %1$@"; +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Incerto"; @@ -176,3 +287,4 @@ /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Aguardando lembrete de emparelhamento"; + diff --git a/Dependencies/OmniBLE/OmniBLE/ro.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/ro.lproj/Localizable.strings index ba582291f0..16564198b3 100644 --- a/Dependencies/OmniBLE/OmniBLE/ro.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/ro.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactiv)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ în urmă"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ a restabilit comunicarea cu Pod-ul de pe corpul tău.\n\nÎnregistrările legate de administrarea insulinei au fost actualizate și ar trebui să corespundă cu ceea ce a fost administrat de fapt.\n\nAcum puteți continua să utilizați %@ în mod normal."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ pentru %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ nu a putut comunica cu Pod-ul de pe corpul tău de la %2$@.\n\nÎn lipsa comunicației cu Pod-ul, aplicația nu poate continua să trimită comenzi pentru administrarea de insulină sau să afișeze informații exacte și recente despre insulina activă sau despre insulina administrată de Pod.\n\nMonitorizați-vă glicemia cu atenție în următoarele 6 sau mai multe ore, deoarece este posibil să existe sau nu insulină care lucrează activ în corpul dumneavoastră și pe care %3$@ nu o poate afișa."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ de insulină sau mai puțin rămase în Pod. Schimbați Pod-ul în curând."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unități rămase la %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 oră"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 oră și 30 de minute"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 ore"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 de minute"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Timpul de activare a fost depășit"; + +/* description label for active time pod details row */ +"Active Time" = "Timp activ"; + +/* Section header for activity section */ +"Activity" = "Activitate"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Reglarea timpului pompei..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sigur doriți să anulați configurarea Pod-ului?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sunteți sigur că doriți să săriți peste inițierea pompei Omnipod?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Sunteți sigur că nu mai doriți să utilizați Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Atașați Pod-ul"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Se încearcă restabilirea comunicațiilor"; + +/* Description for auto-off */ +"Auto-off" = "Oprire automată"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Alarmă Auto-off"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Înapoi"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazală inițializată"; + /* Pod state when running below fifty units */ "Below 50 units" = "Sub 50 de unități"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Versiune de firmware BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth-ul este oprit"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth-ul se resetează"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth nu este disponibil dintr-un motiv necunoscut."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth nu este disponibil: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Utilizarea Bluetooth este neautorizată"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Utilizarea Bluetooth nu este disponibilă pe acest dispozitiv"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus în derulare"; @@ -14,7 +127,21 @@ "Bolusing" = "Bolus în derulare"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus în derulare cu bazală temporară"; +"Bolusing with temp basal" = "Bolus în derulare cu rata bazală temporară"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Renunță"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Anulați bazala manuală"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Canula a fost introdusă cu succes. Continuați."; /* Pod state when inserting cannula */ "Cannula inserting" = "Se inserează canula"; @@ -22,84 +149,599 @@ /* String describing a dose that was certainly scheduled */ "Certain" = "Doză confirmată"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Schimbați Pod-ul acum. Livrarea insulinei se va opri la 8 ore după expirarea Pod-ului sau când nu mai rămâne deloc insulină."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Schimbați Pod-ul acum. Livrarea insulinei se va opri în %1$@ sau când nu mai rămâne insulină."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Schimbați Pod-ul acum. Administrarea insulinei se va opri într-o oră."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Schimbați Pod-ul acum. Pod-ul a fost activ timp de 72 de ore."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Verificați canula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Verificați Pod-ul, puneți-l pe piele, după care confirmați că este lipit."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Se verifică inserția"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Se verifică..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Eroare comandă %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problemă de comunicații"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicații reluate"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problemă de comunicare: comandă nerecunoscută în așteptare."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Mementouri de confimare"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Memento-urile de confirmare sunt semnale sonore de la Pod care pot fi folosite pentru confirmarea comenzilor selectate."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Mementourile de confirmare vor suna pentru comenzile pe care le inițiați, precum bolus, anualarea bolusului, suspendare, reluare, salvarea mementourilor de confirmare etc. Când Loop ajustează automat administrarea, nu sunt folosite mementouri de confirmare."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Mementourile de confirmare vor suna atunci când Loop ajustează automat administrare, precum și pentru comenzile pe care le inițiați."; + +/* Section header for configuration section */ +"Configuration" = "Configurare"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmați"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirmați atașarea Pod-ului"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Continuă"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Mesaju nu a putut fi parsat: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alerte critice"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Eroare critică Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interferență posibilă. Vă rugăm să vă mutați într-o zonă nouă"; + +/* Unit for singular day in pod life remaining */ +"day" = "zi"; + +/* Unit for plural days in pod life remaining */ +"days" = "zile"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Dezactivează Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Dezactivat"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Se dezactivează."; + +/* Action button description while deactivating */ +"Deactivating..." = "Se dezactivează..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Ștergeți Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Detalii despre dispozitiv"; + +/* description label for device name pod details row */ +"Device Name" = "Denumirea dispozitivului"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Dezactivat"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Renunțați la Pod"; + +/* No comment provided by engineer. */ +"Done" = "Realizat"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Rezervor gol"; +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Rezervor gol"; + /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Răspuns gol primit de la Pod"; +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Valoare goală"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Activat"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Eroare"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Eroare înregistrată în jurnal, se oprește"; +/* Description for expiration advisory */ +"Expiration advisory" = "Aviz de expirare"; + /* Description for expiration alert */ "Expiration alert" = "Alertă expirare"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Memento de expirare"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Memento de expirare implicit"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Prelungit"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolus prelungit activat"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus prelungit activ împreună cu bazală temporară"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Nu s-a reușit anularea bazalei manuale"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Nu s-a reușit reluarea administrării de insulină"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nu s-a reușit setarei timpului de pe pompă"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Nu s-a reușit suspendarea administrării de insulină"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Nu s-a reușit actualizarea preferinței în ceea ce privește memento-ul de confirmare."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nu s-a reușit actualizarea memento-ului de expirare"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nu s-a reușit actualizarea memento-ului privind rezervorul scăzut"; + +/* Pod life HUD view label */ +"Fault" = "Defecțiune"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "A avut loc un eveniment de eroare"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Umpleți un Pod nou cu insulină U-100 (nu înlăturați capacul albastru al acului de pe Pod)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Finalizați dezactivarea"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Finalizați deactivarea"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Finalizați asocierea"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Finalizați configurarea"; + /* Description for finish setup */ "Finish setup " = "Finalizare setare"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Memento pentru finalizarea configurării"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Versiunea Firmware"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Au rămas mai mult de %1$@ unități la %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "oră"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "ore"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Dacă anulați configurarea Pod-ului, Pod-ul actual va fi dezactivat și va fi inutilizabil."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Excepție de pachet incorect: %1$@ (locație= %2$d )"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Răspuns incorect"; + /* Pod inititialized */ "Initialized" = "Inițializat"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Inserează canula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inserată"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Se inserează canula"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Se inserează. Vă rog așteptați."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Se inserează canula..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Administrarea insulinei suspendată"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Administrarea de insulină s-a oprit. Schimbați Pod-ul acum."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Administrarea de insulină va fi oprită până când veți relua manual. Când doriți ca Loop să vă reamintească să reluați administrarea?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulină rămasă"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Administrarea insulinei suspendată"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipul de insulină"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipul de insulină nu este configurat"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Defecțiune Pod internă %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusÎntrerupt: %1$@ U (%2$@ U planificat) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Adresă invalidă 0x%1$x. Se aștepta 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Adresă invalidă: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC invalid"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Cheie LTK nevalidă: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Setare invalidă"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Canula este introdusă corect?"; + +/* description label for last status date pod details row */ +"Last Status" = "Ultima stare"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Ascultați 2 semnale sonore."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop nu va ajusta automat administrarea de insulină până când rata bazală temporară nu se termină sau nu este anulată."; + +/* description label for lot number pod details row */ +"Lot Number" = "Numărul lotului"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Rezervor scăzut"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Rezervor scăzut"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Avertizare de rezervor scăzut (%1$gU)"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Alarmă nivel scăzut rezervor"; +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Memento pentru rezervor scăzut"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Asigurați-vă că iPhone-ul este în apropierea Pod-ului activ"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Asigurați-vă că telefonul și Pod-ul sunt aproape unul de celălalt. Dacă problemele de comunicare persistă, mutați-vă într-o zonă nouă."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Asigurați-vă că Pod-ul este umplut și în apropiere."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Asigurați-vă că Pod-ul dumneavoastră este în apropiere și încercați din nou."; + /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropriere"; +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Bazală manuală"; + +/* Pod memory initialized */ +"Memory initialized" = "Memorie inițializată"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Mesaj Excepție IO: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minute"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Lipsă configurare"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Mutați-vă într-o zonă nouă, departe de orice alte Pod-uri și încercați din nou."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alertă de comandă multiplă"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Continuați"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nu"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Nicio\nAdministrare"; + /* Pod alert state when no alerts are active */ "No alerts" = "Nicio alertă"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nu se folosesc mementouri de confimare."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Nicio defecțiune"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Fără insulină"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Niciun Pod"; + /* Error message shown when no pod is paired */ "No pod paired" = "Niciun Pod asociat"; +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nu s-au găsit Pod-uri"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Niciun memento"; + /* Error message shown when no response from pod was received */ "No response from pod" = "Nu s-a primit răspuns de la Pod"; /* Error message shown when no response from pod was received */ "No RileyLink available" = "Nu există un RileyLink disponibil"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nu, continuați cu Pod-ul"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nu, păstrați pompa așa cum este"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Nu sunt suficiente date"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Setări de notificare"; + +/* No comment provided by engineer. */ +"Numbers" = "Numere"; + /* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Ocluziune detectată"; +"Occlusion detected" = "Ocluzie detectată"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Ocluzie detectată"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Mementouri Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Asociază un Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Asociază un Pod"; + /* Pod status after pairing */ "Paired" = "Asociat"; +/* Pod status when pairing completed */ +"Pairing completed" = "Asociere finalizată"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Excepție de asociere: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Se asociază."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Se asociază…"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Eroare de parsare: %1$@ în ( %2$@ )"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Încărcătura crc32 %1$@ nu se potrivește cu crc32 calculat %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procentaj = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Dispozitivul periferic nu este conectat"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Vă rugăm să aduceți doar Pod-ul inițial în rază de acțiune sau dezactivați Pod-ul inițial"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Apropiați Pod-ul de RileyLink și încercați din nou"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Vă rugăm să confirmați că Pod-ul este bine fixat de corpul dumneavoastră. \n\nCanula poate fi introdusă doar o singură dată cu fiecare Pod. Atingeți „Confirmați” când Pod-ul este fixat."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Vă rugăm să dezactivați podul. Când dezactivarea este completă, puteți asocia un nou pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Vă rugăm să dezactivați podul. Când dezactivarea este completă, îl puteți elimina și asociați un nou pod."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Vă rugăm să activați permisiunile bluetooth pentru această aplicație în setările de sistem"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Vă rugăm să terminați asocierea Pod-ului."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Asociați un Pod nou"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Vă rugăm să repoziționați iPhone-ul mai departe de Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Vă rugăm să repoziționați iPhone-ul mai aproape de Pod"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Vă rugăm să utilizați un alt dispozitiv cu capabilități bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod activat"; + +/* Label describing pod age view */ +"Pod Age" = "Vechime Pod"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod deja asociat"; /* Error message shown when prime is attempted, but pod is already primed */ "Pod already primed" = "Pod deja amorsat"; +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod-ul a fost dezactivat cu succes."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Eroare Pod"; + /* Description for expiration advisory alarm */ "Pod expiration advisory alarm" = "Alarmă expirare Pod"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Notificare expirare Pod"; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Memento pentru expirarea Pod-ului"; + /* Description for Pod expired pod fault */ -"Pod expired" = "Pod expirat"; +"Pod expired" = "Pod-ul a expirat."; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Expirat"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod-ul expiră"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod-ul expiră în"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod-ul expiră în %1$@."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detalii despre eroarea Pod-ului"; /* Format string for pod fault code */ "Pod Fault: %1$@" = "Defecțiune Pod: %1$@"; @@ -113,40 +755,212 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod-ul este suspendat"; +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod-ul nu este conectat"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Ocluzie Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod-ul a fost asociat cu succes. Continuați."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Asocierea Pod-ului este nefinalizată."; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod-ul a trimis o confirmare în loc de răspuns"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configurare Pod-ului"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Intervalul de timp în care se poate seta Pod-ul a expirat"; +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Memento pentru Pod-ul suspendat"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Putere slabă a semnalului"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Pregătiți locul."; + +/* title for previous pod page */ +"Previous Pod" = "Pod-ul anterior"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informații despre Pod-ul anterior"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Se amorsează"; +/* Pod state when priming completed */ +"Priming completed" = "Inițiere finalizată"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Pregătire în curs. Vă rugăm să așteptați."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Pregătire în curs..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Ora pompei"; + +/* Label text for basal rate summary */ +"Rate" = "Rată"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Pregătit pentru programarea bazalelor"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Pregătit pentru inserarea canulei"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Rămas"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Memento inițializat"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Scoateți capacul albastru de ac de pe Pod și verificați canula. Apoi înlăturați eticheta de hârtie de pe spate."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Înlăturați Pod-ul de pe corp"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Ștergeți pompa"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Înlocuiți Pod-ul"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reluați"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reluați administrarea de insulină"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reluați administrarea de insulină"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reluați administrarea de insulină"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Reluare: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Se reia administrarea de insulină..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Reîncearcă"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Salvează"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Salvare..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Bazala programată"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Bazală planificată"; +"Scheduled Basal" = "Bazală programată"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Memento programat"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Selectați tipul de insulină pe care o veți utiliza în acest pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Număr de ordine"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Setați bazala temporară"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Setați bazala temporară"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Configurare finalizată"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Oprirea iminentă"; /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Alarmă de oprire iminentă"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pierdere de semnal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Puterea semnalului este prea mare"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Săriți peste inițierea pompei Omnipod?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendați"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspendă administrarea"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Memento pentru suspendarea în curs"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspendați administrarea de insulină"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Timpul de suspendare a expirat"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Suspendare: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ "Suspended" = "Suspendat"; +/* Label for suspended at time */ +"Suspended At" = "Suspendat la"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Administrarea de insulină se suspendă..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Timpul de suspendare a expirat. Deschideți aplicația și reluați."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Treceți la alt dispozitiv de administrare a insulinei"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizați cu ora curentă"; + /* Pod tank fill completed */ "Tank fill completed" = "Umplere rezervor completă"; /* Pod power to motor activated */ "Tank power activated" = "Putere motor rezervor activată"; +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Atingeți mai jos pentru a începe introducerea canulei."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Bazală temporară"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Bazală temporară în curs de rulare"; @@ -156,23 +970,161 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalăTemporară: %1$@ U/oră %2$@ %3$@ %4$@ U %5$@"; +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Bazală temporară"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Rata temporară de bazală a eșuat"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplicația configurează un memento pe pod pentru a vă notifica înainte de expirarea Pod. Setați numărul de ore înainte de notificare pe care doriți să o configurați atunci când asociați un pod nou."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplicația vă notifică în avans de expirarea Pod.\n\nDerulați pentru a seta numărul de ore dorite pentru notificare."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplicația vă anunță când cantitatea de insulină din Pod atinge acest nivel (50-10 U). \n\nDerulați pentru a seta numărul de unități la care doriți să fiți notificat."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplicația vă notifică când cantitatea de insulină din Pod atinge acest nivel."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioada de suspendarea a administrării de insulină s-a încheiat.\n\nPuteți relua administrarea din bannerul de pe ecranul principal sau de pe ecranul de setări al pompei. Vi se va aminti din nou în 15 minute."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Mementourile de mai sus nu vor suna dacă dispozitivul este în modul Silențios sau Nu deranjați.\n\nExistă și alte alerte și alarme critice de Pod care vor suna chiar dacă dispozitivul este setat la modul Silențios sau Nu deranjați."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Ora de pe pompă este diferită de ora curentă. Puteți revizui ora pompei și să o sincronizați cu ora curentă în meniul setări."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Ora de pe pompă este diferită de ora actuală. Puteți revizui ora pompei și să o sincronizați cu ora actuala în meniul setări."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Ora pompei este diferită de ora curentă. Ora pompei dvs. controlează setările de terapie programate. Derulați în jos la rândul Ora pompei pentru a revizui diferența de oră și a configura pompa dvs."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Fereastra din partea superioară a Pod-ului trebuie să fie colorată în roz atunci când canula a fost introdusă corect în piele."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "A apărut o problemă la comunicarea cu podul. Dacă această problemă persistă, atingeți Renunțați la pod. Apoi puteți activa un nou Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Acesta este un memento pe care l-ați programat atunci când ați asociat Pod-ul curent."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Această pompă nu a fost configurată cu o rată maximă de insulină bazală, deoarece a fost adăugată înainte ca rata temporară de insulină bazală să fie o opțiune. Vă rugăm să mergeți la Setări terapie -> limite de livrare și să setați o nouă rată maximă de insulină bazală."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Timp"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "S-a detectat schimbarea orei"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "E timpul să înlocuiți Pod-ul! Acesta va expira în %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Timeout"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Semn de comutare"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Au fost găsite prea multe Pod-uri"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Administrare totală"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Încercați din nou"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Porniți bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/oră"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Nu se poate conecta la Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Nu se poate conecta la Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nu se poate seta o rată temporară de insulină bazală: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nu se poate seta o rată temporară de insulină bazală: %1$@ \n\n %2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Doză neconfirmată"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Mesaj neașteptat număr de ordine"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Schimbare neașteptată a podului"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Răspuns neașteptat de la Pod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activare neterminată"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Dezactivare neterminată"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Caracteristică necunoscută"; + /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Defecțiune Pod neidentificată %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valoare necunoscută ( %1$@ ) pentru tipul %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validarea a eșuat: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Așteptați finalizarea bolusului curent sau opriți bolusul"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ "Wait for existing temp basal to finish, or suspend to cancel" = "Așteptați finalizarea bazalei temporare curente sau suspendați pentru oprirea ei"; +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Așteptați până când inserarea este finalizată."; + /* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Se așteaptă reamintirea de asociere"; +"Waiting for pairing reminder" = "Se așteaptă mementoul de asociere"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Da"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Da, dezactivați Pod-ul"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Da, sincronizați cu ora curentă"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Veți începe acum procesul de configurare a memento-urilor, umplerea Pod-ului cu insulină, asocierea cu dispozitivul dumneavoastră și amplasarea acestuia pe corp."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod-ul dumneavoastră este gata de utilizare. \n\n %1$@ vă va reaminti să vă schimbați Pod-ul înainte de a expira. Puteți schimba într-un moment convenabil pentru dumneavoastră."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Este posibil ca Podul dvs. să administreze în continuare insulină.\nScoateți-l din corpul dumneavoastră, apoi atingeți \"Continuați\"."; + diff --git a/Dependencies/OmniBLE/OmniBLE/ru.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/ru.lproj/Localizable.strings index 5030de5880..8875740bcf 100644 --- a/Dependencies/OmniBLE/OmniBLE/ru.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/ru.lproj/Localizable.strings @@ -1,9 +1,122 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(неактивно)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ назад"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ восстановил связь с подом на вашем теле.\n\nЗаписи о поданном инсулине были обновлены и должны соответствовать тому, что было доставлено на самом деле.\n\nТеперь вы можете продолжать использовать %@ в обычном режиме."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ Ед"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ед"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ за %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ не может связаться с подом на вашем теле с %2$@.\n\nБез связи с подом приложение не может продолжать отправлять команды на доставку инсулина или отображать точную, свежую информацию о вашем активном инсулине или инсулине, доставляемом подом.\n\nВнимательно следите за уровнем глюкозы в течение следующих 6 или более часов, поскольку в вашем организме может активно работать или не работать инсулин, который %3$@ не может отобразить."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "В поде осталось %1$@ инсулина или меньше. Замените под в ближайшее время."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ед остается в %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g Ед"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 час"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 час 30 минут"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 часа"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 минут"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Превышено время для активации"; + +/* description label for active time pod details row */ +"Active Time" = "Активирован в"; + +/* Section header for activity section */ +"Activity" = "Нагрузка"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Настройка времени помпы..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Вы уверены, что хотите отменить настройку Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Вы уверены, что хотите пропустить Omnipod Onboarding?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Вы уверены, что хотите прекратить использование Omnipod DASH?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Прикрепить под"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Попытка восстановления связи"; + +/* Description for auto-off */ +"Auto-off" = "Авто выключение"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Авто отключение сигнала"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Назад"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Базал инициирован"; + /* Pod state when running below fifty units */ "Below 50 units" = "Менее 50 единиц"; +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "Версия прошивки BLE"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth выключен"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth сбрасывается"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth недоступен по неизвестной причине."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth недоступен: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Использование Bluetooth не разрешено"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Использование Bluetooth не поддерживается на данном устройстве"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Болюс"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Подача болюса"; @@ -14,7 +127,21 @@ "Bolusing" = "Подается болюс"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Подача болюса при врем базале"; +"Bolusing with temp basal" = "Подача болюса при подаче ВБС"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Отмена"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Отменить ручную ВБС"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Канюля введена успешно. Продолжить."; /* Pod state when inserting cannula */ "Cannula inserting" = "Установка катетера"; @@ -22,44 +149,428 @@ /* String describing a dose that was certainly scheduled */ "Certain" = "Определенно"; +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Замените под сейчас. Подача инсулина прекратится через 8 часов после истечения срока действия пода или когда инсулина больше не останется."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Замените под сейчас. Подача инсулина прекратится через %1$@ или когда инсулина больше не останется."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Замените под сейчас. Подача инсулина прекратится через 1 час."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Замените под сейчас. Под активен в течение уже 72 часов."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Проверьте канюлю"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Проверьте под, приклейте его на место установки, затем подтвердите прикрепление пода."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Проверка ввода канюли"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Проверка..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Ошибка команды %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Проблемы со связью"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Связь восстановлена"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Проблема со связью: ожидается неподтвержденная команда."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Напоминания об уверенности"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Напоминания об уверенности - это звуковые сигналы, подаваемые подом, которые можно использовать для подтверждения выбранных команд."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Напоминания будут звучать для инициированных вами команд, таких как болюс, отмена болюса, приостановка, возобновление, напоминания о сохранении уведомлений и т.д. Когда Loop автоматически регулирует подачу инсулина, напоминания не будут использоваться."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Напоминания будут звучать, когда Loop автоматически регулирует подачу инсулина, а также для команд, которые вы инициируете."; + +/* Section header for configuration section */ +"Configuration" = "Конфигурация"; + +/* Button title for confirm attachment option */ +"Confirm" = "Подтвердить"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Подтвердите, что под прикреплен к телу"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Продолжить"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Не удалось разобрать сообщение: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Критические оповещения"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Критическая ошибка пода"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Возможны перекрестные помехи. Пожалуйста, переместитесь на новое место"; + +/* Unit for singular day in pod life remaining */ +"day" = "день"; + +/* Unit for plural days in pod life remaining */ +"days" = "дней"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Деактивировать Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Не активен"; +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Деактивация."; + +/* Action button description while deactivating */ +"Deactivating..." = "Деактивация..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Удалить Omnipod DASH"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Сведения об устройстве"; + +/* description label for device name pod details row */ +"Device Name" = "Имя устройства"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Выключено"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Выбросить под"; + +/* No comment provided by engineer. */ +"Done" = "Готово"; + /* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Картридж пуст"; +"Empty reservoir" = "Резервуар пуст"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Резервуар пуст"; /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Пустой ответ от пода"; +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Пустое значение"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Активировано"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Ошибка"; + /* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Ошибка внесена, отключение"; +"Error event logged, shutting down" = "Ошибка записана в лог, отключение"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Совет по истечению срока действия"; /* Description for expiration alert */ "Expiration alert" = "Оповещение об истечении срока"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Напоминание об истечении срока"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Напоминание об истечении срока действия По умолчанию"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Растянутый"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Вводится растянутый болюс"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Продленный болюс с временной базальной скоростью"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Не удалось отменить ручной базал"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Не удалось возобновить подачу инсулина"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Не удалось установить время в помпе"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Не удалось приостановить подачу инсулина"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Не удалось обновить настройки напоминания о конфиденциальности."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Не удалось обновить напоминание об истечении срока действия"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Не удалось обновить напоминание о низком уровне резервуара"; + +/* Pod life HUD view label */ +"Fault" = "Сбой"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Произошло событие неисправности"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Заправьте новый под инсулином (не менее 100 единиц, голубая крышка канюли должна быть на месте). Дождитесь 2 звуковых сигналов."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Завершение деактивации"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Завершение деактивации"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Завершение сопряжения"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Завершить настройку"; + /* Description for finish setup */ "Finish setup " = "Завершение настройки"; +/* Description for finish setup reminder */ +"Finish setup reminder" = "Напоминание о завершении настройки"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware Version"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Более %1$@ ед остается в %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "час"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "часов"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Если вы отмените настройку пода, текущий под будет деактивирован и станет непригодным для использования."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Неправильное исключение пакета: %1$@ (location=%2$d)"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Неправильный ответ"; + /* Pod inititialized */ "Initialized" = "Активирован"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Ввести канюлю"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Введено"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Введение катетера"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Введение канюли. Пожалуйста, подождите."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Введение канюли..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Подача инсулина остановлена"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Введение инсулина остановлено. Замените Под."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Подача инсулина будет прекращена до тех пор, пока вы не возобновите ее вручную. Когда вы хотите, чтобы Loop напомнил вам о необходимости возобновить подачу?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Остаток инсулина"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Подача инсулина приостановлена"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Тип инсулина"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Тип инсулина не указан"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Внутренняя ошибка пода %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Болюс прерван%1$@ ед (%2$@ ед намечено) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Неверный адрес 0x%1$x. Ожидаемый адрес 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Неверный адрес: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Неверный CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Неверный ключ LTK: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Неверная настройка"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Правильно ли введен катетер?"; + +/* description label for last status date pod details row */ +"Last Status" = "Последнее состояние"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "Прослушайте 2 звуковых сигнала."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop не будет автоматически регулировать подачу инсулина, пока временная базальная скорость не закончится или не будет отменена."; + +/* description label for lot number pod details row */ +"Lot Number" = "Lot Number"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Мало инсулина в резервуаре"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Мало инсулина в резервуаре"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Предупреждение о низком уровне резервуара (%1$gU)"; + /* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Оповещение о малом запасе инсулина в картридже"; +"Low reservoir advisory alarm" = "Оповещение о малом запасе инсулина в резервуаре"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Резервуар помпы пуст"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "Убедитесь, что iPhone находится рядом с активным подом"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Убедитесь, что ваш телефон и под находятся рядом друг с другом. Если проблемы со связью сохраняются, перейдите в другое место."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Убедитесь, что ваш под заполнен инсулином и находится рядом."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Убедитесь, что ваш под находится рядом и попробуйте снова."; /* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink поблизости и включен"; +"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink находится поблизости и включен"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Ручная ВБС"; + +/* Pod memory initialized */ +"Memory initialized" = "Память инициализирована"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Исключение ввода-вывода сообщения: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "минута"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "минут"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Отсутствует конфигурация"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Переместитесь на новое место подальше от других подов и повторите попытку."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Оповещение по нескольким командам"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Продолжить"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Нет"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Нет подачи"; /* Pod alert state when no alerts are active */ "No alerts" = "Активных оповещений нет"; +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Напоминания о доверии не используются."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ошибок нет"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Нет инсулина"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Нет пода"; + /* Error message shown when no pod is paired */ -"No pod paired" = "Нет сопряжения с подом"; +"No pod paired" = "Нет сопряженного пода"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Подов не найдено"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Нет напоминаний"; /* Error message shown when no response from pod was received */ "No response from pod" = "Нет ответа от пода"; @@ -67,39 +578,170 @@ /* Error message shown when no response from pod was received */ "No RileyLink available" = "Нет доступного RileyLink"; +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Нет, продолжить с подом"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Нет, оставить время в помпе как есть"; + /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Норма"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Недостаточно данных"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Настройки уведомлений"; + +/* No comment provided by engineer. */ +"Numbers" = "Цифры"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Обнаружена закупорка"; +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Обнаружена закупорка"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ок"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Омнипод"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Напоминания пода"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Сопрячь под"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Сопрячь под."; + /* Pod status after pairing */ "Paired" = "Сопряжен"; +/* Pod status when pairing completed */ +"Pairing completed" = "Сопряжение завершено"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Исключение сопряжения: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Начать сопряжение"; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Сопряжение..."; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Ошибка синтаксического анализа: %1$@ in (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = " crc32 %1$@ не соответствует вычисленному crc32 %2$@"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Процент = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Периферийное устройство не готово"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Пожалуйста, приносите в зону действия только оригинальный под или деактивируйте оригинальный под"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "Поднесите Omnipod ближе к RileyLink и попробуйте снова"; +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Убедитесь, что под надежно приклеен на вашем теле.\n\nКатетер можно ввести только один раз. Нажмите кнопку \"Подтвердить\", когда под приклеен."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Пожалуйста, деактивируйте под. Когда деактивация будет закончена, Вы сможете сопрячь новый."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Пожалуйста, деактивируйте под. Когда деактивация будет закончена, Вы можете снять старый под и сопрячь новый."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Включите разрешения Bluetooth для этого приложения в настройках системы."; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Пожалуйста, завершите сопряжение вашего пода."; + /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Начните сопряжение с новым Omnipod"; +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Пожалуйста, переместите iPhone подальше от пода"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Пожалуйста, измените положение iPhone относительно пода"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Пожалуйста, используйте другое устройство с функцией bluetooth"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Под активирован"; + +/* Label describing pod age view */ +"Pod Age" = "Pod проработал"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Omnipod уже сопряжен"; /* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Omnipod уже заполнен"; +"Pod already primed" = "Omnipod уже прокачан инсулином"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Под успешно деактивирован. Продолжить."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Ошибка пода"; /* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Оповещение об окончании гарантийного срока Omnipod"; +"Pod expiration advisory alarm" = "Оповещение об окончании срока работы Omnipod"; /* The title for pod expiration notification */ "Pod Expiration Notice" = "Сообщение об окончании гарантийного срока Omnipod "; +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Напоминание об истечении срока"; + /* Description for Pod expired pod fault */ -"Pod expired" = "Срок гарантии Omnipod истек"; +"Pod expired" = "Срок работы Omnipod истек"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Под истек"; + +/* Label for pod expiration row */ +"Pod Expires" = "Срок действия пода истекает"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Под истекает "; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Под истекает в %1$@"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Детали ошибка пода"; /* Format string for pod fault code */ "Pod Fault: %1$@" = "Отказ Omnipod %1$@"; @@ -108,17 +750,66 @@ "Pod is not in a state ready for cannula insertion." = "Omnipod не готов к установке катетера"; /* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Omnipod не готов к первичному заполнению"; +"Pod is not in a state ready for priming." = "Omnipod не готов к прокачиванию инсулина"; /* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Omnipod остановлен"; +"Pod is suspended" = "Omnipod приостановлен"; + +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Под не подключен"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Закупорка пода"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Под успешно сопряжен. Продолжить."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Сопряжение с подом не выполнено"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod отправил \"ack\" вместо ответа (ему кирдык)"; + +/* Title for PodSetupView */ +"Pod Setup" = "Настройка пода"; /* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Время для окна настроек Omnipod истекло"; +"Pod setup window expired" = "Время для ввода настроек Omnipod истекло"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Напоминание о приостановке подачи инсулина"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Плохой уровень сигнала"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Подготовьте место установки помпы"; + +/* title for previous pod page */ +"Previous Pod" = "Предыдущий под"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Предыдущая информация о поде"; /* Delivery status when pod is priming Pod status when priming */ -"Priming" = "Заполнение"; +"Priming" = "Прокачивание инсулина"; + +/* Pod state when priming completed */ +"Priming completed" = "Прокачка инсулина завершена"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Заправка. Пожалуйста, подождите."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Заправить..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Время в помпе"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; /* Pod state when ready for basal programming */ "Ready for basal programming" = "Готов к программированию базала"; @@ -126,29 +817,152 @@ /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Готов к установке катетера"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Остается"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Инициализация напоминания"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Отломите защитную крышку канюли (голубого цвета) и проверьте состояние самой канюли. Далее снимите защитные стикеры с пластыря."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Снимите под с тела"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Удалите помпу"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Заменить Pod"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Возобновление"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Возобновить подачу"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Возобновить подачу"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Возобновить подачу инсулина"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Возобновление: %1$@ %2$@"; +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Возобновление подачи инсулина..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Повторить"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Сохранить"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Сохранение..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Запланированный базал"; + /* Delivery status when basal is running */ -"Scheduled Basal" = "Основной базал"; +"Scheduled Basal" = "Запланированная база"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Запланированное напоминание"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Выберите тип инсулина, с которым Вы будете использовать этот под."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Порядковый номер"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Установить ВБС"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Установить ВБС"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Настройка завершена"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Выключение неизбежно"; /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Оповещение о неизбежном выключении"; +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Сигнал потерян"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Слишком высокий уровень сигнала"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Пропустить настройку Omnipod?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Приостановка"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Остановить подачу"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Напоминание о приостановке подачи инсулина"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Остановить подачу инсулина"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Время приостановки подачи истекло"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Приостановка: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ "Suspended" = "Остановлено"; +/* Label for suspended at time */ +"Suspended At" = "Приостановлено в"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Остановка подачи инсулина..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Время приостановки подачи инсулина истекло. Откройте приложение и возобновите подачу."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Переключиться на другое устройство для введения инсулина"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Синхронизация с текущим временем"; + /* Pod tank fill completed */ -"Tank fill completed" = "Заполнение танка Omnipod завершено"; +"Tank fill completed" = "Заполнение резервуара Omnipod завершено"; /* Pod power to motor activated */ -"Tank power activated" = "Питание танка активировано"; +"Tank power activated" = "Питание моторчика резервуара активировано"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Нажмите ниже, чтобы начать ввод канюли."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "ВБС"; /* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Работает временный базал"; +"Temp basal in progress" = "Пока еще работает временный базал"; /* Delivery status when temp basal is running */ "Temp basal running" = "Подается временный базал"; @@ -156,23 +970,161 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Врем базал: %1$@ ед/ч %2$@ %3$@ %4$@ ед %5$@"; +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "ВБС"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Ошибка установки ВБС"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Приложение настраивает напоминание на телефоне, чтобы уведомить вас об истечении срока действия Pod. Установите количество часов предварительного уведомления, которое вы хотите сохранить при сопряжении нового Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Приложение заранее уведомит Вас об истечении срока действия Pod.\n\nПрокрутите, чтобы установить количество часов предварительного уведомления, которое вы хотели бы получить."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Приложение уведомит Вас, когда количество инсулина в Pod достигнет этого уровня (50-10 Ед).\n\nПрокрутите, чтобы установить количество единиц, о которых вы хотели бы получить напоминание."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Приложение уведомит Вас, когда количество инсулина в Pod достигнет этого уровня."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Период приостановки подачи инсулина закончилось.\n\nВы можете возобновить введение инсулина с баннера на главном экране приложения или с экрана настроек вашей помпы. Через 15 минут вы получите повторное напоминание."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Приведенные выше напоминания не будут звучать, если ваше устройство находится в режиме Тишина или Не беспокоить.\n\nЕсть и другие критические оповещения и сигналы тревоги Pod, которые будут звучать, даже если ваше устройство настроено в режим Тишина или Не беспокоить."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Время на вашей помпе отличается от текущего времени. Вы хотите обновить время на вашей помпе на текущее?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Время на вашей помпе отличается от текущего времени. Вы можете проверить время на помпе и синхронизировать его с текущим временем в настройках приложения."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Время на помпе отличается от текущего времени. Время вашей помпы контролирует ваши запланированные настройки терапии. Прокрутите вниз до строки времени помпы, чтобы просмотреть разницу во времени и настроить помпу."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Когда канюля правильно введена под кожу, окошко в верхней части пода должно окраситься в розовый цвет."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Возникла проблема с общением с подом. Если эта проблема сохраняется, нажмите \"Деактивировать Pod\". Затем вы можете активировать новый Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Это напоминание, которое вы запланировали при сопряжении с текущим подом."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Эта помпа не была настроена с максимальным базалом, потому что была добавлена до того, как установка ручной ВБС стала возможной. Пожалуйста, перейдите в настройки терапии -> Лимиты доставки и установите новый максимальный базал."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Время"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Обнаружено изменение времени"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Пора заменить Pod - Срок годности истекает через %1$@"; +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Тайм-аут"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Переключение входа"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Найдено слишком много подов"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Подано всего"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Попробуйте еще раз"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Включите Bluetooth"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Невозможно связаться с подом"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Невозможно связаться с подом"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Невозможно установить ВБС: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Невозможно установить ВБС: %1$@\n\n%2$@"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Не подтверждено"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Неожиданный порядковый номер сообщения"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Неожиданная смена пода"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Неожиданный отклик Omnipod"; +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Не закончена активация"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Незавершенная деактивация"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Неизвестная характеристика"; + /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Неизвестная неполадка Omnipod"; +"Unknown pod fault %1$03d" = "Неизвестная неисправность Omnipod %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Неизвестное значение ( %1$@ ) для типа %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Ошибка проверки: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Дождитесь окончания подачи болюса или отмените его"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Дождитесь окончания текущего врем базала или отмените"; +"Wait for existing temp basal to finish, or suspend to cancel" = "Дождитесь окончания введения текущей ВБС или остановите помпу для отмены"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Подождите, пока ввод канюли завершится."; /* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Напоминание об ожидании сопряжения"; +"Waiting for pairing reminder" = "Все еще ожидается сопряжение"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Да"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Деактивировать Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Да, синхронизировать с текущим временем"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Сейчас Вы начнете процесс конфигурирования напоминаний, заправки пода инсулином, сопряжения с телефоном и установкой пода на тело."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Под готов к использованию.\n\n%1$@ напомнит вам о необходимости замены пода до истечения срока его действия. Вы можете изменить это на удобное для вас время."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Ваш под может по-прежнему доставлять инсулин.\n Удалите его с тела, затем нажмите «Продолжить»."; + diff --git a/Dependencies/OmniBLE/OmniBLE/sk.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..dd28a6c248 --- /dev/null +++ b/Dependencies/OmniBLE/OmniBLE/sk.lproj/Localizable.strings @@ -0,0 +1,856 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "{neaktívne}"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "pred %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ j"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ j"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "1 pre 2"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ sa nepodarilo komunikovať s podom na vašom tele od %2$@ . \n\nBez komunikácie s podom, nemôže aplikácia pokračovať v odosielaní príkazov na aplikáciu inzulínu, ani zobrazovať presné a aktuálne informácie o vašom aktívnom inzulíne alebo o inzulíne podávanom podom. \n\nPočas nasledujúcich 6 alebo viac hodín pozorne sledujte svoju glykémiu, pretože vo vašom tele môže alebo nemusí aktívne pôsobiť inzulín, ktorý %3$@ nedokáže zobraziť."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "V podu zostáva %1$@ inzulínu alebo menej. Čoskoro vymeňte pod."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednotiek zostávajúcich na %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g j"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Čas aktivácie bol prekročený"; + +/* description label for active time pod details row */ +"Active Time" = "Aktívny čas"; + +/* Section header for activity section */ +"Activity" = "Aktivita"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Naozaj chcete preskočiť nastavovanie Omnipodu?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Aplikujte pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Prebieha obnovenie komunikácie"; + +/* Description for auto-off */ +"Auto-off" = "Automatické vypnutie"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Späť"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazál inciovaný"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Menej ako 50 jednotiek"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Prebieha bolus"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "\nBolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusovanie"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolusovanie s dočasným bazálom"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Zrušiť"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyla úspešne zavedená. Pokračovať."; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Zavádzanie kanyly"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Zaručené"; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Ihneď vymeniť pod. Podávanie inzulínu sa zastaví o 8 hodín alebo keď sa minie inzulín."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Ihneď vymeniť pod. Podávanie inzulínu sa zastaví o %1$@ alebo keď sa minie inzulín."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Treba vymeniť pod. Podávanie inzulínu sa zastaví o 1 hodinu."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Vymeniť pod teraz. Pod bol aktívny 72 hodín."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Skontrolujte kanylu"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Skontrolujte pod, aplikujte ho na telo, potom potvrďte prilepenie podu."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrola zavedenia"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontroluje sa..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Príkazy obnovené"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problém s komunikáciou: Čaká sa na potvrdenie príkazu."; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Potvrdzovacie pripomienky sú pípnutia z podu, ktoré možno použiť pre potvrdenie vybraných príkazov."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Pripomienky spoľahlivosti zaznejú pri príkazoch, ktoré spustíte, ako je bolus, zrušenie bolusu, pozastavenie, obnovenie, uloženie upozornení atď. Keď Loop automaticky upraví podanie, nepoužijú sa žiadne pripomenutia spoľahlivosti."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Keď Loop automaticky upraví podávanie, ako aj prevedie príkazy, ktoré iniciujete, zaznejú pripomenutia spoľahlivosti."; + +/* Section header for configuration section */ +"Configuration" = "Konfigurácia"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Pokračovať"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritické výstrahy"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Možné presluchy. Presuňte sa na iné miesto"; + +/* Unit for singular day in pod life remaining */ +"day" = "deň"; + +/* Unit for plural days in pod life remaining */ +"days" = "dni"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Deaktivovať pod"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivované"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktivuje sa."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktivuje sa..."; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Podrobnosti o zariadení"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Zlikvidujte pod"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Prázdna nádrž"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Prázdna odpoveď z podu"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Chyba"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Zaprotokolovaná udalosť chyby, vypína sa"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Upozornenie na vypršanie platnosti"; + +/* Description for expiration alert */ +"Expiration alert" = "Varovanie o expirácii"; + +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Pripomienka o expirácii"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Predvolené pripomenutie o expirácii"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Prebieha predĺžený bolus"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Predĺžený bolus beží súčasne s dočasným bazálom"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Zrušenie manuálneho bazálu zlyhalo"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Obnovenie podávania inzulínu zlyhalo"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nastavenie času pumpy zlyhalo"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Pozastavenie podávania inzulínu zlyhalo"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Nepodarilo sa aktualizovať predvoľbu pripomenutia dôveryhodnosti."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nepodarilo sa aktualizovať pripomenutie o expirácii"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nepodarilo sa aktualizovať pripomienku nízkej hladiny v rezervoári"; + +/* Pod life HUD view label */ +"Fault" = "Chyba"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Vyskytla sa chybová udalosť"; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Dokončiť deaktiváciu"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Dokončiť nastavenie"; + +/* Description for finish setup */ +"Finish setup " = "Dokončiť nastavenie"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Dokončiť nastavenie pripomienky"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Viac ako %1$@ jednotiek zostávajúcich o %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "hodina"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "hodiny"; + +/* Pod inititialized */ +"Initialized" = "Inicializované"; + +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Zaviesť kanylu"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanyla sa zavádza"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Zavádzanie. Počkajte, prosím."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Zavádza sa.."; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Podávanie inzulínu"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podávanie inzulínu sa zastavilo. Vymeňte modul teraz."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Zostávajúci inzulín"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Typ inzulínu nie je nakonfigurovaný"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interná chyba podu %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "PrerušenýBolus: %1$@ j (%2$@ j naplánované) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Neplatná adresa 0x %1$x . Očakáva sa 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Neplatná adresa: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Neplatný kód CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Neplatné nastavenie"; + +/* description label for last status date pod details row */ +"Last Status" = "Posledný stav"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop nebude automaticky upravovať podávanie inzulínu, kým dočasná bazálna dávka nebude ukončená alebo zrušená."; + +/* description label for lot number pod details row */ +"Lot Number" = "Číslo šarže"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Nízka hladina v rezervoári"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Nízka hladina v rezervoári"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Nízka hladina v rezervoári (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Nízka hladina v rezervoári"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Pripomienka Nízka hladina v rezervoári"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Uistite sa, že váš telefón a pod sú blízko seba. Ak problémy s komunikáciou pretrvávajú, presuňte sa na iné miesto."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Uistite sa, že je váš pod naplnený a v blízkosti."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Uistite sa, že je váš RileyLink v blízkosti a je zapnutý"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuálny bazál"; + +/* Pod memory initialized */ +"Memory initialized" = "Pamäť inicializovaná"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minúta"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minúty"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Chýba konfigurácia"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Presuňte sa ďalej od ostatných modulov a skúste znova."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Upozornenie na viacero príkazov"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Ďalej"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nie"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Žiadne upozornenia"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nepoužívajú sa žiadne pripomenutia spoľahlivosti."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Žiadne chyby"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žiadny inzulín"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Žiadny pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Nie je spárovaný žiadny pod"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nenašiel sa žiadny pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Žiadna pripomienka"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Žiadna odpoveď z podu"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Nie je k dispozícii žiadny RileyLink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normálny"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Nedostatok dát"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Nastavenia oznámení"; + +/* No comment provided by engineer. */ +"Numbers" = "Čísla"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Zistená oklúzia"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Zistená oklúzia"; + +/* Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Pripomienky omnipodu"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "jednoNepoužité"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Párovať pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Párovať pod."; + +/* Pod status after pairing */ +"Paired" = "Spárované"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Párovanie je dokončené"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Párovanie."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Páruje sa…"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Prosím, majte iba pôvodný pod v dosahu alebo deaktivujte pôvodný pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Priblížte pod k RileyLinku a skúste to znova"; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Prosím, deaktivujte pod. Po dokončení deaktivácie, môžete spárovať nový pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Prosím, deaktivujte pod. Po dokončení deaktivácie, ho môžete odstrániť a spárovať nový pod."; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Dokončite párovanie podu."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Spárujte nový pod"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod aktivovaný"; + +/* Label describing pod age view */ +"Pod Age" = "Vek podu"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod je už spárovaný"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod je už pripravený"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod deaktivovaný úspešne. Pokračovať."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Chyba podu"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Oznámenie o expirácii podu"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Oznámenie o expirácii podu"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod vypršal"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod expiroval"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod expiruje o"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detaily chyby podu"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Chyba podu: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod nie je v stave pripravenom na zavedenie kanyly."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pumpu nie je v tomto stave možné pripraviť."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod je pozastavený"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Oklúzia podu"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod sprárovaný úspešne. Pokračovať."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Párovanie podu nebolo dokončené"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod poslal potvrdenie namiesto odpovede "; + +/* Title for PodSetupView */ +"Pod Setup" = "Nastavenie podu"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Okno nastavenia podov vypršalo"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pripomenutie pozastaveného podu"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Slabá sila signálu"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Pripravte miesto."; + +/* title for previous pod page */ +"Previous Pod" = "Predchádzajúci Pod"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Príprava podu"; + +/* Pod state when priming completed */ +"Priming completed" = "Príprava podu dokončená"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Pripravuje sa. Prosím čakajte."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Príprava…"; + +/* Label text for basal rate summary */ +"Rate" = "Dávka"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Pripravené na programovanie bazálu"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pripravené na zavedenie kanyly"; + +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Zostáva"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Pripomienka bola inicializovaná"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Vymeňte pod"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Obnoviť podávanie inzulínu"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Obnoviť podávanie inzulínu"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Obnoviť podávanie inzulínu"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Obnovuje sa podávanie inzulínu..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Skúsiť znova"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Uložiť"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Ukladá sa..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Naplánovaný bazál "; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Naplánovaný bazál"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Naplánovaná pripomienka"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vyberte typ inzulínu, ktorý budete používať v tomto pode."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvenčné číslo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Nastaviť dočasný bazál"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Nastavenie je dokončené"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Vypnutie každú chvilu"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Varovanie bezprostredného vypnutia"; + +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Strata signálu"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Príliš vysoká sila signálu"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Preskočiť Omnipod Onboarding?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Pozastavenie"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Pripomienka prebiehajúceho pozastavenia"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Zastavte podávanie inzulínu"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Čas pozastavenia vypršal"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pozastaviť: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pozastavené"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Pozastavenie podávania inzulínu..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Čas pozastavenia vypršal. Otvorte aplikáciu a pokračujte."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Plnenie nádrže dokončené"; + +/* Pod power to motor activated */ +"Tank power activated" = "Napájanie nádrže je aktivované"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Ťuknutím nižšie spustíte zavádzanie kanyly."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Dočasný bazál"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Prebieha dočasný bazál"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Prebieha dočasný bazál"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "DočasBazál: %1$@ j/hod %2$@ %3$@ %4$@ j %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Dočasný bazál"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Dočasný bazál zlyhal"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplikácia nakonfiguruje pripomienku do podu, aby vás vopred upozornila na expiráciu podu. Počas párovania nového podu, nastavte, koľko hodín vopred, by ste chceli pripomienku nakonfigurovať."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikácia vás vopred upozorní na expiráciu podu. \n\nRolovaním nastavte počet hodín vopred, kedy chcete upozornenie dostať."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplikácia vás upozorní, keď množstvo inzulínu v pode dosiahne túto úroveň (50 – 10 U). \n\nRolovaním nastavte počet jednotiek, pri ktorých chcete byť upozornení."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplikácia vás upozorní, keď množstvo inzulínu v pode dosiahne túto úroveň."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Obdobie pozastavenia inzulínu sa skončilo.\n\nPodávanie inzulínu môžete obnoviť z bannera na domovskej obrazovke alebo z obrazovky nastavení pumpy. Pripomienka sa vám znova zobrazí o 15 minút."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Čas na pumpe sa líši od aktuálneho času. V nastaveniach môžete skontrolovať čas pumpy a synchronizovať sa s aktuálnym časom."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Čas na pumpe je iný ako aktuálny čas. Čas pumpy riadi vaše naplánované liečebné nastavenia. Prejdite nadol na riadok Čas pumpy, pozrite si časový rozdiel a nakonfigurujte pumpu."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Nastal problém s komunikáciou s podom. Ak tento problém pretrváva, ťuknite na položku Zlikvidovať Pod. Potom môžete aktivovať nový pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Toto je pripomienka, ktorú ste naplánovali pri spárovaní aktuálneho Podu."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "triNepoužité"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Čas"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Zistila sa zmena času"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Je čas vymeniť pod! Platnosť vášho podu vyprší o %1$@"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Značka prepnutia"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Našlo sa príliš veľa podov"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Celková dávka"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Skúste znova"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "dveNepoužité"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Pod nie je v dosahu."; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Pod nie je v dosahu."; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nie je možné nastaviť dočasnú dávku bazálu: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nie je možné nastaviť dočasnú dávku bazálu: %1$@ \n\n %2$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Neisté"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Neočakávané poradové číslo správy"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Neočakávaná zmena podu"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Neočakávaná odpoveď z podu"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Aktivácia neukončená"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Deaktivácia neukončená"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Neznáma chyba podu %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Neznáma hodnota ( %1$@ ) pre typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Overenie zlyhalo: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Počkajte na dokončenie bolusu alebo bolus zrušte"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Počkajte, kým sa dokončí dočasný bazál, alebo ho zrušte"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Počkajte kým nie je zavedenie ukončené."; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Čaká sa na pripomienku párovania"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Áno"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Teraz začnete s procesom konfigurácie pripomienok, naplnením podu inzulínom, jeho spárovaním s vašim zariadením a umiestnením podu na telo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Váš pod je pripravený na použitie. \n\n %1$@ vám pripomenie, aby ste vymenili svoj pod pred časom jeho expirácie. Môžete to zmeniť na čas, ktorý vám vyhovuje."; + diff --git a/Dependencies/OmniBLE/OmniBLE/sv.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/sv.lproj/Localizable.strings index b6b7363bbc..79374593d1 100644 --- a/Dependencies/OmniBLE/OmniBLE/sv.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/sv.lproj/Localizable.strings @@ -1,9 +1,46 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inaktiv)"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ sedan"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter återstår kl. %2$@"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tid för aktivering överskriden"; + +/* description label for active time pod details row */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Auto-av larm"; +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tillbaka"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initierad"; + /* Pod state when running below fifty units */ "Below 50 units" = "Under 50 enheter"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Bolus pågår"; @@ -16,48 +53,161 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Ger bolus med temporär basal"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Avbryt"; + /* Pod state when inserting cannula */ "Cannula inserting" = "Kanyl förs in"; /* String describing a dose that was certainly scheduled */ "Certain" = "Säker"; +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrollerar..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofel %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommandoproblem"; + +/* Section header for configuration section */ +"Configuration" = "Konfiguration"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Fortsätt"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Inaktivera podd"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Inaktiverad"; +/* No comment provided by engineer. */ +"Done" = "Färdig"; + /* Description for Empty reservoir pod fault */ "Empty reservoir" = "Podfel, tom reservoarl"; /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Inget svar från pod"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "På"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fel"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Felhändelse loggad, stänger ned"; /* Description for expiration alert */ "Expiration alert" = "Larm om utgångsdatum"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Påminnelse om utgångsdatum"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Misslyckades att återuppta insulintillförsel"; + +/* Pod life HUD view label */ +"Fault" = "Fel"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Felhändelse inträffade"; + /* Description for finish setup */ "Finish setup " = "Inställning färdig"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Fler än %1$@ enheter återstår kl. %2$@"; + /* Pod inititialized */ "Initialized" = "Pod initialiserad"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "För in kanyl"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanyl förs in"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintillförsel pausad"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintyp"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Internt podfel %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AvbrutenBolus: %1$@ E (%2$@ E schemalagd) %3$@ %4$@ %5$@"; +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ogiltig adress 0x%1$x. Förväntade 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ogiltig adress: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ogiltigt CRC"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Låg reservoarvolym"; + /* Description for low reservoir alarm */ "Low reservoir advisory alarm" = "Larm vid låg reservoarvolym"; /* Recovery suggestion when no RileyLink is available */ "Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära och påslagen"; +/* Pod memory initialized */ +"Memory initialized" = "Minne initierat"; + /* Pod alert state when no alerts are active */ "No alerts" = "Inga larm"; +/* Description for Fault Event Code .noFaults */ +"No faults" = "Inga fel"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Inget insulin"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Podd"; + /* Error message shown when no pod is paired */ "No pod paired" = "Ingen parkopplad"; @@ -71,21 +221,36 @@ Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Inte tillräckligt med data"; + /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Ocklusion upptäckt"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + /* Pod status after pairing */ "Paired" = "Parkopplad"; +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Ha endast din ursprungliga podd inom räckvidd eller inaktivera ursprunglig podd"; + /* Recovery suggestion when no response is received from pod */ "Please bring your pod closer to the RileyLink and try again" = "För din pod närmare din RileyLink och försök igen"; /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Var god parkoppla ny pod"; +/* Label describing pod age view */ +"Pod Age" = "Poddålder"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod redan parkopplad"; @@ -101,6 +266,14 @@ /* Description for Pod expired pod fault */ "Pod expired" = "Pod har utgått"; +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Poddens utgångsdatum passerat"; + /* Format string for pod fault code */ "Pod Fault: %1$@" = "Podfel: %1$@"; @@ -113,28 +286,73 @@ /* Error message action could not be performed because pod is suspended */ "Pod is suspended" = "Pod är pausad"; +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Podd skickade ack istället för svar"; + /* Pod state when prime or cannula insertion has not completed in the time allotted */ "Pod setup window expired" = "Tid för podinställning är överskriden"; +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dålig signalstyrka"; + /* Delivery status when pod is priming Pod status when priming */ "Priming" = "Pod fylls på"; +/* Pod state when priming completed */ +"Priming completed" = "Podd har fyllts färdigt med insulin"; + /* Pod state when ready for basal programming */ "Ready for basal programming" = "Klar för programmering av basal"; /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Klar att föra in kanyl"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Återstår"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påminnelse initierad"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Byt podd"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Återuppta: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Försök igen"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Spara"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Schemalagd basal"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Schemalagd basal"; +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Välj vilken typ av insulin du kommer att använda."; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Inställning klar"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Larm för omedelbar avstängning"; +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrka för hög"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pausa insulintillförsel"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Pausa: %1$@ %2$@"; @@ -147,6 +365,9 @@ /* Pod power to motor activated */ "Tank power activated" = "Ström till motor för behållare aktiverad"; +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporär basal"; + /* Error message shown when temp basal could not be set due to existing temp basal in progress */ "Temp basal in progress" = "Temp basal pågår redan"; @@ -156,18 +377,48 @@ /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ E/timme %2$@ %3$@ %4$@ E %5$@"; +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Byt din pod! Din pod går ut om %1$@"; +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Försök igen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/timme"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Osäker"; +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Oväntat meddelandesekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Oväntat poddbyte"; + /* Error message shown when empty response from pod was received */ "Unexpected response from pod" = "Oväntat svar från din pod"; /* The format string for Unknown pod fault (1: The fault code value) */ "Unknown pod fault %1$03d" = "Okänt podfel %1$03d"; +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Okänt värde (%1$@) av typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validering misslyckades: %1$@"; + /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ "Wait for existing bolus to finish, or cancel bolus" = "Vänta på att pågående bolus är färdig, eller avbryt bolus"; @@ -176,3 +427,4 @@ /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Väntar på påminnelse för parkoppling"; + diff --git a/Dependencies/OmniBLE/OmniBLE/tr.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/tr.lproj/Localizable.strings index acdec02594..76200f959a 100644 --- a/Dependencies/OmniBLE/OmniBLE/tr.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/tr.lproj/Localizable.strings @@ -1,178 +1,1127 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(etkin değil)"; + +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ önce"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%@ vücudunuzdaki pod ile iletişimi yeniden sağladı.\n\nİnsülin iletim kayıtları güncellendi ve gerçekte iletilenlerle eşleşmelidir.\n\nŞimdi normal şekilde %@ kullanmaya devam edebilirsiniz."; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ Ü"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ü"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%2$@ için %1$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ , %2$@ tarihinden beri vücudunuzdaki pod ile iletişim kuramıyor. \n\nPod ile iletişim olmadan, uygulama insülin iletimi için komutlar göndermeye devam edemez ve aktif insülininiz veya pod tarafından verilen insülin hakkında doğru ve güncel bilgileri görüntüleyemez. \n\n Vücudunuzda aktif olarak çalışan ve %3$@ tarafından görüntülenemeyen insülin olabilir veya olmayabilir, önümüzdeki 6 saat veya daha uzun bir süre boyunca kan şekerinizi yakından takip edin."; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insülin veya daha az kaldı. Yakında Pod'u değiştirin."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ünite kaldı %2$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%gr Ü"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 saat"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 saat 30 dakika"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 saat"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 dakika"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivasyon süresi aşıldı"; + +/* description label for active time pod details row */ +"Active Time" = "Aktif Zaman"; + +/* Section header for activity section */ +"Activity" = "Aktivite"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pompa Zamanı Ayarlanıyor..."; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Pod kurulumunu iptal etmek istediğinizden emin misiniz?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Omnipod katılımını atlamak istediğinizden emin misiniz?"; + +/* Message for Omnipod DASH PumpManager deletion action sheet */ +"Are you sure you want to stop using Omnipod DASH?" = "Omnipod DASH'i kullanmayı bırakmak istediğinizden emin misiniz?"; + +/* navigation bar title attach pod + Title for Attach Pod screen */ +"Attach Pod" = "Pod Ekleme"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "İletişim yeniden kuruluyor"; + +/* Description for auto-off */ +"Auto-off" = "Otomatik kapanma"; + /* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; +"Auto-off alarm" = "Oto-kapanma alarmı"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Geri"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazal başlatıldı"; /* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; +"Below 50 units" = "50 ünitenin altında"; + +/* description label for ble firmware version pod details row */ +"BLE Firmware Version" = "BLE Yazılım Sürümü"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Bluetooth is powered off" = "Bluetooth kapalı"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Bluetooth is resetting" = "Bluetooth sıfırlanıyor"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unknown) */ +"Bluetooth is unavailable for an unknown reason." = "Bluetooth bilinmeyen bir nedenle kullanılamıyor."; + +/* The format string for BluetoothManagerError.bluetoothNotAvailable for unknown state (1: the unknown state) */ +"Bluetooth is unavailable: %1$@" = "Bluetooth kullanılamıyor: %1$@"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Bluetooth use is unauthorized" = "Bluetooth kullanımı yetkisiz"; + +/* Error description for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Bluetooth use unsupported on this device" = "Bluetooth kullanımı bu cihazda desteklenmiyor"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; /* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; +"Bolus in progress" = "Bolus devam ediyor"; /* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@Ü %2$@ %3$@ %4$@"; /* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; +"Bolusing" = "Bolus iletiliyor"; /* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; +"Bolusing with temp basal" = "Geçici bazal ile bolus iletiliyor"; + +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "İptal"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Manuel Bazalı İptal Et"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanül başarıyla yerleştirildi. Devam et."; /* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; +"Cannula inserting" = "Kanül takma"; /* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; +"Certain" = "Kesin"; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Pod'u şimdi değiştirin. İnsülin iletimi, podun süresi dolduktan 8 saat sonra veya insülin kalmadığında duracaktır."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Pod'u şimdi değiştirin. İnsülin iletimi %1$@ içinde veya insülin kalmadığında duracaktır."; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Pod'u şimdi değiştirin. İnsülin iletimi 1 saat içinde duracaktır."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Pod'u şimdi değiştirin. Pod 72 saattir aktif."; + +/* navigation bar title for check cannula + Title for check cannula screen */ +"Check Cannula" = "Kanülü Kontrol Edin"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Pod'u kontrol edin, uygulayın, ardından pod eklemeyi onaylayın."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Yerleştirmeyi Kontrol Et"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrol ediliyor..."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Komut hatası %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "İletişim Sorunu"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "İletişim Kurtarıldı"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "İletişim sorunu: Onaylanmamış komut beklemede."; + +/* navigation title for confidence reminders + Text for confidence reminders navigation link */ +"Confidence Reminders" = "Emniyet Hatırlatıcıları"; + +/* No comment provided by engineer. */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Emniyet hatırlatıcıları, poddan gelen ve seçilen komutları onaylamak için kullanılabilen bip sesleridir."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Emniyet hatırlatıcıları, bolus, bolus iptali, askıya alma, devam ettirme, bildirim hatırlatıcılarını kaydetme gibi başlattığınız komutlar için çalacaktır. Loop iletimi otomatik olarak ayarladığında emniyet hatırlatıcıları kullanılmaz."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Emniyet hatırlatıcıları, Başlattığınız komutların yanı sıra Loop iletimi otomatik olarak ayarladığında çalacaktır."; + +/* Section header for configuration section */ +"Configuration" = "Konfigürasyon"; + +/* Button title for confirm attachment option */ +"Confirm" = "Onayla"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Pod Eklemeyi Onayla"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Devam et"; + +/* The format string for PodProtocolError.couldNotParseMessageException (1: message associated with error) */ +"Could not parse message: %1$@" = "Mesaj ayrıştırılamadı: %1$@"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritik Uyarılar"; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritik Pod Hatası"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Karışma mevcut. Lütfen yer değiştririn."; + +/* Unit for singular day in pod life remaining */ +"day" = "gün"; + +/* Unit for plural days in pod life remaining */ +"days" = "gün"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Pod'u devre dışı bırak"; /* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; +"Deactivated" = "Devre dışı"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Devre dışı bırakılıyor."; + +/* Action button description while deactivating */ +"Deactivating..." = "Devre dışı bırakılıyor..."; + +/* Button text to confirm Omnipod DASH PumpManager deletion */ +"Delete Omnipod DASH" = "Dash Pompasını Sil"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Cihaz Detayları"; + +/* description label for device name pod details row */ +"Device Name" = "Cihaz ismi"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Devre Dışı"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Podu At"; + +/* No comment provided by engineer. */ +"Done" = "Tamamlandı"; /* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; +"Empty reservoir" = "Boş rezervuar"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Boş Rezervuar"; /* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; +"Empty response from pod" = "Pod'dan boş yanıt"; + +/* Error message description for PeripheralManagerError.emptyValue */ +"Empty Value" = "Boş Değer"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Etkin"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Hata"; /* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; +"Error event logged, shutting down" = "Hata olayı kaydedildi, kapatılıyor"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Süre sonu tavsiyesi"; /* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; +"Expiration alert" = "Süre sonu uyarısı"; + +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Süre Sonu Hatırlatıcısı"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Varsayılan Süre Sonu Hatırlatıcısı"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Yayma"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Yayma bolus çalışıyor"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Geçici bazal ile çalışan yayma bolus"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Manuel Bazal İptal Edilemedi"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "İnsülin İletimine Devam Edilemedi"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Pompa Zamanı Ayarlanamadı"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "İnsülin İletimi Askıya Alınamadı"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Emniyet hatırlatıcısı tercihi güncellenemedi."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Süre Sonu Hatırlatıcısı Güncellenemedi"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Düşük Rezervuar Hatırlatıcısı Güncellenemedi"; + +/* Pod life HUD view label */ +"Fault" = "Hata"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Hata meydana geldi"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave blue Pod needle cap on)." = "Yeni bir podu U-100 İnsülin ile doldurun (podun mavi iğne kapağını çıkarmayın)."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Devre Dışı Bırakmayı Bitir"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Devre Dışı Bırakmayı Bitir"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Eşleştirmeyi Bitir"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Kurulumu Bitir"; /* Description for finish setup */ -"Finish setup " = "Finish setup "; +"Finish setup " = "Kurulumu bitir"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Hatırlatıcı kurulumunu bitir"; + +/* description label for firmware version pod details row */ +"Firmware Version" = "Donanım yazılımı sürümü"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "%2$@ de kalan %1$@ üniteden fazla"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "saat"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "saat"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Pod kurulumunu iptal ederseniz, mevcut Pod devre dışı bırakılır ve kullanılamaz hale gelir."; + +/* The format string for PodProtocolError.incorrectPacketException (1: payload)(2: location) */ +"Incorrect Packet Exception: %1$@ (location=%2$d)" = "Hatalı Paket İstisnası: %1$@ (konum= %2$d )"; + +/* Error message description for PeripheralManagerError.incorrectResponse */ +"Incorrect Response" = "Hatalı Yanıt"; /* Pod inititialized */ -"Initialized" = "Initialized"; +"Initialized" = "Başlatıldı"; + +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Kanül yerleştirin"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Yerleştirildi"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanül yerleştiriliyor"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Yerleştiriliyor. Lütfen bekleyin.."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Yerleştiriliyor..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "İnsülin\nAskıya alındı"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "İnsulin İletimi"; + +/* The action string on pod status page when pod faulted + The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "İnsülin iletimi durdu. Pod'u şimdi değiştirin."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Siz manuel olarak devam edene kadar insülin iletimi durdurulacaktır. Loop'un iletime devam etmenizi ne zaman hatırlatmasını istersiniz?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Kalan İnsülin"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "İnsülin Askıya Alındı"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "İnsülin Tipi"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "İnsülin tipi yapılandırılmamış"; /* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; +"Internal pod fault %1$03d" = "Dahili pod hatası %1$03d"; /* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KesintiliBolus: %1$@ Ü (%2$@ Ü planlandı) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Geçersiz adres 0x %1$x . Beklenen 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Geçersiz adres: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Geçersiz CRC"; + +/* The format string for PodProtocolError.invalidLTKKey (1: message associated with error) */ +"Invalid LTK Key: %1$@" = "Geçersiz LTK Anahtarı: %1$@"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Geçersiz Ayar"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Kanül düzgün yerleştirildi mi?"; + +/* description label for last status date pod details row */ +"Last Status" = "Son Durum"; + +/* Label text for step 2 of pair pod instructions */ +"Listen for 2 beeps." = "2 bip sesini dinleyin."; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop, geçici bazal oran bitene veya iptal edilene kadar insülin iletiminizi otomatik olarak ayarlamaz."; + +/* description label for lot number pod details row */ +"Lot Number" = "Parti Numarası"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Düşük rezervuar"; + +/* Alert content title for lowReservoir pod alert + Label text for low reservoir value row + navigation bar title for low reservoir + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Düşük Rezervuar"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Düşük rezervuar tavsiyesi (%1$gU)"; /* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; +"Low reservoir advisory alarm" = "Düşük rezervuar uyarı alarmı"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Düşük Rezervuar Hatırlatıcısı"; + +/* Recovery suggestion when no response is received from pod */ +"Make sure iPhone is nearby the active pod" = "iPhone'un etkin podun yakınında olduğundan emin olun"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Telefonunuzun ve podunuzun birbirine yakın olduğundan emin olun. İletişim sorunları devam ederse, yeni bir alana geçin."; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Podunuzun dolu ve yakında olduğundan emin olun."; + +/* Recovery suggestion when no pod is available */ +"Make sure your pod is nearby and try again." = "Podunuzun yakında olduğundan emin olun ve tekrar deneyin."; /* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; +"Make sure your RileyLink is nearby and powered on" = "RileyLink'inizin yakında olduğundan ve açık olduğundan emin olun"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuel Bazal"; + +/* Pod memory initialized */ +"Memory initialized" = "Bellek başlatıldı"; + +/* The format string for PodProtocolError.messageIOException (1: message associated with error) */ +"Message IO Exception: %1$@" = "Mesaj GÇ İstisnası: %1$@"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "dakika"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "dakika"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Eksik Yapılandırma"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Diğer podlardan uzakta yeni bir alana gidin ve tekrar deneyin."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Çoklu Komut Uyarısı"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "mev. değil"; + +/* Error message description for PeripheralManagerError.nack */ +"Nack" = "Nack"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Sonraki"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Hayır"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "İletim\nYok"; /* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; +"No alerts" = "Uyarı yok"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Emniyet hatırlatıcıları kullanılmaz."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Hata yok"; + +/* Error message for reservoir view when reservoir empty + Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "İnsülin yok"; + +/* Label for pod life state when no pod paired + Status highlight that when no pod is paired. + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Pod Yok"; /* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; +"No pod paired" = "Eşleştirilmiş pod yok"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Pod bulunamadı"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Hatırlatıcı Yok"; /* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; +"No response from pod" = "Pod'dan yanıt yok"; /* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; +"No RileyLink available" = "RileyLink yok"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Hayır, Pod ile Devam Et"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Hayır, Pompayı Olduğu Gibi Tutun"; /* Delivery status when basal is running Pod state when running above fifty units */ "Normal" = "Normal"; +/* Description for MessageError notEnoughData */ +"Not enough data" = "Yeterli veri yok"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Bildirim ayarları"; + +/* No comment provided by engineer. */ +"Numbers" = "Sayılar"; + /* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; +"Occlusion detected" = "Tıkanma tespit edildi"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Tıkanma tespit edildi"; + +/* Action button default text for PodAlerts */ +"Ok" = "Tamam"; + +/* Alert acknowledgment OK button */ +"OK" = "Tamam"; /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; +/* Generic title of the OmniBLE pump manager */ +"Omnipod DASH" = "Omnipod DASH"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod Hatırlatıcıları"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "birNotKullanıldı"; + +/* Pair Pod navigationBarTitle + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Pod eşleştirme"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Pod eşleştir"; + /* Pod status after pairing */ -"Paired" = "Paired"; +"Paired" = "Eşleştirilmiş"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Eşleştirme tamamlandı"; + +/* The format string for PodProtocolError.pairingException (1: message associated with error) */ +"Pairing Exception: %1$@" = "Eşleştirme İstisnası: %1$@"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Eşleştiriliyor."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Eşleştiriliyor…"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Ayrıştırma Hatası: %1$@ içinde (%2$@)"; + +/* The format string for description of PodProtocolError.invalidCrc (1:payload crc)(2:computed crc) */ +"Payload crc32 %1$@ does not match computed crc32 %2$@" = "Crc32 %1$@ yükü, hesaplanan crc32 %2$@ ile eşleşmiyor"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Yüzde = %lf"; + +/* Error message description for PeripheralManagerError.notReady */ +"Peripheral Not Ready" = "Çevre Birimi Hazır Değil"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Lütfen menzile yalnızca orijinal podu getirin veya orijinal podu devre dışı bırakın"; /* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; +"Please bring your pod closer to the RileyLink and try again" = "Lütfen podunuzu RileyLink'e yaklaştırın ve tekrar deneyin"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Lütfen Pod'un vücudunuza güvenli bir şekilde takıldığından emin olun. \n\n Kanül, her Pod ile yalnızca bir kez yerleştirilebilir. Pod eklendiğinde \"Onayla\"ya dokunun."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Lütfen podu devre dışı bırakın. Devre dışı bırakma tamamlandığında, yeni bir podu eşleştirebilirsiniz."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Lütfen podu devre dışı bırakın. Devre dışı bırakma tamamlandığında onu çıkarabilir ve yeni bir podu eşleştirebilirsiniz."; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unauthorized) */ +"Please enable bluetooth permissions for this app in system settings" = "Lütfen sistem ayarlarında bu uygulama için bluetooth izinlerini etkinleştirin"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Lütfen podunuzu eşleştirmeyi bitirin."; /* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; +"Please pair a new pod" = "Lütfen yeni bir pod eşleştirin"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition iPhone further from the pod" = "Lütfen iPhone'u poddan daha uzağa yerleştirin"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition iPhone relative to the pod" = "Lütfen iPhone'u poda göre yeniden konumlandırın"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.unsupported) */ +"Please use a different device with bluetooth capabilities" = "Lütfen bluetooth özelliklerine sahip farklı bir cihaz kullanın"; + +/* description label for activated at timne pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Etkinleştirildi"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Yaşı"; /* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; +"Pod already paired" = "Pod zaten eşleştirilmiş"; /* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; +"Pod already primed" = "Pod zaten hazırlandı"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod başarıyla devre dışı bırakıldı. Devam et."; + +/* Error message for reservoir view during general pod fault + Status highlight message for other alarm. */ +"Pod Error" = "Pod Hatası"; /* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; +"Pod expiration advisory alarm" = "Pod sona erme uyarı alarmı"; /* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; +"Pod Expiration Notice" = "Pod Süre Sonu Bildirimi"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod Süre Sonu Hatırlatıcısı"; /* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; +"Pod expired" = "Pod'un süresi doldu"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Error message for reservoir view when pod expired + Label for pod expiration row, past tense + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Süresi Doldu"; + +/* Label for pod expiration row */ +"Pod Expires" = "Podun Süresi Doluyor"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Podun süresi şu tarihte doluyor:"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod'un süresi %1$@ içinde doluyor."; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod Hata Detayları"; /* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; +"Pod Fault: %1$@" = "Pod Hatası: %1$@"; /* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; +"Pod is not in a state ready for cannula insertion." = "Pod, kanül yerleştirmeye hazır durumda değil."; /* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; +"Pod is not in a state ready for priming." = "Pod dolum için hazır durumda değil."; /* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; +"Pod is suspended" = "Pod askıya alındı"; + +/* Error message shown when the pod is not connected. */ +"Pod not connected" = "Pod bağlı değil"; + +/* Error message for reservoir view when pod occlusion checks failed + Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod Tıkanıklığı"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod başarıyla eşleştirildi. Devam et."; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Pod Eşleştirme Tamamlanmadı"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod yanıt yerine ack gönderdi"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod Kurulumu"; /* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; +"Pod setup window expired" = "Pod kurulum penceresinin süresi doldu"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pod askıya alındı hatırlatıcısı"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Zayıf sinyal gücü"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Bölgeyi hazırlayın."; + +/* title for previous pod page */ +"Previous Pod" = "Önceki Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Önceki Pod Bilgileri"; /* Delivery status when pod is priming Pod status when priming */ -"Priming" = "Priming"; +"Priming" = "Hazırlanıyor…"; + +/* Pod state when priming completed */ +"Priming completed" = "Hazırlama tamamlandı"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Hazırlanıyor. Lütfen bekleyin."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Hazırlanıyor..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pompa Zamanı"; + +/* Label text for basal rate summary */ +"Rate" = "Oran"; /* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; +"Ready for basal programming" = "Bazal programlama için hazır"; /* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; +"Ready to insert cannula" = "Kanül yerleştirmeye hazır"; + +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Kalan"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Hatırlatıcı başlatıldı"; + +/* Label text for step two of attach pod instructions */ +"Remove blue Pod needle cap and check cannula. Then remove paper backing." = "Mavi Pod iğne kapağını çıkarın ve kanülü kontrol edin. Ardından yapışkan kağıt desteğini çıkarın."; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Podu Vücuttan Çıkarın"; + +/* Title for Omnipod DASH PumpManager deletion action sheet. */ +"Remove Pump" = "Pompayı Çıkar"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Pod'u Değiştir"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Devam et"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "İletimi Devam Ettir"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "İnsüline Devam Et"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "İnsülin İletimine Devam Et"; /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; +"Resume: %1$@ %2$@" = "Devam: %1$@ %2$@"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "İnsülin iletimine devam ediliyor..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Yeniden dene"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Kaydet"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Kaydediliyor..."; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Programlanan Bazal"; /* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; +"Scheduled Basal" = "Programlanan Bazal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on SetupCompleteView + Title for scheduled expiration reminder edit page + Title of scheduled reminder card on NotificationSettingsView */ +"Scheduled Reminder" = "Planlanmış Hatırlatıcı"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Bu pod için kullanacağınız insülin tipini seçin."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sıra numarası"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Geçici Bazal Ayarla"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Geçici Bazal Oranı Ayarla"; + +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Kurulum tamamlandı"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Yakında Kapanma"; /* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; +"Shutdown imminent alarm" = "Yakında kapanma alarmı"; + +/* Error message for reservoir view during general pod fault + Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Sinyal Kaybı"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Sinyal gücü çok yüksek"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod Katılımı Atlansın mı?"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Askıya al"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "İletimi Askıya Al"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Devam Eden Hatırlatıcıyı Askıya Al"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "İnsülin İletimini Askıya Al"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Askıya alma süresi doldu"; /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; +"Suspend: %1$@ %2$@" = "Askıya alma: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; +"Suspended" = "Askıya alındı"; + +/* Label for suspended at time */ +"Suspended At" = "Askıya Alındı"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "İnsülin iletimi askıya alınıyor..."; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Askıya alma süresi doldu. Uygulamayı açın ve devam edin."; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Diğer insülin iletim cihazına geçin"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Geçerli Saate Senkronize Et"; /* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; +"Tank fill completed" = "Hazne dolumu tamamlandı"; /* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; +"Tank power activated" = "Hazne gücü etkinleştirildi"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Kanül yerleştirmeyi başlatmak için aşağıya dokunun."; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Geçici Bazal"; /* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; +"Temp basal in progress" = "Geçici bazal devam ediyor"; /* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; +"Temp basal running" = "Geçici bazal çalışıyor"; /* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "GeçiciBazal: %1$@ Ü/saat %2$@ %3$@ %4$@ Ü %5$@"; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Geçici Bazal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Geçici Bazal Başarısız"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Uygulama, Pod süresi dolmadan önce sizi bilgilendirmek için pod üzerinde bir hatırlatıcı yapılandırır. Yeni bir Pod eşleştirirken kaç saat önce bildirim almak istediğinizi yapılandırın."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Uygulama, Pod'un süresinin dolacağını size önceden bildirir.\n\nKaç saat önceden bildirimde bulunmak istediğinizi ayarlamak için kaydırın."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Uygulama, Poddaki insülin miktarı (50-10 U) seviyesine ulaştığında sizi bilgilendirir.\n\nHatırlatılmasını istediğiniz seviyeyi ayarlamak için kaydırın."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Uygulama, Poddaki insülin miktarı bu seviyeye ulaştığında sizi bilgilendirir."; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "İnsülin askıya alma süresi sona ermiştir.\n\nAna ekran üzerinden veya pompa ayarları ekranınızdan iletime devam edebilirsiniz. 15 dakika içinde tekrar hatırlatılacaktır."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Pompanızdaki saat geçerli saatten farklı. Pompanızdaki saati geçerli saate güncellemek istiyor musunuz?"; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Pompanızdaki saat, geçerli saatten farklı. Pompa süresini gözden geçirebilir ve ayarlarda geçerli saate eşitleyebilirsiniz."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Pompanızdaki saat, geçerli saatten farklı. Pompanızın zamanı, planlanmış tedavi ayarlarınızı kontrol eder. Saat farkını gözden geçirmek ve pompanızı yapılandırmak için Pompa Saati satırına ilerleyin."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Kanül cilde düzgün bir şekilde yerleştirildiğinde Pod'un üst kısmındaki pencere pembe renkte olmalıdır."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Pod ile iletişim kurarken bir sorun oluştu. Bu sorun devam ederse Pod'u At'a dokunun. Daha sonra yeni bir Pod etkinleştirebilirsiniz."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Bu, mevcut Podunuzu eşleştirdiğinizde planladığınız bir hatırlatıcıdır."; + +/* Alert format string for missing temp basal configuration. */ +"This PumpManager has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to therapy settings -> delivery limits and set a new maximum basal rate." = "Bu pompa, manuel geçici bazal bir özellik olmadan önce eklendiği için maksimum bazal oranla yapılandırılmamıştır. Lütfen tedavi ayarları -> iletim limitleri bölümüne gidin ve yeni bir maksimum bazal oran ayarlayın."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "üçNotKullanıldı"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Zaman"; + +/* Alert content title for timeOffsetChangeDetected pod alert + Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Zaman Değişikliği Algılandı"; /* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; +"Time to replace your pod! Your pod will expire in %1$@" = "Pod'unuzu değiştirme zamanı! Pod'un süresi %1$@ içinde dolacak"; + +/* Error message description for PeripheralManagerError.timeout */ +"Timeout" = "Zaman aşımı"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Geçiş işareti"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Çok fazla pod bulundu"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Toplam İletim"; + +/* Recovery suggestion when ack received instead of response + recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.resetting) */ +"Try again" = "Tekrar deneyin"; + +/* recoverySuggestion for BluetoothManagerError.bluetoothNotAvailable(.poweredOff) */ +"Turn bluetooth on" = "Bluetooth'u açın"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "ikiNotKullanıldı"; + +/* Units for showing temp basal rate */ +"U/hr" = "Ü/sa"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Pod'a Ulaşılamıyor"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Pod'a Ulaşılamıyor"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Geçici bir bazal oran ayarlanamıyor: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Geçici bir bazal oran ayarlanamıyor: %1$@ \n\n %2$@"; /* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; +"Uncertain" = "Belirsiz"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Beklenmeyen mesaj sıra numarası"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Beklenmeyen pod değişikliği"; /* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; +"Unexpected response from pod" = "Pod'dan beklenmeyen yanıt"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Tamamlanmamış Etkinleştirme"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Tamamlanmamış devre dışı bırakma"; + +/* Error message description for PeripheralManagerError.unknownCharacteristic */ +"Unknown Characteristic" = "Bilinmeyen Karakteristik"; /* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; +"Unknown pod fault %1$03d" = "Bilinmeyen pod hatası %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "%2$@ tipi için Bilinmeyen Değer ( %1$@ )"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Doğrulama başarısız oldu: %1$@"; /* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; +"Wait for existing bolus to finish, or cancel bolus" = "Mevcut bolusun bitmesini bekleyin veya bolusu iptal edin"; /* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; +"Wait for existing temp basal to finish, or suspend to cancel" = "Mevcut geçici bazalın bitmesini bekleyin veya iptal etmek için askıya alın"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Yerleştirme işlemi tamamlanana kadar bekleyin."; /* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; +"Waiting for pairing reminder" = "Eşleştirme hatırlatıcısı bekleniyor"; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Evet"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Evet, Pod'u Devre Dışı Bırak"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Evet, Geçerli Saatle Senkronize Et"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Şimdi hatırlatıcılarınızı yapılandırma, Pod'unuzu insülinle doldurma, cihazınızla eşleştirme ve vücudunuza yerleştirme işlemlerine başlayacaksınız."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod'unuz kullanıma hazır. \n\n %1$@ Pod'unuzun süresi dolmadan önce değiştirmenizi hatırlatacak. Bunu size uygun bir zamana değiştirebilirsiniz."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Pod'unuz hala İnsülin veriyor olabilir.\nVücudunuzdan çıkarın ve ardından \"Devam\"a dokunun."; + diff --git a/Dependencies/OmniBLE/OmniBLE/vi.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/vi.lproj/Localizable.strings index 3fe7113b3b..a256dfcdc0 100644 --- a/Dependencies/OmniBLE/OmniBLE/vi.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/vi.lproj/Localizable.strings @@ -1,9 +1,30 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ trước đó"; + +/* Format string for reservoir volume when above maximum reading. (1: The maximum reading) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units vẫn đang còn lúc %2$@"; + +/* description label for active time pod details row */ +"Active Time" = "Thời gian Hoạt động"; + +/* Section header for activity section */ +"Activity" = "Hoạt động"; + /* Description for auto-off alarm */ "Auto-off alarm" = "Auto-off alarm"; /* Pod state when running below fifty units */ "Below 50 units" = "Dưới 50 units"; +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + /* Error message shown when operation could not be completed due to existing bolus in progress */ "Bolus in progress" = "Liều Bolus đang được thực hiện"; @@ -16,12 +37,41 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "Đang thực hiện liều basal tạm thời"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "Hủy bỏ"; + /* Pod state when inserting cannula */ "Cannula inserting" = "Đang gắn Cannula"; /* String describing a dose that was certainly scheduled */ "Certain" = "Chắc chắn"; +/* Section header for configuration section */ +"Configuration" = "Cấu hình"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "Tiếp tục"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "Hủy kích hoạt Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "Đã hủy kích hoạt"; @@ -31,18 +81,46 @@ /* Error message shown when empty response from pod was received */ "Empty response from pod" = "Không có phản hồi từ pod"; +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Được cấp quyền"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Lỗi"; + /* Pod state error event logged shutting down */ "Error event logged, shutting down" = "Lỗi đăng nhập, đang tắt"; /* Description for expiration alert */ "Expiration alert" = "Thông báo hết hạn"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Nhắc nhở Hết hạn"; + +/* Pod life HUD view label */ +"Fault" = "Lỗi"; + /* Description for finish setup */ "Finish setup " = "Hoàn tất cấu hình"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Chương trình cơ sở"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Nhiều hơn %1$@ units vẫn còn lúc %2$@"; + /* Pod inititialized */ "Initialized" = "Đã được khởi tạo"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "Lắp Cannula"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Lỗi bên trong pod %1$03d"; @@ -74,6 +152,9 @@ /* Description for Occlusion detected pod fault */ "Occlusion detected" = "Occlusion detected"; +/* Alert acknowledgment OK button */ +"OK" = "OK"; + /* Generic title of the omnipod pump manager */ "Omnipod" = "Omnipod"; @@ -86,6 +167,9 @@ /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "Đề nghị ghép đôi pod mới"; +/* Label describing pod age view */ +"Pod Age" = "Pod Age"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod đã được ghép đôi"; @@ -126,15 +210,39 @@ /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Sẵn sàng cho việc gắn cannula"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "Đang còn lại"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "Thay thế Pod"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "Tái lập: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Thử lại"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "Lưu"; + /* Delivery status when basal is running */ "Scheduled Basal" = "Đã lên chương trình cho liều Basal"; +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "Cấu hình hoàn thành"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "Tắt báo động sắp xảy ra"; +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Tạm ngưng liều insulin"; + /* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ "Suspend: %1$@ %2$@" = "Tạm ngưng: %1$@ %2$@"; @@ -159,6 +267,9 @@ /* The format string for pod expiration notification body (1: time until expiration) */ "Time to replace your pod! Your pod will expire in %1$@" = "Thời gian thay pod của bạn! Pod của bạn sẽ hết hạn trong %1$@"; +/* Units for showing temp basal rate */ +"U/hr" = "U/giờ"; + /* String describing a dose that was possibly scheduled */ "Uncertain" = "Không chắc chắn"; @@ -176,3 +287,4 @@ /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "Đang chờ đợi câu thông báo ghép đôi"; + diff --git a/Dependencies/OmniBLE/OmniBLE/zh-Hans.lproj/Localizable.strings b/Dependencies/OmniBLE/OmniBLE/zh-Hans.lproj/Localizable.strings index 93875ca233..2bfd353569 100644 --- a/Dependencies/OmniBLE/OmniBLE/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/OmniBLE/OmniBLE/zh-Hans.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* description label for active time pod details row */ +"Active Time" = "Pod启动时间"; + /* Description for auto-off alarm */ "Auto-off alarm" = "自动关闭提醒"; @@ -16,12 +19,41 @@ /* Delivery status when bolusing and temp basal is running */ "Bolusing with temp basal" = "正在运行临时基础并输注大剂量"; +/* Button title for cancelling low reservoir reminder edit + Button title for cancelling scheduled reminder date edit + Cancel button text in navigation bar on insert cannula screen + Cancel button text in navigation bar on pair pod UI + Cancel button title + Pairing interface navigation bar button text for cancel action */ +"Cancel" = "取消"; + /* Pod state when inserting cannula */ "Cannula inserting" = "植入管路"; /* String describing a dose that was certainly scheduled */ "Certain" = "Certain"; +/* Section header for configuration section */ +"Configuration" = "配置"; + +/* Action button description when deactivated + Action button title for attach pod view + Button title to continue + Cannula insertion button text when inserted + Pod pairing action button text when paired + Text for continue button + Text for continue button on PodSetupView + Title of button to continue discard */ +"Continue" = "继续"; + +/* Action button description for deactivate while pod still active + Button text for deactivate pod button + Button title to deactive pod on uncertain program + Deactivate pod action button accessibility label while ready to deactivate + navigation bar title for deactivate pod + Title for deactivate pod screen */ +"Deactivate Pod" = "解除Pod"; + /* Pod state when pod has been deactivated */ "Deactivated" = "已解除"; @@ -37,12 +69,28 @@ /* Description for expiration alert */ "Expiration alert" = "到期提醒"; +/* navigation bar title for expiration reminder + Title for ExpirationReminderSetupView */ +"Expiration Reminder" = "Pod到期提醒"; + +/* Pod life HUD view label */ +"Fault" = "错误"; + /* Description for finish setup */ "Finish setup " = "完成设置"; +/* description label for firmware version pod details row */ +"Firmware Version" = "Firmware Version"; + /* Pod inititialized */ "Initialized" = "初始化"; +/* Cannula insertion button text while ready to insert + Insert cannula action button accessibility label while ready to pair + navigation bar title for insert cannula + Title for insert cannula screen */ +"Insert Cannula" = "植入Pod"; + /* The format string for Internal pod fault (1: The fault code value) */ "Internal pod fault %1$03d" = "Pod内部错误%1$03d"; @@ -86,6 +134,9 @@ /* Recover suggestion shown when no pod is paired */ "Please pair a new pod" = "请配对一个新的Pod"; +/* Label describing pod age view */ +"Pod Age" = "Pod使用天数"; + /* Error message shown when user cannot pair because pod is already paired */ "Pod already paired" = "Pod已配对"; @@ -126,12 +177,33 @@ /* Pod state when ready for cannula insertion */ "Ready to insert cannula" = "Pod可以进行植入操作"; +/* Label describing time remaining view + Label for remaining time of manual basal */ +"Remaining" = "剩余"; + +/* Label indicating pod replacement necessary + Settings page link description when next lifecycle action is to replace pod */ +"Replace Pod" = "更换Pod"; + /* The format string describing a resume. (1: Time)(2: Scheduled certainty */ "Resume: %1$@ %2$@" = "恢复输注: %1$@ %2$@"; +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "重试"; + +/* button title for saving low reservoir reminder + button title for saving scheduled reminder */ +"Save" = "保存"; + /* Delivery status when basal is running */ "Scheduled Basal" = "预设基础率"; +/* Title for setup complete screen + Title of SetupCompleteView */ +"Setup Complete" = "设置完成"; + /* Description for shutdown imminent alarm */ "Shutdown imminent alarm" = "关闭提醒"; @@ -139,7 +211,7 @@ "Suspend: %1$@ %2$@" = "暂停输注: %1$@ %2$@"; /* Delivery status when insulin delivery is suspended */ -"Suspended" = "已暂停"; +"Suspended" = "暂停"; /* Pod tank fill completed */ "Tank fill completed" = "已向Pod注入胰岛素"; @@ -176,3 +248,4 @@ /* Description waiting for pairing reminder */ "Waiting for pairing reminder" = "等待配对提醒"; + diff --git a/Dependencies/OmniBLE/OmniBLETests/BasalScheduleTests.swift b/Dependencies/OmniBLE/OmniBLETests/BasalScheduleTests.swift index 48d97b01d7..ccf4335fb0 100644 --- a/Dependencies/OmniBLE/OmniBLETests/BasalScheduleTests.swift +++ b/Dependencies/OmniBLE/OmniBLETests/BasalScheduleTests.swift @@ -227,14 +227,14 @@ class BasalScheduleTests: XCTestCase { // Decode 1f 05 6fede14a 01 let cmd = try CancelDeliveryCommand(encodedData: Data(hexadecimalString: "1f056fede14a01")!) XCTAssertEqual(0x6fede14a, cmd.nonce) - XCTAssertEqual(.noBeep, cmd.beepType) + XCTAssertEqual(.noBeepCancel, cmd.beepType) XCTAssertEqual(.basal, cmd.deliveryType) } catch (let error) { XCTFail("message decoding threw error: \(error)") } // Encode - let cmd = CancelDeliveryCommand(nonce: 0x6fede14a, deliveryType: .basal, beepType: .noBeep) + let cmd = CancelDeliveryCommand(nonce: 0x6fede14a, deliveryType: .basal, beepType: .noBeepCancel) XCTAssertEqual("1f056fede14a01", cmd.data.hexadecimalString) } diff --git a/Dependencies/OmniBLE/OmniBLETests/PodCommsSessionTests.swift b/Dependencies/OmniBLE/OmniBLETests/PodCommsSessionTests.swift index 658745b62c..f5b7c9d24a 100644 --- a/Dependencies/OmniBLE/OmniBLETests/PodCommsSessionTests.swift +++ b/Dependencies/OmniBLE/OmniBLETests/PodCommsSessionTests.swift @@ -50,7 +50,49 @@ class PodCommsSessionTests: XCTestCase, PodCommsSessionDelegate { var lastPodStateUpdate: PodState? + let address: UInt32 = 521580830 + let fakeLtk = Data(hexadecimalString: "fedcba98765432100123456789abcdef")! + var mockTransport: MockMessageTransport! = nil + var podState: PodState! = nil + + override func setUp() { + mockTransport = MockMessageTransport(address: address, messageNumber: 1) + podState = PodState(address: address, ltk: fakeLtk, firmwareVersion: "2.7.0", bleFirmwareVersion: "2.7.0", lotNo: 43620, lotSeq: 560313, productId: dashProductId, bleIdentifier: "0000-0000", insulinType: .novolog) + } + func podCommsSession(_ podCommsSession: PodCommsSession, didChange state: PodState) { lastPodStateUpdate = state } + + func testBolusFinishedEarlyOnPodIsMarkedNonMutable() { + let mockStart = Date() + podState.unfinalizedBolus = UnfinalizedDose(bolusAmount: 4.45, startTime: mockStart, scheduledCertainty: .certain, insulinType: .novolog) + let session = PodCommsSession(podState: podState, transport: mockTransport, delegate: self) + + // Simulate a status request a bit before the bolus is expected to finish + let statusRequestTime = podState.unfinalizedBolus!.finishTime!.addingTimeInterval(-5) + session.mockCurrentDate = statusRequestTime + + let statusResponse = StatusResponse( + deliveryStatus: .scheduledBasal, + podProgressStatus: .aboveFiftyUnits, + timeActive: .minutes(10), + reservoirLevel: Pod.reservoirLevelAboveThresholdMagicNumber, + insulinDelivered: 25, + bolusNotDelivered: 0, + lastProgrammingMessageSeqNum: 5, + alerts: AlertSet(slots: [])) + + mockTransport.addResponse(statusResponse) + + let _ = try! session.getStatus() + + XCTAssertEqual(1, lastPodStateUpdate!.finalizedDoses.count) + + let finalizedBolus = lastPodStateUpdate!.finalizedDoses[0] + + XCTAssertTrue(finalizedBolus.isFinished(at: statusRequestTime)) + XCTAssertFalse(finalizedBolus.isMutable(at: statusRequestTime)) + } + } diff --git a/Dependencies/OmniBLE/OmniBLETests/TempBasalTests.swift b/Dependencies/OmniBLE/OmniBLETests/TempBasalTests.swift index 1abf2dbf02..b576198651 100644 --- a/Dependencies/OmniBLE/OmniBLETests/TempBasalTests.swift +++ b/Dependencies/OmniBLE/OmniBLETests/TempBasalTests.swift @@ -135,14 +135,14 @@ class TempBasalTests: XCTestCase { do { let cmd = try CancelDeliveryCommand(encodedData: Data(hexadecimalString: "1f05f76d34c402")!) XCTAssertEqual(0xf76d34c4, cmd.nonce) - XCTAssertEqual(.noBeep, cmd.beepType) + XCTAssertEqual(.noBeepCancel, cmd.beepType) XCTAssertEqual(.tempBasal, cmd.deliveryType) } catch (let error) { XCTFail("message decoding threw error: \(error)") } // Encode - let cmd = CancelDeliveryCommand(nonce: 0xf76d34c4, deliveryType: .tempBasal, beepType: .noBeep) + let cmd = CancelDeliveryCommand(nonce: 0xf76d34c4, deliveryType: .tempBasal, beepType: .noBeepCancel) XCTAssertEqual("1f05f76d34c402", cmd.data.hexadecimalString) } diff --git a/Dependencies/OmniKit/.gitignore b/Dependencies/OmniKit/.gitignore new file mode 100644 index 0000000000..72baa45915 --- /dev/null +++ b/Dependencies/OmniKit/.gitignore @@ -0,0 +1,91 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore +.DS_Store + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/Dependencies/OmniKit/OmniKit.xcodeproj/project.pbxproj b/Dependencies/OmniKit/OmniKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..66dcf7b2c3 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit.xcodeproj/project.pbxproj @@ -0,0 +1,1691 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + C1229C1A29C7E5BC0066A89C /* RileyLinkBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1729C7E5BC0066A89C /* RileyLinkBLEKit.framework */; }; + C1229C1B29C7E5BC0066A89C /* RileyLinkBLEKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1729C7E5BC0066A89C /* RileyLinkBLEKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1229C1C29C7E5BC0066A89C /* RileyLinkKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1829C7E5BC0066A89C /* RileyLinkKit.framework */; }; + C1229C1D29C7E5BC0066A89C /* RileyLinkKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1829C7E5BC0066A89C /* RileyLinkKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1229C1E29C7E5BC0066A89C /* RileyLinkKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1929C7E5BC0066A89C /* RileyLinkKitUI.framework */; }; + C1229C1F29C7E5BC0066A89C /* RileyLinkKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1929C7E5BC0066A89C /* RileyLinkKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C1229C7229C7F0950066A89C /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1229C2B29C7ED840066A89C /* main.swift */; }; + C124017029C7D87A00B32844 /* OmniKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C124016F29C7D87A00B32844 /* OmniKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C124017729C7D8CD00B32844 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = C124017629C7D8CD00B32844 /* README.md */; }; + C12401B529C7D8E900B32844 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124017929C7D8E900B32844 /* Notification.swift */; }; + C12401B629C7D8E900B32844 /* BeepType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124017B29C7D8E900B32844 /* BeepType.swift */; }; + C12401B729C7D8E900B32844 /* PumpManagerAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124017C29C7D8E900B32844 /* PumpManagerAlert.swift */; }; + C12401B829C7D8E900B32844 /* PodInfoPulseLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124017E29C7D8E900B32844 /* PodInfoPulseLog.swift */; }; + C12401B929C7D8E900B32844 /* VersionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124017F29C7D8E900B32844 /* VersionResponse.swift */; }; + C12401BA29C7D8E900B32844 /* PodInfoActivationTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018029C7D8E900B32844 /* PodInfoActivationTime.swift */; }; + C12401BB29C7D8E900B32844 /* TempBasalExtraCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018129C7D8E900B32844 /* TempBasalExtraCommand.swift */; }; + C12401BC29C7D8E900B32844 /* DeactivatePodCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018229C7D8E900B32844 /* DeactivatePodCommand.swift */; }; + C12401BD29C7D8E900B32844 /* AcknowledgeAlertCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018329C7D8E900B32844 /* AcknowledgeAlertCommand.swift */; }; + C12401BE29C7D8E900B32844 /* PodInfoConfiguredAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018429C7D8E900B32844 /* PodInfoConfiguredAlerts.swift */; }; + C12401BF29C7D8E900B32844 /* MessageBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018529C7D8E900B32844 /* MessageBlock.swift */; }; + C12401C029C7D8E900B32844 /* PlaceholderMessageBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018629C7D8E900B32844 /* PlaceholderMessageBlock.swift */; }; + C12401C129C7D8E900B32844 /* PodInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018729C7D8E900B32844 /* PodInfo.swift */; }; + C12401C229C7D8E900B32844 /* BolusExtraCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018829C7D8E900B32844 /* BolusExtraCommand.swift */; }; + C12401C329C7D8E900B32844 /* FaultConfigCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018929C7D8E900B32844 /* FaultConfigCommand.swift */; }; + C12401C429C7D8E900B32844 /* PodInfoPulseLogPlus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018A29C7D8E900B32844 /* PodInfoPulseLogPlus.swift */; }; + C12401C529C7D8E900B32844 /* StatusResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018B29C7D8E900B32844 /* StatusResponse.swift */; }; + C12401C629C7D8E900B32844 /* GetStatusCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018C29C7D8E900B32844 /* GetStatusCommand.swift */; }; + C12401C729C7D8E900B32844 /* BasalScheduleExtraCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018D29C7D8E900B32844 /* BasalScheduleExtraCommand.swift */; }; + C12401C829C7D8E900B32844 /* CancelDeliveryCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018E29C7D8E900B32844 /* CancelDeliveryCommand.swift */; }; + C12401C929C7D8E900B32844 /* AssignAddressCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124018F29C7D8E900B32844 /* AssignAddressCommand.swift */; }; + C12401CA29C7D8E900B32844 /* BeepConfigCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019029C7D8E900B32844 /* BeepConfigCommand.swift */; }; + C12401CB29C7D8E900B32844 /* ErrorResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019129C7D8E900B32844 /* ErrorResponse.swift */; }; + C12401CC29C7D8E900B32844 /* SetupPodCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019229C7D8E900B32844 /* SetupPodCommand.swift */; }; + C12401CD29C7D8E900B32844 /* DetailedStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019329C7D8E900B32844 /* DetailedStatus.swift */; }; + C12401CE29C7D8E900B32844 /* PodInfoResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019429C7D8E900B32844 /* PodInfoResponse.swift */; }; + C12401CF29C7D8E900B32844 /* SetInsulinScheduleCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019529C7D8E900B32844 /* SetInsulinScheduleCommand.swift */; }; + C12401D029C7D8E900B32844 /* ConfigureAlertsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019629C7D8E900B32844 /* ConfigureAlertsCommand.swift */; }; + C12401D129C7D8E900B32844 /* PodDoseProgressEstimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019729C7D8E900B32844 /* PodDoseProgressEstimator.swift */; }; + C12401D229C7D8E900B32844 /* FaultEventCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019829C7D8E900B32844 /* FaultEventCode.swift */; }; + C12401D329C7D8E900B32844 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019929C7D8E900B32844 /* Message.swift */; }; + C12401D429C7D8E900B32844 /* BeepPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019A29C7D8E900B32844 /* BeepPreference.swift */; }; + C12401D529C7D8E900B32844 /* Pod.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019B29C7D8E900B32844 /* Pod.swift */; }; + C12401D629C7D8E900B32844 /* BasalSchedule+LoopKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019C29C7D8E900B32844 /* BasalSchedule+LoopKit.swift */; }; + C12401D729C7D8E900B32844 /* BasalDeliveryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019D29C7D8E900B32844 /* BasalDeliveryTable.swift */; }; + C12401D829C7D8E900B32844 /* PendingCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019E29C7D8E900B32844 /* PendingCommand.swift */; }; + C12401D929C7D8E900B32844 /* PodInsulinMeasurements.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124019F29C7D8E900B32844 /* PodInsulinMeasurements.swift */; }; + C12401DA29C7D8E900B32844 /* ReservoirLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A029C7D8E900B32844 /* ReservoirLevel.swift */; }; + C12401DB29C7D8E900B32844 /* AlertSlot.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A129C7D8E900B32844 /* AlertSlot.swift */; }; + C12401DC29C7D8E900B32844 /* InsulinTableEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A229C7D8E900B32844 /* InsulinTableEntry.swift */; }; + C12401DD29C7D8E900B32844 /* PodProgressStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A329C7D8E900B32844 /* PodProgressStatus.swift */; }; + C12401DE29C7D8E900B32844 /* CRC16.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A429C7D8E900B32844 /* CRC16.swift */; }; + C12401DF29C7D8E900B32844 /* BasalSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A529C7D8E900B32844 /* BasalSchedule.swift */; }; + C12401E029C7D8E900B32844 /* BolusDeliveryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A629C7D8E900B32844 /* BolusDeliveryTable.swift */; }; + C12401E129C7D8E900B32844 /* UnfinalizedDose.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401A729C7D8E900B32844 /* UnfinalizedDose.swift */; }; + C12401E329C7D8E900B32844 /* PodComms.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AA29C7D8E900B32844 /* PodComms.swift */; }; + C12401E429C7D8E900B32844 /* DetailedStatus+OmniKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AB29C7D8E900B32844 /* DetailedStatus+OmniKit.swift */; }; + C12401E529C7D8E900B32844 /* PodCommsSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AC29C7D8E900B32844 /* PodCommsSession.swift */; }; + C12401E629C7D8E900B32844 /* OmnipodPumpManagerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AD29C7D8E900B32844 /* OmnipodPumpManagerState.swift */; }; + C12401E729C7D8E900B32844 /* OmnipodPumpManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AE29C7D8E900B32844 /* OmnipodPumpManager.swift */; }; + C12401E829C7D8E900B32844 /* PodState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401AF29C7D8E900B32844 /* PodState.swift */; }; + C12401E929C7D8E900B32844 /* Packet+RFPacket.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401B129C7D8E900B32844 /* Packet+RFPacket.swift */; }; + C12401EA29C7D8E900B32844 /* CRC8.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401B229C7D8E900B32844 /* CRC8.swift */; }; + C12401EB29C7D8E900B32844 /* Packet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401B329C7D8E900B32844 /* Packet.swift */; }; + C12401EC29C7D8E900B32844 /* MessageTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12401B429C7D8E900B32844 /* MessageTransport.swift */; }; + C124020529C7D90B00B32844 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C12401EE29C7D90B00B32844 /* Localizable.strings */; }; + C124020E29C7D92700B32844 /* OmniKitUI.h in Headers */ = {isa = PBXBuildFile; fileRef = C124020D29C7D92700B32844 /* OmniKitUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C124026B29C7DA9700B32844 /* OmnipodHUDProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124021F29C7DA9700B32844 /* OmnipodHUDProvider.swift */; }; + C124026C29C7DA9700B32844 /* OmniPodPumpManager+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022029C7DA9700B32844 /* OmniPodPumpManager+UI.swift */; }; + C124026D29C7DA9700B32844 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022229C7DA9700B32844 /* Image.swift */; }; + C124026E29C7DA9700B32844 /* FrameworkLocalText.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022429C7DA9700B32844 /* FrameworkLocalText.swift */; }; + C124026F29C7DA9700B32844 /* PairPodViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022629C7DA9700B32844 /* PairPodViewModel.swift */; }; + C124027029C7DA9700B32844 /* DeliveryUncertaintyRecoveryViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022729C7DA9700B32844 /* DeliveryUncertaintyRecoveryViewModel.swift */; }; + C124027129C7DA9700B32844 /* InsertCannulaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022829C7DA9700B32844 /* InsertCannulaViewModel.swift */; }; + C124027229C7DA9700B32844 /* DeactivatePodViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022929C7DA9700B32844 /* DeactivatePodViewModel.swift */; }; + C124027329C7DA9700B32844 /* RileyLinkListDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022A29C7DA9700B32844 /* RileyLinkListDataSource.swift */; }; + C124027429C7DA9700B32844 /* PodLifeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022B29C7DA9700B32844 /* PodLifeState.swift */; }; + C124027529C7DA9700B32844 /* OmnipodSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022C29C7DA9700B32844 /* OmnipodSettingsViewModel.swift */; }; + C124027629C7DA9700B32844 /* PodLifeHUDView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022E29C7DA9700B32844 /* PodLifeHUDView.swift */; }; + C124027729C7DA9700B32844 /* CheckInsertedCannulaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124022F29C7DA9700B32844 /* CheckInsertedCannulaView.swift */; }; + C124027829C7DA9700B32844 /* HUDAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C124023029C7DA9700B32844 /* HUDAssets.xcassets */; }; + C124027929C7DA9700B32844 /* RoundedCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023229C7DA9700B32844 /* RoundedCard.swift */; }; + C124027A29C7DA9700B32844 /* LeadingImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023329C7DA9700B32844 /* LeadingImage.swift */; }; + C124027B29C7DA9700B32844 /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023429C7DA9700B32844 /* ErrorView.swift */; }; + C124027C29C7DA9700B32844 /* LowReservoirReminderEditView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023529C7DA9700B32844 /* LowReservoirReminderEditView.swift */; }; + C124027D29C7DA9700B32844 /* InsertCannulaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023629C7DA9700B32844 /* InsertCannulaView.swift */; }; + C124027E29C7DA9700B32844 /* RileyLinkSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023729C7DA9700B32844 /* RileyLinkSetupView.swift */; }; + C124027F29C7DA9700B32844 /* SetupCompleteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023829C7DA9700B32844 /* SetupCompleteView.swift */; }; + C124028129C7DA9700B32844 /* ExpirationReminderPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023A29C7DA9700B32844 /* ExpirationReminderPickerView.swift */; }; + C124028229C7DA9700B32844 /* UncertaintyRecoveredView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023B29C7DA9700B32844 /* UncertaintyRecoveredView.swift */; }; + C124028329C7DA9700B32844 /* InsulinTypeConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023C29C7DA9700B32844 /* InsulinTypeConfirmation.swift */; }; + C124028429C7DA9700B32844 /* ManualTempBasalEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023D29C7DA9700B32844 /* ManualTempBasalEntryView.swift */; }; + C124028529C7DA9700B32844 /* PodLifeHUDView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C124023E29C7DA9700B32844 /* PodLifeHUDView.xib */; }; + C124028629C7DA9700B32844 /* NotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124023F29C7DA9700B32844 /* NotificationSettingsView.swift */; }; + C124028729C7DA9700B32844 /* OmnipodSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024029C7DA9700B32844 /* OmnipodSettingsView.swift */; }; + C124028829C7DA9700B32844 /* PodSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024129C7DA9700B32844 /* PodSetupView.swift */; }; + C124028929C7DA9700B32844 /* LowReservoirReminderSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024229C7DA9700B32844 /* LowReservoirReminderSetupView.swift */; }; + C124028A29C7DA9700B32844 /* PairPodView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024329C7DA9700B32844 /* PairPodView.swift */; }; + C124028B29C7DA9700B32844 /* BeepPreferenceSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024429C7DA9700B32844 /* BeepPreferenceSelectionView.swift */; }; + C124028C29C7DA9700B32844 /* ExpirationReminderSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024529C7DA9700B32844 /* ExpirationReminderSetupView.swift */; }; + C124028D29C7DA9700B32844 /* AttachPodView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024629C7DA9700B32844 /* AttachPodView.swift */; }; + C124028E29C7DA9700B32844 /* ScheduledExpirationReminderEditView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024729C7DA9700B32844 /* ScheduledExpirationReminderEditView.swift */; }; + C124028F29C7DA9700B32844 /* PodDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024829C7DA9700B32844 /* PodDetailsView.swift */; }; + C124029029C7DA9700B32844 /* OmnipodReservoirView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024929C7DA9700B32844 /* OmnipodReservoirView.swift */; }; + C124029129C7DA9700B32844 /* DeliveryUncertaintyRecoveryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024A29C7DA9700B32844 /* DeliveryUncertaintyRecoveryView.swift */; }; + C124029229C7DA9700B32844 /* DeactivatePodView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024B29C7DA9700B32844 /* DeactivatePodView.swift */; }; + C124029329C7DA9700B32844 /* BasalStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024C29C7DA9700B32844 /* BasalStateView.swift */; }; + C124029429C7DA9700B32844 /* TimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124024D29C7DA9700B32844 /* TimeView.swift */; }; + C124029529C7DA9700B32844 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C124024F29C7DA9700B32844 /* Localizable.strings */; }; + C124029629C7DA9700B32844 /* OmniKitUI.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C124026729C7DA9700B32844 /* OmniKitUI.xcassets */; }; + C124029729C7DA9700B32844 /* OmnipodUICoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C124026929C7DA9700B32844 /* OmnipodUICoordinator.swift */; }; + C12ED9C529C7DB7200435701 /* OmnipodReservoirView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C12ED9C429C7DB7200435701 /* OmnipodReservoirView.xib */; }; + C12ED9CD29C7DBA900435701 /* OmniKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9CC29C7DBA900435701 /* OmniKitTests.swift */; }; + C12ED9CE29C7DBA900435701 /* OmniKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C124016C29C7D87A00B32844 /* OmniKit.framework */; }; + C12ED9E229C7DBDA00435701 /* PodCommsSessionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9D529C7DBDA00435701 /* PodCommsSessionTests.swift */; }; + C12ED9E329C7DBDA00435701 /* BasalScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9D629C7DBDA00435701 /* BasalScheduleTests.swift */; }; + C12ED9E429C7DBDA00435701 /* MessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9D729C7DBDA00435701 /* MessageTests.swift */; }; + C12ED9E529C7DBDA00435701 /* CRC8Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9D829C7DBDA00435701 /* CRC8Tests.swift */; }; + C12ED9E629C7DBDA00435701 /* PacketTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9D929C7DBDA00435701 /* PacketTests.swift */; }; + C12ED9E729C7DBDA00435701 /* CRC16Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DA29C7DBDA00435701 /* CRC16Tests.swift */; }; + C12ED9E829C7DBDA00435701 /* BolusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DB29C7DBDA00435701 /* BolusTests.swift */; }; + C12ED9E929C7DBDA00435701 /* PodStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DC29C7DBDA00435701 /* PodStateTests.swift */; }; + C12ED9EA29C7DBDA00435701 /* AcknowledgeAlertsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DD29C7DBDA00435701 /* AcknowledgeAlertsTests.swift */; }; + C12ED9EB29C7DBDA00435701 /* TempBasalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DE29C7DBDA00435701 /* TempBasalTests.swift */; }; + C12ED9EC29C7DBDA00435701 /* StatusTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9DF29C7DBDA00435701 /* StatusTests.swift */; }; + C12ED9ED29C7DBDA00435701 /* PodInfoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9E029C7DBDA00435701 /* PodInfoTests.swift */; }; + C12ED9F229C7DBE700435701 /* OmniKitPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9F029C7DBE700435701 /* OmniKitPlugin.swift */; }; + C12ED9F429C7DCE100435701 /* OmniKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C124016C29C7D87A00B32844 /* OmniKit.framework */; }; + C12ED9F529C7DCE100435701 /* OmniKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C124016C29C7D87A00B32844 /* OmniKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C12ED9F829C7DCE100435701 /* OmniKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C124020B29C7D92700B32844 /* OmniKitUI.framework */; }; + C12ED9F929C7DCE100435701 /* OmniKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C124020B29C7D92700B32844 /* OmniKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C12ED9FE29C7DCF900435701 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9FD29C7DCF900435701 /* OSLog.swift */; }; + C12EDA0029C7DD2300435701 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12ED9FF29C7DD2300435701 /* Data.swift */; }; + C12EDA0229C7DD4700435701 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0129C7DD4700435701 /* LocalizedString.swift */; }; + C12EDA0429C7DDC800435701 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0329C7DDC800435701 /* TimeInterval.swift */; }; + C12EDA0629C7DE2500435701 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0529C7DE2500435701 /* TimeZone.swift */; }; + C12EDA0829C7DE6200435701 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0729C7DE6200435701 /* NumberFormatter.swift */; }; + C12EDA0A29C7DEAA00435701 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0929C7DEAA00435701 /* HKUnit.swift */; }; + C12EDA0C29C7DED000435701 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0B29C7DED000435701 /* LocalizedString.swift */; }; + C12EDA0E29C7DEFD00435701 /* NumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0D29C7DEFD00435701 /* NumberFormatter.swift */; }; + C12EDA1029C7DF1900435701 /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA0F29C7DF1900435701 /* NibLoadable.swift */; }; + C12EDA1229C7DF4B00435701 /* IdentifiableClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA1129C7DF4B00435701 /* IdentifiableClass.swift */; }; + C12EDA1429C7DFBF00435701 /* TimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA1329C7DFBF00435701 /* TimeInterval.swift */; }; + C12EDA1629C7DFF100435701 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA1529C7DFF100435701 /* HKUnit.swift */; }; + C12EDA1829C7E01800435701 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA1729C7E01800435701 /* TimeZone.swift */; }; + C12EDA1B29C7E06900435701 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12EDA1A29C7E06900435701 /* OSLog.swift */; }; + CEC751DD29D8834B006E9D24 /* RileyLinkBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1729C7E5BC0066A89C /* RileyLinkBLEKit.framework */; }; + CEC751DE29D8834B006E9D24 /* RileyLinkKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1829C7E5BC0066A89C /* RileyLinkKit.framework */; }; + CEC751DF29D8834B006E9D24 /* RileyLinkKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1229C1929C7E5BC0066A89C /* RileyLinkKitUI.framework */; }; + CEC751E329D88392006E9D24 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751E229D88392006E9D24 /* LoopKitUI.framework */; }; + CEF2639B29D88516009921F1 /* OmniKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C124016C29C7D87A00B32844 /* OmniKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C12ED9CF29C7DBA900435701 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C124016329C7D87A00B32844 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C124016B29C7D87A00B32844; + remoteInfo = OmniKit; + }; + C12ED9F629C7DCE100435701 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C124016329C7D87A00B32844 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C124016B29C7D87A00B32844; + remoteInfo = OmniKit; + }; + C12ED9FA29C7DCE100435701 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C124016329C7D87A00B32844 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C124020A29C7D92700B32844; + remoteInfo = OmniKitUI; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + C1229C6929C7F0840066A89C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + C12ED9FC29C7DCE100435701 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + C1229C1B29C7E5BC0066A89C /* RileyLinkBLEKit.framework in Embed Frameworks */, + C1229C1F29C7E5BC0066A89C /* RileyLinkKitUI.framework in Embed Frameworks */, + C1229C1D29C7E5BC0066A89C /* RileyLinkKit.framework in Embed Frameworks */, + C12ED9F929C7DCE100435701 /* OmniKitUI.framework in Embed Frameworks */, + C12ED9F529C7DCE100435701 /* OmniKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + C1229C1729C7E5BC0066A89C /* RileyLinkBLEKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkBLEKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1229C1829C7E5BC0066A89C /* RileyLinkKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1229C1929C7E5BC0066A89C /* RileyLinkKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RileyLinkKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C1229C2B29C7ED840066A89C /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + C1229C6B29C7F0840066A89C /* OmniKitPacketParser */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = OmniKitPacketParser; sourceTree = BUILT_PRODUCTS_DIR; }; + C124016C29C7D87A00B32844 /* OmniKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OmniKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C124016F29C7D87A00B32844 /* OmniKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OmniKit.h; sourceTree = ""; }; + C124017629C7D8CD00B32844 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = SOURCE_ROOT; }; + C124017929C7D8E900B32844 /* Notification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = ""; }; + C124017B29C7D8E900B32844 /* BeepType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeepType.swift; sourceTree = ""; }; + C124017C29C7D8E900B32844 /* PumpManagerAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PumpManagerAlert.swift; sourceTree = ""; }; + C124017E29C7D8E900B32844 /* PodInfoPulseLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoPulseLog.swift; sourceTree = ""; }; + C124017F29C7D8E900B32844 /* VersionResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionResponse.swift; sourceTree = ""; }; + C124018029C7D8E900B32844 /* PodInfoActivationTime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoActivationTime.swift; sourceTree = ""; }; + C124018129C7D8E900B32844 /* TempBasalExtraCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempBasalExtraCommand.swift; sourceTree = ""; }; + C124018229C7D8E900B32844 /* DeactivatePodCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeactivatePodCommand.swift; sourceTree = ""; }; + C124018329C7D8E900B32844 /* AcknowledgeAlertCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgeAlertCommand.swift; sourceTree = ""; }; + C124018429C7D8E900B32844 /* PodInfoConfiguredAlerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoConfiguredAlerts.swift; sourceTree = ""; }; + C124018529C7D8E900B32844 /* MessageBlock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageBlock.swift; sourceTree = ""; }; + C124018629C7D8E900B32844 /* PlaceholderMessageBlock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlaceholderMessageBlock.swift; sourceTree = ""; }; + C124018729C7D8E900B32844 /* PodInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfo.swift; sourceTree = ""; }; + C124018829C7D8E900B32844 /* BolusExtraCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusExtraCommand.swift; sourceTree = ""; }; + C124018929C7D8E900B32844 /* FaultConfigCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FaultConfigCommand.swift; sourceTree = ""; }; + C124018A29C7D8E900B32844 /* PodInfoPulseLogPlus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoPulseLogPlus.swift; sourceTree = ""; }; + C124018B29C7D8E900B32844 /* StatusResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusResponse.swift; sourceTree = ""; }; + C124018C29C7D8E900B32844 /* GetStatusCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetStatusCommand.swift; sourceTree = ""; }; + C124018D29C7D8E900B32844 /* BasalScheduleExtraCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalScheduleExtraCommand.swift; sourceTree = ""; }; + C124018E29C7D8E900B32844 /* CancelDeliveryCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CancelDeliveryCommand.swift; sourceTree = ""; }; + C124018F29C7D8E900B32844 /* AssignAddressCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssignAddressCommand.swift; sourceTree = ""; }; + C124019029C7D8E900B32844 /* BeepConfigCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeepConfigCommand.swift; sourceTree = ""; }; + C124019129C7D8E900B32844 /* ErrorResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorResponse.swift; sourceTree = ""; }; + C124019229C7D8E900B32844 /* SetupPodCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetupPodCommand.swift; sourceTree = ""; }; + C124019329C7D8E900B32844 /* DetailedStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailedStatus.swift; sourceTree = ""; }; + C124019429C7D8E900B32844 /* PodInfoResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoResponse.swift; sourceTree = ""; }; + C124019529C7D8E900B32844 /* SetInsulinScheduleCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetInsulinScheduleCommand.swift; sourceTree = ""; }; + C124019629C7D8E900B32844 /* ConfigureAlertsCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigureAlertsCommand.swift; sourceTree = ""; }; + C124019729C7D8E900B32844 /* PodDoseProgressEstimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodDoseProgressEstimator.swift; sourceTree = ""; }; + C124019829C7D8E900B32844 /* FaultEventCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FaultEventCode.swift; sourceTree = ""; }; + C124019929C7D8E900B32844 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + C124019A29C7D8E900B32844 /* BeepPreference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeepPreference.swift; sourceTree = ""; }; + C124019B29C7D8E900B32844 /* Pod.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Pod.swift; sourceTree = ""; }; + C124019C29C7D8E900B32844 /* BasalSchedule+LoopKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "BasalSchedule+LoopKit.swift"; sourceTree = ""; }; + C124019D29C7D8E900B32844 /* BasalDeliveryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalDeliveryTable.swift; sourceTree = ""; }; + C124019E29C7D8E900B32844 /* PendingCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingCommand.swift; sourceTree = ""; }; + C124019F29C7D8E900B32844 /* PodInsulinMeasurements.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInsulinMeasurements.swift; sourceTree = ""; }; + C12401A029C7D8E900B32844 /* ReservoirLevel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReservoirLevel.swift; sourceTree = ""; }; + C12401A129C7D8E900B32844 /* AlertSlot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertSlot.swift; sourceTree = ""; }; + C12401A229C7D8E900B32844 /* InsulinTableEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsulinTableEntry.swift; sourceTree = ""; }; + C12401A329C7D8E900B32844 /* PodProgressStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodProgressStatus.swift; sourceTree = ""; }; + C12401A429C7D8E900B32844 /* CRC16.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC16.swift; sourceTree = ""; }; + C12401A529C7D8E900B32844 /* BasalSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalSchedule.swift; sourceTree = ""; }; + C12401A629C7D8E900B32844 /* BolusDeliveryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusDeliveryTable.swift; sourceTree = ""; }; + C12401A729C7D8E900B32844 /* UnfinalizedDose.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnfinalizedDose.swift; sourceTree = ""; }; + C12401A829C7D8E900B32844 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C12401AA29C7D8E900B32844 /* PodComms.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodComms.swift; sourceTree = ""; }; + C12401AB29C7D8E900B32844 /* DetailedStatus+OmniKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DetailedStatus+OmniKit.swift"; sourceTree = ""; }; + C12401AC29C7D8E900B32844 /* PodCommsSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodCommsSession.swift; sourceTree = ""; }; + C12401AD29C7D8E900B32844 /* OmnipodPumpManagerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodPumpManagerState.swift; sourceTree = ""; }; + C12401AE29C7D8E900B32844 /* OmnipodPumpManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodPumpManager.swift; sourceTree = ""; }; + C12401AF29C7D8E900B32844 /* PodState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodState.swift; sourceTree = ""; }; + C12401B129C7D8E900B32844 /* Packet+RFPacket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Packet+RFPacket.swift"; sourceTree = ""; }; + C12401B229C7D8E900B32844 /* CRC8.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC8.swift; sourceTree = ""; }; + C12401B329C7D8E900B32844 /* Packet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Packet.swift; sourceTree = ""; }; + C12401B429C7D8E900B32844 /* MessageTransport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTransport.swift; sourceTree = ""; }; + C12401EF29C7D90B00B32844 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C12401F029C7D90B00B32844 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C12401F129C7D90B00B32844 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C12401F229C7D90B00B32844 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C12401F329C7D90B00B32844 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C12401F429C7D90B00B32844 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C12401F529C7D90B00B32844 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C12401F629C7D90B00B32844 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C12401F729C7D90B00B32844 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C12401F829C7D90B00B32844 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C12401F929C7D90B00B32844 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C12401FA29C7D90B00B32844 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C12401FB29C7D90B00B32844 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C12401FC29C7D90B00B32844 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C12401FD29C7D90B00B32844 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C12401FE29C7D90B00B32844 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C12401FF29C7D90B00B32844 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C124020029C7D90B00B32844 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C124020129C7D90B00B32844 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C124020229C7D90B00B32844 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C124020329C7D90B00B32844 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C124020429C7D90B00B32844 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C124020B29C7D92700B32844 /* OmniKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OmniKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C124020D29C7D92700B32844 /* OmniKitUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OmniKitUI.h; sourceTree = ""; }; + C124021729C7D93D00B32844 /* OmniKitPlugin.loopplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OmniKitPlugin.loopplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + C124021F29C7DA9700B32844 /* OmnipodHUDProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodHUDProvider.swift; sourceTree = ""; }; + C124022029C7DA9700B32844 /* OmniPodPumpManager+UI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OmniPodPumpManager+UI.swift"; sourceTree = ""; }; + C124022229C7DA9700B32844 /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; + C124022429C7DA9700B32844 /* FrameworkLocalText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrameworkLocalText.swift; sourceTree = ""; }; + C124022629C7DA9700B32844 /* PairPodViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PairPodViewModel.swift; sourceTree = ""; }; + C124022729C7DA9700B32844 /* DeliveryUncertaintyRecoveryViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeliveryUncertaintyRecoveryViewModel.swift; sourceTree = ""; }; + C124022829C7DA9700B32844 /* InsertCannulaViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsertCannulaViewModel.swift; sourceTree = ""; }; + C124022929C7DA9700B32844 /* DeactivatePodViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeactivatePodViewModel.swift; sourceTree = ""; }; + C124022A29C7DA9700B32844 /* RileyLinkListDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RileyLinkListDataSource.swift; sourceTree = ""; }; + C124022B29C7DA9700B32844 /* PodLifeState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodLifeState.swift; sourceTree = ""; }; + C124022C29C7DA9700B32844 /* OmnipodSettingsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodSettingsViewModel.swift; sourceTree = ""; }; + C124022E29C7DA9700B32844 /* PodLifeHUDView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodLifeHUDView.swift; sourceTree = ""; }; + C124022F29C7DA9700B32844 /* CheckInsertedCannulaView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckInsertedCannulaView.swift; sourceTree = ""; }; + C124023029C7DA9700B32844 /* HUDAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = HUDAssets.xcassets; sourceTree = ""; }; + C124023229C7DA9700B32844 /* RoundedCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoundedCard.swift; sourceTree = ""; }; + C124023329C7DA9700B32844 /* LeadingImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadingImage.swift; sourceTree = ""; }; + C124023429C7DA9700B32844 /* ErrorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = ""; }; + C124023529C7DA9700B32844 /* LowReservoirReminderEditView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LowReservoirReminderEditView.swift; sourceTree = ""; }; + C124023629C7DA9700B32844 /* InsertCannulaView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsertCannulaView.swift; sourceTree = ""; }; + C124023729C7DA9700B32844 /* RileyLinkSetupView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RileyLinkSetupView.swift; sourceTree = ""; }; + C124023829C7DA9700B32844 /* SetupCompleteView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetupCompleteView.swift; sourceTree = ""; }; + C124023A29C7DA9700B32844 /* ExpirationReminderPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpirationReminderPickerView.swift; sourceTree = ""; }; + C124023B29C7DA9700B32844 /* UncertaintyRecoveredView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UncertaintyRecoveredView.swift; sourceTree = ""; }; + C124023C29C7DA9700B32844 /* InsulinTypeConfirmation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InsulinTypeConfirmation.swift; sourceTree = ""; }; + C124023D29C7DA9700B32844 /* ManualTempBasalEntryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManualTempBasalEntryView.swift; sourceTree = ""; }; + C124023E29C7DA9700B32844 /* PodLifeHUDView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PodLifeHUDView.xib; sourceTree = ""; }; + C124023F29C7DA9700B32844 /* NotificationSettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSettingsView.swift; sourceTree = ""; }; + C124024029C7DA9700B32844 /* OmnipodSettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodSettingsView.swift; sourceTree = ""; }; + C124024129C7DA9700B32844 /* PodSetupView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodSetupView.swift; sourceTree = ""; }; + C124024229C7DA9700B32844 /* LowReservoirReminderSetupView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LowReservoirReminderSetupView.swift; sourceTree = ""; }; + C124024329C7DA9700B32844 /* PairPodView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PairPodView.swift; sourceTree = ""; }; + C124024429C7DA9700B32844 /* BeepPreferenceSelectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeepPreferenceSelectionView.swift; sourceTree = ""; }; + C124024529C7DA9700B32844 /* ExpirationReminderSetupView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpirationReminderSetupView.swift; sourceTree = ""; }; + C124024629C7DA9700B32844 /* AttachPodView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachPodView.swift; sourceTree = ""; }; + C124024729C7DA9700B32844 /* ScheduledExpirationReminderEditView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledExpirationReminderEditView.swift; sourceTree = ""; }; + C124024829C7DA9700B32844 /* PodDetailsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodDetailsView.swift; sourceTree = ""; }; + C124024929C7DA9700B32844 /* OmnipodReservoirView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodReservoirView.swift; sourceTree = ""; }; + C124024A29C7DA9700B32844 /* DeliveryUncertaintyRecoveryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeliveryUncertaintyRecoveryView.swift; sourceTree = ""; }; + C124024B29C7DA9700B32844 /* DeactivatePodView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeactivatePodView.swift; sourceTree = ""; }; + C124024C29C7DA9700B32844 /* BasalStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalStateView.swift; sourceTree = ""; }; + C124024D29C7DA9700B32844 /* TimeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeView.swift; sourceTree = ""; }; + C124025029C7DA9700B32844 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + C124025129C7DA9700B32844 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + C124025229C7DA9700B32844 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C124025329C7DA9700B32844 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + C124025429C7DA9700B32844 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + C124025529C7DA9700B32844 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + C124025629C7DA9700B32844 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; + C124025729C7DA9700B32844 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + C124025829C7DA9700B32844 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; + C124025929C7DA9700B32844 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; + C124025A29C7DA9700B32844 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C124025B29C7DA9700B32844 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; + C124025C29C7DA9700B32844 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C124025D29C7DA9700B32844 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; + C124025E29C7DA9700B32844 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + C124025F29C7DA9700B32844 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + C124026029C7DA9700B32844 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; + C124026129C7DA9700B32844 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; + C124026229C7DA9700B32844 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + C124026329C7DA9700B32844 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; + C124026429C7DA9700B32844 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; + C124026529C7DA9700B32844 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = ""; }; + C124026629C7DA9700B32844 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; + C124026729C7DA9700B32844 /* OmniKitUI.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = OmniKitUI.xcassets; sourceTree = ""; }; + C124026929C7DA9700B32844 /* OmnipodUICoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmnipodUICoordinator.swift; sourceTree = ""; }; + C124026A29C7DA9700B32844 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C12ED9C429C7DB7200435701 /* OmnipodReservoirView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OmnipodReservoirView.xib; sourceTree = ""; }; + C12ED9CA29C7DBA900435701 /* OmniKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OmniKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C12ED9CC29C7DBA900435701 /* OmniKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmniKitTests.swift; sourceTree = ""; }; + C12ED9D429C7DBDA00435701 /* OmniKitTests-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OmniKitTests-Bridging-Header.h"; sourceTree = ""; }; + C12ED9D529C7DBDA00435701 /* PodCommsSessionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodCommsSessionTests.swift; sourceTree = ""; }; + C12ED9D629C7DBDA00435701 /* BasalScheduleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasalScheduleTests.swift; sourceTree = ""; }; + C12ED9D729C7DBDA00435701 /* MessageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTests.swift; sourceTree = ""; }; + C12ED9D829C7DBDA00435701 /* CRC8Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC8Tests.swift; sourceTree = ""; }; + C12ED9D929C7DBDA00435701 /* PacketTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PacketTests.swift; sourceTree = ""; }; + C12ED9DA29C7DBDA00435701 /* CRC16Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRC16Tests.swift; sourceTree = ""; }; + C12ED9DB29C7DBDA00435701 /* BolusTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BolusTests.swift; sourceTree = ""; }; + C12ED9DC29C7DBDA00435701 /* PodStateTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodStateTests.swift; sourceTree = ""; }; + C12ED9DD29C7DBDA00435701 /* AcknowledgeAlertsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgeAlertsTests.swift; sourceTree = ""; }; + C12ED9DE29C7DBDA00435701 /* TempBasalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempBasalTests.swift; sourceTree = ""; }; + C12ED9DF29C7DBDA00435701 /* StatusTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusTests.swift; sourceTree = ""; }; + C12ED9E029C7DBDA00435701 /* PodInfoTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PodInfoTests.swift; sourceTree = ""; }; + C12ED9E129C7DBDA00435701 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C12ED9EF29C7DBE700435701 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C12ED9F029C7DBE700435701 /* OmniKitPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OmniKitPlugin.swift; sourceTree = ""; }; + C12ED9FD29C7DCF900435701 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C12ED9FF29C7DD2300435701 /* Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + C12EDA0129C7DD4700435701 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C12EDA0329C7DDC800435701 /* TimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C12EDA0529C7DE2500435701 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C12EDA0729C7DE6200435701 /* NumberFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C12EDA0929C7DEAA00435701 /* HKUnit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C12EDA0B29C7DED000435701 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; + C12EDA0D29C7DEFD00435701 /* NumberFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberFormatter.swift; sourceTree = ""; }; + C12EDA0F29C7DF1900435701 /* NibLoadable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = ""; }; + C12EDA1129C7DF4B00435701 /* IdentifiableClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdentifiableClass.swift; sourceTree = ""; }; + C12EDA1329C7DFBF00435701 /* TimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeInterval.swift; sourceTree = ""; }; + C12EDA1529C7DFF100435701 /* HKUnit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; + C12EDA1729C7E01800435701 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; + C12EDA1A29C7E06900435701 /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + CEC751E229D88392006E9D24 /* LoopKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LoopKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C1229C6829C7F0840066A89C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124016929C7D87A00B32844 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEC751DD29D8834B006E9D24 /* RileyLinkBLEKit.framework in Frameworks */, + CEC751DE29D8834B006E9D24 /* RileyLinkKit.framework in Frameworks */, + CEC751DF29D8834B006E9D24 /* RileyLinkKitUI.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124020829C7D92700B32844 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEF2639B29D88516009921F1 /* OmniKit.framework in Frameworks */, + CEC751E329D88392006E9D24 /* LoopKitUI.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124021429C7D93D00B32844 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C1229C1A29C7E5BC0066A89C /* RileyLinkBLEKit.framework in Frameworks */, + C1229C1E29C7E5BC0066A89C /* RileyLinkKitUI.framework in Frameworks */, + C1229C1C29C7E5BC0066A89C /* RileyLinkKit.framework in Frameworks */, + C12ED9F829C7DCE100435701 /* OmniKitUI.framework in Frameworks */, + C12ED9F429C7DCE100435701 /* OmniKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C12ED9C729C7DBA900435701 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C12ED9CE29C7DBA900435701 /* OmniKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C1229C2A29C7ED840066A89C /* OmniKitPacketParser */ = { + isa = PBXGroup; + children = ( + C1229C2B29C7ED840066A89C /* main.swift */, + ); + path = OmniKitPacketParser; + sourceTree = ""; + }; + C124016229C7D87A00B32844 = { + isa = PBXGroup; + children = ( + C124016E29C7D87A00B32844 /* OmniKit */, + C124020C29C7D92700B32844 /* OmniKitUI */, + C124021829C7D93D00B32844 /* OmniKitPlugin */, + C12ED9CB29C7DBA900435701 /* OmniKitTests */, + C1229C2A29C7ED840066A89C /* OmniKitPacketParser */, + C124016D29C7D87A00B32844 /* Products */, + C12ED9F329C7DCE100435701 /* Frameworks */, + ); + sourceTree = ""; + }; + C124016D29C7D87A00B32844 /* Products */ = { + isa = PBXGroup; + children = ( + C124016C29C7D87A00B32844 /* OmniKit.framework */, + C124020B29C7D92700B32844 /* OmniKitUI.framework */, + C124021729C7D93D00B32844 /* OmniKitPlugin.loopplugin */, + C12ED9CA29C7DBA900435701 /* OmniKitTests.xctest */, + C1229C6B29C7F0840066A89C /* OmniKitPacketParser */, + ); + name = Products; + sourceTree = ""; + }; + C124016E29C7D87A00B32844 /* OmniKit */ = { + isa = PBXGroup; + children = ( + C12401ED29C7D90B00B32844 /* Resources */, + C124017829C7D8E900B32844 /* Extensions */, + C12401A829C7D8E900B32844 /* Info.plist */, + C12401B029C7D8E900B32844 /* MessageTransport */, + C124017A29C7D8E900B32844 /* OmnipodCommon */, + C12401A929C7D8E900B32844 /* PumpManager */, + C124017629C7D8CD00B32844 /* README.md */, + C124016F29C7D87A00B32844 /* OmniKit.h */, + C12EDA0129C7DD4700435701 /* LocalizedString.swift */, + ); + path = OmniKit; + sourceTree = ""; + }; + C124017829C7D8E900B32844 /* Extensions */ = { + isa = PBXGroup; + children = ( + C124017929C7D8E900B32844 /* Notification.swift */, + C12ED9FD29C7DCF900435701 /* OSLog.swift */, + C12ED9FF29C7DD2300435701 /* Data.swift */, + C12EDA0329C7DDC800435701 /* TimeInterval.swift */, + C12EDA0529C7DE2500435701 /* TimeZone.swift */, + C12EDA0729C7DE6200435701 /* NumberFormatter.swift */, + C12EDA0929C7DEAA00435701 /* HKUnit.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C124017A29C7D8E900B32844 /* OmnipodCommon */ = { + isa = PBXGroup; + children = ( + C124017B29C7D8E900B32844 /* BeepType.swift */, + C124017C29C7D8E900B32844 /* PumpManagerAlert.swift */, + C124017D29C7D8E900B32844 /* MessageBlocks */, + C124019729C7D8E900B32844 /* PodDoseProgressEstimator.swift */, + C124019829C7D8E900B32844 /* FaultEventCode.swift */, + C124019929C7D8E900B32844 /* Message.swift */, + C124019A29C7D8E900B32844 /* BeepPreference.swift */, + C124019B29C7D8E900B32844 /* Pod.swift */, + C124019C29C7D8E900B32844 /* BasalSchedule+LoopKit.swift */, + C124019D29C7D8E900B32844 /* BasalDeliveryTable.swift */, + C124019E29C7D8E900B32844 /* PendingCommand.swift */, + C124019F29C7D8E900B32844 /* PodInsulinMeasurements.swift */, + C12401A029C7D8E900B32844 /* ReservoirLevel.swift */, + C12401A129C7D8E900B32844 /* AlertSlot.swift */, + C12401A229C7D8E900B32844 /* InsulinTableEntry.swift */, + C12401A329C7D8E900B32844 /* PodProgressStatus.swift */, + C12401A429C7D8E900B32844 /* CRC16.swift */, + C12401A529C7D8E900B32844 /* BasalSchedule.swift */, + C12401A629C7D8E900B32844 /* BolusDeliveryTable.swift */, + C12401A729C7D8E900B32844 /* UnfinalizedDose.swift */, + ); + path = OmnipodCommon; + sourceTree = ""; + }; + C124017D29C7D8E900B32844 /* MessageBlocks */ = { + isa = PBXGroup; + children = ( + C124017E29C7D8E900B32844 /* PodInfoPulseLog.swift */, + C124017F29C7D8E900B32844 /* VersionResponse.swift */, + C124018029C7D8E900B32844 /* PodInfoActivationTime.swift */, + C124018129C7D8E900B32844 /* TempBasalExtraCommand.swift */, + C124018229C7D8E900B32844 /* DeactivatePodCommand.swift */, + C124018329C7D8E900B32844 /* AcknowledgeAlertCommand.swift */, + C124018429C7D8E900B32844 /* PodInfoConfiguredAlerts.swift */, + C124018529C7D8E900B32844 /* MessageBlock.swift */, + C124018629C7D8E900B32844 /* PlaceholderMessageBlock.swift */, + C124018729C7D8E900B32844 /* PodInfo.swift */, + C124018829C7D8E900B32844 /* BolusExtraCommand.swift */, + C124018929C7D8E900B32844 /* FaultConfigCommand.swift */, + C124018A29C7D8E900B32844 /* PodInfoPulseLogPlus.swift */, + C124018B29C7D8E900B32844 /* StatusResponse.swift */, + C124018C29C7D8E900B32844 /* GetStatusCommand.swift */, + C124018D29C7D8E900B32844 /* BasalScheduleExtraCommand.swift */, + C124018E29C7D8E900B32844 /* CancelDeliveryCommand.swift */, + C124018F29C7D8E900B32844 /* AssignAddressCommand.swift */, + C124019029C7D8E900B32844 /* BeepConfigCommand.swift */, + C124019129C7D8E900B32844 /* ErrorResponse.swift */, + C124019229C7D8E900B32844 /* SetupPodCommand.swift */, + C124019329C7D8E900B32844 /* DetailedStatus.swift */, + C124019429C7D8E900B32844 /* PodInfoResponse.swift */, + C124019529C7D8E900B32844 /* SetInsulinScheduleCommand.swift */, + C124019629C7D8E900B32844 /* ConfigureAlertsCommand.swift */, + ); + path = MessageBlocks; + sourceTree = ""; + }; + C12401A929C7D8E900B32844 /* PumpManager */ = { + isa = PBXGroup; + children = ( + C12401AA29C7D8E900B32844 /* PodComms.swift */, + C12401AB29C7D8E900B32844 /* DetailedStatus+OmniKit.swift */, + C12401AC29C7D8E900B32844 /* PodCommsSession.swift */, + C12401AD29C7D8E900B32844 /* OmnipodPumpManagerState.swift */, + C12401AE29C7D8E900B32844 /* OmnipodPumpManager.swift */, + C12401AF29C7D8E900B32844 /* PodState.swift */, + ); + path = PumpManager; + sourceTree = ""; + }; + C12401B029C7D8E900B32844 /* MessageTransport */ = { + isa = PBXGroup; + children = ( + C12401B129C7D8E900B32844 /* Packet+RFPacket.swift */, + C12401B229C7D8E900B32844 /* CRC8.swift */, + C12401B329C7D8E900B32844 /* Packet.swift */, + C12401B429C7D8E900B32844 /* MessageTransport.swift */, + ); + path = MessageTransport; + sourceTree = ""; + }; + C12401ED29C7D90B00B32844 /* Resources */ = { + isa = PBXGroup; + children = ( + C12401EE29C7D90B00B32844 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C124020C29C7D92700B32844 /* OmniKitUI */ = { + isa = PBXGroup; + children = ( + C124022329C7DA9700B32844 /* Common */, + C124022129C7DA9700B32844 /* Extensions */, + C124026A29C7DA9700B32844 /* Info.plist */, + C124021E29C7DA9700B32844 /* PumpManager */, + C124024E29C7DA9700B32844 /* Resources */, + C124026829C7DA9700B32844 /* ViewControllers */, + C124022529C7DA9700B32844 /* ViewModels */, + C124022D29C7DA9700B32844 /* Views */, + C124020D29C7D92700B32844 /* OmniKitUI.h */, + C12EDA0B29C7DED000435701 /* LocalizedString.swift */, + ); + path = OmniKitUI; + sourceTree = ""; + }; + C124021829C7D93D00B32844 /* OmniKitPlugin */ = { + isa = PBXGroup; + children = ( + C12EDA1929C7E06000435701 /* Extensions */, + C12ED9EF29C7DBE700435701 /* Info.plist */, + C12ED9F029C7DBE700435701 /* OmniKitPlugin.swift */, + ); + path = OmniKitPlugin; + sourceTree = ""; + }; + C124021E29C7DA9700B32844 /* PumpManager */ = { + isa = PBXGroup; + children = ( + C124021F29C7DA9700B32844 /* OmnipodHUDProvider.swift */, + C124022029C7DA9700B32844 /* OmniPodPumpManager+UI.swift */, + ); + path = PumpManager; + sourceTree = ""; + }; + C124022129C7DA9700B32844 /* Extensions */ = { + isa = PBXGroup; + children = ( + C124022229C7DA9700B32844 /* Image.swift */, + C12EDA0D29C7DEFD00435701 /* NumberFormatter.swift */, + C12EDA0F29C7DF1900435701 /* NibLoadable.swift */, + C12EDA1129C7DF4B00435701 /* IdentifiableClass.swift */, + C12EDA1329C7DFBF00435701 /* TimeInterval.swift */, + C12EDA1529C7DFF100435701 /* HKUnit.swift */, + C12EDA1729C7E01800435701 /* TimeZone.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + C124022329C7DA9700B32844 /* Common */ = { + isa = PBXGroup; + children = ( + C124022429C7DA9700B32844 /* FrameworkLocalText.swift */, + ); + path = Common; + sourceTree = ""; + }; + C124022529C7DA9700B32844 /* ViewModels */ = { + isa = PBXGroup; + children = ( + C124022629C7DA9700B32844 /* PairPodViewModel.swift */, + C124022729C7DA9700B32844 /* DeliveryUncertaintyRecoveryViewModel.swift */, + C124022829C7DA9700B32844 /* InsertCannulaViewModel.swift */, + C124022929C7DA9700B32844 /* DeactivatePodViewModel.swift */, + C124022A29C7DA9700B32844 /* RileyLinkListDataSource.swift */, + C124022B29C7DA9700B32844 /* PodLifeState.swift */, + C124022C29C7DA9700B32844 /* OmnipodSettingsViewModel.swift */, + ); + path = ViewModels; + sourceTree = ""; + }; + C124022D29C7DA9700B32844 /* Views */ = { + isa = PBXGroup; + children = ( + C124022E29C7DA9700B32844 /* PodLifeHUDView.swift */, + C124022F29C7DA9700B32844 /* CheckInsertedCannulaView.swift */, + C124023129C7DA9700B32844 /* DesignElements */, + C124023529C7DA9700B32844 /* LowReservoirReminderEditView.swift */, + C124023629C7DA9700B32844 /* InsertCannulaView.swift */, + C124023729C7DA9700B32844 /* RileyLinkSetupView.swift */, + C124023829C7DA9700B32844 /* SetupCompleteView.swift */, + C124023A29C7DA9700B32844 /* ExpirationReminderPickerView.swift */, + C124023B29C7DA9700B32844 /* UncertaintyRecoveredView.swift */, + C124023C29C7DA9700B32844 /* InsulinTypeConfirmation.swift */, + C124023D29C7DA9700B32844 /* ManualTempBasalEntryView.swift */, + C124023F29C7DA9700B32844 /* NotificationSettingsView.swift */, + C124024029C7DA9700B32844 /* OmnipodSettingsView.swift */, + C124024129C7DA9700B32844 /* PodSetupView.swift */, + C124024229C7DA9700B32844 /* LowReservoirReminderSetupView.swift */, + C124024329C7DA9700B32844 /* PairPodView.swift */, + C124024429C7DA9700B32844 /* BeepPreferenceSelectionView.swift */, + C124024529C7DA9700B32844 /* ExpirationReminderSetupView.swift */, + C124024629C7DA9700B32844 /* AttachPodView.swift */, + C124024729C7DA9700B32844 /* ScheduledExpirationReminderEditView.swift */, + C124024829C7DA9700B32844 /* PodDetailsView.swift */, + C124024929C7DA9700B32844 /* OmnipodReservoirView.swift */, + C124024A29C7DA9700B32844 /* DeliveryUncertaintyRecoveryView.swift */, + C124024B29C7DA9700B32844 /* DeactivatePodView.swift */, + C124024C29C7DA9700B32844 /* BasalStateView.swift */, + C124024D29C7DA9700B32844 /* TimeView.swift */, + ); + path = Views; + sourceTree = ""; + }; + C124023129C7DA9700B32844 /* DesignElements */ = { + isa = PBXGroup; + children = ( + C124023229C7DA9700B32844 /* RoundedCard.swift */, + C124023329C7DA9700B32844 /* LeadingImage.swift */, + C124023429C7DA9700B32844 /* ErrorView.swift */, + ); + path = DesignElements; + sourceTree = ""; + }; + C124024E29C7DA9700B32844 /* Resources */ = { + isa = PBXGroup; + children = ( + C12ED9C429C7DB7200435701 /* OmnipodReservoirView.xib */, + C124023E29C7DA9700B32844 /* PodLifeHUDView.xib */, + C124023029C7DA9700B32844 /* HUDAssets.xcassets */, + C124026729C7DA9700B32844 /* OmniKitUI.xcassets */, + C124024F29C7DA9700B32844 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + C124026829C7DA9700B32844 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + C124026929C7DA9700B32844 /* OmnipodUICoordinator.swift */, + ); + path = ViewControllers; + sourceTree = ""; + }; + C12ED9CB29C7DBA900435701 /* OmniKitTests */ = { + isa = PBXGroup; + children = ( + C12ED9DD29C7DBDA00435701 /* AcknowledgeAlertsTests.swift */, + C12ED9D629C7DBDA00435701 /* BasalScheduleTests.swift */, + C12ED9DB29C7DBDA00435701 /* BolusTests.swift */, + C12ED9D829C7DBDA00435701 /* CRC8Tests.swift */, + C12ED9DA29C7DBDA00435701 /* CRC16Tests.swift */, + C12ED9E129C7DBDA00435701 /* Info.plist */, + C12ED9D729C7DBDA00435701 /* MessageTests.swift */, + C12ED9D429C7DBDA00435701 /* OmniKitTests-Bridging-Header.h */, + C12ED9D929C7DBDA00435701 /* PacketTests.swift */, + C12ED9D529C7DBDA00435701 /* PodCommsSessionTests.swift */, + C12ED9E029C7DBDA00435701 /* PodInfoTests.swift */, + C12ED9DC29C7DBDA00435701 /* PodStateTests.swift */, + C12ED9DF29C7DBDA00435701 /* StatusTests.swift */, + C12ED9DE29C7DBDA00435701 /* TempBasalTests.swift */, + C12ED9CC29C7DBA900435701 /* OmniKitTests.swift */, + ); + path = OmniKitTests; + sourceTree = ""; + }; + C12ED9F329C7DCE100435701 /* Frameworks */ = { + isa = PBXGroup; + children = ( + CEC751E229D88392006E9D24 /* LoopKitUI.framework */, + C1229C1729C7E5BC0066A89C /* RileyLinkBLEKit.framework */, + C1229C1829C7E5BC0066A89C /* RileyLinkKit.framework */, + C1229C1929C7E5BC0066A89C /* RileyLinkKitUI.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C12EDA1929C7E06000435701 /* Extensions */ = { + isa = PBXGroup; + children = ( + C12EDA1A29C7E06900435701 /* OSLog.swift */, + ); + path = Extensions; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + C124016729C7D87A00B32844 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C124017029C7D87A00B32844 /* OmniKit.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124020629C7D92700B32844 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C124020E29C7D92700B32844 /* OmniKitUI.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124021229C7D93D00B32844 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + C1229C6A29C7F0840066A89C /* OmniKitPacketParser */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1229C6F29C7F0840066A89C /* Build configuration list for PBXNativeTarget "OmniKitPacketParser" */; + buildPhases = ( + C1229C6729C7F0840066A89C /* Sources */, + C1229C6829C7F0840066A89C /* Frameworks */, + C1229C6929C7F0840066A89C /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OmniKitPacketParser; + productName = OmniKitPacketParser; + productReference = C1229C6B29C7F0840066A89C /* OmniKitPacketParser */; + productType = "com.apple.product-type.tool"; + }; + C124016B29C7D87A00B32844 /* OmniKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = C124017329C7D87A00B32844 /* Build configuration list for PBXNativeTarget "OmniKit" */; + buildPhases = ( + C124016729C7D87A00B32844 /* Headers */, + C124016829C7D87A00B32844 /* Sources */, + C124016929C7D87A00B32844 /* Frameworks */, + C124016A29C7D87A00B32844 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OmniKit; + productName = OmniKit; + productReference = C124016C29C7D87A00B32844 /* OmniKit.framework */; + productType = "com.apple.product-type.framework"; + }; + C124020A29C7D92700B32844 /* OmniKitUI */ = { + isa = PBXNativeTarget; + buildConfigurationList = C124020F29C7D92700B32844 /* Build configuration list for PBXNativeTarget "OmniKitUI" */; + buildPhases = ( + C124020629C7D92700B32844 /* Headers */, + C124020729C7D92700B32844 /* Sources */, + C124020829C7D92700B32844 /* Frameworks */, + C124020929C7D92700B32844 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OmniKitUI; + productName = OmniKitUI; + productReference = C124020B29C7D92700B32844 /* OmniKitUI.framework */; + productType = "com.apple.product-type.framework"; + }; + C124021629C7D93D00B32844 /* OmniKitPlugin */ = { + isa = PBXNativeTarget; + buildConfigurationList = C124021B29C7D93D00B32844 /* Build configuration list for PBXNativeTarget "OmniKitPlugin" */; + buildPhases = ( + C124021229C7D93D00B32844 /* Headers */, + C124021329C7D93D00B32844 /* Sources */, + C124021429C7D93D00B32844 /* Frameworks */, + C124021529C7D93D00B32844 /* Resources */, + C12ED9FC29C7DCE100435701 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + C12ED9F729C7DCE100435701 /* PBXTargetDependency */, + C12ED9FB29C7DCE100435701 /* PBXTargetDependency */, + ); + name = OmniKitPlugin; + productName = OmniKitPlugin; + productReference = C124021729C7D93D00B32844 /* OmniKitPlugin.loopplugin */; + productType = "com.apple.product-type.framework"; + }; + C12ED9C929C7DBA900435701 /* OmniKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C12ED9D129C7DBA900435701 /* Build configuration list for PBXNativeTarget "OmniKitTests" */; + buildPhases = ( + C12ED9C629C7DBA900435701 /* Sources */, + C12ED9C729C7DBA900435701 /* Frameworks */, + C12ED9C829C7DBA900435701 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C12ED9D029C7DBA900435701 /* PBXTargetDependency */, + ); + name = OmniKitTests; + productName = OmniKitTests; + productReference = C12ED9CA29C7DBA900435701 /* OmniKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C124016329C7D87A00B32844 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + CLASSPREFIX = ""; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + ORGANIZATIONNAME = "LoopKit Authors"; + TargetAttributes = { + C1229C6A29C7F0840066A89C = { + CreatedOnToolsVersion = 14.2; + }; + C124016B29C7D87A00B32844 = { + CreatedOnToolsVersion = 14.2; + }; + C124020A29C7D92700B32844 = { + CreatedOnToolsVersion = 14.2; + }; + C124021629C7D93D00B32844 = { + CreatedOnToolsVersion = 14.2; + LastSwiftMigration = 1420; + }; + C12ED9C929C7DBA900435701 = { + CreatedOnToolsVersion = 14.2; + }; + }; + }; + buildConfigurationList = C124016629C7D87A00B32844 /* Build configuration list for PBXProject "OmniKit" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + de, + he, + ar, + "zh-Hans", + ja, + nb, + es, + da, + it, + sk, + sv, + cs, + tr, + pl, + "pt-BR", + vi, + ru, + fr, + fi, + nl, + ro, + hi, + ); + mainGroup = C124016229C7D87A00B32844; + productRefGroup = C124016D29C7D87A00B32844 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C124016B29C7D87A00B32844 /* OmniKit */, + C124020A29C7D92700B32844 /* OmniKitUI */, + C124021629C7D93D00B32844 /* OmniKitPlugin */, + C12ED9C929C7DBA900435701 /* OmniKitTests */, + C1229C6A29C7F0840066A89C /* OmniKitPacketParser */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C124016A29C7D87A00B32844 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C124020529C7D90B00B32844 /* Localizable.strings in Resources */, + C124017729C7D8CD00B32844 /* README.md in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124020929C7D92700B32844 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C124028529C7DA9700B32844 /* PodLifeHUDView.xib in Resources */, + C12ED9C529C7DB7200435701 /* OmnipodReservoirView.xib in Resources */, + C124029629C7DA9700B32844 /* OmniKitUI.xcassets in Resources */, + C124029529C7DA9700B32844 /* Localizable.strings in Resources */, + C124027829C7DA9700B32844 /* HUDAssets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124021529C7D93D00B32844 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C12ED9C829C7DBA900435701 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C1229C6729C7F0840066A89C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1229C7229C7F0950066A89C /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124016829C7D87A00B32844 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C12401D729C7D8E900B32844 /* BasalDeliveryTable.swift in Sources */, + C12401BD29C7D8E900B32844 /* AcknowledgeAlertCommand.swift in Sources */, + C12EDA0429C7DDC800435701 /* TimeInterval.swift in Sources */, + C12401B529C7D8E900B32844 /* Notification.swift in Sources */, + C12401E429C7D8E900B32844 /* DetailedStatus+OmniKit.swift in Sources */, + C12401C929C7D8E900B32844 /* AssignAddressCommand.swift in Sources */, + C12401C429C7D8E900B32844 /* PodInfoPulseLogPlus.swift in Sources */, + C12401CD29C7D8E900B32844 /* DetailedStatus.swift in Sources */, + C12401DF29C7D8E900B32844 /* BasalSchedule.swift in Sources */, + C12401DC29C7D8E900B32844 /* InsulinTableEntry.swift in Sources */, + C12401CF29C7D8E900B32844 /* SetInsulinScheduleCommand.swift in Sources */, + C12401D529C7D8E900B32844 /* Pod.swift in Sources */, + C12EDA0629C7DE2500435701 /* TimeZone.swift in Sources */, + C12401D629C7D8E900B32844 /* BasalSchedule+LoopKit.swift in Sources */, + C12401BC29C7D8E900B32844 /* DeactivatePodCommand.swift in Sources */, + C12401B929C7D8E900B32844 /* VersionResponse.swift in Sources */, + C12401DB29C7D8E900B32844 /* AlertSlot.swift in Sources */, + C12401E629C7D8E900B32844 /* OmnipodPumpManagerState.swift in Sources */, + C12EDA0029C7DD2300435701 /* Data.swift in Sources */, + C12401DD29C7D8E900B32844 /* PodProgressStatus.swift in Sources */, + C12401B629C7D8E900B32844 /* BeepType.swift in Sources */, + C12ED9FE29C7DCF900435701 /* OSLog.swift in Sources */, + C12401CA29C7D8E900B32844 /* BeepConfigCommand.swift in Sources */, + C12401E329C7D8E900B32844 /* PodComms.swift in Sources */, + C12401D429C7D8E900B32844 /* BeepPreference.swift in Sources */, + C12401B829C7D8E900B32844 /* PodInfoPulseLog.swift in Sources */, + C12401BE29C7D8E900B32844 /* PodInfoConfiguredAlerts.swift in Sources */, + C12401E529C7D8E900B32844 /* PodCommsSession.swift in Sources */, + C12401DE29C7D8E900B32844 /* CRC16.swift in Sources */, + C12401C729C7D8E900B32844 /* BasalScheduleExtraCommand.swift in Sources */, + C12401C329C7D8E900B32844 /* FaultConfigCommand.swift in Sources */, + C12401D129C7D8E900B32844 /* PodDoseProgressEstimator.swift in Sources */, + C12401E029C7D8E900B32844 /* BolusDeliveryTable.swift in Sources */, + C12401C129C7D8E900B32844 /* PodInfo.swift in Sources */, + C12401E829C7D8E900B32844 /* PodState.swift in Sources */, + C12401D029C7D8E900B32844 /* ConfigureAlertsCommand.swift in Sources */, + C12401EA29C7D8E900B32844 /* CRC8.swift in Sources */, + C12401EB29C7D8E900B32844 /* Packet.swift in Sources */, + C12401C029C7D8E900B32844 /* PlaceholderMessageBlock.swift in Sources */, + C12401BA29C7D8E900B32844 /* PodInfoActivationTime.swift in Sources */, + C12EDA0A29C7DEAA00435701 /* HKUnit.swift in Sources */, + C12401C229C7D8E900B32844 /* BolusExtraCommand.swift in Sources */, + C12401E929C7D8E900B32844 /* Packet+RFPacket.swift in Sources */, + C12401E729C7D8E900B32844 /* OmnipodPumpManager.swift in Sources */, + C12401D329C7D8E900B32844 /* Message.swift in Sources */, + C12401BF29C7D8E900B32844 /* MessageBlock.swift in Sources */, + C12401CE29C7D8E900B32844 /* PodInfoResponse.swift in Sources */, + C12401D829C7D8E900B32844 /* PendingCommand.swift in Sources */, + C12401DA29C7D8E900B32844 /* ReservoirLevel.swift in Sources */, + C12401EC29C7D8E900B32844 /* MessageTransport.swift in Sources */, + C12401CB29C7D8E900B32844 /* ErrorResponse.swift in Sources */, + C12EDA0229C7DD4700435701 /* LocalizedString.swift in Sources */, + C12401C829C7D8E900B32844 /* CancelDeliveryCommand.swift in Sources */, + C12401CC29C7D8E900B32844 /* SetupPodCommand.swift in Sources */, + C12401B729C7D8E900B32844 /* PumpManagerAlert.swift in Sources */, + C12401D929C7D8E900B32844 /* PodInsulinMeasurements.swift in Sources */, + C12401D229C7D8E900B32844 /* FaultEventCode.swift in Sources */, + C12401BB29C7D8E900B32844 /* TempBasalExtraCommand.swift in Sources */, + C12401C629C7D8E900B32844 /* GetStatusCommand.swift in Sources */, + C12EDA0829C7DE6200435701 /* NumberFormatter.swift in Sources */, + C12401C529C7D8E900B32844 /* StatusResponse.swift in Sources */, + C12401E129C7D8E900B32844 /* UnfinalizedDose.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124020729C7D92700B32844 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C124028B29C7DA9700B32844 /* BeepPreferenceSelectionView.swift in Sources */, + C12EDA1429C7DFBF00435701 /* TimeInterval.swift in Sources */, + C124028D29C7DA9700B32844 /* AttachPodView.swift in Sources */, + C124027229C7DA9700B32844 /* DeactivatePodViewModel.swift in Sources */, + C124028C29C7DA9700B32844 /* ExpirationReminderSetupView.swift in Sources */, + C124029029C7DA9700B32844 /* OmnipodReservoirView.swift in Sources */, + C124027C29C7DA9700B32844 /* LowReservoirReminderEditView.swift in Sources */, + C124028129C7DA9700B32844 /* ExpirationReminderPickerView.swift in Sources */, + C124028329C7DA9700B32844 /* InsulinTypeConfirmation.swift in Sources */, + C124029129C7DA9700B32844 /* DeliveryUncertaintyRecoveryView.swift in Sources */, + C124028229C7DA9700B32844 /* UncertaintyRecoveredView.swift in Sources */, + C124027E29C7DA9700B32844 /* RileyLinkSetupView.swift in Sources */, + C124027429C7DA9700B32844 /* PodLifeState.swift in Sources */, + C124027129C7DA9700B32844 /* InsertCannulaViewModel.swift in Sources */, + C124027329C7DA9700B32844 /* RileyLinkListDataSource.swift in Sources */, + C124029329C7DA9700B32844 /* BasalStateView.swift in Sources */, + C124027A29C7DA9700B32844 /* LeadingImage.swift in Sources */, + C124028729C7DA9700B32844 /* OmnipodSettingsView.swift in Sources */, + C124028929C7DA9700B32844 /* LowReservoirReminderSetupView.swift in Sources */, + C124027029C7DA9700B32844 /* DeliveryUncertaintyRecoveryViewModel.swift in Sources */, + C12EDA0E29C7DEFD00435701 /* NumberFormatter.swift in Sources */, + C12EDA1229C7DF4B00435701 /* IdentifiableClass.swift in Sources */, + C124027529C7DA9700B32844 /* OmnipodSettingsViewModel.swift in Sources */, + C124027629C7DA9700B32844 /* PodLifeHUDView.swift in Sources */, + C124029729C7DA9700B32844 /* OmnipodUICoordinator.swift in Sources */, + C124028429C7DA9700B32844 /* ManualTempBasalEntryView.swift in Sources */, + C124027729C7DA9700B32844 /* CheckInsertedCannulaView.swift in Sources */, + C12EDA1029C7DF1900435701 /* NibLoadable.swift in Sources */, + C124026C29C7DA9700B32844 /* OmniPodPumpManager+UI.swift in Sources */, + C124028A29C7DA9700B32844 /* PairPodView.swift in Sources */, + C124029229C7DA9700B32844 /* DeactivatePodView.swift in Sources */, + C124027929C7DA9700B32844 /* RoundedCard.swift in Sources */, + C124026F29C7DA9700B32844 /* PairPodViewModel.swift in Sources */, + C124026E29C7DA9700B32844 /* FrameworkLocalText.swift in Sources */, + C124028F29C7DA9700B32844 /* PodDetailsView.swift in Sources */, + C124028629C7DA9700B32844 /* NotificationSettingsView.swift in Sources */, + C124027D29C7DA9700B32844 /* InsertCannulaView.swift in Sources */, + C12EDA0C29C7DED000435701 /* LocalizedString.swift in Sources */, + C12EDA1629C7DFF100435701 /* HKUnit.swift in Sources */, + C12EDA1829C7E01800435701 /* TimeZone.swift in Sources */, + C124026D29C7DA9700B32844 /* Image.swift in Sources */, + C124028E29C7DA9700B32844 /* ScheduledExpirationReminderEditView.swift in Sources */, + C124026B29C7DA9700B32844 /* OmnipodHUDProvider.swift in Sources */, + C124027B29C7DA9700B32844 /* ErrorView.swift in Sources */, + C124028829C7DA9700B32844 /* PodSetupView.swift in Sources */, + C124027F29C7DA9700B32844 /* SetupCompleteView.swift in Sources */, + C124029429C7DA9700B32844 /* TimeView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C124021329C7D93D00B32844 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C12EDA1B29C7E06900435701 /* OSLog.swift in Sources */, + C12ED9F229C7DBE700435701 /* OmniKitPlugin.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C12ED9C629C7DBA900435701 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C12ED9E229C7DBDA00435701 /* PodCommsSessionTests.swift in Sources */, + C12ED9E429C7DBDA00435701 /* MessageTests.swift in Sources */, + C12ED9E729C7DBDA00435701 /* CRC16Tests.swift in Sources */, + C12ED9E829C7DBDA00435701 /* BolusTests.swift in Sources */, + C12ED9E329C7DBDA00435701 /* BasalScheduleTests.swift in Sources */, + C12ED9EA29C7DBDA00435701 /* AcknowledgeAlertsTests.swift in Sources */, + C12ED9E929C7DBDA00435701 /* PodStateTests.swift in Sources */, + C12ED9EC29C7DBDA00435701 /* StatusTests.swift in Sources */, + C12ED9E629C7DBDA00435701 /* PacketTests.swift in Sources */, + C12ED9E529C7DBDA00435701 /* CRC8Tests.swift in Sources */, + C12ED9CD29C7DBA900435701 /* OmniKitTests.swift in Sources */, + C12ED9EB29C7DBDA00435701 /* TempBasalTests.swift in Sources */, + C12ED9ED29C7DBDA00435701 /* PodInfoTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C12ED9D029C7DBA900435701 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C124016B29C7D87A00B32844 /* OmniKit */; + targetProxy = C12ED9CF29C7DBA900435701 /* PBXContainerItemProxy */; + }; + C12ED9F729C7DCE100435701 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C124016B29C7D87A00B32844 /* OmniKit */; + targetProxy = C12ED9F629C7DCE100435701 /* PBXContainerItemProxy */; + }; + C12ED9FB29C7DCE100435701 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C124020A29C7D92700B32844 /* OmniKitUI */; + targetProxy = C12ED9FA29C7DCE100435701 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + C12401EE29C7D90B00B32844 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C12401EF29C7D90B00B32844 /* de */, + C12401F029C7D90B00B32844 /* he */, + C12401F129C7D90B00B32844 /* ar */, + C12401F229C7D90B00B32844 /* zh-Hans */, + C12401F329C7D90B00B32844 /* ja */, + C12401F429C7D90B00B32844 /* en */, + C12401F529C7D90B00B32844 /* nb */, + C12401F629C7D90B00B32844 /* es */, + C12401F729C7D90B00B32844 /* da */, + C12401F829C7D90B00B32844 /* it */, + C12401F929C7D90B00B32844 /* sk */, + C12401FA29C7D90B00B32844 /* sv */, + C12401FB29C7D90B00B32844 /* cs */, + C12401FC29C7D90B00B32844 /* tr */, + C12401FD29C7D90B00B32844 /* pl */, + C12401FE29C7D90B00B32844 /* pt-BR */, + C12401FF29C7D90B00B32844 /* vi */, + C124020029C7D90B00B32844 /* ru */, + C124020129C7D90B00B32844 /* fr */, + C124020229C7D90B00B32844 /* fi */, + C124020329C7D90B00B32844 /* nl */, + C124020429C7D90B00B32844 /* ro */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + C124024F29C7DA9700B32844 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + C124025029C7DA9700B32844 /* de */, + C124025129C7DA9700B32844 /* he */, + C124025229C7DA9700B32844 /* ar */, + C124025329C7DA9700B32844 /* zh-Hans */, + C124025429C7DA9700B32844 /* ja */, + C124025529C7DA9700B32844 /* en */, + C124025629C7DA9700B32844 /* nb */, + C124025729C7DA9700B32844 /* es */, + C124025829C7DA9700B32844 /* da */, + C124025929C7DA9700B32844 /* it */, + C124025A29C7DA9700B32844 /* sk */, + C124025B29C7DA9700B32844 /* sv */, + C124025C29C7DA9700B32844 /* cs */, + C124025D29C7DA9700B32844 /* tr */, + C124025E29C7DA9700B32844 /* pl */, + C124025F29C7DA9700B32844 /* pt-BR */, + C124026029C7DA9700B32844 /* vi */, + C124026129C7DA9700B32844 /* ru */, + C124026229C7DA9700B32844 /* fr */, + C124026329C7DA9700B32844 /* fi */, + C124026429C7DA9700B32844 /* nl */, + C124026529C7DA9700B32844 /* ro */, + C124026629C7DA9700B32844 /* hi */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C1229C7029C7F0840066A89C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = UY678SP37Q; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 13.1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C1229C7129C7F0840066A89C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = UY678SP37Q; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 13.1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C124017129C7D87A00B32844 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + FrameworkLocalText, + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C124017229C7D87A00B32844 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + LOCALIZED_STRING_MACRO_NAMES = ( + NSLocalizedString, + CFCopyLocalizedString, + LocalizedString, + FrameworkLocalText, + ); + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C124017429C7D87A00B32844 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C124017529C7D87A00B32844 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C124021029C7D92700B32844 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C124021129C7D92700B32844 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitUI; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C124021C29C7D93D00B32844 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = OmniKitPlugin/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitPlugin; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = loopplugin; + }; + name = Debug; + }; + C124021D29C7D93D00B32844 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = OmniKitPlugin/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitPlugin; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = loopplugin; + }; + name = Release; + }; + C12ED9D229C7DBA900435701 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = UY678SP37Q; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C12ED9D329C7DBA900435701 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = UY678SP37Q; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = org.loopkit.OmniKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C1229C6F29C7F0840066A89C /* Build configuration list for PBXNativeTarget "OmniKitPacketParser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1229C7029C7F0840066A89C /* Debug */, + C1229C7129C7F0840066A89C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C124016629C7D87A00B32844 /* Build configuration list for PBXProject "OmniKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C124017129C7D87A00B32844 /* Debug */, + C124017229C7D87A00B32844 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C124017329C7D87A00B32844 /* Build configuration list for PBXNativeTarget "OmniKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C124017429C7D87A00B32844 /* Debug */, + C124017529C7D87A00B32844 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C124020F29C7D92700B32844 /* Build configuration list for PBXNativeTarget "OmniKitUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C124021029C7D92700B32844 /* Debug */, + C124021129C7D92700B32844 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C124021B29C7D93D00B32844 /* Build configuration list for PBXNativeTarget "OmniKitPlugin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C124021C29C7D93D00B32844 /* Debug */, + C124021D29C7D93D00B32844 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C12ED9D129C7DBA900435701 /* Build configuration list for PBXNativeTarget "OmniKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C12ED9D229C7DBA900435701 /* Debug */, + C12ED9D329C7DBA900435701 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C124016329C7D87A00B32844 /* Project object */; +} diff --git a/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/Dependencies/OmniKit/OmniKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Dependencies/OmniKit/OmniKit.xcodeproj/xcshareddata/xcschemes/OmniKitPacketParser.xcscheme b/Dependencies/OmniKit/OmniKit.xcodeproj/xcshareddata/xcschemes/OmniKitPacketParser.xcscheme new file mode 100644 index 0000000000..33fc5b1625 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit.xcodeproj/xcshareddata/xcschemes/OmniKitPacketParser.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/OmniKit/OmniKit/Extensions/Data.swift b/Dependencies/OmniKit/OmniKit/Extensions/Data.swift new file mode 100644 index 0000000000..8e29be5432 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/Data.swift @@ -0,0 +1,89 @@ +// +// Data.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension Data { + private func toDefaultEndian(_: T.Type) -> T { + return self.withUnsafeBytes({ (rawBufferPointer: UnsafeRawBufferPointer) -> T in + let bufferPointer = rawBufferPointer.bindMemory(to: T.self) + guard let pointer = bufferPointer.baseAddress else { + return 0 + } + return T(pointer.pointee) + }) + } + + func to(_ type: T.Type) -> T { + return T(littleEndian: toDefaultEndian(type)) + } + + func toBigEndian(_ type: T.Type) -> T { + return T(bigEndian: toDefaultEndian(type)) + } + + mutating func append(_ newElement: T) { + var element = newElement.littleEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + mutating func appendBigEndian(_ newElement: T) { + var element = newElement.bigEndian + append(Data(bytes: &element, count: element.bitWidth / 8)) + } + + init(_ value: T) { + var value = value.littleEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } + + init(bigEndian value: T) { + var value = value.bigEndian + self.init(bytes: &value, count: value.bitWidth / 8) + } +} + +// String conversion methods, adapted from https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 +extension Data { + init?(hexadecimalString: String) { + self.init(capacity: hexadecimalString.utf16.count / 2) + + // Convert 0 ... 9, a ... f, A ...F to their decimal value, + // return nil for all other input characters + func decodeNibble(u: UInt16) -> UInt8? { + switch u { + case 0x30 ... 0x39: // '0'-'9' + return UInt8(u - 0x30) + case 0x41 ... 0x46: // 'A'-'F' + return UInt8(u - 0x41 + 10) // 10 since 'A' is 10, not 0 + case 0x61 ... 0x66: // 'a'-'f' + return UInt8(u - 0x61 + 10) // 10 since 'a' is 10, not 0 + default: + return nil + } + } + + var even = true + var byte: UInt8 = 0 + for c in hexadecimalString.utf16 { + guard let val = decodeNibble(u: c) else { return nil } + if even { + byte = val << 4 + } else { + byte += val + self.append(byte) + } + even = !even + } + guard even else { return nil } + } + + var hexadecimalString: String { + return map { String(format: "%02hhx", $0) }.joined() + } +} diff --git a/Dependencies/OmniKit/OmniKit/Extensions/HKUnit.swift b/Dependencies/OmniKit/OmniKit/Extensions/HKUnit.swift new file mode 100644 index 0000000000..8311b6c6e7 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/HKUnit.swift @@ -0,0 +1,24 @@ +// +// HKUnit.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import HealthKit + +extension HKUnit { + static let milligramsPerDeciliter: HKUnit = { + return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) + }() + + static let millimolesPerLiter: HKUnit = { + return HKUnit.moleUnit(with: .milli, molarMass: HKUnitMolarMassBloodGlucose).unitDivided(by: .liter()) + }() + + static let internationalUnitsPerHour: HKUnit = { + return HKUnit.internationalUnit().unitDivided(by: .hour()) + }() + +} diff --git a/Dependencies/rileylink_ios/OmniKit/Extensions/Notification.swift b/Dependencies/OmniKit/OmniKit/Extensions/Notification.swift similarity index 81% rename from Dependencies/rileylink_ios/OmniKit/Extensions/Notification.swift rename to Dependencies/OmniKit/OmniKit/Extensions/Notification.swift index bc0fdf1905..96785b37e1 100644 --- a/Dependencies/rileylink_ios/OmniKit/Extensions/Notification.swift +++ b/Dependencies/OmniKit/OmniKit/Extensions/Notification.swift @@ -3,7 +3,7 @@ // OmniKit // // Created by Pete Schwamb on 2/22/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. +// Copyright © 2023 LoopKit Authors. All rights reserved. // import Foundation diff --git a/Dependencies/OmniKit/OmniKit/Extensions/NumberFormatter.swift b/Dependencies/OmniKit/OmniKit/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..9e5d78895e --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/NumberFormatter.swift @@ -0,0 +1,23 @@ +// +// NumberFormatter.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension NumberFormatter { + func decibleString(from decibles: Int?) -> String? { + if let decibles = decibles, let formatted = string(from: NSNumber(value: decibles)) { + return String(format: LocalizedString("%@ dB", comment: "Unit format string for an RSSI value in decibles"), formatted) + } else { + return nil + } + } + + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } +} diff --git a/Dependencies/OmniKit/OmniKit/Extensions/OSLog.swift b/Dependencies/OmniKit/OmniKit/Extensions/OSLog.swift new file mode 100644 index 0000000000..4590d796b8 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/OSLog.swift @@ -0,0 +1,50 @@ +// +// OSLog.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import os.log + +extension OSLog { + convenience init(category: String) { + self.init(subsystem: "com.randallknutson.OmniBLE", category: category) + } + + func debug(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .debug, args) + } + + func info(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .info, args) + } + + func `default`(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .default, args) + } + + func error(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .error, args) + } + + private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { + switch args.count { + case 0: + os_log(message, log: self, type: type) + case 1: + os_log(message, log: self, type: type, args[0]) + case 2: + os_log(message, log: self, type: type, args[0], args[1]) + case 3: + os_log(message, log: self, type: type, args[0], args[1], args[2]) + case 4: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) + case 5: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) + default: + os_log(message, log: self, type: type, args) + } + } +} diff --git a/Dependencies/OmniKit/OmniKit/Extensions/TimeInterval.swift b/Dependencies/OmniKit/OmniKit/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..b2fd35889a --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/TimeInterval.swift @@ -0,0 +1,81 @@ +// +// TimeInterval.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeInterval { + + static func days(_ days: Double) -> TimeInterval { + return self.init(days: days) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + static func minutes(_ minutes: Int) -> TimeInterval { + return self.init(minutes: Double(minutes)) + } + + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func seconds(_ seconds: Double) -> TimeInterval { + return self.init(seconds) + } + + static func milliseconds(_ milliseconds: Double) -> TimeInterval { + return self.init(milliseconds / 1000) + } + + init(days: Double) { + self.init(hours: days * 24) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(seconds: Double) { + self.init(seconds) + } + + init(milliseconds: Double) { + self.init(milliseconds / 1000) + } + + var milliseconds: Double { + return self * 1000 + } + + init(hundredthsOfMilliseconds: Double) { + self.init(hundredthsOfMilliseconds / 100000) + } + + var hundredthsOfMilliseconds: Double { + return self * 100000 + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } + + var days: Double { + return hours / 24.0 + } + +} diff --git a/Dependencies/OmniKit/OmniKit/Extensions/TimeZone.swift b/Dependencies/OmniKit/OmniKit/Extensions/TimeZone.swift new file mode 100644 index 0000000000..0f572cb9e1 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Extensions/TimeZone.swift @@ -0,0 +1,31 @@ +// +// TimeZone.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } + + var fixed: TimeZone { + return TimeZone(secondsFromGMT: secondsFromGMT())! + } + + /// This only works for fixed utc offset timezones + func scheduleOffset(forDate date: Date) -> TimeInterval { + var calendar = Calendar.current + calendar.timeZone = self + let components = calendar.dateComponents([.day , .month, .year], from: date) + guard let startOfSchedule = calendar.date(from: components) else { + fatalError("invalid date") + } + return date.timeIntervalSince(startOfSchedule) + } + +} diff --git a/Dependencies/rileylink_ios/OmniKit/Info.plist b/Dependencies/OmniKit/OmniKit/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/Info.plist rename to Dependencies/OmniKit/OmniKit/Info.plist diff --git a/Dependencies/OmniKit/OmniKit/LocalizedString.swift b/Dependencies/OmniKit/OmniKit/LocalizedString.swift new file mode 100644 index 0000000000..116e1d7927 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/LocalizedString.swift @@ -0,0 +1,28 @@ +// +// LocalizedString.swift +// OmniKit +// +// Created by Pete Schwamb on 3/19/23. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("OmniKit_OmniKit.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/rileylink_ios/OmniKit/MessageTransport/CRC8.swift b/Dependencies/OmniKit/OmniKit/MessageTransport/CRC8.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/MessageTransport/CRC8.swift rename to Dependencies/OmniKit/OmniKit/MessageTransport/CRC8.swift diff --git a/Dependencies/rileylink_ios/OmniKit/MessageTransport/MessageTransport.swift b/Dependencies/OmniKit/OmniKit/MessageTransport/MessageTransport.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/MessageTransport/MessageTransport.swift rename to Dependencies/OmniKit/OmniKit/MessageTransport/MessageTransport.swift diff --git a/Dependencies/rileylink_ios/OmniKit/MessageTransport/Packet+RFPacket.swift b/Dependencies/OmniKit/OmniKit/MessageTransport/Packet+RFPacket.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/MessageTransport/Packet+RFPacket.swift rename to Dependencies/OmniKit/OmniKit/MessageTransport/Packet+RFPacket.swift diff --git a/Dependencies/rileylink_ios/OmniKit/MessageTransport/Packet.swift b/Dependencies/OmniKit/OmniKit/MessageTransport/Packet.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/MessageTransport/Packet.swift rename to Dependencies/OmniKit/OmniKit/MessageTransport/Packet.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmniKit.h b/Dependencies/OmniKit/OmniKit/OmniKit.h similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmniKit.h rename to Dependencies/OmniKit/OmniKit/OmniKit.h diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/AlertSlot.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/AlertSlot.swift similarity index 99% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/AlertSlot.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/AlertSlot.swift index 190f0b4d98..52cd8dd716 100644 --- a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/AlertSlot.swift +++ b/Dependencies/OmniKit/OmniKit/OmnipodCommon/AlertSlot.swift @@ -164,7 +164,7 @@ public enum PodAlert: CustomStringConvertible, RawRepresentable, Equatable { duration = 0 trigger = .timeUntilAlert(.minutes(0)) beepRepeat = .once - beepType = .noBeep + beepType = .noBeepCancel } return AlertConfiguration(alertType: .slot5, active: active, duration: duration, trigger: trigger, beepRepeat: beepRepeat, beepType: beepType) case .suspendTimeExpired(let suspendTime): @@ -179,7 +179,7 @@ public enum PodAlert: CustomStringConvertible, RawRepresentable, Equatable { } else { trigger = .timeUntilAlert(.minutes(0)) beepRepeat = .once - beepType = .noBeep + beepType = .noBeepCancel } return AlertConfiguration(alertType: .slot6, active: active, duration: 0, trigger: trigger, beepRepeat: beepRepeat, beepType: beepType) } diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalDeliveryTable.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalDeliveryTable.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalDeliveryTable.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalDeliveryTable.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalSchedule+LoopKit.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalSchedule+LoopKit.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalSchedule+LoopKit.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalSchedule+LoopKit.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalSchedule.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalSchedule.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BasalSchedule.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/BasalSchedule.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BeepPreference.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BeepPreference.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BeepPreference.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/BeepPreference.swift diff --git a/Dependencies/OmniKit/OmniKit/OmnipodCommon/BeepType.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BeepType.swift new file mode 100644 index 0000000000..d02036aab1 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BeepType.swift @@ -0,0 +1,41 @@ +// +// BeepType.swift +// OmniKit +// +// Created by Joseph Moran on 5/12/19. +// Copyright © 2019 Pete Schwamb. All rights reserved. +// + +import Foundation + +// +// BeepType is used for the 0x19 Configure Alerts, 0x1E Set Beep Options and 0x1F Cancel Delivery commands. +// Some beep types values behave differently based on the command & circumstances due to Omnipod internals. +// +// Beep types 0x0, 0x9 & 0xA (as well as 0xE when the pod isn't suspended) will have no beeps or errors +// (when used in 0x19 Configure Alerts with an 'a' bit of 0 or 0x1F Cancel) and will return 0x6 Error +// response, code 7 (when used in 0x19 Configure Alerts with an 'a' bit of 1 or in 0x1E Beep Configure). +// +// Beep type 0xF will will have no beeps or errors (when used in 0x19 Configure Alerts +// or 0x1E Beep Configure), but will generate a 0x37 pod fault when used in 0x1F Cancel! +// +public enum BeepType: UInt8 { + case noBeepCancel = 0x0 // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case beepBeepBeepBeep = 0x1 + case bipBeepBipBeepBipBeepBipBeep = 0x2 + case bipBip = 0x3 + case beep = 0x4 + case beepBeepBeep = 0x5 + case beeeeeep = 0x6 + case bipBipBipbipBipBip = 0x7 + case beeepBeeep = 0x8 + case unusedBeepType0x9 = 0x9 // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case unusedBeepType0xA = 0xA // silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case beepBeep = 0xB + case beeep = 0xC + case bipBeeeeep = 0xD + // If pod is currently suspended, 5 second beep for the 0x19, 0x1E & 0x1F commands + // If pod is not suspended, silent for 0x1F Cancel & inactive 0x19 alerts; error for 0x1E Beep Options & active 0x19 alerts + case fiveSecondBeep = 0xE + case noBeepNonCancel = 0xF // silent for 0x1E Beep Options & 0x19 Configure Alerts, 0x37 pod fault for 0x1F Cancel! +} diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BolusDeliveryTable.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/BolusDeliveryTable.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BolusDeliveryTable.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/BolusDeliveryTable.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/CRC16.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/CRC16.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/CRC16.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/CRC16.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/FaultEventCode.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/FaultEventCode.swift similarity index 84% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/FaultEventCode.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/FaultEventCode.swift index 1f5f2bb1f4..559f8282a3 100644 --- a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/FaultEventCode.swift +++ b/Dependencies/OmniKit/OmniKit/OmnipodCommon/FaultEventCode.swift @@ -17,10 +17,12 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case failedFlashErase = 0x01 case failedFlashStore = 0x02 case tableCorruptionBasalSubcommand = 0x03 + case basalPulseTableCorruption = 0x04 case corruptionByte720 = 0x05 case dataCorruptionInTestRTCInterrupt = 0x06 case rtcInterruptHandlerInconsistentState = 0x07 case valueGreaterThan8 = 0x08 + case invalidBeepRepeatPattern = 0x09 case bf0notEqualToBF1 = 0x0A case tableCorruptionTempBasalSubcommand = 0x0B case resetDueToCOP = 0x0D @@ -46,21 +48,24 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case badTimerVariableState = 0x21 case unexpectedRTCModuleValueDuringReset = 0x22 case problemCalibrateTimer = 0x23 + case tickcntErrorRTC = 0x24 + case tickFailure = 0x25 case rtcInterruptHandlerUnexpectedCall = 0x26 case missing2hourAlertToFillTank = 0x27 case faultEventSetupPod = 0x28 - case errorMainLoopHelper0 = 0x29 - case errorMainLoopHelper1 = 0x2A - case errorMainLoopHelper2 = 0x2B - case errorMainLoopHelper3 = 0x2C - case errorMainLoopHelper4 = 0x2D - case errorMainLoopHelper5 = 0x2E - case errorMainLoopHelper6 = 0x2F - case errorMainLoopHelper7 = 0x30 + case autoOff0 = 0x29 + case autoOff1 = 0x2A + case autoOff2 = 0x2B + case autoOff3 = 0x2C + case autoOff4 = 0x2D + case autoOff5 = 0x2E + case autoOff6 = 0x2F + case autoOff7 = 0x30 case insulinDeliveryCommandError = 0x31 case badValueStartupTest = 0x32 case connectedPodCommandTimeout = 0x33 case resetFromUnknownCause = 0x34 + case vetoNotSet = 0x35 case errorFlashInitialization = 0x36 case badPiezoValue = 0x37 case unexpectedValueByte358 = 0x38 @@ -85,9 +90,10 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case problemFindingBestTrimValue = 0x4C case badSetTPM1MultiCasesValue = 0x4D case unexpectedRFErrorFlagDuringReset = 0x4F - case badCheckSdrhAndByte11FState = 0x51 - case issueTXOKprocessInputBuffer = 0x52 - case wrongValueWord_107 = 0x53 + case timerPulseWidthModulatorOverflow = 0x50 + case tickcntError = 0x51 + case badRfmXtalStart = 0x52 + case badRxSensitivity = 0x53 case packetFrameLengthTooLong = 0x54 case unexpectedIRQHighinTimerTick = 0x55 case unexpectedIRQLowinTimerTick = 0x56 @@ -120,14 +126,15 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { case immediateBolusOverInfusionPulse = 0x89 case extendedBolusOverInfusionPulse = 0x8A case corruptionOfTables = 0x8B - case badInputToVerifyAndStartPump = 0x8D - case badPumpReq5State = 0x8E + case unrecognizedPulse = 0x8D + case syncWithoutTempActive = 0x8E case command1AParseUnexpectedFailed = 0x8F - case badValueForTables = 0x90 - case badPumpReq1State = 0x91 - case badPumpReq2State = 0x92 - case badPumpReq3State = 0x93 - case badValueField6in0x1A = 0x95 + case illegalChanParam = 0x90 + case basalPulseChanInactive = 0x91 + case tempPulseChanInactive = 0x92 + case bolusPulseChanInactive = 0x93 + case intSemaphoreNotSet = 0x94 + case illegalInterLockChan = 0x95 case badStateInClearBolusIST2AndVars = 0x96 case badStateInMaybeInc33D = 0x97 case valuesDoNotMatchOrAreGreaterThan0x97 = 0x98 @@ -155,6 +162,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Flash store failed" case .tableCorruptionBasalSubcommand: return "Basal subcommand table corruption" + case .basalPulseTableCorruption: + return "Basal pulse table corruption" case .corruptionByte720: return "Corruption in byte_720" case .dataCorruptionInTestRTCInterrupt: @@ -163,6 +172,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "RTC interrupt handler called with inconstent state" case .valueGreaterThan8: return "Value > 8" + case .invalidBeepRepeatPattern: + return "Invalid beep repeat pattern" case .bf0notEqualToBF1: return "Corruption in byte_BF0" case .tableCorruptionTempBasalSubcommand: @@ -213,27 +224,31 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Unexpected RTC Modulo Register value during reset" case .problemCalibrateTimer: return "Problem in calibrate_timer_case_3" + case .tickcntErrorRTC: + return "Tick count error RTC" + case .tickFailure: + return "Tick failure" case .rtcInterruptHandlerUnexpectedCall: return "RTC interrupt handler unexpectedly called" case .missing2hourAlertToFillTank: return "Failed to set up 2 hour alert for tank fill operation" case .faultEventSetupPod: return "Bad arg or state in update_insulin_variables, verify_and_start_pump or main_loop_control_pump" - case .errorMainLoopHelper0: + case .autoOff0: return "Alert #0 auto-off timeout" - case .errorMainLoopHelper1: + case .autoOff1: return "Alert #1 auto-off timeout" - case .errorMainLoopHelper2: + case .autoOff2: return "Alert #2 auto-off timeout" - case .errorMainLoopHelper3: + case .autoOff3: return "Alert #3 auto-off timeout" - case .errorMainLoopHelper4: + case .autoOff4: return "Alert #4 auto-off timeout" - case .errorMainLoopHelper5: + case .autoOff5: return "Alert #5 auto-off timeout" - case .errorMainLoopHelper6: + case .autoOff6: return "Alert #6 auto-off timeout" - case .errorMainLoopHelper7: + case .autoOff7: return "Alert #7 auto-off timeout" case .insulinDeliveryCommandError: return "Incorrect pod state for command or error during insulin command setup" @@ -243,6 +258,8 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Connected Pod command timeout" case .resetFromUnknownCause: return "Reset from unknown cause" + case .vetoNotSet: + return "Veto not set" case .errorFlashInitialization: return "Flash initialization error" case .badPiezoValue: @@ -291,12 +308,14 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Bad set_TPM1_multi_cases value" case .unexpectedRFErrorFlagDuringReset: return "Unexpected TXSCR2 RF Tranmission Error Flag set during reset" - case .badCheckSdrhAndByte11FState: - return "Bad check_SDIRH and byte_11F state before starting pump" - case .issueTXOKprocessInputBuffer: + case .timerPulseWidthModulatorOverflow: + return "Timer pulse-width modulator overflow" + case .tickcntError: + return "Bad tick count state before starting pump" + case .badRfmXtalStart: return "TXOK issue in process_input_buffer" - case .wrongValueWord_107: - return "Wrong word_107 value during input message processing" + case .badRxSensitivity: + return "Bad Rx word_107 sensitivity value during input message processing" case .packetFrameLengthTooLong: return "Packet frame length too long" case .unexpectedIRQHighinTimerTick: @@ -361,22 +380,24 @@ public struct FaultEventCode: CustomStringConvertible, Equatable { return "Extended bolus over infusion pulse" case .corruptionOfTables: return "Corruption of $283/$2E3/$315 tables" - case .badInputToVerifyAndStartPump: - return "Bad input value to verify_and_start_pump" - case .badPumpReq5State: - return "Pump req 5 with basal IST not set or temp basal IST set" + case .unrecognizedPulse: + return "Bad pulse value to verify_and_start_pump" + case .syncWithoutTempActive: + return "Pump sync req 5 with no temp basal active" case .command1AParseUnexpectedFailed: return "Command 1A parse routine unexpected failed" - case .badValueForTables: - return "Bad value for $283/$2E3/$315 table specification" - case .badPumpReq1State: - return "Pump request 1 with temp basal IST not set" - case .badPumpReq2State: - return "Pump request 2 with temp basal IST not set" - case .badPumpReq3State: - return "Pump request 3 and bolus IST not set when about to pulse" - case .badValueField6in0x1A: + case .illegalChanParam: + return "Bad parameter for $283/$2E3/$315 channel table specification" + case .basalPulseChanInactive: + return "Pump basal request with basal IST not set" + case .tempPulseChanInactive: + return "Pump temp basal request with temp basal IST not set" + case .bolusPulseChanInactive: + return "Pump bolus request and bolus IST not set" + case .intSemaphoreNotSet: return "Bad table specifier field6 in 1A command" + case .illegalInterLockChan: + return "Illegal interlock channel" case .badStateInClearBolusIST2AndVars: return "Bad variable state in clear_Bolus_IST2_and_vars" case .badStateInMaybeInc33D: diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/InsulinTableEntry.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/InsulinTableEntry.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/InsulinTableEntry.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/InsulinTableEntry.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/Message.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/Message.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/Message.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/Message.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/AcknowledgeAlertCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/AcknowledgeAlertCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/AcknowledgeAlertCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/AcknowledgeAlertCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/AssignAddressCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/AssignAddressCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/AssignAddressCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/AssignAddressCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BasalScheduleExtraCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BasalScheduleExtraCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BasalScheduleExtraCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BasalScheduleExtraCommand.swift diff --git a/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift new file mode 100644 index 0000000000..c58e282b2b --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift @@ -0,0 +1,68 @@ +// +// BeepConfigCommand.swift +// OmniKit +// +// Created by Joseph Moran on 5/12/19. +// Copyright © 2019 Pete Schwamb. All rights reserved. +// + +import Foundation + +public struct BeepConfigCommand : MessageBlock { + // OFF 1 2 3 4 5 + // 1e 04 AABBCCDD + + public let blockType: MessageBlockType = .beepConfig + public let beepType: BeepType + public let basalCompletionBeep: Bool + public let basalIntervalBeep: TimeInterval + public let tempBasalCompletionBeep: Bool + public let tempBasalIntervalBeep: TimeInterval + public let bolusCompletionBeep: Bool + public let bolusIntervalBeep: TimeInterval + + public init(beepType: BeepType, basalCompletionBeep: Bool = false, basalIntervalBeep: TimeInterval = 0, tempBasalCompletionBeep: Bool = false, tempBasalIntervalBeep: TimeInterval = 0, bolusCompletionBeep: Bool = false, bolusIntervalBeep: TimeInterval = 0) { + self.beepType = beepType + self.basalCompletionBeep = basalCompletionBeep + self.basalIntervalBeep = basalIntervalBeep + self.tempBasalCompletionBeep = tempBasalCompletionBeep + self.tempBasalIntervalBeep = tempBasalIntervalBeep + self.bolusCompletionBeep = bolusCompletionBeep + self.bolusIntervalBeep = bolusIntervalBeep + } + + public init(encodedData: Data) throws { + if encodedData.count < 6 { + throw MessageBlockError.notEnoughData + } + if let beepType = BeepType.init(rawValue: encodedData[2]) { + self.beepType = beepType + } else { + throw MessageBlockError.parseError + } + self.basalCompletionBeep = encodedData[3] & (1<<6) != 0 + self.basalIntervalBeep = TimeInterval(minutes: Double(encodedData[3] & 0x3f)) + self.tempBasalCompletionBeep = encodedData[4] & (1<<6) != 0 + self.tempBasalIntervalBeep = TimeInterval(minutes: Double(encodedData[4] & 0x3f)) + self.bolusCompletionBeep = encodedData[5] & (1<<6) != 0 + self.bolusIntervalBeep = TimeInterval(minutes: Double(encodedData[5] & 0x3f)) + } + + public var data: Data { + var data = Data([ + blockType.rawValue, + 4, + ]) + data.append(beepType.rawValue) + data.append((basalCompletionBeep ? (1<<6) : 0) + (UInt8(basalIntervalBeep.minutes) & 0x3f)) + data.append((tempBasalCompletionBeep ? (1<<6) : 0) + (UInt8(tempBasalIntervalBeep.minutes) & 0x3f)) + data.append((bolusCompletionBeep ? (1<<6) : 0) + (UInt8(bolusIntervalBeep.minutes) & 0x3f)) + return data + } +} + +extension BeepConfigCommand: CustomDebugStringConvertible { + public var debugDescription: String { + return "BeepConfigCommand(beepType:\(beepType), basalIntervalBeep:\(basalIntervalBeep), tempBasalCompletionBeep:\(tempBasalCompletionBeep), tempBasalIntervalBeep:\(tempBasalIntervalBeep), bolusCompletionBeep:\(bolusCompletionBeep), bolusIntervalBeep:\(bolusIntervalBeep))" + } +} diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BolusExtraCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BolusExtraCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BolusExtraCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/BolusExtraCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/CancelDeliveryCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/CancelDeliveryCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/CancelDeliveryCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/CancelDeliveryCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/ConfigureAlertsCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/ConfigureAlertsCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/ConfigureAlertsCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/ConfigureAlertsCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/DeactivatePodCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/DeactivatePodCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/DeactivatePodCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/DeactivatePodCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/DetailedStatus.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/DetailedStatus.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/DetailedStatus.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/DetailedStatus.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/ErrorResponse.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/ErrorResponse.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/ErrorResponse.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/ErrorResponse.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/FaultConfigCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/FaultConfigCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/FaultConfigCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/FaultConfigCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/GetStatusCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/GetStatusCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/GetStatusCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/GetStatusCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/MessageBlock.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/MessageBlock.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/MessageBlock.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/MessageBlock.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PlaceholderMessageBlock.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PlaceholderMessageBlock.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PlaceholderMessageBlock.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PlaceholderMessageBlock.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfo.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfo.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfo.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfo.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoActivationTime.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoActivationTime.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoActivationTime.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoActivationTime.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoConfiguredAlerts.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoConfiguredAlerts.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoConfiguredAlerts.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoConfiguredAlerts.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLog.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLog.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLog.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLog.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLogPlus.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLogPlus.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLogPlus.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoPulseLogPlus.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoResponse.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoResponse.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/PodInfoResponse.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/PodInfoResponse.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/SetInsulinScheduleCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/SetInsulinScheduleCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/SetInsulinScheduleCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/SetInsulinScheduleCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/SetupPodCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/SetupPodCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/SetupPodCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/SetupPodCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/StatusResponse.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/StatusResponse.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/StatusResponse.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/StatusResponse.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/TempBasalExtraCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/TempBasalExtraCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/TempBasalExtraCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/TempBasalExtraCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/VersionResponse.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/VersionResponse.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/VersionResponse.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/MessageBlocks/VersionResponse.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PendingCommand.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/PendingCommand.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PendingCommand.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/PendingCommand.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/Pod.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/Pod.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/Pod.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/Pod.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodDoseProgressEstimator.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/PodDoseProgressEstimator.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodDoseProgressEstimator.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/PodDoseProgressEstimator.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodInsulinMeasurements.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/PodInsulinMeasurements.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodInsulinMeasurements.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/PodInsulinMeasurements.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodProgressStatus.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/PodProgressStatus.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PodProgressStatus.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/PodProgressStatus.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PumpManagerAlert.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/PumpManagerAlert.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/PumpManagerAlert.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/PumpManagerAlert.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/ReservoirLevel.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/ReservoirLevel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/ReservoirLevel.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/ReservoirLevel.swift diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/UnfinalizedDose.swift b/Dependencies/OmniKit/OmniKit/OmnipodCommon/UnfinalizedDose.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/OmnipodCommon/UnfinalizedDose.swift rename to Dependencies/OmniKit/OmniKit/OmnipodCommon/UnfinalizedDose.swift diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/DetailedStatus+OmniKit.swift b/Dependencies/OmniKit/OmniKit/PumpManager/DetailedStatus+OmniKit.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/DetailedStatus+OmniKit.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/DetailedStatus+OmniKit.swift diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/OmnipodPumpManager.swift b/Dependencies/OmniKit/OmniKit/PumpManager/OmnipodPumpManager.swift similarity index 99% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/OmnipodPumpManager.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/OmnipodPumpManager.swift index be926e15f3..f3082f9751 100644 --- a/Dependencies/rileylink_ios/OmniKit/PumpManager/OmnipodPumpManager.swift +++ b/Dependencies/OmniKit/OmniKit/PumpManager/OmnipodPumpManager.swift @@ -550,14 +550,14 @@ extension OmnipodPumpManager { // Returns a suitable beep command MessageBlock based the current beep preferences and // whether there is an unfinializedDose for a manual temp basal &/or a manual bolus. - private func beepMessageBlock(beepType: BeepConfigType) -> MessageBlock? { + private func beepMessageBlock(beepType: BeepType) -> MessageBlock? { guard self.beepPreference.shouldBeepForManualCommand else { return nil } // Enable temp basal & basal completion beeps if there is a cooresponding manual unfinalizedDose let beepMessageBlock = BeepConfigCommand( - beepConfigType: beepType, + beepType: beepType, tempBasalCompletionBeep: self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: self.hasUnfinalizedManualBolus ) @@ -1089,7 +1089,7 @@ extension OmnipodPumpManager { // preserve Pod completion beep state for any unfinalized manual insulin delivery let beep = self.beepPreference.shouldBeepForManualCommand let result = session.beepConfig( - beepConfigType: .bipBeepBipBeepBipBeepBipBeep, + beepType: .bipBeepBipBeepBipBeepBipBeep, tempBasalCompletionBeep: beep && self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: beep && self.hasUnfinalizedManualBolus ) @@ -1160,9 +1160,9 @@ extension OmnipodPumpManager { case .success(let session): // enable/disable Pod completion beep state for any unfinalized manual insulin delivery let enabled = newPreference.shouldBeepForManualCommand - let beepConfigType: BeepConfigType = enabled ? .bipBip : .noBeep + let beepType: BeepType = enabled ? .bipBip : .noBeepNonCancel let result = session.beepConfig( - beepConfigType: beepConfigType, + beepType: beepType, tempBasalCompletionBeep: enabled && self.hasUnfinalizedManualTempBasal, bolusCompletionBeep: enabled && self.hasUnfinalizedManualBolus ) @@ -1601,7 +1601,7 @@ extension OmnipodPumpManager: PumpManager { } // when cancelling a bolus use the built-in type 6 beeeeeep to match PDM if confirmation beeps are enabled - let beepType: BeepType = self.beepPreference.shouldBeepForManualCommand ? .beeeeeep : .noBeep + let beepType: BeepType = self.beepPreference.shouldBeepForManualCommand ? .beeeeeep : .noBeepCancel let result = session.cancelDelivery(deliveryType: .bolus, beepType: beepType) switch result { case .certainFailure(let error): @@ -1674,7 +1674,7 @@ extension OmnipodPumpManager: PumpManager { let status: StatusResponse // if resuming scheduled basal delivery & an acknowledgement beep is needed, use the cancel TB beep - let beepType: BeepType = resumingScheduledBasal && acknowledgementBeep ? .beep : .noBeep + let beepType: BeepType = resumingScheduledBasal && acknowledgementBeep ? .beep : .noBeepCancel let result = session.cancelDelivery(deliveryType: .tempBasal, beepType: beepType) switch result { case .certainFailure(let error): diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/OmnipodPumpManagerState.swift b/Dependencies/OmniKit/OmniKit/PumpManager/OmnipodPumpManagerState.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/OmnipodPumpManagerState.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/OmnipodPumpManagerState.swift diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/PodComms.swift b/Dependencies/OmniKit/OmniKit/PumpManager/PodComms.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/PodComms.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/PodComms.swift diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/PodCommsSession.swift b/Dependencies/OmniKit/OmniKit/PumpManager/PodCommsSession.swift similarity index 94% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/PodCommsSession.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/PodCommsSession.swift index 2d358d93af..c509ea53d3 100644 --- a/Dependencies/rileylink_ios/OmniKit/PumpManager/PodCommsSession.swift +++ b/Dependencies/OmniKit/OmniKit/PumpManager/PodCommsSession.swift @@ -192,6 +192,12 @@ public class PodCommsSession { private unowned let delegate: PodCommsSessionDelegate private var transport: MessageTransport + // used for testing + var mockCurrentDate: Date? + var currentDate: Date { + return mockCurrentDate ?? Date() + } + init(podState: PodState, transport: MessageTransport, delegate: PodCommsSessionDelegate) { self.podState = podState self.transport = transport @@ -204,7 +210,7 @@ public class PodCommsSession { if podState.fault == nil { podState.fault = fault // save the first fault returned if let activatedAt = podState.activatedAt { - podState.activeTime = Date().timeIntervalSince(activatedAt) + podState.activeTime = currentDate.timeIntervalSince(activatedAt) } else { podState.activeTime = fault.faultEventTimeSinceActivation } @@ -213,7 +219,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: derivedStatusResponse) } - podState.updateFromStatusResponse(derivedStatusResponse) + podState.updateFromStatusResponse(derivedStatusResponse, at: currentDate) } log.error("Pod Fault: %@", String(describing: fault)) } @@ -337,7 +343,7 @@ public class PodCommsSession { } else { // Not the first time through, check to see if prime bolus was successfully started let status: StatusResponse = try send([GetStatusCommand()]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if status.podProgressStatus == .priming || status.podProgressStatus == .primingCompleted { podState.setupProgress = .priming return podState.primeFinishTime?.timeIntervalSinceNow ?? primeDuration @@ -346,7 +352,7 @@ public class PodCommsSession { // Mark Pod.primeUnits (2.6U) bolus delivery with Pod.primeDeliveryRate (1) between pulses for prime - let primeFinishTime = Date() + primeDuration + let primeFinishTime = currentDate + primeDuration podState.primeFinishTime = primeFinishTime podState.setupProgress = .startingPrime @@ -354,7 +360,7 @@ public class PodCommsSession { let scheduleCommand = SetInsulinScheduleCommand(nonce: podState.currentNonce, units: Pod.primeUnits, timeBetweenPulses: timeBetweenPulses) let bolusExtraCommand = BolusExtraCommand(units: Pod.primeUnits, timeBetweenPulses: timeBetweenPulses) let status: StatusResponse = try send([scheduleCommand, bolusExtraCommand]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) podState.setupProgress = .priming return primeFinishTime.timeIntervalSinceNow } @@ -363,10 +369,10 @@ public class PodCommsSession { if podState.setupProgress == .settingInitialBasalSchedule { // We started basal schedule programming, but didn't get confirmation somehow, so check status let status: StatusResponse = try send([GetStatusCommand()]) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if status.podProgressStatus == .basalInitialized { podState.setupProgress = .initialBasalScheduleSet - podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: Date(), scheduledCertainty: .certain, insulinType: podState.insulinType)) + podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: currentDate, scheduledCertainty: .certain, insulinType: podState.insulinType)) return } } @@ -375,7 +381,7 @@ public class PodCommsSession { // Set basal schedule let _ = try setBasalSchedule(schedule: basalSchedule, scheduleOffset: scheduleOffset) podState.setupProgress = .initialBasalScheduleSet - podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: Date(), scheduledCertainty: .certain, insulinType: podState.insulinType)) + podState.finalizedDoses.append(UnfinalizedDose(resumeStartTime: currentDate, scheduledCertainty: .certain, insulinType: podState.insulinType)) } @discardableResult @@ -386,21 +392,21 @@ public class PodCommsSession { for alert in alerts { podState.registerConfiguredAlert(slot: alert.configuration.slot, alert: alert) } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return status } // emits the specified beep type and sets the completion beep flags, doesn't throw - public func beepConfig(beepConfigType: BeepConfigType, tempBasalCompletionBeep: Bool, bolusCompletionBeep: Bool) -> Result { + public func beepConfig(beepType: BeepType, tempBasalCompletionBeep: Bool, bolusCompletionBeep: Bool) -> Result { if let fault = self.podState.fault { log.info("Skip beep config with faulted pod") return .failure(PodCommsError.podFault(fault: fault)) } - let beepConfigCommand = BeepConfigCommand(beepConfigType: beepConfigType, tempBasalCompletionBeep: tempBasalCompletionBeep, bolusCompletionBeep: bolusCompletionBeep) + let beepConfigCommand = BeepConfigCommand(beepType: beepType, tempBasalCompletionBeep: tempBasalCompletionBeep, bolusCompletionBeep: bolusCompletionBeep) do { let statusResponse: StatusResponse = try send([beepConfigCommand]) - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return .success(statusResponse) } catch let error { return .failure(error) @@ -428,15 +434,15 @@ public class PodCommsSession { let status: StatusResponse = try send([GetStatusCommand()]) if status.podProgressStatus == .insertingCannula { podState.setupProgress = .cannulaInserting - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return insertionWait // Not sure when it started, wait full time to be sure } if status.podProgressStatus.readyForDelivery { markSetupProgressCompleted(statusResponse: status) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return TimeInterval(0) // Already done; no need to wait } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) } else { // Configure all the non-optional Pod Alarms let expirationTime = activatedAt + Pod.nominalPodLife @@ -455,7 +461,7 @@ public class PodCommsSession { podState.setupProgress = .startingInsertCannula let bolusExtraCommand = BolusExtraCommand(units: cannulaInsertionUnits, timeBetweenPulses: timeBetweenPulses) let status2: StatusResponse = try send([bolusScheduleCommand, bolusExtraCommand]) - podState.updateFromStatusResponse(status2) + podState.updateFromStatusResponse(status2, at: currentDate) podState.setupProgress = .cannulaInserting return insertionWait @@ -467,7 +473,7 @@ public class PodCommsSession { if response.podProgressStatus.readyForDelivery { markSetupProgressCompleted(statusResponse: response) } - podState.updateFromStatusResponse(response) + podState.updateFromStatusResponse(response, at: currentDate) } } @@ -497,7 +503,7 @@ public class PodCommsSession { if podState.unfinalizedBolus != nil { var ongoingBolus = true if let statusResponse: StatusResponse = try? send([GetStatusCommand()]) { - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) ongoingBolus = podState.unfinalizedBolus != nil } guard !ongoingBolus else { @@ -507,11 +513,11 @@ public class PodCommsSession { let bolusExtraCommand = BolusExtraCommand(units: units, timeBetweenPulses: timeBetweenPulses, extendedUnits: extendedUnits, extendedDuration: extendedDuration, acknowledgementBeep: acknowledgementBeep, completionBeep: completionBeep, programReminderInterval: programReminderInterval) do { - podState.unacknowledgedCommand = PendingCommand.program(.bolus(volume: units, automatic: automatic), transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.program(.bolus(volume: units, automatic: automatic), transport.messageNumber, currentDate) let statusResponse: StatusResponse = try send([bolusScheduleCommand, bolusExtraCommand]) podState.unacknowledgedCommand = nil - podState.unfinalizedBolus = UnfinalizedDose(bolusAmount: units, startTime: Date(), scheduledCertainty: .certain, insulinType: podState.insulinType, automatic: automatic) - podState.updateFromStatusResponse(statusResponse) + podState.unfinalizedBolus = UnfinalizedDose(bolusAmount: units, startTime: currentDate, scheduledCertainty: .certain, insulinType: podState.insulinType, automatic: automatic) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return DeliveryCommandResult.success(statusResponse: statusResponse) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { podState.unacknowledgedCommand = podState.unacknowledgedCommand?.commsFinished @@ -536,14 +542,14 @@ public class PodCommsSession { return DeliveryCommandResult.certainFailure(error: .unfinalizedBolus) } - let startTime = Date() + let startTime = currentDate do { podState.unacknowledgedCommand = PendingCommand.program(.tempBasal(unitsPerHour: rate, duration: duration, isHighTemp: isHighTemp, automatic: automatic), transport.messageNumber, startTime) let status: StatusResponse = try send([tempBasalCommand, tempBasalExtraCommand]) podState.unacknowledgedCommand = nil podState.unfinalizedTempBasal = UnfinalizedDose(tempBasalRate: rate, startTime: startTime, duration: duration, isHighTemp: isHighTemp, automatic: automatic, scheduledCertainty: .certain, insulinType: podState.insulinType) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return DeliveryCommandResult.success(statusResponse: status) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { podState.unacknowledgedCommand = podState.unacknowledgedCommand?.commsFinished @@ -558,7 +564,7 @@ public class PodCommsSession { @discardableResult private func handleCancelDosing(deliveryType: CancelDeliveryCommand.DeliveryType, bolusNotDelivered: Double) -> UnfinalizedDose? { var canceledDose: UnfinalizedDose? = nil - let now = Date() + let now = currentDate if deliveryType.contains(.basal) { podState.unfinalizedSuspend = UnfinalizedDose(suspendStartTime: now, scheduledCertainty: .certain) @@ -608,7 +614,7 @@ public class PodCommsSession { var suspendTimeExpiredAlert: PodAlert? = nil let suspendTime: TimeInterval = suspendReminder != nil ? suspendReminder! : 0 - let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: .all, beepType: .noBeep) + let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: .all, beepType: .noBeepCancel) var commandsToSend: [MessageBlock] = [cancelDeliveryCommand] // podSuspendedReminder provides a periodic pod suspended reminder beep until the specified suspend time. @@ -631,11 +637,11 @@ public class PodCommsSession { commandsToSend += [configureAlerts] } - podState.unacknowledgedCommand = PendingCommand.stopProgram(.all, transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.stopProgram(.all, transport.messageNumber, currentDate) let status: StatusResponse = try send(commandsToSend, beepBlock: beepBlock) podState.unacknowledgedCommand = nil let canceledDose = handleCancelDosing(deliveryType: .all, bolusNotDelivered: status.bolusNotDelivered) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if let alert = podSuspendedReminderAlert { podState.registerConfiguredAlert(slot: alert.configuration.slot, alert: alert) @@ -673,20 +679,20 @@ public class PodCommsSession { // Cancel beeping can be done implemented using beepType (for a single delivery type) or a separate confirmation beep message block (for cancel all). // N.B., Using the built-in cancel delivery command beepType method when cancelling all insulin delivery will emit 3 different sets of cancel beeps!!! - public func cancelDelivery(deliveryType: CancelDeliveryCommand.DeliveryType, beepType: BeepType = .noBeep, beepBlock: MessageBlock? = nil) -> CancelDeliveryResult { + public func cancelDelivery(deliveryType: CancelDeliveryCommand.DeliveryType, beepType: BeepType = .noBeepCancel, beepBlock: MessageBlock? = nil) -> CancelDeliveryResult { guard podState.unacknowledgedCommand == nil else { return .certainFailure(error: .unacknowledgedCommandPending) } do { - podState.unacknowledgedCommand = PendingCommand.stopProgram(deliveryType, transport.messageNumber, Date()) + podState.unacknowledgedCommand = PendingCommand.stopProgram(deliveryType, transport.messageNumber, currentDate) let cancelDeliveryCommand = CancelDeliveryCommand(nonce: podState.currentNonce, deliveryType: deliveryType, beepType: beepType) let status: StatusResponse = try send([cancelDeliveryCommand], beepBlock: beepBlock) podState.unacknowledgedCommand = nil let canceledDose = handleCancelDosing(deliveryType: deliveryType, bolusNotDelivered: status.bolusNotDelivered) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return CancelDeliveryResult.success(statusResponse: status, canceledDose: canceledDose) } catch PodCommsError.unacknowledgedMessage(let seq, let error) { @@ -728,7 +734,7 @@ public class PodCommsSession { do { var status: StatusResponse = try send([basalScheduleCommand, basalExtraCommand]) - let now = Date() + let now = currentDate podState.suspendState = .resumed(now) podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: now, scheduledCertainty: .certain, insulinType: podState.insulinType) if hasActiveSuspendAlert(configuredAlerts: podState.configuredAlerts), @@ -736,14 +742,14 @@ public class PodCommsSession { { status = cancelStatus // update using the latest status } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return status } catch PodCommsError.nonceResyncFailed { throw PodCommsError.nonceResyncFailed } catch PodCommsError.rejectedMessage(let errorCode) { throw PodCommsError.rejectedMessage(errorCode: errorCode) } catch let error { - podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: Date(), scheduledCertainty: .uncertain, insulinType: podState.insulinType) + podState.unfinalizedResume = UnfinalizedDose(resumeStartTime: currentDate, scheduledCertainty: .uncertain, insulinType: podState.insulinType) throw error } } @@ -757,7 +763,7 @@ public class PodCommsSession { let status = try setBasalSchedule(schedule: schedule, scheduleOffset: scheduleOffset, acknowledgementBeep: acknowledgementBeep, programReminderInterval: programReminderInterval) - podState.suspendState = .resumed(Date()) + podState.suspendState = .resumed(currentDate) return status } @@ -777,7 +783,7 @@ public class PodCommsSession { case .success(let response, _): statusResponse = response } - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return statusResponse } @@ -789,7 +795,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: statusResponse) } - podState.updateFromStatusResponse(statusResponse) + podState.updateFromStatusResponse(statusResponse, at: currentDate) return statusResponse } @@ -808,7 +814,7 @@ public class PodCommsSession { if podState.unacknowledgedCommand != nil { recoverUnacknowledgedCommand(using: derivedStatusResponse) } - podState.updateFromStatusResponse(derivedStatusResponse) + podState.updateFromStatusResponse(derivedStatusResponse, at: currentDate) } return detailedStatus } @@ -897,10 +903,10 @@ public class PodCommsSession { recoverUnacknowledgedCommand(using: status) } - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) if podState.activeTime == nil, let activatedAt = podState.activatedAt { - podState.activeTime = Date().timeIntervalSince(activatedAt) + podState.activeTime = currentDate.timeIntervalSince(activatedAt) } } catch let error as PodCommsError { switch error { @@ -915,7 +921,7 @@ public class PodCommsSession { public func acknowledgeAlerts(alerts: AlertSet, beepBlock: MessageBlock? = nil) throws -> [AlertSlot: PodAlert] { let cmd = AcknowledgeAlertCommand(nonce: podState.currentNonce, alerts: alerts) let status: StatusResponse = try send([cmd], beepBlock: beepBlock) - podState.updateFromStatusResponse(status) + podState.updateFromStatusResponse(status, at: currentDate) return podState.activeAlerts } diff --git a/Dependencies/rileylink_ios/OmniKit/PumpManager/PodState.swift b/Dependencies/OmniKit/OmniKit/PumpManager/PodState.swift similarity index 97% rename from Dependencies/rileylink_ios/OmniKit/PumpManager/PodState.swift rename to Dependencies/OmniKit/OmniKit/PumpManager/PodState.swift index cbc06e56cf..fd051b6d74 100644 --- a/Dependencies/rileylink_ios/OmniKit/PumpManager/PodState.swift +++ b/Dependencies/OmniKit/OmniKit/PumpManager/PodState.swift @@ -189,9 +189,9 @@ public struct PodState: RawRepresentable, Equatable, CustomDebugStringConvertibl return now } - public mutating func updateFromStatusResponse(_ response: StatusResponse) { + public mutating func updateFromStatusResponse(_ response: StatusResponse, at date: Date = Date()) { let now = updatePodTimes(timeActive: response.timeActive) - updateDeliveryStatus(deliveryStatus: response.deliveryStatus, podProgressStatus: response.podProgressStatus, bolusNotDelivered: response.bolusNotDelivered) + updateDeliveryStatus(deliveryStatus: response.deliveryStatus, podProgressStatus: response.podProgressStatus, bolusNotDelivered: response.bolusNotDelivered, at: date) let setupUnits = setupUnitsDelivered ?? Pod.primeUnits + Pod.cannulaInsertionUnits + Pod.cannulaInsertionUnitsExtra @@ -271,22 +271,29 @@ public struct PodState: RawRepresentable, Equatable, CustomDebugStringConvertibl self.unacknowledgedCommand = nil } - private mutating func updateDeliveryStatus(deliveryStatus: DeliveryStatus, podProgressStatus: PodProgressStatus, bolusNotDelivered: Double) { + private mutating func updateDeliveryStatus(deliveryStatus: DeliveryStatus, podProgressStatus: PodProgressStatus, bolusNotDelivered: Double, at date: Date) { // See if the pod deliveryStatus indicates an active bolus or temp basal that the PodState isn't tracking (possible Loop restart) if deliveryStatus.bolusing && unfinalizedBolus == nil { // active bolus that Loop doesn't know about? if podProgressStatus.readyForDelivery { // Create an unfinalizedBolus with the remaining bolus amount to capture what we can. - unfinalizedBolus = UnfinalizedDose(bolusAmount: bolusNotDelivered, startTime: Date(), scheduledCertainty: .certain, insulinType: insulinType, automatic: false) + unfinalizedBolus = UnfinalizedDose(bolusAmount: bolusNotDelivered, startTime: date, scheduledCertainty: .certain, insulinType: insulinType, automatic: false) } } - if let bolus = unfinalizedBolus, !deliveryStatus.bolusing { + if var bolus = unfinalizedBolus, !deliveryStatus.bolusing { + // Due to clock drift or comms delays, boluses can finish earlier than we expect + if !bolus.isFinished() { + bolus.finishTime = date + } finalizedDoses.append(bolus) unfinalizedBolus = nil } - if let tempBasal = unfinalizedTempBasal, !deliveryStatus.tempBasalRunning { + if var tempBasal = unfinalizedTempBasal, !deliveryStatus.tempBasalRunning { + if !tempBasal.isFinished() { + tempBasal.finishTime = date + } finalizedDoses.append(tempBasal) unfinalizedTempBasal = nil } diff --git a/Dependencies/OmniKit/OmniKit/Resources/ar.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..11e9037aee --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "موافق"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/cs.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..71de1f3375 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,183 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazál inicializován"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Méně než 50 jednotek"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Probíhající bolus"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@ U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusování"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolusování dočasným bazálem"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Zavádění kanyly"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Znamá"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivováno"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Prázdný zásobník"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Prázdná odpověď z podu"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Zaprotokolována událost chyby, vypínám"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Doporučení k vypršení"; + +/* Description for expiration alert */ +"Expiration alert" = "Upozornění na vypršení"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Probíhající prodloužený bolus"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Probíhající prodloužený bolus s dočasným bazálem"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Došlo k chybové události"; + +/* Description for finish setup */ +"Finish setup " = "Dokončení nastavení "; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Připomínka k dokončení nastavení"; + +/* Pod inititialized */ +"Initialized" = "Inicializováno"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Zavádím kanylu"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podávání inzulínu bylo zastaveno. Vyměňte pod nyní."; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interní chyba podu %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Přerušený bolus: %1$@ U ( %2$@ U naplánované) %3$@ %4$@ %5$@"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Poloprázdný zásobník"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žádný inzulín"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Žádný pod"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod je pozastaven"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Platnost okna nastavení podu vypršela"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pozastavená upozornění podu"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Připravuji"; + +/* Pod state when priming completed */ +"Priming completed" = "Příprava dokončena"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Připraveno k programování bazálu"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Připraven k zavedení kanyly"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Upozornění inicializováno"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Pokračovat: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Plánovaný bazál"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Plánovaný bazál"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Vypnutí blížícího "; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Vypnutí blížícího se alarmu"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Ztráta signálu"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Období pozastavení vypršelo"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pozastavit: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pozastaveno"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Plnění zásobníku dokončeno"; + +/* Pod power to motor activated */ +"Tank power activated" = "Napájení zásobníku aktivováno"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Dočasný bazál v platnosti"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Dočasný bazál v platnosti"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "DočBazál: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Čas vyměnit pod! Platnost vašeho podu vyprší za %1$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Nejasné"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Neočekávané pořadové číslo zprávy"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Neočekávaná odpověď od podu"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Neznámá chyba podu %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Neznámá hodnota ( %1$@ ) pro typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Ověření se nezdařilo: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Počkejte na dokončení podávání stávajícího bolusu nebo bolus zrušte"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Počkejte na dokončení stávajícího dočasného bazálu nebo ho pozastavte pro zrušení."; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/da.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..2f3e43bc7c --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/da.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inaktiv)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" har lavt batteri"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulin eller mindre tilbage i Pod. Skift Pod snart."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktiveringstid overskredet"; + +/* Description for auto-off */ +"Auto-off" = "Auto-sluk"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-sluk alarm"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialiseret"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Under 50 enheder"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus i gang"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Indgiver bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Indgiver bolus med midlertidig basal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Indfører kanyle"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Sikker"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Skift Pod nu. Insulintilførsel stopper om 1 time."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Skift Pod nu. Pod har været aktiv i 72 timer."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofejl %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikationsproblem"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Kommunikationsproblem: Uerkendt kommando afventer."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Påmindelser om succesfulde handlinger vil lyde for de kommandoer du sætter igang, annulleret, suspenderet, genoptaget bolus, gemme notifikationspåmindelser etc. Når Loop automatisk justerer tilførslen, bliver påmindelser om succesfulde handlinger ikke benyttet."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Påmindelser om succesfulde handlinger vil lyde, når Loop automatisk justerer tilførslen og de kommandoer, du sætter igang."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritisk Pod-fejl"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Kommunikationsfejl. Flyt til et nyt område"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktiveret"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Deaktiveret"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Tomt reservoir"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Tomt reservoir"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Tomt svar fra Pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Aktiveret"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Fejlhændelse logget, lukker ned"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Påmindelse om udløb"; + +/* Description for expiration alert */ +"Expiration alert" = "Udløbs-advarsel"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Forlænget"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Forlænget bolus kører"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Forlænget bolus med midlertidig basal"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fejlhændelse indtraf"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Afslut deaktivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Afslut parring"; + +/* Description for finish setup */ +"Finish setup " = "Afslut opsætning"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Påmindelse om færdiggørelse af opsætning"; + +/* Pod inititialized */ +"Initialized" = "Initialiseret"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Indsætter kanyle"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførslen er stoppet. Skift Pod nu."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulin suspenderet"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulintype ikke konfigureret"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Intern Pod-fejl %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AfbrudtBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ugyldig adresse 0x%1$x. Forventet 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ugyldig adresse: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ugyldig CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ugyldig indstilling"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Lavt reservoir"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Lavt reservoir"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Vejledning om lavt reservoir (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Lavt reservoir alarm"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Lavt RileyLink-batteri"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Sørg for din Pod er fyldt og i nærheden"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Sørg for, at din RileyLink er i nærheden og tændt"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manual basal"; + +/* Pod memory initialized */ +"Memory initialized" = "Hukommelse initialiseret"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Flyt til et nyt område væk fra andre Pods og prøv igen."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Advarsel om flere kommandoer"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Ingen alarmer"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Ingen påmindelser for succesfulde aktiviteter benyttet"; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ingen fejl"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Ingen Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Ingen Pod parret"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Ingen Pods fundet"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Intet svar fra Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Ingen RileyLink til stede"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Ikke nok data"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Blokkering opdaget"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Blokkering opdaget"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Parret"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Parring afsluttet"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Indlæsningfejl: %1$@ i %2$@"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Hav kun den originale Pod tæt på eller deaktiver den original Pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Venligst flyt Pod’en tættere på din RileyLink og prøv igen"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Afslut parringen af din Pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Venligst par med en ny Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Flyt RileyLink længere væk fra Pod'en"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Flyt RileyLink i forhold til Pod'en"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Flyt Pod eller RileyLink til et andet sted og prøv igen"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod allerede parret"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod allerede klargjort"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Pod-fejl"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pod udløbsalarm"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pod udløbspåmindelse"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Påmindelse om udløb af Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod udløbet"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod udløbet"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod udløber om %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod Fejl: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar til kanyleindførsel."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod er ikke parat til klargøring."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod er pauset"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod er blokeret"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Pod-parring ufuldstændig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendt acknowledge i stedet for svar"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Pod indstillingsvindue udløbet"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Påmindelse om suspenderet Pod "; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dårlig signalstyrke"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Klargør"; + +/* Pod state when priming completed */ +"Priming completed" = "Klargøring afsluttet"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Klar til basal-indstilling"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Klar til kanyleindførsel"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påmindelse initialiseret"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Genoptag"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Fortsæt indgivelse"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Genoptag insulin"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Fortsæt: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Planlagt basal"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Planlagt basal"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Luk akut"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Afbryd akut alarm"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaltab"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrken er for høj"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Påmindelse om igangværende suspension"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Suspenderet tid udløbet"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspenderet"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Suspensionstiden er udløbet. Åbn appen, og genoptag."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Reservoirpåfyldning færdig"; + +/* Pod power to motor activated */ +"Tank power activated" = "Reservoir-strøm aktiveret"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Midlertidig basal allerede i gang"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Midlertidig basal i gang"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Midlertidig basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioden for suspension af insulin er afsluttet.\n\nDu kan genoptage afgivelsen fra den øverste del af startskærmen eller fra skærmen med pumpeindstillinger. Du vil blive mindet om dette igen om 15 minutter."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Tiden på din pumpe er forskellig fra den aktuelle tid. Din pumpes tid styrer dine planlagte behandlingsindstillinger. Gå til Pumpetid for at gennemgå tidsforskellen og konfigurere din pumpe."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Tidsændring registreret"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Tid til udskiftning af Pod! Din Pod udløber om %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Der er fundet for mange Pods"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Prøv igen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Usikker"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Uventet meddelelsessekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Uventet Pod-skifte"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Uventet svar fra Pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Ukendt Podfejl %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Ukendt værdi (%1$@) for type %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validering mislykkedes: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Vent, indtil eksisterende bolus er færdig, eller annuller bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Vent, indtil den eksisterende midlertidige basal er færdig, eller pause for at annullere"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Venter på parrings-påmindelse"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/de.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..f7d937ad0c --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/de.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inaktiv)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" hat einen niedrigen Akkustand"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ Insulin oder weniger verbleibend im Pod. Pod bald wechseln."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivierungszeit überschritten"; + +/* Description for auto-off */ +"Auto-off" = "Auto-Off"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-Off Alarm"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialisiert"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Weniger als 50 Einheiten"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolusabgabe läuft "; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@IE %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusabgabe"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolus-Abgabe mit temporärer Basalrate"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Einsetzen der Kanüle"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Sicher"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Pod jetzt wechseln. Die Insulinabgabe stoppt in 1 Stunde."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Pod jetzt wechseln. Der Pod ist seit 72 Stunden aktiv."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Befehlsfehler %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Comms Problem"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Kommunikationsproblem: Unbestätigter Befehl steht noch aus."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Vertrauenserinnerungen ertönen für von Ihnen initiierte Befehle, wie Bolus, Bolus abbrechen, Unterbrechen, Fortsetzen, Benachrichtigungserinnerungen speichern usw. Wenn Loop die Abgabe automatisch anpasst, werden keine Vertrauenserinnerungen verwendet."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Vertrauenserinnerungen ertönen, wenn Loop die Lieferung automatisch anpasst, sowie für von Ihnen initiierte Befehle."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritischer Pod-Fehler"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Überlagerungen möglich. Bitte wechseln Sie an einen neuen Standort"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktiviert"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Ausgeschaltet"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Reservoir leer"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Leeres Reservoir"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Leere Antwort vom Pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Aktiviert"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Fehlerereignis protokolliert, fahre herunter"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Ablaufhinweis"; + +/* Description for expiration alert */ +"Expiration alert" = "Ablaufalarm"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Verzögerung"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Verzögerter Bolus aktiv"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Verzögerter Bolus mit temporärer Basalrate aktiv"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fehlerereignis aufgetreten"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Deaktivierung abgeschlossen"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Kopplung abgeschlossen"; + +/* Description for finish setup */ +"Finish setup " = "Einrichtung abgeschlossen"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Einrichtungserinnerung abgeschlossen"; + +/* Pod inititialized */ +"Initialized" = "Initialisiert"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Einfügen von Kanüle"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulinabgabe wurde gestoppt. Pod jetzt wechseln."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulinabgabe unterbrochen"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulintyp nicht konfiguriert"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interner Podfehler %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Abgebrochener Bolus: %1$@ IE (%2$@ IE geplant) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ungültige Adresse (%1$x). Adresse %2$x erwartet"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ungültige Adresse (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ungültiger CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ungültige Einstellung"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Niedriges Reservoir"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Niedriges Reservoir"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Hinweis auf niedriges Reservior (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Hinweisalarm für fast leeres Reservoir"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Niedriger RileyLink Batteriestatus"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Stellen Sie sicher, dass Ihr Pod gefüllt und in der Nähe ist."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Stellen Sie sicher, dass sich Ihr RileyLink in der Nähe befindet und eingeschaltet ist"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuelle Basalrate"; + +/* Pod memory initialized */ +"Memory initialized" = "Speicher initialisiert"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Begeben Sie sich in einen anderen Bereich, entfernt von anderen Pods und versuchen Sie es erneut."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Warnung bei mehreren Befehlen"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Keine Alarme"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Es werden keine Sicherheitserinnerungen verwendet."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Keine Fehler"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Kein Insulin"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Kein Pod gekoppelt"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Kein Pod gekoppelt"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Keine Pods gefunden"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Keine Rückmeldung vom Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Kein RileyLink verfügbar"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Nicht genügend Daten"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Verstopfung erkannt"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Verstopfung erkannt"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Gekoppelt"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Kopplung abgeschlossen"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Parsing-Fehler: %1$@ in (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Bitte nur Original-Pod in Reichweite bringen oder Original-Pod deaktivieren"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Bitte bringen Sie Ihren Pod näher an Ihr RileyLink und versuchen Sie es erneut"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Bitte schließen Sie die Kopplung Ihres Pods ab."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Bitte koppel einen neuen Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Bitte positionieren Sie den RileyLink weiter entfernt vom Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Bitte versuchen Sie, den Pod oder den RileyLink neu zu positionieren und versuchen Sie es erneut."; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Bitte versuchen Sie, den Pod oder den RileyLink neu zu positionieren und versuchen Sie es erneut."; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod bereits gekoppelt"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod bereits gefüllt"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Pod-Fehler"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Ablaufalarm des Pods"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Hinweis zum Ablaufen des Pods"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod-Ablauferinnerung"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod abgelaufen"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod abgelaufen"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod läuft in %1$@ ab."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Podfehler: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Der Pod ist nicht bereit zum Einführen der Kanüle."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Der Pod ist nicht bereit zum Befüllen."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod ist angehalten"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod Verstopfung"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Pod-Kopplung unvollständig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendet Bestätigung anstelle von Antwort"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Das Zeitfenster für die Pod-Einrichtung ist abgelaufen"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Erinnerung über abgelaufenen Pod "; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Schlechte Signalstärke"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Befüllen"; + +/* Pod state when priming completed */ +"Priming completed" = "Befüllen des Pods abgeschlossen"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Bereit für die Programmierung der Basalrate"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Bereit zum Einführen der Kanüle"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Erinnerung initialisiert"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Fortsetzen"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Insulinabgabe fortsetzen"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Insulinabgabe fortsetzen"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Fortsetzen: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Geplante Basalrate"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Geplante Basalrate"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Pod-Abschaltung steht bevor"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarm für die bevorstehende Pod-Abschaltung"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signalverlust"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstärke ist zu hoch"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Unterbrechen"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Unterbrechungsfortschritts-Erinnerung"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Unterbrechungszeit abgelaufen"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Unterbrochen: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Unterbrochen"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Die Unterbrechungszeit ist abgelaufen. Öffnen Sie die App und fahren Sie fort."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Befüllen des Pods erfolgreich"; + +/* Pod power to motor activated */ +"Tank power activated" = "Energieversorgung für den Podmotor aktiviert"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporäre Basalrate"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Temporäre Basalrate läuft bereits."; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Temporäre Basalrate läuft"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ IE/h %2$@ %3$@ %4$@ IE %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Die Insulinabschaltung ist beendet.\n\nSie können die Abgabe über das Banner auf dem Startbildschirm oder über den Bildschirm mit den Pumpeneinstellungen fortsetzen. Sie werden in 15 Minuten erneut erinnert."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Die Uhrzeit Ihrer Pumpe weicht von der aktuellen Uhrzeit ab. Sie können die Uhrzeit der Pumpe überprüfen und in den Einstellungen mit der aktuellen Uhrzeit synchronisieren."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Änderung der Uhrzeit erkannt"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Es ist Zeit Ihren Pod zu wechseln! Der Pod läuft ab in %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Zu viele Pods in Reichweite"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Versuchen Sie es erneut"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Unsicher"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Unerwartete Sequenznummer der Nachricht"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Unerwarteter Podwechsel"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Unerwartete Antwort vom Pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Unbekannter Podfehler %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Unbekannter Wert ( %1$@ ) für Typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Überprüfung fehlgeschlagen: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Warte, bis der aktuelle Bolus abgegeben wurde, oder unterbreche diesen."; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Warten Sie, bis die aktuelle temporäre Basalrate beendet ist, oder unterbrechen Sie diese"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Warten auf Kopplungserinnerung"; + diff --git a/Dependencies/rileylink_ios/OmniKit/en.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/en.lproj/Localizable.strings similarity index 100% rename from Dependencies/rileylink_ios/OmniKit/en.lproj/Localizable.strings rename to Dependencies/OmniKit/OmniKit/Resources/en.lproj/Localizable.strings diff --git a/Dependencies/OmniKit/OmniKit/Resources/es.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..725e5bb98d --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/es.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactivo)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" tiene batería baja"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "Queda %1$@ de insulina o menos en el Pod. Cambie el Pod pronto."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tiempo de activación excedido"; + +/* Description for auto-off */ +"Auto-off" = "Apagado automático"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarma de apagado automático"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal inicializada"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Menos de 50 unidades"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolo en progreso"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Poniendo bolo"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Poniendo bolo con basal temporal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Cánula insertándose"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Programación acertada"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Cambie el Pod ahora. La administración de insulina se detendrá en una hora."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Cambie el Pod ahora. El Pod ha estado activo durante 72 horas."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Error de comando %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema de comunicaciones"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problema de comunicación: Pendiente de confirmar comando."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Los recordatorios de confianza sonarán para los comandos que seleccione, como bolo, cancelar bolo, suspender, reanudar, guardar recordatorios de notificación, etc. Cuando Loop ajusta automáticamente la administración de insulina, no se utilizan recordatorios de confianza."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Recordatorios de confianza sonarán cuando Loop automáticamente ajuste la administración de insulina, así como para los comandos que selecciones."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Error crítico del Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interferencia posible. Muévase a una nueva ubicación"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Pod desactivado"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Desactivado"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Reservorio vacío"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Depósito vacío"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Respuesta vacía del pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Habilitado"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Evento de error de registro, apagándose"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Aviso de caducidad"; + +/* Description for expiration alert */ +"Expiration alert" = "Alerta de caducidad"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Extendido"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolo extendido ejecutándose"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolo extendido ejecutándose con basal temporal"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Se ha producido un fallo"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Finalizar la desactivación"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Finalizar Emparejamiento"; + +/* Description for finish setup */ +"Finish setup " = "Fin de la configuración"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Finalizar recordatorio de configuración"; + +/* Pod inititialized */ +"Initialized" = " iniciado"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Insertando cánula"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "El suministro de insulina se detuvo. Cambiar Pod ahora."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulina Suspendida"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipo de insulina no configurada"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Error pod interno %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrumpido: %1$@ U (%2$@ U planeadas) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Dirección no válida 0x %1$x. Esperada 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Dirección no válida: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC no válido"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Configuración no válida"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Reserva baja"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Reserva baja"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Aviso de reserva baja (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Alarma de aviso de depósito bajo"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batería baja de RileyLink"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Asegúrese de que su pod esté lleno y cerca."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Asegúrese de que su RileyLink está cerca y encendido"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Basal Manual"; + +/* Pod memory initialized */ +"Memory initialized" = "Memoria inicializada"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Muévete a una nueva área lejos de cualquier otro Pod e inténtalo de nuevo."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alerta de comandos múltiples"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "No hay alertas"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "No se utilizan recordatorios de confianza."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Sin fallos"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "No hay insulina"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "No hay Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "No hay pod emparejado"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "No se encontraron Pods"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Sin respuesta del pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "No hay RileyLink disponible"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "No hay suficientes datos"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Oclusion detectada"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Oclusión detectada"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Emparejado"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Emparejamiento completo"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Error de parseo: %1$@ en (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Por favor, ponga solamente el Pod original en rango o desactivelo"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Por favor, acerque su pod al RileyLink e inténtelo de nuevo"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Por favor, termine de emparejar su Pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Por favor, empareje un nuevo pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Por favor, intente reposicionar el RileyLink más lejos del Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Por favor, reposicione el RileyLink con respecto al Pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Por favor, intente reposicionar el Pod o el RileyLink e inténtelo de nuevo."; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Ya hay un pod emparejado"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "El pod ya está purgado"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Error del Pod"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Alarma de aviso de caducidad de un pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Aviso de vencimiento de un pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Recordatorio de expiración del Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod caducado"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod caducado"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "El Pod expira en %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Error de pod: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "El Pod no está listo para insertar la cánula"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "El Pod no está listo para purgar"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "El Pod está suspendido"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Oclusión del Pod"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Emparejamiento del Pod incompleto"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod envió acuse de recibo en lugar de respuesta"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "La pantalla de configuración del pod ha caducado"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Recordatorio de que el Pod está suspendido"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Mala señal"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Purgando"; + +/* Pod state when priming completed */ +"Priming completed" = "Purgado completado"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Listo para programar basales"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Listo para insertar la cánula"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Recordatorio inicializado"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reanudar"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reanudar la entrega de insulina"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reanudar insulina"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Reanudar: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Insulina basal programada"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Insulina basal programada"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Cierre inminente"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Apagar la alarma inminente"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pérdida de señal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Intensidad de la señal demasiado alta"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspender"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Recordatorio de Suspensión en curso"; + +/* Description for suspend time expired */ +"Suspend time expired" = "El tiempo de suspensión ha expirado"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspendido"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "El tiempo de suspensión ha terminado. Abra la aplicación y reanúdela."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Completado el llenado del depósito"; + +/* Pod power to motor activated */ +"Tank power activated" = "Depósito encendido"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Insulina basal temporal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Basal temporal en progreso"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Basal temporal funcionando"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemporal: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "El periodo de suspensión de la insulina ha finalizado.\n\nPuedes reanudar la administración desde el banner de la pantalla de inicio o desde la pantalla de ajustes de tu bomba. Se le recordará de nuevo en 15 minutos."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "La hora de la bomba es diferente de la hora actual. Puedes revisar la hora de la bomba y sincronizarla con la hora actual en los ajustes."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Cambio de hora detectado"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Es hora de reemplazar el pod! El pod expira en %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Se encontraron demasiados Pods"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Vuelva a intentarlo"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Incierto"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Número de secuencia de mensaje inesperado"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Cambio inesperado de Pod"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Respuesta inesperada del pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Fallo de pod desconocido %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valor Desconocido (%1$@) para el tipo %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "La validación falló: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Espere a que termine el bolo o cancele el bolo"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Espere a que termine la basal temporal existente o suspénda para cancelar"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Esperando el recordatorio de emperejamiento"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/fi.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..6627746fc4 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,308 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (ei-aktiivinen)"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivointiaika ylitetty"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Autom. pois -varoitus"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basaali alustettu"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Alle 50 yksikköä"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus vireillä"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Annostellaan bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Annostellaan bolus ja tilap. basaali"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Asetetaan kanyyli"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Varma"; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Komentovirhe %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Yhteysongelma"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivoitu"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Säiliö tyhjä"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Tyhjä vastaus pumpulta"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Käytössä"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Virhetapahtuma, suljetaan"; + +/* Description for expiration alert */ +"Expiration alert" = "Pumppu vanhenee -varoitus"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Virhetapahtuma"; + +/* Description for finish setup */ +"Finish setup " = "Lopeta asennus"; + +/* Pod inititialized */ +"Initialized" = "Aloitettu"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Asetetaan kanyyli"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuliini pysäytetty"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Sisäinen pumpun vika %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KeskeytettyBolus: %1$@ U (%2$@ U ohjelmoitu) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Virheellinen osoite 0x%1$x. Odotettu 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Virheellinen osoite: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Virheellinen CRC"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Säiliö vähissä"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Säiliö lähes tyhjä -tiedotehälytys"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja kytketty päälle"; + +/* Pod memory initialized */ +"Memory initialized" = "Muisti alustettu"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Ei hälytyksiä"; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ei vikoja"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ei insuliinia"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Ei pumppua"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Ei yhdistettyä pumppua"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Ei vastausta pumpusta"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Ei RileyLinkiä lähistöllä"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normaali"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Tietoja ei ole tarpeeksi"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Tukos havaittu"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Yhdistetty"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Tuo vain alkuperäinen pumppu kantaman sisälle tai poista alkuperäinen pumppu käytöstä"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Vie pumppu ja RileyLink lähemmäksi toisiaan ja yritä uudelleen"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Yhdistä uusi pumppu"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Siirrä RileyLink kauemmas pumpusta"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Muuta RileyLinkin paikkaa suhteessa pumppuun"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Yritä siirtää pumppua tai RileyLinkiä ja yritä uudelleen"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pumppu on jo yhdistetty"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pumppu on jo alustettu"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pumppu vanhenemassa -tiedotehälytys"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pumppu vanhenemassa -ilmoitus"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pumppu vanhentunut"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pumppu vanhentunut"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pumppuvirhe: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pumppu ei ole valmis kanyylin asettamiseen."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pumppu ei ole valmis alustukseen."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pumppu on pysäytetty"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pumppu lähetti kuittauksen vastauksen sijaan"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Pumpun asennusaika umpeutui"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Heikko signaali"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Alustetaan"; + +/* Pod state when priming completed */ +"Priming completed" = "Alustus valmis"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Valmis basaalin ohjelmointiin"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Valmis kanyylin asetukseen"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Muistutus alustettu"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Jatka: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Ohjelmoitu basaali"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Ohjelmoitu basaali"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Mykistä hälytys"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signaali liian voimakas"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pysäytä: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pysäytetty"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Säiliön täyttö valmis"; + +/* Pod power to motor activated */ +"Tank power activated" = "Säiliön virta aktivoitu"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tilapäinen basaali"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Tilapäinen basaali meneillään"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Tilapäinen basaali käynnissä"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TilapBasaali: %1$@ U/h %2$@ %3$@ %4$@ U %5$@"; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Aika vaihtaa pumppu! Pumppu vanhenee %1$@"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Yritä uudelleen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Epävarma"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Odottamaton viestin järjestysnumero"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Odottamaton pumpun vaihto"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Odottamaton vastaus pumpusta"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Tuntematon pumppuvirhe %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Tuntematon arvo (%1$@) tyypille %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Vahvistus epäonnistui: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Odota, että meneillään oleva bolus päättyy tai kumoa bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Odota, että meneillään oleva tilapäinen basaali päättyy tai pysäytä pumppu kumotaksesi"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Odotetaan yhdistämismuistutusta"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/fr.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..d1687a7484 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactif)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" a un niveau de batterie bas"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insuline ou moins restant dans le Pod. Remplacer le Pod bientôt."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Délai d'activation dépassé"; + +/* Description for auto-off */ +"Auto-off" = "Arrêt automatique"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarme d’arrêt automatique"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialisé"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "en dessous de 50 unités"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus en cours"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolus en cours"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolus en cours avec basal temporaire"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Canule en cours d'insertion"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Certain"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Remplacer le Pod maintenant. L'administration d'insuline s'arrêtera dans 1 heure."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Remplacer le Pod maintenant. Le Pod est actif depuis 72 heures."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Erreur de commande %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problème de com."; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problème de communication : Commande en attente sans accusé de réception."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Les rappels de confiance retentiront pour les commandes que vous initiez, comme administrer ou annuler un bolus, suspendre, reprendre, enregistrer les rappels de notification, etc. Lorsque Loop ajuste automatiquement l'administration, aucun rappel de confiance n’est utilisé."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Des rappels de confiance retentiront lorsque Loop ajustera automatiquement l'administration ainsi que pour les commandes que vous lancez."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Erreur critique du Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interférences possibles. Veuillez vous déplacer vers un nouvel emplacement"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Désactivé"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Désactivé"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Réservoir vide"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Réservoir vide"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Réponse vide du Pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Activé"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Erreur enregistrée, arrêt en cours"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Avertissement d'expiration"; + +/* Description for expiration alert */ +"Expiration alert" = "Alerte d'expiration"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Étendu"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolus étendu en cours"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus étendu en cours avec basal temporaire"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Une erreur s'est produite"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Terminer la désactivation"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Terminer le jumelage"; + +/* Description for finish setup */ +"Finish setup " = "Finir l'installation"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Terminer le paramétrage du rappel"; + +/* Pod inititialized */ +"Initialized" = "Initialisé"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Insertion de la canule"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "L'administration d'insuline s'est arrêtée. Changez de Pod maintenant."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline suspendue"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Type d'insuline non configuré"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Code d'erreur interne du Pod %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolus interrompu: %1$@ U (%2$@ U programmé) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Adresse invalide 0x%1$x. Attendu 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Adresse invalide: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC invalide"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Paramètre invalide"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Réservoir bas"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Réservoir bas"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Avis de réservoir bas (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Alarme de réservoir bas"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batterie RileyLink faible"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Assurez-vous que votre Pod est rempli et à proximité."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Assurez-vous que votre RileyLink est à proximité et allumé"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Débit basal manuel"; + +/* Pod memory initialized */ +"Memory initialized" = "Mémoire initialisée"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Déplacez-vous vers un nouvel endroit éloigné de tout autre Pod et réessayez."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alerte de commande multiple"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Pas d'alarme"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Aucun rappel de confiance n'est utilisé."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Pas de défauts"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Pas d'insuline"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Aucun Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Aucun pod appairé"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Aucun Pod trouvé"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Pas de réponse du Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Aucun RileyLink disponible"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Pas assez de données"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Occlusion détectée"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Occlusion détectée"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Appairé"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Appairage terminé"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Erreur d'analyse : %1$@ dans (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Veuillez rapprocher le Pod original ou désactiver le Pod d'origine"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Merci de rapprocher votre Pod du RileyLink et d'essayer à nouveau"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Veuillez finir d'appairer votre Pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Merci d'appairer un nouveau Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Veuillez repositionner le RileyLink plus loin du Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Veuillez repositionner le RileyLink par rapport au Pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Veuillez essayer de repositionner le Pod ou le RileyLink et essayez à nouveau"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod déjà appairé"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod déjà amorcé"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Erreur du Pod"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Alarme d'expiration du Pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Notification de l'expiration du Pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Rappel d'expiration du Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod expiré"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod expiré"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Péremption du Pod dans %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Erreur du Pod: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Le Pod n’est pas dans un état prêt pour l’insertion de la canule"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Le Pod n’est pas dans un état prêt pour l’amorçage"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Le Pod est suspendu"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Occlusion du Pod"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Appairage du Pod incomplet"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Le Pod a envoyé un ack au lieu d'une réponse"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "La fenêtre de mise en place du Pod a expiré"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Rappel de la suspension du Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Faible intensité du signal"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Amorçage"; + +/* Pod state when priming completed */ +"Priming completed" = "Amorçage terminé"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Prêt pour la programmation basal"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Prêt à insérer la canule"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Rappel initialisé"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reprendre"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reprendre l'administration"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reprendre l'insuline"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Reprise : %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Basal programmé"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Basal programmé"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Arrêt imminent"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarme imminente d’arrêt"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perte de signal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Intensité du signal trop forte"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendre"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Rappel de suspension en cours"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Délai de suspension expiré"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Suspension : %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspendu"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "La période de suspension est terminée. Ouvrez l'application et reprenez."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Remplissage du réservoir terminé"; + +/* Pod power to motor activated */ +"Tank power activated" = "Charge du réservoir activée"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Débit basal temporaire"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Basal temporaire en cours"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Basal temporaire active"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Basal temporaire: %1$@ U/heure %2$@ %3$@ %4$@ U %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "La période de suspension de l'insuline est terminée. \n\nVous pouvez relancer l'administration à partir de la bannière sur l'écran d'accueil ou à partir de l'écran des paramètres de votre pompe. Vous recevrez un nouveau rappel dans 15 minutes."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "L'heure de votre pompe est différente de l'heure actuelle. Vous pouvez vérifier l'heure de la pompe et la synchroniser avec l'heure actuelle dans les paramètres."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Changement d'heure détecté"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "C’est le moment de remplacer votre Pod ! Votre Pod va expirer dans %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Trop de Pods trouvés"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Réessayer"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Incertain"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Numéro de séquence du message inattendu"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Changement inattendu du pod"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Reponse inattendue du Pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Erreur de Pod inconnue %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valeur inconnue (%1$@) pour le type %2$@."; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Échec de la validation: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Attendez que le bolus en cours se termine, ou annulez le bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Attendez que le débit basal temporaire se termine pour quitter, ou mettez en suspens pour annuler"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "En attente d'appairage"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/he.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..863530cc2f --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/he.lproj/Localizable.strings @@ -0,0 +1,198 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-off alarm"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Below 50 units"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus in progress"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusing"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolusing with temp basal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Cannula inserting"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Certain"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deactivated"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Empty reservoir"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Empty response from pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Enabled"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Error event logged, shutting down"; + +/* Description for expiration alert */ +"Expiration alert" = "Expiration alert"; + +/* Description for finish setup */ +"Finish setup " = "Finish setup "; + +/* Pod inititialized */ +"Initialized" = "Initialized"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "No alerts"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "No pod paired"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "No response from pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "No RileyLink available"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Occlusion detected"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod status after pairing */ +"Paired" = "Paired"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Please pair a new pod"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod already paired"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod already primed"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pod Expiration Notice"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod expired"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod Fault: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod is suspended"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "חסימה בפוד"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Pod setup window expired"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Priming"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Ready for basal programming"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Ready to insert cannula"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Scheduled Basal"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Shutdown imminent alarm"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "אובדן אות"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspended"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Tank fill completed"; + +/* Pod power to motor activated */ +"Tank power activated" = "Tank power activated"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Temp basal in progress"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Temp basal running"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Uncertain"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Unexpected response from pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Waiting for pairing reminder"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/it.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..5044e7915f --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/it.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(inattivo)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "%1$@ ha la batteria quasi scarica"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulina o meno rimanenti nel Pod. Cambia presto il Pod."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tempo di attivazione superato"; + +/* Description for auto-off */ +"Auto-off" = "Spegnimento automatico"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Allarme spegnimento automatico"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basale inizializzata"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Inferiore a 50 unità"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolo"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolo in corso"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolo in corso"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolo con basale temp"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Inserimento cannula in corso"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Definita"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Cambia Pod ora. L'erogazione dell'insulina si interromperà tra 1 ora."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Cambia Pod ora. Il Pod è attivo da 72 ore."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Errore di comando %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problema di Comunicazione"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problema di comunicazione: comando di conferma in attesa."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "I promemoria di fiducia suoneranno per i comandi inoltrati, come boli, cancellazione boli, sospensioni, ripristini erogazione, ecc. Quando Loop invece regola in automatico l'erogazione allora non userà alcun promemoria di fiducia."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "I promemoria di fiducia suonano quando Loop regola automaticamente l'erogazione e per i comandi avviati dall'utente."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Errore critico Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Possibile dialogo incrociato. Si prega di spostarsi in una nuova posizione"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Disattivato"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Disabilitato"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Serbatoio vuoto"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Serbatoio Vuoto"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Risposta senza contenuto dal Pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Abilitato"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "È stato rilevato un errore. Spegnimento in corso"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Consultivo di scadenza"; + +/* Description for expiration alert */ +"Expiration alert" = "Avviso di scadenza"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Prolungato"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolo prolungato in esecuzione"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolo prolungato in esecuzione con Basale Temporanea"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Si è verificato un errore"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Disattivazione completata"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Abbinamento completato"; + +/* Description for finish setup */ +"Finish setup " = "Termina configurazione"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Promemoria configurazione completa"; + +/* Pod inititialized */ +"Initialized" = "Inizializzato"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Inserimento Cannula"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "L'erogazione d'insulina si è interrotta. Cambiare Pod adesso."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Erogazione Insulina sospesa"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipo d'insulina non Configurato"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Errore interno Pod %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolo Interrotto: %1$@ U (%2$@ U previste) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Indirizzo non valido 0x %1$x . Previsto 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Indirizzo non valido: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC non valido"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Impostazione non valida"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Livello Serbatoio basso"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Livello Serbatoio basso"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Notifica serbatoio basso (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Allarme di avviso livello serbatoio basso"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batteria Rileylink quasi scarica"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Assicurati che il tuo Pod sia pieno e nelle vicinanze."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Assicurati che RileyLink si trovi nelle vicinanze e sia acceso"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Basale Manuale"; + +/* Pod memory initialized */ +"Memory initialized" = "Memoria inizializzata"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Spostati in una nuova area lontana da qualsiasi altro Pod e riprova."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Avviso di comandi multiplo"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Nessun avviso"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Non vengono utilizzati promemoria sulla fiducia."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Nessun errore"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Insulina Terminata"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "No Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Nessun Pod abbinato"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nessun Pod trovato"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Nessuna risposta da Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Nessun RileyLink disponibile"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normale"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Dati non sufficienti"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Occlusione rilevata"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Occlusione Rilevata"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Abbinato"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Abbinamento completato"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Errore di analisi: %1$@ in ( %2$@ )"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Si prega di portare solo il pod originale nel raggio d'azione o disattivare il pod originale"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Avvicina Pod a RileyLink e riprova"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Completa l'abbinamento del tuo Pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Abbina nuovo Pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Si prega di riposizionare il RileyLink più lontano dal Pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Si prega di riposizionare il RileyLink rispetto al Pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Prova a riposizionare il Pod o il RileyLink e riprova"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod già abbinato"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod già caricato"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Errore Pod"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Allarme di avviso scadenza Pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Avviso di scadenza Pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Promemoria scadenza Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod scaduto"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Scaduto"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod scade in %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Errore Pod: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod non è pronto per l’inserimento della cannula."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod non è pronto per il caricamento"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod sospeso"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Occlusione Pod"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Accoppiamento Pod incompleto"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod ha inviato una conferma anziché una risposta"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Finestra di configurazione Pod scaduta"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Promemoria sospensione Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Scarsa potenza segnale"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Caricamento in corso"; + +/* Pod state when priming completed */ +"Priming completed" = "Caricamento completato"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Pronto per la programmazione basale"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pronto per l’inserimento della cannula"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Promemoria inizializzato"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Riprendi"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Riprendi erogazione"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Riprendi l'insulina"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Riprendi: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Basale Programmata"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Basale Programmata"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Chiusura imminente"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Allarme di spegnimento imminente"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Perdita Segnale"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Potenza del segnale troppo alta"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Blocco Erogazione"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Promemoria sospensione in corso"; + +/* Description for suspend time expired */ +"Suspend time expired" = "il tempo della sospensione e' scaduto"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Sospeso: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Sospeso"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Il tempo di sospensione è scaduto. Apri l'app e riprendi."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Riempimento del serbatoio completato"; + +/* Pod power to motor activated */ +"Tank power activated" = "Alimentazione del serbatoio attivata"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Basale Temporanea"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Velocità basale temporanea in corso"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Velocità basale temporanea in esecuzione"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "VelocitàBasaleTemporanea: %1$@ U/ora %2$@ %3$@ %4$@ U %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Il periodo di sospensione dell'insulina è terminato.\n\nSi puo' ripristinare l'erogazione usando direttamente l'avviso nella schermata principale oppure dalla schermata delle impostazioni del microinfusore. Ogni 15 minuti ci sara' un avviso che ti ricordera' di ripristinare l'erogazione."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "l'orario del microinfusore e' diverso da quello del tempo reale. Controllare l'orario del microinfusore e sincronizzare il settaggio con il l'orario attuale."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Rilevato Cambio di orario "; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "È ora di sostituire Pod! Pod scadrà tra %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Trovati Troppi Pods"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Riprovare"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Incerto"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Notifica inaspettata di sequenza numerica "; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Cambio pod imprevisto"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Risposta inaspettata dal Pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Errore Pod sconosciuto %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valore sconosciuto%1$@per tipo%2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Convalida fallita: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Attendi il termine del bolo esistente oppure annulla bolo"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Attendi il termine della velocità basale temporanea esistente oppure sospendi per annullare"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "In attesa del promemoria di abbinamento"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/ja.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..42f946971a --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,174 @@ +/* Description for auto-off alarm */ +"Auto-off alarm" = "アラーム自動オフ"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "50Uより下"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "ボーラス"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "ボーラスが進行中"; + +/* Delivery status when bolusing */ +"Bolusing" = "ボーラス注入中"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "一時基礎とボーラス"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "カニューレ挿入中"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "確実"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "停止されました"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "リザーバが空です"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "ポッドからの反応 - 空"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "有効"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "エラーイベントを保存、終了します"; + +/* Description for expiration alert */ +"Expiration alert" = "期限切れアラート"; + +/* Description for finish setup */ +"Finish setup " = "設定終了"; + +/* Pod inititialized */ +"Initialized" = "初期化完了"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "インターナルポッドエラー %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "ボーラス中断: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "リザーバ残量低下アラーム"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "RileyLink が近くにあり電源が入っているか確認"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "アラートなし"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "ポッドペアリングできません"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "ポンド反応なし"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "RileyLinkがありません"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "通常"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "閉塞があります"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod status after pairing */ +"Paired" = "ペアリングされました"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "ポッドを RileyLink に近づけてやり直してください"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "新しいポッドをペアリングしてください"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "既にペアリングされています"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "プライミングされています"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "ポッド期限アラーム"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "ポッド期限注意"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "ポッド期限切れ"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "ポッドエラー: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "ポッドがカニューレを挿入できる状態ではありません。"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "ポッドがプライミングできる状態ではありません。"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "ポッドが一時停止"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "ポッドの設定期限切れ"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "プライミング"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "基礎レート設定できます"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "カニューレを挿入できます"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "再開: %1$@ %2$@"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "定期基礎"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "今から鳴るアラームを切る"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "一時停止: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "一時停止"; + +/* Pod tank fill completed */ +"Tank fill completed" = "タンクが満たされました"; + +/* Pod power to motor activated */ +"Tank power activated" = "タンクがオンになりました"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "一時基礎進行中"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "一時基礎注入中"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "一時基礎: %1$@ U/時 %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "ポッドの交換時です。 %1$@でポッドの期限が切れます。"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "不明"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "ポッドから予期せぬ反応"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/nb.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..f0eb14ab5c --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(inaktiv)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\" %1$@ \" har lavt batterinivå"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulin eller mindre gjenstår i Pod. Bytt Pod snart."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktiveringstiden er overskredet"; + +/* Description for auto-off */ +"Auto-off" = "Auto-av"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarm for automatisk av"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initialisert"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Under 50 enheter"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus pågår"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Gir bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Gir bolus med temp-basal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Setter inn kanyle"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Sikker"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Bytt Pod nå. Insulintilførselen stoppes om 1 time."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Bytt Pod nå. Pod har vært aktiv i 72 timer."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofeil %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommunikasjonsutgave"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Kommunikasjonsproblem: Ukjent kommando venter."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Tillitspåminnelser høres for kommandoer du starter, for eksempel bolus, avbryt bolus, suspendere, gjenoppta, lagre varslingspåminnelser osv. Når Loop automatisk justerer leveringen, brukes mistillitspåminnelser."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Tillitspåminnelser vil høres når Loop automatisk justerer leveringen så vel som for kommandoer du starter."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Pod-feil"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Crosstalk mulig. Vennligst flytt til et nytt sted"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivert"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Deaktivert"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Tomt reservoar"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Tomt reservoar"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Tomt svar fra pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Aktivert"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Feil logget, avslutter"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Veiledning for utløp"; + +/* Description for expiration alert */ +"Expiration alert" = "Utløpsalarm"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Forlenget"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Forlenget boluskjøring"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Forlenget boluskjøring med temp basal"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Feilhendelse oppstod"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Fullfør deaktivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Fullfør sammenkoblingen"; + +/* Description for finish setup */ +"Finish setup " = "Ferdigstill oppsett"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Fullfør varselinnstilling"; + +/* Pod inititialized */ +"Initialized" = "Klargjort"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Skyter inn kanyle"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførselen stoppet. Bytt Pod nå."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintilførsel utsatt"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulintype ikke konfigurert"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Intern pod-feil %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ugyldig adresse 0x%1$x. Forventet 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ugyldig adresse: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ugyldig CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ugyldig konfigurasjon"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Lavt reservoar"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Lavt reservoar"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Varsel om lavt reservoar (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Anbefalt alarm for lavt reservoar"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Lavt RileyLink-batteri"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Sørg for at pod er fylt og i nærheten."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Pass på at din RileyLink er slått på og er i nærheten"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuell basal"; + +/* Pod memory initialized */ +"Memory initialized" = "Minne initialisert"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Flytt til et nytt område borte fra andre pods og prøv igjen."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alarm for fler-kommandoer"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Ingen alarmer"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Ingen aktive påminnelser."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ingen feil"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Ingen insulin"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Ingen Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Ingen sammenkoblet pod"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Ingen pod funnet"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Ingen svar fra pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Ingen RileyLink tilgjengelig"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Ikke nok data"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Tilstoppelse oppdaget"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Okklusjon oppdaget"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "Ok"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Sammenkoblbet"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Sammenkobling fullført"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Analysefeil: %1$@ i (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Ta kun med original pod innenfor rekkevidde eller deaktiver original pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Prøv å sette pod og RileyLink nærmere hverandre og prøv så igjen"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Vennligst fullfør sammenkoblingen av pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Vennligst koble til ny pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Vennligst flytt RileyLink lenger fra pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Vennligst flytt RileyLink i forhold til pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Prøv å flytte pod eller RileyLink og prøv igjen"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod er allerede sammenkoblet"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod er allerede fyllt"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Pod Feil"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Anbefalt utløpsalarm for pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Utløpsmelding for pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod utløpspåminnelse"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod utløpt"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Utløpt"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod utløper om %1$@ ."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod-feil: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar for å sette inn kanyle."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod er ikke klar for fylling"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod er suspendert"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod Okklusjon"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Ufullstendig Pod-sammenkobling"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod sendte ack i stedet for svar"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Tidsvindu for oppsett av pod er utløpt"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pod påminnelse er suspendert"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dårlig signalstyrke"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Fyller"; + +/* Pod state when priming completed */ +"Priming completed" = "Fylling fullført"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Klar for basal-programmering"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Klar for å sette inn kanyle"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påminnelse initialisert"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Gjenoppta"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Gjenoppta levering"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Gjenoppta insulin"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Fortsett: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Planlagt basal"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Planlagt basal"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Avslutning nært forestående"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Avslutt forestående alarm"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signal Tap"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrken er for høy"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Utsette"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Varsel om aktivert Utsettelse"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Utsettelse utløpt"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspendert"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Utsettelsestiden er over. Åpne appen og gjenoppta."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Tankpåfylling komplett"; + +/* Pod power to motor activated */ +"Tank power activated" = "Tank-motor aktivert"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Midlertidig basal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Midlertidig basal pågår"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Midlertidig basal kjører"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Midlertidig basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioden med insulinsuspensjon er avsluttet.\n\nDu kan gjenoppta leveringen fra banneret på startskjermen eller fra skjermbildet for pumpeinnstillinger. Du vil bli påminnet igjen om 15 minutter."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Klokken på pumpen er forskjellig fra gjeldende tid. Du kan se på pumpetiden og og synkronisere med gjeldende tid i innstillingene."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "treNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Tidsendring oppdaget"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Det er på tide å bytte pod! Pod utløper om %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "For mange poder funnet"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Prøv igjen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "toNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Usikker"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Uventet meldings sekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Uventet pod-endring"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Uventet svar fra pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Ukjent pod-feil %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Ukjent verdi ( %1$@ ) for typen %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Valideringen mislyktes: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Vent til at eksisterende bolus skal bli ferdig, eller kanseler bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Venter på at eksisterende temp-basal skal bli ferdig, eller at pause skal avsluttes"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Venter på påminnelse for sammenkobling"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/nl.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..6a2cab7be3 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactief)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" batterij bijna leeg"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insuline of minder resterend in Pod. Vervang Pod spoedig."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Activeringstijd overschreden"; + +/* Description for auto-off */ +"Auto-off" = "Automatische uitschakeling"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-uit alarm"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basaal geïnitialiseerd"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Minder dan 50 eenheden"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus in uitvoering"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolussen"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolussen met tijdelijk basaal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Canule ingebracht"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Zeker"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Vervang Pod nu. Insulinetoediening stopt over 1 uur."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Vervang Pod nu. Pod is 72 uur in gebruik geweest."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Opdrachtfout %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Communicatieprobleem"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Communicatieprobleem: niet-bevestigde opdracht in behandeling"; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Bevestigingsherinneringen zijn hoorbaar voor opdrachten die je start, zoals bolussen, bolus annuleren, onderbreken, hervatten, meldingsherinneringen opslaan, enz. Wanneer Loop de toediening automatisch aanpast, zijn er geen bevestigingsherinneringen hoorbaar."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Bevestigingsherinneringen zijn hoorbaar wanneer Loop de toediening automatisch aanpast, evenals voor opdrachten die je geeft."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritieke Podfout"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Overspraak mogelijk. Probeer een andere locatie"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Gedeactiveerd"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Uitgeschakeld"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Reservoir leeg"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Reservoir Leeg"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Geen reactie van pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Ingeschakeld"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Fout geconstateerd, sluit af"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Vervaldatum melding"; + +/* Description for expiration alert */ +"Expiration alert" = "Alarm vervaltijd"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Uitgebreid"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Verlengde bolus actief"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Verlengde bolus met tijdelijk basaal actief"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Fout is opgetreden"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Voltooi Deactivering"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Voltooi Koppelen"; + +/* Description for finish setup */ +"Finish setup " = "Voltooi installatie"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Voltooi instelling van herinnering"; + +/* Pod inititialized */ +"Initialized" = "Geinitialiseerd"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Canule inbrengen"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Insulinetoediening gestopt. Vervang Pod nu."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insuline Onderbroken"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Insulinetype niet ingesteld"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interne podfout %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "OnderbrokenBolus: %1$@ E (%2$@ E gepland) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ongeldig adres 0x%1$x. Verwachte 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ongeldig adres: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ongeldige CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Ongeldige Instelling"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Reservoir bijna leeg"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Reservoir Bijna Leeg"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Reservoir Bijna Leeg Advies (%1$gE)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Reservoir bijna leeg alarm"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Batterij RileyLink Bijna Leeg"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Zorg ervoor dat je pod gevuld en binnen bereik is."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aan staat"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Handmatig Basaal"; + +/* Pod memory initialized */ +"Memory initialized" = "Geheugen geïnitialiseerd"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Ga naar een andere plek, weg van andere pods, en probeer opnieuw."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Meerdere Commando's Melding"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Geen Waarschuwingen"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Er worden geen bevestigingsherinneringen gebruikt."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Geen fouten"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Geen Insuline"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Geen Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Geen pod gekoppeld"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Geen pods gevonden"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Geen reactie van pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Geen RileyLink beschikbaar"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normaal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Onvoldoende Gegevens"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Verstopping gedetecteerd"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Verstopping Gedetecteerd"; + +/* Action button default text for PodAlerts */ +"Ok" = "OK"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "Ok"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "eenNietGebruikt"; + +/* Pod status after pairing */ +"Paired" = "Gekoppeld"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Koppelen voltooid"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Parseerfout: %1$@ in (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Breng alleen de oude pod binnen bereik of deactiveer de originele pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Breng de pod dichter bij de RileyLink en probeer opnieuw"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Voltooi het koppelen van je pod."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Koppel een nieuwe pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Plaats de RileyLink verder van de pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Verplaats de RileyLink ten opzichte van de pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Probeer de pod of de RileyLink te herpositioneren en probeer het opnieuw"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod al gekoppeld"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod is al voorbereid"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Podfout"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pod vervaltijd advies alarm"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pod vervaltijd aankondiging"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Herinnering Vervaldatum Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod is verlopen"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Verlopen"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod verloopt over %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod fout: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod is niet gereed voor inbrengen canule."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod is niet klaar om voorbereid te worden."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod is onderbroken"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Podverstopping"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Koppeling Pod Onvolledig"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod heeft een bevestiging gestuurd in plaats van een antwoord"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Insteltijd van de Pod is verlopen"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Herinnering onderbroken Pod"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Zwak signaalsterkte"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Voorbereiden"; + +/* Pod state when priming completed */ +"Priming completed" = "Voorbereiden voltooid"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Klaar voor programmeren basaal"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Gereed voor inbrengen canule"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Herinnering geïnitialiseerd"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Hervatten"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Hervat toediening"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Hervat Insuline"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Hervat: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Gepland basaal"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Ingesteld Basaal"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Afsluiting nadert"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarm voor naderende afsluiting"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Signaalverlies"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signaalsterkte te hoog"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Onderbreek"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Onderbreking in Uitvoering Herinnering"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Onderbrekingstijd verstreken"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Onderbreek: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Onderbroken"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "De onderbrekingsperiode is verstreken. Open de app en hervat."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Opslag vullen compleet"; + +/* Pod power to motor activated */ +"Tank power activated" = "Opslag power geactiveerd"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tijdelijk Basaal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Tijdelijk basaal wordt uitgevoerd"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Tijdelijk basaal actief"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tijdelijk basaal: %1$@ E/uur %2$@ %3$@ %4$@ E %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "De insulineonderbrekingsperiode is verstreken.\n\nJe kunt de toediening hervatten op het startscherm of via je pompinstellingenscherm. Over 15 minuten wordt je er opnieuw aan herinnerd."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "De tijd op je pomp is anders dan de huidige tijd. Je kunt de tijd op de pomp bekijken en synchroniseren met de huidige tijd in instellingen."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "drieNietGebruikt"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Tijdsverschil Ontdekt"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Tijd om je pod te vervangen! Vervang je pod in %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Te veel pods gevonden"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Probeer opnieuw"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "tweeNietGebruikt"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Onzeker"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Onverwacht volgnummer van bericht"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Onverwachte podwissel"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Onverwachte reactie van pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Onbekende podfout %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Onbekende waarde (%1$@) voor type %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validatie mislukt: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Wacht tot huidige bolus is voltooid, of annuleer bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Wacht tot de huidig tijdelijk basaalsnelheid is voltooid, of onderbreek om te annuleren"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Wacht op herinnering om te verbinden"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/pl.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..198e0c665e --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (nieaktywny)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "„ %1$@ ” ma słabą baterię"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "Pozostało mniej niż 1$@ insuliny w POD. Zmień wkrótce POD'a."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Przekroczono czas aktywacji"; + +/* Description for auto-off */ +"Auto-off" = "Automatyczne wyłączanie"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarm automatycznego wyłączenia"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Zainicjowano bazę"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Poniżej 50 jedn."; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus w toku"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Podawanie bolusa"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Podawanie bolusa z dawką podstawową"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Wprowadzanie kaniuli"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Pewna"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Zmień POD'a teraz. Podawanie insuliny zostanie wstrzymane za 1 godzinę."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Zmień teraz POD'a. POD jest aktywny od 72 godzin."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Błąd polecenia %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problem z komunikacją"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problem z komunikacją: Niepotwierdzone polecenie w toku."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Przypomnienia (sygnały dźwiękowe) będą emitowane w przypadku poleceń, które zainicjujesz, takich jak bolus, anulowanie bolusa, wstrzymanie, wznowienie, zapisanie przypomnień o powiadomieniach itp. Kiedy Loop automatycznie dostosowuje podawanie, nie są używane żadne sygnały dźwiękowe."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Przypomnienia potwierdzające są emitowane, gdy Loop automatycznie dostosowuje podawanie insuliny, a także w przypadku poleceń inicjowanych przez użytkownika."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Krytyczny błąd POD'a"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Możliwe zakłócenia. Proszę teleportuj się do innego pomieszczenia"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktywowany"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Wyłączony"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Pusty zbiornik"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Pusty zbiorniczek"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Pusta odpowiedź POD"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Włączony"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Zarejestrowano zdarzenie błędu, wyłączanie"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Ostrzeżenie o wygaśnięciu"; + +/* Description for expiration alert */ +"Expiration alert" = "Alert o upływie terminu ważności"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Rozszerzony"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Trwa podawanie bolusa przedłużonego"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus przedłużony uruchomiony z tymczasową bazą"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Wystąpiła usterka"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Zakończ dezaktywację"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Zakończ parowanie"; + +/* Description for finish setup */ +"Finish setup " = "Zakończ konfigurację"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Przypomnienie o zakończeniu konfiguracji"; + +/* Pod inititialized */ +"Initialized" = "Zainicjalizowany"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Wprowadzanie kaniuli"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podawanie insuliny zostało zatrzymane. Wymień POD'a."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Podawanie insuliny zawieszone"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Nie skonfigurowano rodzaju insuliny"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Wewnętrzny błąd POD'a %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Przerwany bolus: %1$@ jedn. (%2$@ jedn. zaplanowanych) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Nieprawidłowy adres 0x %1$x . Oczekiwano 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Nieprawidłowy adres: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Nieprawidłowy CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Nieprawidłowe ustawienie"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Niski poziom w zbiorniczku"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Niski poziom w zbiorniczku"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Ostrzeżenie o niskim poziomie w zbiorniczku (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Alarm informujący o niskim poziomie w zbiorniku"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Niski poziom baterii RileyLink"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Upewnij się, że POD jest wypełniony i znajduje się w pobliżu."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Upewnij się, że RileyLink jest w pobliżu i jest włączony"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Baza podstawowa"; + +/* Pod memory initialized */ +"Memory initialized" = "Zainicjowano pamięć"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Przenieś się w nowe miejsce z dala od innych POD'ów i spróbuj ponownie."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alert wielu poleceń"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Brak alertów"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nie są używane żadne przypomnienia."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Brak usterek"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Brak insuliny"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Brak POD'a"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Brak sparowanego PODa"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nie znaleziono POD'a"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Brak odpowiedzi z PODa"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Brak dostępnego RileyLink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normalny"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Za mało danych"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Wykryto niedrożność"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Wykryto niedrożność"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Sparowany"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Parowanie zakończone"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Błąd analizy: %1$@ w (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Używaj tylko oryginalny POD w zasięgu sygnału albo dezaktywuj oryginalny POD"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Umieść PODa bliżej RileyLink i spróbuj ponownie"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Dokończ parowanie POD'a."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Sparuj nowego PODa"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Proszę przesunąć RileyLink dalej od POD'a."; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Proszę zmienić położenie RileyLink względem POD'a."; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Spróbuj zmienić położenie POD'a lub RileyLink i spróbuj ponownie"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "POD już sparowany"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "POD już napełniony"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Błąd POD'a"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Alarm informujący o upływie terminu ważności PODa"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Powiadomienie o upływie terminu ważności PODa"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Przypomnienie o terminie ważności POD'a"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Termin ważności POD'a upłynął"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Termin ważności POD'a upłynął"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod wygasa za %1$@ ."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Usterka PODa: 1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "POD nie znajduje się w stanie gotowości do wprowadzenia kaniuli."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "POD nie znajduje się w stanie gotowości do napełniania."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "POD wstrzymany"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Niedrożność POD'a"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Parowanie POD'a nie zostało zakończone"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "POD odtworzył sygnał zamiast odpowiedzi zwrotnej"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Upłynął termin ważności okna konfiguracji PODa"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Przypomnienie o zawieszeniu POD'a"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Słaba siła sygnału"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Napełnianie"; + +/* Pod state when priming completed */ +"Priming completed" = "Wypełnianie zakończone"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Gotowy do zaprogramowania dawki podstawowej"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Gotowy do wprowadzenia kaniuli"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Zainicjowano przypomnienie"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Wznów"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Wznów podawanie"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Wznów insulinę"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Wznów: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Zaplanowana dawka podstawowa"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Zaplanowana dawka podstawowa"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Informacja o zbliżającym się wyłączeniu"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarm o nadchodzącym wyłączeniu"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Utrata sygnału"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Zbyt wysoka siła sygnału"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Wstrzymaj"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Przypomnienie o trwającym zawieszeniu"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Upłynął czas zawieszenia"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Wstrzymaj: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Wstrzymane"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Czas zawieszenie dobiegł końca. Otwórz Loop i wznów podawanie"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Napełnianie zbiornika zakończone"; + +/* Pod power to motor activated */ +"Tank power activated" = "Zasilanie zbiornika włączone"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Tymczasowa dawka podstawowa"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Tymczasowa dawka podstawowa w toku"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Tymczasowa dawka podstawowa działa"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tymczasowa dawka podstawowa: %1$@ jedn./godz. %2$@ %3$@ %4$@ jedn. %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Okres zawieszenia podawania insuliny dobiegł końca. \n\nPodawanie można wznowić za pomocą banera na ekranie głównym lub na ekranie ustawień pompy. Ponowne przypomnienie pojawi się za 15 minut."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Czas na pompie różni się od aktualnego czasu. W ustawieniach można sprawdzić czas pompy i zsynchronizować go z aktualnym czasem."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Wykryto zmianę czasu"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Pora wymienić PODa! Termin ważności PODa upłynie za %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Znaleziono zbyt wiele POD'ów"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Spróbuj ponownie"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Niepewna"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Nieoczekiwany numer kolejnego komunikatu"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Nieoczekiwana zmiana POD'a"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Nieoczekiwana odpowiedź PODa"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Nieznany błąd POD'a %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Nieznana wartość (%1$@) dla typu %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Weryfikacja nie powiodła się: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Poczekaj na zakończenie istniejącego bolusa lub anuluj bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Poczekaj na zakończenie istniejącej dawki podstawowej lub wstrzymaj, aby anulować"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Poczekaj na przypomnienie o parowaniu"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..b7097c6833 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,189 @@ +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarme de desligamento automático"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Abaixo de 50 unidades"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus em andamento"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Entregando Bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Aplicando bolus com basal temp"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Inserindo Cânula"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Certo"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Desativado"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Reservatório vazio"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Resposta vazia do pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Ativado"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Evento de erro registrado, desligando"; + +/* Description for expiration alert */ +"Expiration alert" = "Alerta de expiração"; + +/* Description for finish setup */ +"Finish setup " = "Concluir configuração"; + +/* Pod inititialized */ +"Initialized" = "Inicializado"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Falha interna do pod %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusInterrompido: %1$@ U (%2$@ U agendado) %3$@ %4$@ %5$@"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Alarme de baixo reservatório"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Verifique se o seu RileyLink está próximo e ligado"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Sem alertas"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Nenhum pod emparelhado"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Nenhuma resposta do pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Nenhum RileyLink disponível"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Oclusão detectada"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod status after pairing */ +"Paired" = "Emparelhado"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Traga seu pod para mais perto do RileyLink e tente novamente"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Emparelhe um novo pod"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod já emparelhado"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod já preparado"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Alarme de expiração do pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Aviso de Expiração do Pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod expirado"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Falha no Pod: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "O Pod não está pronto para a inserção da cânula."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "O Pod não está em um estado pronto para preparação."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "O pod está suspenso"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "A janela de configuração do pod expirou"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Preparando"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Pronto para programação basal"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pronto para inserir a cânula"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Retomar: %1$@ %2$@"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Basal Agendado"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarme de desligamento iminente"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspenso"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Enchimento do tanque concluído"; + +/* Pod power to motor activated */ +"Tank power activated" = "Alimentação do tanque ativada"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Basal temporária em andamento"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Executando basal temporária"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemp: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Hora de substituir o seu pod! Seu pod expirará em %1$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Incerto"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Resposta inesperada do pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Falha desconhecida do pod %1$03d"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Aguarde a conclusão do bolus existente ou cancele-o"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Aguarde até que a basal temp existente termine ou suspenda para cancelar"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Aguardando lembrete de emparelhamento"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/ro.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..99c8c7c98a --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inactiv)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" are o baterie scăzută"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ de insulină sau mai puțin rămase în Pod. Schimbați Pod-ul în curând."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Timpul de activare a fost depășit"; + +/* Description for auto-off */ +"Auto-off" = "Oprire automată"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Alarmă Auto-off"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazală inițializată"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Sub 50 de unități"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus în derulare"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolus în derulare"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolus în derulare cu rata bazală temporară"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Se inserează canula"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Doză confirmată"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Schimbați Pod-ul acum. Administrarea insulinei se va opri într-o oră."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Schimbați Pod-ul acum. Pod-ul a fost activ timp de 72 de ore."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Eroare comandă %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Problemă de comunicații"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problemă de comunicare: comandă nerecunoscută în așteptare."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Mementourile de confirmare vor suna pentru comenzile pe care le inițiați, precum bolus, anualarea bolusului, suspendare, reluare, salvarea mementourilor de confirmare etc. Când Loop ajustează automat administrarea, nu sunt folosite mementouri de confirmare."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Mementourile de confirmare vor suna atunci când Loop ajustează automat administrare, precum și pentru comenzile pe care le inițiați."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Eroare critică Pod"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Interferență posibilă. Vă rugăm să vă mutați într-o zonă nouă"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Dezactivat"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Dezactivat"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Rezervor gol"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Rezervor gol"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Răspuns gol primit de la Pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Activat"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Eroare înregistrată în jurnal, se oprește"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Aviz de expirare"; + +/* Description for expiration alert */ +"Expiration alert" = "Alertă expirare"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Prelungit"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Bolus prelungit activat"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Bolus prelungit activ împreună cu bazală temporară"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "A avut loc un eveniment de eroare"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Finalizați deactivarea"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Finalizați asocierea"; + +/* Description for finish setup */ +"Finish setup " = "Finalizare setare"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Memento pentru finalizarea configurării"; + +/* Pod inititialized */ +"Initialized" = "Inițializat"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Se inserează canula"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Administrarea de insulină s-a oprit. Schimbați Pod-ul acum."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Administrarea insulinei suspendată"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Tipul de insulină nu este configurat"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Defecțiune Pod internă %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusÎntrerupt: %1$@ U (%2$@ U planificat) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Adresă invalidă 0x%1$x. Se aștepta 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Adresă invalidă: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "CRC invalid"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Setare invalidă"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Rezervor scăzut"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Rezervor scăzut"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Avertizare de rezervor scăzut (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Alarmă nivel scăzut rezervor"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Baterie RileyLink scăzută"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Asigurați-vă că Pod-ul este umplut și în apropiere."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropriere"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Bazală manuală"; + +/* Pod memory initialized */ +"Memory initialized" = "Memorie inițializată"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Mutați-vă într-o zonă nouă, departe de orice alte Pod-uri și încercați din nou."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Alertă de comandă multiplă"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Nicio alertă"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nu se folosesc mementouri de confimare."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Nicio defecțiune"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Fără insulină"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Niciun Pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Niciun Pod asociat"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nu s-au găsit Pod-uri"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Nu s-a primit răspuns de la Pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Nu există un RileyLink disponibil"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Nu sunt suficiente date"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Ocluzie detectată"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Ocluzie detectată"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ok"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Asociat"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Asociere finalizată"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Eroare de parsare: %1$@ în ( %2$@ )"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Vă rugăm să aduceți doar Pod-ul inițial în rază de acțiune sau dezactivați Pod-ul inițial"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Apropiați Pod-ul de RileyLink și încercați din nou"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Vă rugăm să terminați asocierea Pod-ului."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Asociați un Pod nou"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Vă rugăm să poziționați RileyLink mai departe de pod"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Va rugăm să poziționați RileyLink mai aproape de pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Vă rugăm să încercați să repoziționați pod-ul sau RileyLink și să încercați din nou"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod deja asociat"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod deja amorsat"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Eroare Pod"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Alarmă expirare Pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Notificare expirare Pod"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Memento pentru expirarea Pod-ului"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod-ul a expirat."; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Expirat"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod-ul expiră în %1$@."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Defecțiune Pod: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod-ul nu este pregătit pentru inserarea canulei."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod nu este pregătit pentru amorsare."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod-ul este suspendat"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Ocluzie Pod"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Asocierea Pod-ului este nefinalizată."; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod-ul a trimis o confirmare în loc de răspuns"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Intervalul de timp în care se poate seta Pod-ul a expirat"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Memento pentru Pod-ul suspendat"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Putere slabă a semnalului"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Se amorsează"; + +/* Pod state when priming completed */ +"Priming completed" = "Inițiere finalizată"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Pregătit pentru programarea bazalelor"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pregătit pentru inserarea canulei"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Memento inițializat"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Reluați"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Reluați administrarea de insulină"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Reluați administrarea de insulină"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Reluare: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Bazala programată"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Bazală programată"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Oprirea iminentă"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Alarmă de oprire iminentă"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Pierdere de semnal"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Puterea semnalului este prea mare"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Suspendați"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Memento pentru suspendarea în curs"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Timpul de suspendare a expirat"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Suspendare: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Suspendat"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Timpul de suspendare a expirat. Deschideți aplicația și reluați."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Umplere rezervor completă"; + +/* Pod power to motor activated */ +"Tank power activated" = "Putere motor rezervor activată"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Bazală temporară"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Bazală temporară în curs de rulare"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Bazala temporară este în curs de rulare"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalăTemporară: %1$@ U/oră %2$@ %3$@ %4$@ U %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Perioada de suspendarea a administrării de insulină s-a încheiat.\n\nPuteți relua administrarea din bannerul de pe ecranul principal sau de pe ecranul de setări al pompei. Vi se va aminti din nou în 15 minute."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Ora de pe pompă este diferită de ora actuală. Puteți revizui ora pompei și să o sincronizați cu ora actuala în meniul setări."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "S-a detectat schimbarea orei"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "E timpul să înlocuiți Pod-ul! Acesta va expira în %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Au fost găsite prea multe Pod-uri"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Încercați din nou"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Doză neconfirmată"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Mesaj neașteptat număr de ordine"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Schimbare neașteptată a podului"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Răspuns neașteptat de la Pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Defecțiune Pod neidentificată %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Valoare necunoscută ( %1$@ ) pentru tipul %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validarea a eșuat: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Așteptați finalizarea bolusului curent sau opriți bolusul"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Așteptați finalizarea bazalei temporare curente sau suspendați pentru oprirea ei"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Se așteaptă mementoul de asociere"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/ru.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..c2eb7b2a5e --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(неактивно)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\"%1$@\" имеет низкий заряд батареи"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "В поде осталось %1$@ инсулина или меньше. Замените под в ближайшее время."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Превышено время для активации"; + +/* Description for auto-off */ +"Auto-off" = "Авто выключение"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Авто отключение сигнала"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Базал инициирован"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Менее 50 единиц"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Болюс"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Подача болюса"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Болюс: %1$@ед %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Подается болюс"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Подача болюса при подаче ВБС"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Установка катетера"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Определенно"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Замените под сейчас. Подача инсулина прекратится через 1 час."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Замените под сейчас. Под активен в течение уже 72 часов."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Ошибка команды %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Проблемы со связью"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Проблема со связью: ожидается неподтвержденная команда."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Напоминания будут звучать для инициированных вами команд, таких как болюс, отмена болюса, приостановка, возобновление, напоминания о сохранении уведомлений и т.д. Когда Loop автоматически регулирует подачу инсулина, напоминания не будут использоваться."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Напоминания будут звучать, когда Loop автоматически регулирует подачу инсулина, а также для команд, которые вы инициируете."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Критическая ошибка пода"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Возможны перекрестные помехи. Пожалуйста, переместитесь на новое место"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Не активен"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Выключено"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Резервуар пуст"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Резервуар пуст"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Пустой ответ от пода"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Активировано"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Ошибка записана в лог, отключение"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Совет по истечению срока действия"; + +/* Description for expiration alert */ +"Expiration alert" = "Оповещение об истечении срока"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Растянутый"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Вводится растянутый болюс"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Продленный болюс с временной базальной скоростью"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Произошло событие неисправности"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Завершение деактивации"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Завершение сопряжения"; + +/* Description for finish setup */ +"Finish setup " = "Завершение настройки"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Напоминание о завершении настройки"; + +/* Pod inititialized */ +"Initialized" = "Активирован"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Введение катетера"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Введение инсулина остановлено. Замените Под."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Подача инсулина приостановлена"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Тип инсулина не указан"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Внутренняя ошибка пода %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Болюс прерван%1$@ ед (%2$@ ед намечено) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Неверный адрес 0x%1$x. Ожидаемый адрес 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Неверный адрес: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Неверный CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Неверная настройка"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Мало инсулина в резервуаре"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Мало инсулина в резервуаре"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Предупреждение о низком уровне резервуара (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Оповещение о малом запасе инсулина в резервуаре"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Низкий заряд батареи RileyLink"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Убедитесь, что ваш под заполнен инсулином и находится рядом."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink находится поблизости и включен"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Ручная ВБС"; + +/* Pod memory initialized */ +"Memory initialized" = "Память инициализирована"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Переместитесь на новое место подальше от других подов и повторите попытку."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Оповещение по нескольким командам"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Активных оповещений нет"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Напоминания о доверии не используются."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Ошибок нет"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Нет инсулина"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Нет пода"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Нет сопряженного пода"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Подов не найдено"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Нет ответа от пода"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Нет доступного RileyLink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Норма"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Недостаточно данных"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Обнаружена закупорка"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Обнаружена закупорка"; + +/* Action button default text for PodAlerts */ +"Ok" = "Ок"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Омнипод"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Сопряжен"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Сопряжение завершено"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Ошибка синтаксического анализа: %1$@ in (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Пожалуйста, приносите в зону действия только оригинальный под или деактивируйте оригинальный под"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Поднесите Omnipod ближе к RileyLink и попробуйте снова"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Пожалуйста, завершите сопряжение вашего пода."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Начните сопряжение с новым Omnipod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Пожалуйста, переместите RileyLink подальше от пода"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Пожалуйста, измените положение RileyLink относительно пода"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Пожалуйста, попробуйте изменить положение пода или RileyLink и повторите попытку."; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Omnipod уже сопряжен"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Omnipod уже прокачан инсулином"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Ошибка пода"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Оповещение об окончании срока работы Omnipod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Сообщение об окончании гарантийного срока Omnipod "; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Напоминание об истечении срока"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Срок работы Omnipod истек"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Под истек"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Под истекает в %1$@"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Отказ Omnipod %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Omnipod не готов к установке катетера"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Omnipod не готов к прокачиванию инсулина"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Omnipod приостановлен"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Закупорка пода"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Сопряжение с подом не выполнено"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod отправил \"ack\" вместо ответа (ему кирдык)"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Время для ввода настроек Omnipod истекло"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Напоминание о приостановке подачи инсулина"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Плохой уровень сигнала"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Прокачивание инсулина"; + +/* Pod state when priming completed */ +"Priming completed" = "Прокачка инсулина завершена"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Готов к программированию базала"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Готов к установке катетера"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Инициализация напоминания"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Возобновление"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Возобновить подачу"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Возобновить подачу"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Возобновление: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Запланированный базал"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Запланированная база"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Выключение неизбежно"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Оповещение о неизбежном выключении"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Сигнал потерян"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Слишком высокий уровень сигнала"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Приостановка"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Напоминание о приостановке подачи инсулина"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Время приостановки подачи истекло"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Приостановка: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Остановлено"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Время приостановки подачи инсулина истекло. Откройте приложение и возобновите подачу."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Заполнение резервуара Omnipod завершено"; + +/* Pod power to motor activated */ +"Tank power activated" = "Питание моторчика резервуара активировано"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "ВБС"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Пока еще работает временный базал"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Подается временный базал"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Врем базал: %1$@ ед/ч %2$@ %3$@ %4$@ ед %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Период приостановки подачи инсулина закончилось.\n\nВы можете возобновить введение инсулина с баннера на главном экране приложения или с экрана настроек вашей помпы. Через 15 минут вы получите повторное напоминание."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Время на вашей помпе отличается от текущего времени. Вы можете проверить время на помпе и синхронизировать его с текущим временем в настройках приложения."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Обнаружено изменение времени"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Пора заменить Pod - Срок годности истекает через %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Найдено слишком много подов"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Попробуйте еще раз"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Не подтверждено"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Неожиданный порядковый номер сообщения"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Неожиданная смена пода"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Неожиданный отклик Omnipod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Неизвестная неисправность Omnipod %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Неизвестное значение ( %1$@ ) для типа %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Ошибка проверки: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Дождитесь окончания подачи болюса или отмените его"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Дождитесь окончания введения текущей ВБС или остановите помпу для отмены"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Все еще ожидается сопряжение"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/sk.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..fe37d4c028 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,421 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "{neaktívne}"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "V podu zostáva %1$@ inzulínu alebo menej. Čoskoro vymeňte pod."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Čas aktivácie bol prekročený"; + +/* Description for auto-off */ +"Auto-off" = "Automatické vypnutie"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazál inciovaný"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Menej ako 50 jednotiek"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Prebieha bolus"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "\nBolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolusovanie"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Bolusovanie s dočasným bazálom"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Zavádzanie kanyly"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Zaručené"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Treba vymeniť pod. Podávanie inzulínu sa zastaví o 1 hodinu."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Vymeniť pod teraz. Pod bol aktívny 72 hodín."; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "Problém s komunikáciou: Čaká sa na potvrdenie príkazu."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Pripomienky spoľahlivosti zaznejú pri príkazoch, ktoré spustíte, ako je bolus, zrušenie bolusu, pozastavenie, obnovenie, uloženie upozornení atď. Keď Loop automaticky upraví podanie, nepoužijú sa žiadne pripomenutia spoľahlivosti."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Keď Loop automaticky upraví podávanie, ako aj prevedie príkazy, ktoré iniciujete, zaznejú pripomenutia spoľahlivosti."; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Možné presluchy. Presuňte sa na iné miesto"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Deaktivované"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Prázdna nádrž"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Prázdna odpoveď z podu"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Zaprotokolovaná udalosť chyby, vypína sa"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Upozornenie na vypršanie platnosti"; + +/* Description for expiration alert */ +"Expiration alert" = "Varovanie o expirácii"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Prebieha predĺžený bolus"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Predĺžený bolus beží súčasne s dočasným bazálom"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Vyskytla sa chybová udalosť"; + +/* Description for finish setup */ +"Finish setup " = "Dokončiť nastavenie"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Dokončiť nastavenie pripomienky"; + +/* Pod inititialized */ +"Initialized" = "Inicializované"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanyla sa zavádza"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "Podávanie inzulínu sa zastavilo. Vymeňte modul teraz."; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "Typ inzulínu nie je nakonfigurovaný"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Interná chyba podu %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "PrerušenýBolus: %1$@ j (%2$@ j naplánované) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Neplatná adresa 0x %1$x . Očakáva sa 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Neplatná adresa: ( %1$@ )"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Neplatný kód CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Neplatné nastavenie"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Nízka hladina v rezervoári"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Nízka hladina v rezervoári"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Nízka hladina v rezervoári (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Nízka hladina v rezervoári"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Nízky stav batérie RileyLinku"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Uistite sa, že je váš pod naplnený a v blízkosti."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Uistite sa, že je váš RileyLink v blízkosti a je zapnutý"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuálny bazál"; + +/* Pod memory initialized */ +"Memory initialized" = "Pamäť inicializovaná"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Presuňte sa ďalej od ostatných modulov a skúste znova."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Upozornenie na viacero príkazov"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Žiadne upozornenia"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Nepoužívajú sa žiadne pripomenutia spoľahlivosti."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Žiadne chyby"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Žiadny inzulín"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Žiadny pod"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Nie je spárovaný žiadny pod"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Nenašiel sa žiadny pod"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Žiadna odpoveď z podu"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Nie je k dispozícii žiadny RileyLink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normálny"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Nedostatok dát"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Zistená oklúzia"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Zistená oklúzia"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "jednoNepoužité"; + +/* Pod status after pairing */ +"Paired" = "Spárované"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Párovanie je dokončené"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Prosím, majte iba pôvodný pod v dosahu alebo deaktivujte pôvodný pod"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Priblížte pod k RileyLinku a skúste to znova"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Dokončite párovanie podu."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Spárujte nový pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Premiestnite RileyLink ďalej od podu"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Zmeňte polohu RileyLink vzhľadom k podu"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Skúste premiestniť modul alebo RileyLink a skúste znova"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod je už spárovaný"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod je už pripravený"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Chyba podu"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Oznámenie o expirácii podu"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Oznámenie o expirácii podu"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod vypršal"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod expiroval"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Chyba podu: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod nie je v stave pripravenom na zavedenie kanyly."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pumpu nie je v tomto stave možné pripraviť."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod je pozastavený"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Oklúzia podu"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Párovanie podu nebolo dokončené"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod poslal potvrdenie namiesto odpovede "; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Okno nastavenia podov vypršalo"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pripomenutie pozastaveného podu"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Slabá sila signálu"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Príprava podu"; + +/* Pod state when priming completed */ +"Priming completed" = "Príprava podu dokončená"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Pripravené na programovanie bazálu"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pripravené na zavedenie kanyly"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Pripomienka bola inicializovaná"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "Obnoviť podávanie inzulínu"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "Obnoviť podávanie inzulínu"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Naplánovaný bazál "; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Naplánovaný bazál"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Vypnutie každú chvilu"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Varovanie bezprostredného vypnutia"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Strata signálu"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Príliš vysoká sila signálu"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Pozastavenie"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Pripomienka prebiehajúceho pozastavenia"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Čas pozastavenia vypršal"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pozastaviť: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pozastavené"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Čas pozastavenia vypršal. Otvorte aplikáciu a pokračujte."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Plnenie nádrže dokončené"; + +/* Pod power to motor activated */ +"Tank power activated" = "Napájanie nádrže je aktivované"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Dočasný bazál"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Prebieha dočasný bazál"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Prebieha dočasný bazál"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "DočasBazál: %1$@ j/hod %2$@ %3$@ %4$@ j %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Obdobie pozastavenia inzulínu sa skončilo.\n\nPodávanie inzulínu môžete obnoviť z bannera na domovskej obrazovke alebo z obrazovky nastavení pumpy. Pripomienka sa vám znova zobrazí o 15 minút."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Čas na pumpe sa líši od aktuálneho času. V nastaveniach môžete skontrolovať čas pumpy a synchronizovať sa s aktuálnym časom."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "triNepoužité"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Zistila sa zmena času"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Je čas vymeniť pod! Platnosť vášho podu vyprší o %1$@"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Našlo sa príliš veľa podov"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Skúste znova"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "dveNepoužité"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Neisté"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Neočakávané poradové číslo správy"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Neočakávaná zmena podu"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Neočakávaná odpoveď z podu"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Neznáma chyba podu %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Neznáma hodnota ( %1$@ ) pre typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Overenie zlyhalo: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Počkajte na dokončenie bolusu alebo bolus zrušte"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Počkajte, kým sa dokončí dočasný bazál, alebo ho zrušte"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Čaká sa na pripomienku párovania"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/sv.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..c7a2e5e140 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,308 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = " (inaktiv)"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Tid för aktivering överskriden"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-av larm"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Basal initierad"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Under 50 enheter"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus pågår"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Ger bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Ger bolus med temporär basal"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Kanyl förs in"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Säker"; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Kommandofel %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "Kommandoproblem"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Inaktiverad"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Podfel, tom reservoarl"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Inget svar från pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "På"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Felhändelse loggad, stänger ned"; + +/* Description for expiration alert */ +"Expiration alert" = "Larm om utgångsdatum"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Felhändelse inträffade"; + +/* Description for finish setup */ +"Finish setup " = "Inställning färdig"; + +/* Pod inititialized */ +"Initialized" = "Pod initialiserad"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanyl förs in"; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "Insulintillförsel pausad"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Internt podfel %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AvbrutenBolus: %1$@ E (%2$@ E schemalagd) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Ogiltig adress 0x%1$x. Förväntade 0x%2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Ogiltig adress: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Ogiltigt CRC"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Låg reservoarvolym"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Larm vid låg reservoarvolym"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära och påslagen"; + +/* Pod memory initialized */ +"Memory initialized" = "Minne initierat"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Inga larm"; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Inga fel"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "Inget insulin"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Ingen Podd"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Ingen parkopplad"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Inget svar från pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Ingen RileyLink tillgänglig"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Inte tillräckligt med data"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Ocklusion upptäckt"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "oneNotUsed"; + +/* Pod status after pairing */ +"Paired" = "Parkopplad"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Ha endast din ursprungliga podd inom räckvidd eller inaktivera ursprunglig podd"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "För din pod närmare din RileyLink och försök igen"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Var god parkoppla ny pod"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Flytta din RileyLink längre från podden"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Flytta din RileyLink i förhållande till podden"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Pröva att flytta på podden eller din RileyLink och försök igen"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod redan parkopplad"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod redan fylld"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Larm för utgångsdatum för pod"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Notis om utgångsdatum för pod"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod har utgått"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Poddens utgångsdatum passerat"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Podfel: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod är inte klar för att föra in kanyl"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod är inte klar för att fyllas"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod är pausad"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Podd skickade ack istället för svar"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Tid för podinställning är överskriden"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Dålig signalstyrka"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Pod fylls på"; + +/* Pod state when priming completed */ +"Priming completed" = "Podd har fyllts färdigt med insulin"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Klar för programmering av basal"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Klar att föra in kanyl"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Påminnelse initierad"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Återuppta: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Schemalagd basal"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Schemalagd basal"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Larm för omedelbar avstängning"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Signalstyrka för hög"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Pausa: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Pausad"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Pod har fyllts klart"; + +/* Pod power to motor activated */ +"Tank power activated" = "Ström till motor för behållare aktiverad"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Temporär basal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Temp basal pågår redan"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Temp basal pågår"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ E/timme %2$@ %3$@ %4$@ E %5$@"; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "threeNotUsed"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Byt din pod! Din pod går ut om %1$@"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Försök igen"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "twoNotUsed"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Osäker"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Oväntat meddelandesekvensnummer"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Oväntat poddbyte"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Oväntat svar från din pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Okänt podfel %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "Okänt värde (%1$@) av typ %2$@"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Validering misslyckades: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Vänta på att pågående bolus är färdig, eller avbryt bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Vänta på nuvarande temporära basal, eller pausa för att avbryta"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Väntar på påminnelse för parkoppling"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/tr.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..6d955f5559 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,475 @@ +/* Description for an inactive alert modifier */ +" (inactive)" = "(etkin değil)"; + +/* Format string for low battery alert body for RileyLink. (1: device name) */ +"\"%1$@\" has a low battery" = "\" %1$@ \" pili zayıf"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for alert content body for lowReservoir pod alert. (1: reminder value) */ +"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insülin veya daha az kaldı. Yakında Pod'u değiştirin."; + +/* Format string for activation time exceeded + Pod state when activation not completed in the time allowed */ +"Activation time exceeded" = "Aktivasyon süresi aşıldı"; + +/* Description for auto-off */ +"Auto-off" = "Otomatik kapanma"; + +/* Description for auto-off alarm */ +"Auto-off alarm" = "Oto-kapanma alarmı"; + +/* Pod state when basal initialized */ +"Basal initialized" = "Bazal başlatıldı"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "50 ünitenin altında"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Bolus devam ediyor"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@Ü %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Bolus iletiliyor"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Geçici bazal ile bolus iletiliyor"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Kanül takma"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Kesin"; + +/* Alert content body for podExpireImminent pod alert */ +"Change Pod now. Insulin delivery will stop in 1 hour." = "Pod'u şimdi değiştirin. İnsülin iletimi 1 saat içinde duracaktır."; + +/* Alert content body for podExpiring pod alert */ +"Change Pod now. Pod has been active for 72 hours." = "Pod'u şimdi değiştirin. Pod 72 saattir aktif."; + +/* Format string for invalid message error code (1: error code number) */ +"Command error %1$u" = "Komut hatası %1$u"; + +/* Status highlight that delivery is uncertain. */ +"Comms Issue" = "İletişim Sorunu"; + +/* Error message when command is rejected because an unacknowledged command is pending. */ +"Communication issue: Unacknowledged command pending." = "İletişim sorunu: Onaylanmamış komut beklemede."; + +/* Description for BeepPreference.manualCommands */ +"Confidence reminders will sound for commands you initiate, like bolus, cancel bolus, suspend, resume, save notification reminders, etc. When Loop automatically adjusts delivery, no confidence reminders are used." = "Emniyet hatırlatıcıları, bolus, bolus iptali, askıya alma, devam ettirme, bildirim hatırlatıcılarını kaydetme gibi başlattığınız komutlar için çalacaktır. Loop iletimi otomatik olarak ayarladığında emniyet hatırlatıcıları kullanılmaz."; + +/* Description for BeepPreference.extended */ +"Confidence reminders will sound when Loop automatically adjusts delivery as well as for commands you initiate." = "Emniyet hatırlatıcıları, Başlattığınız komutların yanı sıra Loop iletimi otomatik olarak ayarladığında çalacaktır."; + +/* The title for AlarmCode.other notification */ +"Critical Pod Error" = "Kritik Pod Hatası"; + +/* Recovery suggestion when unexpected address received */ +"Crosstalk possible. Please move to a new location" = "Karışma mevcut. Lütfen yer değiştririn."; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Devre dışı"; + +/* Title string for BeepPreference.silent */ +"Disabled" = "Devre Dışı"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Boş rezervuar"; + +/* The title for Empty Reservoir alarm notification */ +"Empty Reservoir" = "Boş Rezervuar"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Pod'dan boş yanıt"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Etkin"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Hata olayı kaydedildi, kapatılıyor"; + +/* Description for expiration advisory */ +"Expiration advisory" = "Süre sonu tavsiyesi"; + +/* Description for expiration alert */ +"Expiration alert" = "Süre sonu uyarısı"; + +/* Title string for BeepPreference.extended */ +"Extended" = "Yayma"; + +/* Delivery status when extended bolus is running */ +"Extended bolus running" = "Yayma bolus çalışıyor"; + +/* Delivery status when extended bolus and temp basal is running */ +"Extended bolus running with temp basal" = "Geçici bazal ile çalışan yayma bolus"; + +/* Pod state when fault event has occurred */ +"Fault event occurred" = "Hata meydana geldi"; + +/* Status highlight that when pod is deactivating. */ +"Finish Deactivation" = "Devre Dışı Bırakmayı Bitir"; + +/* Status highlight that when pod is activating. */ +"Finish Pairing" = "Eşleştirmeyi Bitir"; + +/* Description for finish setup */ +"Finish setup " = "Kurulumu bitir"; + +/* Description for finish setup reminder */ +"Finish setup reminder" = "Hatırlatıcı kurulumunu bitir"; + +/* Pod inititialized */ +"Initialized" = "Başlatıldı"; + +/* Pod state when inserting cannula */ +"Inserting cannula" = "Kanül yerleştiriliyor"; + +/* The default notification body for AlarmCodes */ +"Insulin delivery stopped. Change Pod now." = "İnsülin iletimi durdu. Pod'u şimdi değiştirin."; + +/* Status highlight that insulin delivery was suspended. */ +"Insulin Suspended" = "İnsülin Askıya Alındı"; + +/* Error description for OmniBLEPumpManagerError.insulinTypeNotConfigured */ +"Insulin type not configured" = "İnsülin tipi yapılandırılmamış"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Dahili pod hatası %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KesintiliBolus: %1$@ Ü (%2$@ Ü planlandı) %3$@ %4$@ %5$@"; + +/* Error message for when unexpected address is received (1: received address) (2: expected address) */ +"Invalid address 0x%x. Expected 0x%x" = "Geçersiz adres 0x %1$x . Beklenen 0x %2$x"; + +/* Description for MessageError invalidAddress */ +"Invalid address: (%1$@)" = "Geçersiz adres: (%1$@)"; + +/* Description for MessageError invalidCrc */ +"Invalid CRC" = "Geçersiz CRC"; + +/* Error description for OmniBLEPumpManagerError.invalidSetting */ +"Invalid Setting" = "Geçersiz Ayar"; + +/* Pod state when running with fifty or less units */ +"Low reservoir" = "Düşük rezervuar"; + +/* Alert content title for lowReservoir pod alert */ +"Low Reservoir" = "Düşük Rezervuar"; + +/* Format string for description for low reservoir advisory (1: reminder units) */ +"Low reservoir advisory (%1$gU)" = "Düşük rezervuar tavsiyesi (%1$gU)"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Düşük rezervuar uyarı alarmı"; + +/* Title for RileyLink low battery alert */ +"Low RileyLink Battery" = "Düşük RileyLink Pili"; + +/* Recovery suggestion for PodCommsError.noPodsFound */ +"Make sure your pod is filled and nearby." = "Podunuzun dolu ve yakında olduğundan emin olun."; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "RileyLink'inizin yakında olduğundan ve açık olduğundan emin olun"; + +/* Status highlight when manual temp basal is running. */ +"Manual Basal" = "Manuel Bazal"; + +/* Pod memory initialized */ +"Memory initialized" = "Bellek başlatıldı"; + +/* Recovery suggestion for PodCommsError.tooManyPodsFound */ +"Move to a new area away from any other pods and try again." = "Diğer podlardan uzakta yeni bir alana gidin ve tekrar deneyin."; + +/* Alert content body for multiCommand pod alert + Alert content title for multiCommand pod alert */ +"Multiple Command Alert" = "Çoklu Komut Uyarısı"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Uyarı yok"; + +/* Description for BeepPreference.silent */ +"No confidence reminders are used." = "Emniyet hatırlatıcıları kullanılmaz."; + +/* Description for Fault Event Code .noFaults */ +"No faults" = "Hata yok"; + +/* Status highlight message for emptyReservoir alarm. + Status highlight that a pump is out of insulin. */ +"No Insulin" = "İnsülin yok"; + +/* Status highlight that when no pod is paired. */ +"No Pod" = "Pod Yok"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Eşleştirilmiş pod yok"; + +/* Error message for PodCommsError.noPodsFound */ +"No pods found" = "Pod bulunamadı"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Pod'dan yanıt yok"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "RileyLink yok"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Normal"; + +/* Description for MessageError notEnoughData */ +"Not enough data" = "Yeterli veri yok"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Tıkanma tespit edildi"; + +/* The title for Occlusion alarm notification */ +"Occlusion Detected" = "Tıkanma tespit edildi"; + +/* Action button default text for PodAlerts */ +"Ok" = "Tamam"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "Tamam"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod state oneNotUsed */ +"oneNotUsed" = "birNotKullanıldı"; + +/* Pod status after pairing */ +"Paired" = "Eşleştirilmiş"; + +/* Pod status when pairing completed */ +"Pairing completed" = "Eşleştirme tamamlandı"; + +/* Description for MessageError parsingError. (1: decription of error), (2: hexadecimal data starting at offset) */ +"Parsing Error: %1$@ in (%2$@)" = "Ayrıştırma Hatası: %1$@ içinde (%2$@)"; + +/* Recovery suggestion on unexpected pod change */ +"Please bring only original pod in range or deactivate original pod" = "Lütfen menzile yalnızca orijinal podu getirin veya orijinal podu devre dışı bırakın"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Lütfen podunuzu RileyLink'e yaklaştırın ve tekrar deneyin"; + +/* Alert content body for finishSetupReminder pod alert */ +"Please finish pairing your pod." = "Lütfen podunuzu eşleştirmeyi bitirin."; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Lütfen yeni bir pod eşleştirin"; + +/* Recovery suggestion when pairing signal strength is too high */ +"Please reposition the RileyLink further from the pod" = "Lütfen RileyLink'i pod'dan daha uzağa yerleştirin"; + +/* Recovery suggestion when pairing signal strength is too low */ +"Please reposition the RileyLink relative to the pod" = "Lütfen RileyLink'i pod'a göre yeniden konumlandırın"; + +/* Recovery suggestion when no response is received from pod */ +"Please try repositioning the pod or the RileyLink and try again" = "Lütfen pod'un veya RileyLink'in konumunu değiştirip tekrar deneyin"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod zaten eşleştirilmiş"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod zaten hazırlandı"; + +/* Status highlight message for other alarm. */ +"Pod Error" = "Pod Hatası"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pod sona erme uyarı alarmı"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pod Süre Sonu Bildirimi"; + +/* Alert content title for userPodExpiration pod alert */ +"Pod Expiration Reminder" = "Pod Süre Sonu Hatırlatıcısı"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod'un süresi doldu"; + +/* Alert content title for podExpireImminent pod alert + Alert content title for podExpiring pod alert + Status highlight message for podExpired alarm. + The title for Pod Expired alarm notification */ +"Pod Expired" = "Pod Süresi Doldu"; + +/* Format string for alert content body for userPodExpiration pod alert. (1: time until expiration) */ +"Pod expires in %1$@." = "Pod'un süresi %1$@ içinde doluyor."; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod Hatası: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod, kanül yerleştirmeye hazır durumda değil."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod dolum için hazır durumda değil."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod askıya alındı"; + +/* Status highlight message for occlusion alarm. */ +"Pod Occlusion" = "Pod Tıkanıklığı"; + +/* Alert content title for finishSetupReminder pod alert */ +"Pod Pairing Incomplete" = "Pod Eşleştirme Tamamlanmadı"; + +/* Error message shown when pod sends ack instead of response */ +"Pod sent ack instead of response" = "Pod yanıt yerine ack gönderdi"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Pod kurulum penceresinin süresi doldu"; + +/* Description for pod suspended reminder */ +"Pod suspended reminder" = "Pod askıya alındı hatırlatıcısı"; + +/* Format string for poor pod signal strength */ +"Poor signal strength" = "Zayıf sinyal gücü"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Hazırlanıyor…"; + +/* Pod state when priming completed */ +"Priming completed" = "Hazırlama tamamlandı"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Bazal programlama için hazır"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Kanül yerleştirmeye hazır"; + +/* Pod pairing reminder initialized */ +"Reminder initialized" = "Hatırlatıcı başlatıldı"; + +/* Pump Event title for UnfinalizedDose with doseType of .resume */ +"Resume" = "Devam et"; + +/* Recovery suggestion when pod is suspended */ +"Resume delivery" = "İletimi Devam Ettir"; + +/* Alert content title for suspendEnded pod alert */ +"Resume Insulin" = "İnsüline Devam Et"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Devam: %1$@ %2$@"; + +/* Delivery status when scheduled basal is running */ +"Scheduled basal" = "Programlanan Bazal"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Programlanan Bazal"; + +/* Description for shutdown imminent */ +"Shutdown imminent" = "Yakında Kapanma"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Yakında kapanma alarmı"; + +/* Status highlight when communications with the pod haven't happened recently. */ +"Signal Loss" = "Sinyal Kaybı"; + +/* Format string for pod signal strength too high */ +"Signal strength too high" = "Sinyal gücü çok yüksek"; + +/* Pump Event title for UnfinalizedDose with doseType of .suspend */ +"Suspend" = "Askıya al"; + +/* Alert content body for suspendInProgress pod alert + Alert content title for suspendInProgress pod alert */ +"Suspend In Progress Reminder" = "Devam Eden Hatırlatıcıyı Askıya Al"; + +/* Description for suspend time expired */ +"Suspend time expired" = "Askıya alma süresi doldu"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Askıya alma: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Askıya alındı"; + +/* Alert notification body for suspendEnded pod alert user notification */ +"Suspension time is up. Open the app and resume." = "Askıya alma süresi doldu. Uygulamayı açın ve devam edin."; + +/* Pod tank fill completed */ +"Tank fill completed" = "Hazne dolumu tamamlandı"; + +/* Pod power to motor activated */ +"Tank power activated" = "Hazne gücü etkinleştirildi"; + +/* Pump Event title for UnfinalizedDose with doseType of .tempBasal */ +"Temp Basal" = "Geçici Bazal"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Geçici bazal devam ediyor"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Geçici bazal çalışıyor"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "GeçiciBazal: %1$@ Ü/saat %2$@ %3$@ %4$@ Ü %5$@"; + +/* Alert content body for suspendEnded pod alert */ +"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "İnsülin askıya alma süresi sona ermiştir.\n\nAna ekran üzerinden veya pompa ayarları ekranınızdan iletime devam edebilirsiniz. 15 dakika içinde tekrar hatırlatılacaktır."; + +/* Alert content body for timeOffsetChangeDetected pod alert */ +"The time on your pump is different from the current time. You can review the pump time and and sync to current time in settings." = "Pompanızdaki saat, geçerli saatten farklı. Pompa süresini gözden geçirebilir ve ayarlarda geçerli saate eşitleyebilirsiniz."; + +/* Pod state threeNotUsed */ +"threeNotUsed" = "üçNotKullanıldı"; + +/* Alert content title for timeOffsetChangeDetected pod alert */ +"Time Change Detected" = "Zaman Değişikliği Algılandı"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Pod'unuzu değiştirme zamanı! Pod'un süresi %1$@ içinde dolacak"; + +/* Error message for PodCommsError.tooManyPodsFound */ +"Too many pods found" = "Çok fazla pod bulundu"; + +/* Recovery suggestion when ack received instead of response */ +"Try again" = "Tekrar deneyin"; + +/* Pod state twoNotUsed */ +"twoNotUsed" = "ikiNotKullanıldı"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Belirsiz"; + +/* Description for MessageError invalidSequence */ +"Unexpected message sequence number" = "Beklenmeyen mesaj sıra numarası"; + +/* Format string for unexpected pod change */ +"Unexpected pod change" = "Beklenmeyen pod değişikliği"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Pod'dan beklenmeyen yanıt"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Bilinmeyen pod hatası %1$03d"; + +/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ +"Unknown Value (%1$@) for type %2$@" = "%2$@ tipi için Bilinmeyen Değer ( %1$@ )"; + +/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ +"Validation failed: %1$@" = "Doğrulama başarısız oldu: %1$@"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Mevcut bolusun bitmesini bekleyin veya bolusu iptal edin"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Mevcut geçici bazalın bitmesini bekleyin veya iptal etmek için askıya alın"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Eşleştirme hatırlatıcısı bekleniyor"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/vi.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..5700365dd7 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,189 @@ +/* Description for auto-off alarm */ +"Auto-off alarm" = "Auto-off alarm"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "Dưới 50 units"; + +/* Pump Event title for UnfinalizedDose with doseType of .bolus */ +"Bolus" = "Bolus"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "Liều Bolus đang được thực hiện"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "Đang tiến hành bolus"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "Đang thực hiện liều basal tạm thời"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "Đang gắn Cannula"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Chắc chắn"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "Đã hủy kích hoạt"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "Ngăn chứa insulin rỗng"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Không có phản hồi từ pod"; + +/* Title string for BeepPreference.manualCommands */ +"Enabled" = "Được cấp quyền"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Lỗi đăng nhập, đang tắt"; + +/* Description for expiration alert */ +"Expiration alert" = "Thông báo hết hạn"; + +/* Description for finish setup */ +"Finish setup " = "Hoàn tất cấu hình"; + +/* Pod inititialized */ +"Initialized" = "Đã được khởi tạo"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Lỗi bên trong pod %1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "Báo động ngăn chứa insulin thấp"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "Không có cảnh báo nào"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "Không có pod nào được kết nối"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Không có tín hiệu phản hồi từ pod"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "Không tìm thấy RileyLink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "Bình thường"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "Occlusion detected"; + +/* Acknowledge button label for RileyLink low battery alert + Alert acknowledgment OK button */ +"OK" = "OK"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod status after pairing */ +"Paired" = "Đã được ghép đôi"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "Đề nghị để pod gần với Rileylink và thử lại lần nữa"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "Đề nghị ghép đôi pod mới"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod đã được ghép đôi"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod đã được mồi"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Cảnh báo pod hết hạn"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Thông báo pod hết hạn"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod đã hết hạn"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod lỗi: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod không sẵn sàng để gắn cannula."; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod không sẵn sàng để mồi."; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod bị tạm ngưng"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Cửa sổ cấu hình pod hết hạn"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "Đang mồi"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "Sẵn sàng cho việc tính toán liều basal"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Sẵn sàng cho việc gắn cannula"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "Tái lập: %1$@ %2$@"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "Tắt báo động sắp xảy ra"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "Tạm ngưng: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "Đã tạm ngưng"; + +/* Pod tank fill completed */ +"Tank fill completed" = "Hoàn tất nạp"; + +/* Pod power to motor activated */ +"Tank power activated" = "Pod được kích hoạt"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "Liều basal tạm thời đang tiến hành"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "Liều basal tạm thời đang thực hiện"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/giờ %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Thời gian thay pod của bạn! Pod của bạn sẽ hết hạn trong %1$@"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "Không chắc chắn"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Phản hồi bất thường từ pod"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Lỗi không xác định của pod %1$03d"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "Chờ đợi liệu bolus hiện tại hoàn tất hoặc hủy liều bolus"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "Chờ đợi liều basal tạm thời hoàn tất hoặc chọn ngưng để hủy"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "Đang chờ đợi câu thông báo ghép đôi"; + diff --git a/Dependencies/OmniKit/OmniKit/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKit/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..da8c797627 --- /dev/null +++ b/Dependencies/OmniKit/OmniKit/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,179 @@ +/* Description for auto-off alarm */ +"Auto-off alarm" = "自动关闭提醒"; + +/* Pod state when running below fifty units */ +"Below 50 units" = "胰岛素已低于50U"; + +/* Error message shown when operation could not be completed due to existing bolus in progress */ +"Bolus in progress" = "大剂量输注中"; + +/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ +"Bolus: %1$@U %2$@ %3$@ %4$@" = "大剂量: %1$@U %2$@ %3$@ %4$@"; + +/* Delivery status when bolusing */ +"Bolusing" = "注射中"; + +/* Delivery status when bolusing and temp basal is running */ +"Bolusing with temp basal" = "正在运行临时基础并输注大剂量"; + +/* Pod state when inserting cannula */ +"Cannula inserting" = "植入管路"; + +/* String describing a dose that was certainly scheduled */ +"Certain" = "Certain"; + +/* Pod state when pod has been deactivated */ +"Deactivated" = "已解除"; + +/* Description for Empty reservoir pod fault */ +"Empty reservoir" = "胰岛素储量为零"; + +/* Error message shown when empty response from pod was received */ +"Empty response from pod" = "Pod无响应"; + +/* Pod state error event logged shutting down */ +"Error event logged, shutting down" = "Pod错误已记录"; + +/* Description for expiration alert */ +"Expiration alert" = "到期提醒"; + +/* Description for finish setup */ +"Finish setup " = "完成设置"; + +/* Pod inititialized */ +"Initialized" = "初始化"; + +/* The format string for Internal pod fault (1: The fault code value) */ +"Internal pod fault %1$03d" = "Pod内部错误%1$03d"; + +/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ +"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "大剂量输注终端: %1$@ U (%2$@ U 已输注) %3$@ %4$@ %5$@"; + +/* Description for low reservoir alarm */ +"Low reservoir advisory alarm" = "储药量低"; + +/* Recovery suggestion when no RileyLink is available */ +"Make sure your RileyLink is nearby and powered on" = "确保Rileylink与Pod保持比较近的距离"; + +/* Pod alert state when no alerts are active */ +"No alerts" = "运行正常"; + +/* Error message shown when no pod is paired */ +"No pod paired" = "未配对Pod"; + +/* Error message shown when no response from pod was received */ +"No response from pod" = "Pod无响应"; + +/* Error message shown when no response from pod was received */ +"No RileyLink available" = "没有发现Rileylink"; + +/* Delivery status when basal is running + Pod state when running above fifty units */ +"Normal" = "正常"; + +/* Description for Occlusion detected pod fault */ +"Occlusion detected" = "堵管"; + +/* Generic title of the omnipod pump manager */ +"Omnipod" = "Omnipod"; + +/* Pod status after pairing */ +"Paired" = "已配对"; + +/* Recovery suggestion when no response is received from pod */ +"Please bring your pod closer to the RileyLink and try again" = "请确保Rileylink与Pod保持近距离并重试"; + +/* Recover suggestion shown when no pod is paired */ +"Please pair a new pod" = "请配对一个新的Pod"; + +/* Error message shown when user cannot pair because pod is already paired */ +"Pod already paired" = "Pod已配对"; + +/* Error message shown when prime is attempted, but pod is already primed */ +"Pod already primed" = "Pod充盈已完成"; + +/* Description for expiration advisory alarm */ +"Pod expiration advisory alarm" = "Pod到期提醒"; + +/* The title for pod expiration notification */ +"Pod Expiration Notice" = "Pod到期通知"; + +/* Description for Pod expired pod fault */ +"Pod expired" = "Pod已到期"; + +/* Format string for pod fault code */ +"Pod Fault: %1$@" = "Pod错误: %1$@"; + +/* Error message when cannula insertion fails because the pod is in an unexpected state */ +"Pod is not in a state ready for cannula insertion." = "Pod无法植入"; + +/* Error message when prime fails because the pod is in an unexpected state */ +"Pod is not in a state ready for priming." = "Pod无法充盈"; + +/* Error message action could not be performed because pod is suspended */ +"Pod is suspended" = "Pod已暂停"; + +/* Pod state when prime or cannula insertion has not completed in the time allotted */ +"Pod setup window expired" = "Pod设置超时"; + +/* Delivery status when pod is priming + Pod status when priming */ +"Priming" = "充盈中"; + +/* Pod state when ready for basal programming */ +"Ready for basal programming" = "基础率同步已就绪"; + +/* Pod state when ready for cannula insertion */ +"Ready to insert cannula" = "Pod可以进行植入操作"; + +/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ +"Resume: %1$@ %2$@" = "恢复输注: %1$@ %2$@"; + +/* Delivery status when basal is running */ +"Scheduled Basal" = "预设基础率"; + +/* Description for shutdown imminent alarm */ +"Shutdown imminent alarm" = "关闭提醒"; + +/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ +"Suspend: %1$@ %2$@" = "暂停输注: %1$@ %2$@"; + +/* Delivery status when insulin delivery is suspended */ +"Suspended" = "暂停"; + +/* Pod tank fill completed */ +"Tank fill completed" = "已向Pod注入胰岛素"; + +/* Pod power to motor activated */ +"Tank power activated" = "Pod已开启"; + +/* Error message shown when temp basal could not be set due to existing temp basal in progress */ +"Temp basal in progress" = "正在设置临时基础率"; + +/* Delivery status when temp basal is running */ +"Temp basal running" = "临时基础率正在运行"; + +/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ +"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "临时基础率: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; + +/* The format string for pod expiration notification body (1: time until expiration) */ +"Time to replace your pod! Your pod will expire in %1$@" = "Pod将在%1$@后到期,请准备更换Pod"; + +/* String describing a dose that was possibly scheduled */ +"Uncertain" = "未知"; + +/* Error message shown when empty response from pod was received */ +"Unexpected response from pod" = "Pod未知响应"; + +/* The format string for Unknown pod fault (1: The fault code value) */ +"Unknown pod fault %1$03d" = "Pod未知错误"; + +/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ +"Wait for existing bolus to finish, or cancel bolus" = "请等待大剂量输注完成,或取消大剂量输注"; + +/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ +"Wait for existing temp basal to finish, or suspend to cancel" = "请等待临时基础率结束,或暂停以取消临时基础率"; + +/* Description waiting for pairing reminder */ +"Waiting for pairing reminder" = "等待配对提醒"; + diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/main.swift b/Dependencies/OmniKit/OmniKitPacketParser/main.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitPacketParser/main.swift rename to Dependencies/OmniKit/OmniKitPacketParser/main.swift diff --git a/Dependencies/OmniKit/OmniKitPlugin/Extensions/OSLog.swift b/Dependencies/OmniKit/OmniKitPlugin/Extensions/OSLog.swift new file mode 100644 index 0000000000..b3313f0d21 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitPlugin/Extensions/OSLog.swift @@ -0,0 +1,50 @@ +// +// OSLog.swift +// OmniKitPlugin +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import os.log + +extension OSLog { + convenience init(category: String) { + self.init(subsystem: "com.randallknutson.OmniBLE", category: category) + } + + func debug(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .debug, args) + } + + func info(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .info, args) + } + + func `default`(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .default, args) + } + + func error(_ message: StaticString, _ args: CVarArg...) { + log(message, type: .error, args) + } + + private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { + switch args.count { + case 0: + os_log(message, log: self, type: type) + case 1: + os_log(message, log: self, type: type, args[0]) + case 2: + os_log(message, log: self, type: type, args[0], args[1]) + case 3: + os_log(message, log: self, type: type, args[0], args[1], args[2]) + case 4: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3]) + case 5: + os_log(message, log: self, type: type, args[0], args[1], args[2], args[3], args[4]) + default: + os_log(message, log: self, type: type, args) + } + } +} diff --git a/Dependencies/rileylink_ios/OmniKitPlugin/Info.plist b/Dependencies/OmniKit/OmniKitPlugin/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/OmniKitPlugin/Info.plist rename to Dependencies/OmniKit/OmniKitPlugin/Info.plist diff --git a/Dependencies/rileylink_ios/OmniKitPlugin/OmniKitPlugin.swift b/Dependencies/OmniKit/OmniKitPlugin/OmniKitPlugin.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitPlugin/OmniKitPlugin.swift rename to Dependencies/OmniKit/OmniKitPlugin/OmniKitPlugin.swift diff --git a/Dependencies/rileylink_ios/OmniKitTests/AcknowledgeAlertsTests.swift b/Dependencies/OmniKit/OmniKitTests/AcknowledgeAlertsTests.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitTests/AcknowledgeAlertsTests.swift rename to Dependencies/OmniKit/OmniKitTests/AcknowledgeAlertsTests.swift diff --git a/Dependencies/OmniKit/OmniKitTests/BasalScheduleTests.swift b/Dependencies/OmniKit/OmniKitTests/BasalScheduleTests.swift new file mode 100644 index 0000000000..f844356f66 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitTests/BasalScheduleTests.swift @@ -0,0 +1,527 @@ +// +// BasalScheduleTests.swift +// OmniKitTests +// +// Created by Pete Schwamb on 4/4/18. +// Copyright © 2018 Pete Schwamb. All rights reserved. +// + +import XCTest +@testable import OmniKit + +class BasalScheduleTests: XCTestCase { + + func testInsulinTableEntry() { + let entry = InsulinTableEntry(segments: 2, pulses: 300, alternateSegmentPulse: false) + // $01 $2c $01 $2c = 1 + 44 + 1 + 44 = 90 = $5a + XCTAssertEqual(0x5a, entry.checksum()) + + let entry2 = InsulinTableEntry(segments: 2, pulses: 260, alternateSegmentPulse: true) + // $01 $04 $01 $04 = 1 + 4 + 1 + 5 = 1 = $0b + XCTAssertEqual(0x0b, entry2.checksum()) + } + + func testSetBasalScheduleCommand() { + do { + // Decode 1a 12 77a05551 00 0062 2b 1708 0000 f800 f800 f800 + let cmd = try SetInsulinScheduleCommand(encodedData: Data(hexadecimalString: "1a1277a055510000622b17080000f800f800f800")!) + + XCTAssertEqual(0x77a05551, cmd.nonce) + if case SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(let currentSegment, let secondsRemaining, let pulsesRemaining, let table) = cmd.deliverySchedule { + XCTAssertEqual(0x2b, currentSegment) + XCTAssertEqual(737, secondsRemaining) + XCTAssertEqual(0, pulsesRemaining) + XCTAssertEqual(3, table.entries.count) + } else { + XCTFail("Expected ScheduleEntry.basalSchedule type") + } + } catch (let error) { + XCTFail("message decoding threw error: \(error)") + } + + // Encode + let scheduleEntry = InsulinTableEntry(segments: 16, pulses: 0, alternateSegmentPulse: true) + let table = BasalDeliveryTable(entries: [scheduleEntry, scheduleEntry, scheduleEntry]) + let deliverySchedule = SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(currentSegment: 0x2b, secondsRemaining: 737, pulsesRemaining: 0, table: table) + let cmd = SetInsulinScheduleCommand(nonce: 0x77a05551, deliverySchedule: deliverySchedule) + XCTAssertEqual("1a1277a055510000622b17080000f800f800f800", cmd.data.hexadecimalString) + } + + func testBasalScheduleCommandFromSchedule() { + // Encode from schedule + let entry = BasalScheduleEntry(rate: 0.05, startTime: 0) + let schedule = BasalSchedule(entries: [entry]) + + let cmd = SetInsulinScheduleCommand(nonce: 0x01020304, basalSchedule: schedule, scheduleOffset: .hours(8.25)) + + XCTAssertEqual(0x01020304, cmd.nonce) + if case SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(let currentSegment, let secondsRemaining, let pulsesRemaining, let table) = cmd.deliverySchedule { + XCTAssertEqual(16, currentSegment) + XCTAssertEqual(UInt16(TimeInterval(minutes: 15)), secondsRemaining) + XCTAssertEqual(0, pulsesRemaining) + XCTAssertEqual(3, table.entries.count) + let tableEntry = table.entries[0] + XCTAssertEqual(true, tableEntry.alternateSegmentPulse) + XCTAssertEqual(0, tableEntry.pulses) + XCTAssertEqual(16, tableEntry.segments) + } else { + XCTFail("Expected ScheduleEntry.basalSchedule type") + } + // 1a LL NNNNNNNN 00 CCCC HH SSSS PPPP napp napp napp napp + // 1a 12 01020304 00 0065 10 1c20 0001 f800 f800 f800 + XCTAssertEqual("1a1201020304000064101c200000f800f800f800", cmd.data.hexadecimalString) + } + + + func testBasalScheduleExtraCommand() { + do { + // Decode 130e40 00 1aea 001e8480 3840005b8d80 + + let cmd = try BasalScheduleExtraCommand(encodedData: Data(hexadecimalString: "130e40001aea001e84803840005b8d80")!) + + XCTAssertEqual(false, cmd.acknowledgementBeep) + XCTAssertEqual(true, cmd.completionBeep) + XCTAssertEqual(0, cmd.programReminderInterval) + XCTAssertEqual(0, cmd.currentEntryIndex) + XCTAssertEqual(689, cmd.remainingPulses) + XCTAssertEqual(TimeInterval(seconds: 20), cmd.delayUntilNextTenthOfPulse) + XCTAssertEqual(1, cmd.rateEntries.count) + let entry = cmd.rateEntries[0] + XCTAssertEqual(TimeInterval(seconds: 60), entry.delayBetweenPulses) + XCTAssertEqual(1440, entry.totalPulses) + XCTAssertEqual(3.0, entry.rate) + XCTAssertEqual(TimeInterval(hours: 24), entry.duration) + } catch (let error) { + XCTFail("message decoding threw error: \(error)") + } + + // Encode + let rateEntries = RateEntry.makeEntries(rate: 3.0, duration: TimeInterval(hours: 24)) + let cmd = BasalScheduleExtraCommand(currentEntryIndex: 0, remainingPulses: 689, delayUntilNextTenthOfPulse: TimeInterval(seconds: 20), rateEntries: rateEntries, acknowledgementBeep: false, completionBeep: true, programReminderInterval: 0) + + + XCTAssertEqual("130e40001aea01312d003840005b8d80", cmd.data.hexadecimalString) + } + + func testBasalScheduleExtraCommandFromSchedule() { + // Encode from schedule + let entry = BasalScheduleEntry(rate: 0.05, startTime: 0) + let schedule = BasalSchedule(entries: [entry]) + + let cmd = BasalScheduleExtraCommand(schedule: schedule, scheduleOffset: .hours(8.25), acknowledgementBeep: false, completionBeep: true, programReminderInterval: 60) + + XCTAssertEqual(false, cmd.acknowledgementBeep) + XCTAssertEqual(true, cmd.completionBeep) + XCTAssertEqual(60, cmd.programReminderInterval) + XCTAssertEqual(0, cmd.currentEntryIndex) + XCTAssertEqual(15.8, cmd.remainingPulses, accuracy: 0.01) + XCTAssertEqual(TimeInterval(minutes: 3), cmd.delayUntilNextTenthOfPulse) + XCTAssertEqual(1, cmd.rateEntries.count) + let rateEntry = cmd.rateEntries[0] + XCTAssertEqual(TimeInterval(minutes: 60), rateEntry.delayBetweenPulses) + XCTAssertEqual(24, rateEntry.totalPulses, accuracy: 0.001) + XCTAssertEqual(0.05, rateEntry.rate) + XCTAssertEqual(TimeInterval(hours: 24), rateEntry.duration, accuracy: 0.001) + } + + func testBasalExtraEncoding() { + // Encode + + let schedule = BasalSchedule(entries: [ + BasalScheduleEntry(rate: 1.05, startTime: 0), + BasalScheduleEntry(rate: 0.9, startTime: .hours(10.5)), + BasalScheduleEntry(rate: 1, startTime: .hours(18.5)) + ]) + + let hh = 0x2e + let ssss = 0x1be8 + let offset = TimeInterval(minutes: Double((hh + 1) * 30)) - TimeInterval(seconds: Double(ssss / 8)) + + // 1a LL NNNNNNNN 00 CCCC HH SSSS PPPP napp napp napp napp + // 1a 14 0d6612db 00 0310 2e 1be8 0005 f80a 480a f009 a00a + + let cmd1 = SetInsulinScheduleCommand(nonce: 0x0d6612db, basalSchedule: schedule, scheduleOffset: offset) + XCTAssertEqual("1a140d6612db0003102e1be80005f80a480af009a00a", cmd1.data.hexadecimalString) + + // 13 LL RR MM NNNN XXXXXXXX YYYY ZZZZZZZZ YYYY ZZZZZZZZ YYYY ZZZZZZZZ + // 13 1a 40 02 0096 00a7d8c0 089d 01059449 05a0 01312d00 044c 0112a880 + let cmd2 = BasalScheduleExtraCommand(schedule: schedule, scheduleOffset: offset, acknowledgementBeep: false, completionBeep: true, programReminderInterval: 0) + XCTAssertEqual("131a4002009600a7d8c0089d0105944905a001312d00044c0112a880", cmd2.data.hexadecimalString) // PDM + } + + func checkBasalScheduleExtraCommandDataWithLessPrecision(_ expected: Data, _ data: Data, line: UInt = #line) { + // The XXXXXXXX field is in thousands of a millisecond. Since we use TimeIntervals (floating point) for + // recreating the offset, we can have small errors in reproducing the the encoded output, which we really + // don't care about. + + func extractXXXXXXXX(_ data: Data) -> TimeInterval { + return TimeInterval(Double(data[6...].toBigEndian(UInt32.self)) / 1000000.0) + } + + let xxxxxxxx1 = extractXXXXXXXX(expected) + let xxxxxxxx2 = extractXXXXXXXX(data) + XCTAssertEqual(xxxxxxxx1, xxxxxxxx2, accuracy: 0.01, line: line) + + func blurXXXXXXXX(_ inStr: String) -> String { + let start = inStr.index(inStr.startIndex, offsetBy:12) + let end = inStr.index(start, offsetBy:8) + return inStr.replacingCharacters(in: start.. UINib +} + + +extension NibLoadable { + static func nib() -> UINib { + return UINib(nibName: className, bundle: Bundle(for: self)) + } +} diff --git a/Dependencies/OmniKit/OmniKitUI/Extensions/NumberFormatter.swift b/Dependencies/OmniKit/OmniKitUI/Extensions/NumberFormatter.swift new file mode 100644 index 0000000000..bcac17c04e --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Extensions/NumberFormatter.swift @@ -0,0 +1,23 @@ +// +// NumberFormatter.swift +// OmniKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension NumberFormatter { + func decibleString(from decibles: Int?) -> String? { + if let decibles = decibles, let formatted = string(from: NSNumber(value: decibles)) { + return String(format: LocalizedString("%@ dB", comment: "Unit format string for an RSSI value in decibles"), formatted) + } else { + return nil + } + } + + func string(from number: Double) -> String? { + return string(from: NSNumber(value: number)) + } +} diff --git a/Dependencies/OmniKit/OmniKitUI/Extensions/TimeInterval.swift b/Dependencies/OmniKit/OmniKitUI/Extensions/TimeInterval.swift new file mode 100644 index 0000000000..9e0e9607de --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Extensions/TimeInterval.swift @@ -0,0 +1,81 @@ +// +// TimeInterval.swift +// OmniKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeInterval { + + static func days(_ days: Double) -> TimeInterval { + return self.init(days: days) + } + + static func hours(_ hours: Double) -> TimeInterval { + return self.init(hours: hours) + } + + static func minutes(_ minutes: Int) -> TimeInterval { + return self.init(minutes: Double(minutes)) + } + + static func minutes(_ minutes: Double) -> TimeInterval { + return self.init(minutes: minutes) + } + + static func seconds(_ seconds: Double) -> TimeInterval { + return self.init(seconds) + } + + static func milliseconds(_ milliseconds: Double) -> TimeInterval { + return self.init(milliseconds / 1000) + } + + init(days: Double) { + self.init(hours: days * 24) + } + + init(hours: Double) { + self.init(minutes: hours * 60) + } + + init(minutes: Double) { + self.init(minutes * 60) + } + + init(seconds: Double) { + self.init(seconds) + } + + init(milliseconds: Double) { + self.init(milliseconds / 1000) + } + + var milliseconds: Double { + return self * 1000 + } + + init(hundredthsOfMilliseconds: Double) { + self.init(hundredthsOfMilliseconds / 100000) + } + + var hundredthsOfMilliseconds: Double { + return self * 100000 + } + + var minutes: Double { + return self / 60.0 + } + + var hours: Double { + return minutes / 60.0 + } + + var days: Double { + return hours / 24.0 + } + +} diff --git a/Dependencies/OmniKit/OmniKitUI/Extensions/TimeZone.swift b/Dependencies/OmniKit/OmniKitUI/Extensions/TimeZone.swift new file mode 100644 index 0000000000..9e4ffb6f16 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Extensions/TimeZone.swift @@ -0,0 +1,31 @@ +// +// TimeZone.swift +// OmniKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +extension TimeZone { + static var currentFixed: TimeZone { + return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())! + } + + var fixed: TimeZone { + return TimeZone(secondsFromGMT: secondsFromGMT())! + } + + /// This only works for fixed utc offset timezones + func scheduleOffset(forDate date: Date) -> TimeInterval { + var calendar = Calendar.current + calendar.timeZone = self + let components = calendar.dateComponents([.day , .month, .year], from: date) + guard let startOfSchedule = calendar.date(from: components) else { + fatalError("invalid date") + } + return date.timeIntervalSince(startOfSchedule) + } + +} diff --git a/Dependencies/rileylink_ios/OmniKitUI/Info.plist b/Dependencies/OmniKit/OmniKitUI/Info.plist similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Info.plist rename to Dependencies/OmniKit/OmniKitUI/Info.plist diff --git a/Dependencies/OmniKit/OmniKitUI/LocalizedString.swift b/Dependencies/OmniKit/OmniKitUI/LocalizedString.swift new file mode 100644 index 0000000000..b6f1363e96 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/LocalizedString.swift @@ -0,0 +1,29 @@ +// +// LocalizedString.swift +// OmniKitUI +// +// Created by Pete Schwamb on 3/19/23. +// Copyright © 2023 LoopKit Authors. All rights reserved. +// + +import Foundation + +private class LocalBundle { + /// Returns the resource bundle associated with the current Swift module. + static var main: Bundle = { + if let mainResourceURL = Bundle.main.resourceURL, + let bundle = Bundle(url: mainResourceURL.appendingPathComponent("OmniKitUI_OmniKitUI.bundle")) + { + return bundle + } + return Bundle(for: LocalBundle.self) + }() +} + +func LocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> String { + if let value = value { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, value: value, comment: comment) + } else { + return NSLocalizedString(key, tableName: tableName, bundle: LocalBundle.main, comment: comment) + } +} diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.h b/Dependencies/OmniKit/OmniKitUI/OmniKitUI.h similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.h rename to Dependencies/OmniKit/OmniKitUI/OmniKitUI.h diff --git a/Dependencies/rileylink_ios/OmniKitUI/PumpManager/OmniPodPumpManager+UI.swift b/Dependencies/OmniKit/OmniKitUI/PumpManager/OmniPodPumpManager+UI.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/PumpManager/OmniPodPumpManager+UI.swift rename to Dependencies/OmniKit/OmniKitUI/PumpManager/OmniPodPumpManager+UI.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/PumpManager/OmnipodHUDProvider.swift b/Dependencies/OmniKit/OmniKitUI/PumpManager/OmnipodHUDProvider.swift similarity index 86% rename from Dependencies/rileylink_ios/OmniKitUI/PumpManager/OmnipodHUDProvider.swift rename to Dependencies/OmniKit/OmniKitUI/PumpManager/OmnipodHUDProvider.swift index e33e0a66ea..02596eb39e 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/PumpManager/OmnipodHUDProvider.swift +++ b/Dependencies/OmniKit/OmniKitUI/PumpManager/OmnipodHUDProvider.swift @@ -40,8 +40,6 @@ internal class OmnipodHUDProvider: NSObject, HUDProvider { didSet { if oldValue != visible && visible { hudDidAppear() - } else if oldValue != visible && !visible { - stopRefreshTimer() } } } @@ -70,7 +68,6 @@ internal class OmnipodHUDProvider: NSObject, HUDProvider { func hudDidAppear() { updateReservoirView() refresh() - updateRefreshTimer() } public var hudViewRawState: HUDProvider.HUDViewRawState { @@ -129,28 +126,6 @@ internal class OmnipodHUDProvider: NSObject, HUDProvider { reservoirView.update(level: pumpManager.reservoirLevel, at: lastStatusDate, reservoirLevelHighlightState: reservoirLevelHighlightState) } - - private func ensureRefreshTimerRunning() { - guard refreshTimer == nil else { - return - } - - refreshTimer = Timer(timeInterval: .seconds(60) , repeats: true) { [weak self] _ in - self?.refresh() - } - RunLoop.main.add(refreshTimer!, forMode: .default) - } - - private func stopRefreshTimer() { - refreshTimer?.invalidate() - refreshTimer = nil - } - - private func updateRefreshTimer() { - if visible { - ensureRefreshTimerRunning() - } - } } extension OmnipodHUDProvider: PodStateObserver { @@ -159,7 +134,6 @@ extension OmnipodHUDProvider: PodStateObserver { } func podStateDidUpdate(_ state: PodState?) { - updateRefreshTimer() updateReservoirView() } } diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/pod_life.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/pod_life.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/pod_life.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/pod_life.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/pod_life.imageset/Pod Life.pdf b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/pod_life.imageset/Pod Life.pdf similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/pod_life.imageset/Pod Life.pdf rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/pod_life/pod_life.imageset/Pod Life.pdf diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/reservoir.pdf b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/reservoir.pdf similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/reservoir.pdf rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir.imageset/reservoir.pdf diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/reservoir_mask.pdf b/Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/reservoir_mask.pdf similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/reservoir_mask.pdf rename to Dependencies/OmniKit/OmniKitUI/Resources/HUDAssets.xcassets/reservoir/pod_reservoir_mask.imageset/reservoir_mask.pdf diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/HUDAssets.xcassets/pod_life/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod1x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod1x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod1x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod1x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod2x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod2x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod2x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod2x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod3x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod3x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/Pod.imageset/pod3x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/Pod.imageset/pod3x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom1x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom1x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom1x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom1x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom2x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom2x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom2x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom2x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom3x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom3x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodBottom.imageset/PodBottom3x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodBottom.imageset/PodBottom3x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/Contents.json b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/Contents.json similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/Contents.json rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/Contents.json diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@1x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@1x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@1x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@1x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@2x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@2x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@2x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@2x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@3x.png b/Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@3x.png similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@3x.png rename to Dependencies/OmniKit/OmniKitUI/Resources/OmniKitUI.xcassets/PodLarge.imageset/PodLarge@3x.png diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodReservoirView.xib b/Dependencies/OmniKit/OmniKitUI/Resources/OmnipodReservoirView.xib similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodReservoirView.xib rename to Dependencies/OmniKit/OmniKitUI/Resources/OmnipodReservoirView.xib diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/PodLifeHUDView.xib b/Dependencies/OmniKit/OmniKitUI/Resources/PodLifeHUDView.xib similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/PodLifeHUDView.xib rename to Dependencies/OmniKit/OmniKitUI/Resources/PodLifeHUDView.xib diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/ar.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..4998bbb2aa --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/ar.lproj/Localizable.strings @@ -0,0 +1,51 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ ago"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "الضخ المستمر"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "إلغاء"; + +/* The title of the configuration section in settings */ +"Configuration" = "المعطيات"; + +/* Title text for delivery limits */ +"Delivery Limits" = "حدود الضخ"; + +/* The alert title for a resume error */ +"Error Resuming" = "خطأ في الاستئناف"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "توصيل الأنسولين"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "الخزان"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "أعد المحاولة"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink Setup"; + +/* Title for setup complete screen */ +"Setup Complete" = "Setup Complete"; + +/* The title of the status section in settings */ +"Status" = "الحالة"; + +/* Units for showing temp basal rate */ +"U/hr" = "وحدة لكل ساعة"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Unknown"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/cs.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..5c0604249a --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/cs.lproj/Localizable.strings @@ -0,0 +1,303 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@ %%"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Zpět"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Podávání bazálu"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Úrovně bazálu"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Podávání bolusu"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušit"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyla byla úspěšně zavedena. Pokračovat."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Vyměňte pod. Výdej inzulinu se zastaví 8 hodin poté, co pod vypršel, nebo když už v něm nezbývá žádný inzulín."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Vyměňte pod. Výdej inzulínu se zastaví za %1$@ nebo když dojde inzulín."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Změnit časové pásmo"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Měním čas…"; + +/* Title for check cannula screen */ +"Check Cannula" = "Zkontrolujte kanylu"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Zkontrolujte pod, aplikujte na místo a potvrďte umístění podu."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrola zavedení"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Zjišťuji..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Komunikace obnovena"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Ujištující upozornění jsou pípnutí podu, které lze použít k potvrzení zadaných příkazů."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigurace"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Pokračovat"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritická upozornění"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktivovat"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deaktivovat Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktivováno"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktivace."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktivuji..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Smazat Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podávání"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Podrobnosti o zařízení"; + +/* The title of the device information section in settings */ +"Device Information" = "Informace o zařízení"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Zakázat pípání bolusu"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Vyřadit pod"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Povolit pípání bolusu"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Podávání inzulínu bylo zastaveno. Vyměňte pod nyní."; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Neplatná hodnota"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Během párování udržujte RileyLink asi 15 centimetrů od podu."; + +/* description label for last status date pod details row */ +"Last Status" = "Poslední stav"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop automaticky neupraví výdej inzulínu, dokud nastavení dočasné bazální dávky neskončí nebo nebude zrušeno."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Šarže"; + +/* description label for lot number pod details row */ +"Lot Number" = "Číslo šarže"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Poloprázdný zásobník"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Upozornění na poloprázdný zásobník"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Ujistěte se, že váš telefon a pod jsou blízko sebe. Pokud problémy s komunikací přetrvávají, zkuste přesunutí na jiné místo."; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Chybějící konfigurace"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Není k dispozici"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Další"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Ne"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Žádný inzulín"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Žádný pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Žádné upozornění"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Žádný"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Nastavení upozornění"; + +/* No comment provided by engineer. */ +"Numbers" = "Hodnoty"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Upozornění Omnipodu"; + +/* Button title to pair with pod during setup */ +"Pair" = "Spárovat"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Spárovat nový pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Spárovat pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Spárovat pod."; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Páruji."; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Verze PI"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Verze PM"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Obnovit podávání inzulínu"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Obnovování podávání inzulínu..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Zkusit znovu"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Zopakovat deaktivaci podu"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink umožňuje komunikaci s pumpou přes Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Nastavení RileyLinku"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Uložit"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Ukládám..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Rozvrh"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Plánovaný bazál"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Naplánované upozornění"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vyberte typ inzulinu, který budete v tomto Podu používat."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Pořadové číslo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Nastavit dočasný bazál"; + +/* Title for setup complete screen */ +"Setup Complete" = "Nastavení dokončeno"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Ztráta signálu"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Přeskočit onboarding Omnipodu?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Úspěšně ukončeno"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Pozastavit podávání inzulínu..."; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Pozastaveno"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Pozastavení podávání inzulínu..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Přepnout z Omnipod pumpy"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synchronizace s Podem"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Klepnutím na tlačítko níže zahájíte zavádění kanyly."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Dočasný bazál"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Nastavení dočasného bazálu selhalo"; + +/* The title of the command to run the test command */ +"Test Command" = "Testovací příkaz"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testování příkazů…"; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikace vás předem upozorní na vypršení platnosti Podu. \n\nPosouváním nastavte počet hodin před vypršením, kdy chcete obdržet notifikaci."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/da.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/da.lproj/Localizable.strings new file mode 100644 index 0000000000..758537151b --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/da.lproj/Localizable.strings @@ -0,0 +1,769 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ siden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ har genoprettet kommunikationen med Pod'en på din krop.\n\nHistorik for insulintilførsel er blevet opdateret og skal matche det, der faktisk er leveret.\n\nDu kan fortsætte med at bruge %2$@ normalt nu."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ E"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ E (Færdig)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ E af %2$@ E (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ E/time"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ for %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ har ikke været i stand til at kommunikere med Pod'en på din krop siden %2$@.\n\nUden kommunikation med Pod'en kan appen ikke fortsætte med at sende kommandoer for insulintilførsel eller vise nøjagtige, nylige oplysninger om dit aktive insulin eller det insulin, der leveres af Pod'en.\n\nOvervåg din glukose nøje i de næste 6 eller flere timer, da der måske eller måske ikke er insulin, der aktivt arbejder i din krop, som %3$@ ikke kan vise."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheder tilbage på %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insulin indgivelse er stoppet. Venligst deaktiver og fjern Pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 time"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 time 30 minutter"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 timer"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutter"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmer"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Er du sikker på, at du vil annullere Pod-opsætningen?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Er du sikker på, at du vil slukke for denne Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Er du sikker på, at du vil springe Omnipod Onboarding over?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Er du sikker på, at du vil stoppe med at bruge Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Tildelt adresse"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Påfør Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Forsøger at genetablere kommunikationen"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbage"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basalindgivelse"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basalrater"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolusindgivelse"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuller"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annuller manuel basal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanylen blev indsat korrekt. Fortsæt."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Skift Pod nu. Insulintilførsel stopper 8 timer efter, at Pod'en er udløbet, eller når der ikke er mere insulin tilbage."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Skift Pod nu. Insulintilførsel stopper om %1$@, eller når der ikke er mere insulin tilbage."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Skift tidszone"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Ændrer tid..."; + +/* Title for check cannula screen */ +"Check Cannula" = "Kontroller kanylen"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Tjek Pod, sæt på kroppen og bekræft derefter Pod er sat korrekt på."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrollerer indsættelse"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrollerer..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Kommunikation genoprettet"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Påmindelse om succesfulde aktiviteter"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Påmindelse om succesfulde aktiviteter er bip fra Pod'en, som kan bruges til at bekræfte valgte kommandoer."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfiguration"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bekræft"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bekræft fastgørelse af Pod"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Fortsæt"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritiske advarsler"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dage"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktiver"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deaktiver Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktiveret"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktiverer."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktiverer..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Slet Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Insulingrænser"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Enhedsdetaljer"; + +/* The title of the device information section in settings */ +"Device Information" = "Oplysninger om enheden"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheder"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Deaktiver bolus bip"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Kassér Pod"; + +/* No comment provided by engineer. */ +"Done" = "Udført"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Aktiver bolus bip"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fejl"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Fejl ved deaktivering af bolus bip"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Fejl under aktivering af bolus bip"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fejl ved genoptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fejl ved suspendering"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Påmindelse om udløb"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Standard for udløbspåmindelse"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Udløbet"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Udløber"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Kunne ikke annullere manuel basal"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Kunne ikke genoptage insulintilførsel"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Kunne ikke indstille pumpetid"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Kunne ikke suspendere insulintilførsel"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Kunne ikke opdatere påmindelser for succesfulde aktiviteter"; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Kunne ikke opdatere påmindelse om udløb"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Kunne ikke opdatere påmindelse om lavt reservoir"; + +/* Pod life HUD view label */ +"Fault" = "Fejl"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Fyld en ny Pod med 100 E insulin (lad podnålehætten sidde på). Lyt efter 2 bip."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Afslut deaktivering"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Afslut Pod-indstilling"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Afslut setup"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Flere end %1$@ enheder tilbage ved %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "time"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "Timer"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Hvis du annullerer Pod-opsætningen, deaktiveres den aktuelle Pod og den vil være ubrugelig."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Ufuldstændigt indstillet Pod skal først deaktiveres, før der kan parres med en ny. Venligst deaktiver og fjern Pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Ufuldstændigt indstillet Pod skal først deaktiveres, før der kan parres med en ny. Venligst deaktiver og fjern Pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Indfør kanyle"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Indsat"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Indsætter. Vent venligst."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Indsætter..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulin \nsuspenderet"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulin leveret"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulintilførsel"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførslen er stoppet. Skift Pod nu."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Insulintilførsel vil blive stoppet, indtil du genoptager manuelt. Hvornår vil du have Loop til at minde dig om at genoptage leveringen?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulin tilbage"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Ugyldig indtastning"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Er kanylen indsat korrekt?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Hold RileyLink ca. 15 cm fra Pod, når der parres."; + +/* description label for last status date pod details row */ +"Last Status" = "Sidste status"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop justerer ikke automatisk din insulindosering, før den midlertidige basalrate er afsluttet eller annulleret."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Parti"; + +/* description label for lot number pod details row */ +"Lot Number" = "Partinummer"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Lavt reservoir"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Påmindelse om lavt reservoir"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Sørg for, at din telefon og Pod er tæt på hinanden. Hvis der fortsat er kommunikationsproblemer, skal du flytte til et nyt område."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutter"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Manglende konfiguration"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Næste"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nej"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Ingen\nlevering"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Ingen insulin"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Ingen påmindelse"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nej, fortsæt med Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nej, behold pumpen som den er"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Ingen"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Notifikationsindstillinger"; + +/* No comment provided by engineer. */ +"Numbers" = "Tal"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod-påmindelser"; + +/* Button title to pair with pod during setup */ +"Pair" = "Par"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Par ny Pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Par Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Par Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "Parret"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Parrer..."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Parrer..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Parres…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI Version"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Afspil test-bip"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Afspiller test-bip…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Bekræft venligst, at Pod er sikkert fastgjort til din krop.\n\nKanylen kan kun indsættes én gang med hver Pod. Tryk på \"Bekræft\", når Pod er tilsluttet."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Deaktiver Poden. Når deaktiveringen er fuldført, kan du parre en ny Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Deaktiver Poden. Når deaktiveringen er fuldført, kan du fjerne den og parre en ny Pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM Version"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod aktiveret"; + +/* Label describing pod age view */ +"Pod Age" = "Pod-alder"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod deaktiveret med succes. Fortsæt."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Pod-fejl"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod udløbet"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod udløbet"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod udløber"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod udløber om"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detaljer om fejl i Pod"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Pod er blokeret"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod'en blev parret med succes. Fortsæt."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod-Indstillinger"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod Setup"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Forbered indstikssted."; + +/* title for previous pod page */ +"Previous Pod" = "Forrige Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Oplysninger om forrige Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Klargjort"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Klargør. Vent venligst."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Klargør…"; + +/* The text of the loading label when priming */ +"Priming…" = "Klargør…"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + +/* Label describing time remaining view */ +"Remaining" = "Tilbage"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Fjern Pod fra kroppen"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Fjern pumpe"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Fjern Pod'ens nålehætte og kontroller kanyle. Fjern derefter papirbagsiden."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Udskift Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Udskift Pod nu"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Genoptag insulintilførsel..."; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Genoptager insulintilførsel..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Forsøg igen"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Forsøg deaktivering af Pod igen"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink giver mulighed for kommunikation med pumpen via Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink indstilling"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Gem"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Gemmer..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Tidsplan"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Planlagt basal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Planlagt påmindelse"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vælg den type insulin, du vil bruge i denne Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvensnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Indstil midlertidig basal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Indstil midlertidig basalrate"; + +/* Title for setup complete screen */ +"Setup Complete" = "Opsætning fuldført"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Signaltab"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Spring Omnipod Onboarding over?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Gennemført"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Afbryd insulintilførsel"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Afbryd insulintilførsel"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspenderet"; + +/* Label for suspended at time */ +"Suspended At" = "Suspenderet"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Afbryder insulintilførsel..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Skift fra Omnipod-pumper"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Skift til en anden insulintilførselsenhed"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til aktuel tid"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synkroniser med Pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tryk nedenfor for at starte kanyleindsættelse."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Midlertidig basal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Midlertidig basal mislykkedes"; + +/* The title of the command to run the test command */ +"Test Command" = "Testkommando"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Tester kommandoer…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Appen konfigurerer en påmindelse på Pod'en for at give dig besked inden Pod-udløb. Indstil antallet af timer i forvejen, du vil konfigurere, når du parrer en ny Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Appen giver dig besked før Pod'en udløber.\n\nIndstil antallet af timer før udløb som påmindelse."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Appen giver dig besked, når mængden af insulin i Pod'en når dette niveau (50-10 E)\n\nIndstil antallet enheder, du vil bruge som påmindelse. "; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Appen giver dig besked, når mængden af insulin i Pod'en når dette niveau."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Tiden på din pumpe er forskellig fra den aktuelle tid. Vil du opdatere tiden på din pumpe til det aktuelle tidspunkt?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Tiden på din pumpe er forskellig fra den aktuelle tid. Din pumpes tid styrer dine planlagte behandlingsindstillinger. Gå til Pumpetid for at gennemgå tidsforskellen og konfigurere din pumpe."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Vinduet på toppen af Pod'en skal være farvet pink, når kanylen er korrekt indsat i huden."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Kunne ikke kommunikere med Pod'en. Hvis problemet fortsætter, tryk Afbryd og kassér Pod'en. Du kan herefter aktivere en ny Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dette er en påmindelse om, at du planlagde, hvornår du parrede din nuværende Pod."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Denne pumpe er ikke blevet konfigureret med en maksimal basalrate, fordi den blev tilføjet, før manuel en manuel midlertidig basal var en funktion. Gå venligst til Behandlingsindstillinger - > Leveringsgrænser og indstil en ny maksimal basalrate."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tidsændring registreret"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Skift tegn"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "For mange indtastninger"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Samlet indgivelse"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Kan ikke deaktivere Pod. Venligst fortsæt og par med en ny."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan ikke få kontakt til pumpen"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan ikke få kontakt til pumpen"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Kan ikke indstille en midlertidig basalrate: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Kan ikke indstille en midlertidig basalrate: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Uafsluttet aktivering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Uafsluttet deaktivering"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Ukendt"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Vent, indtil indsættelsen er afsluttet."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, deaktiver Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, synkroniser til det aktuelle klokkeslæt"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Du skal nu begynde at konfigurere dine påmindelser, fylde din Pod med insulin, parre den med din enhed og placere den på din krop."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Din pod er klar til brug.\n\n%1$@ minder dig om, at du skal skifte din pod, inden den udløber. Du kan ændre dette til et tidspunkt, der passer dig."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Din Pod leverer muligvis stadig insulin.\nFjern den fra din krop og tryk derefter på \"Fortsæt\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/de.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000..63f58b12d9 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/de.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ vor"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ hat die Kommunikation mit dem Pod auf Ihrem Körper wiederhergestellt.\n\nDie Insulinabgabeaufzeichnungen wurden aktualisiert und sollten mit dem übereinstimmen, was tatsächlich geliefert wurde.\n\nSie können %2$@ jetzt normal weiter verwenden."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ IE"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ IE (abgegeben)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ IE von %2$@ IE (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ IE/Std."; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ IE"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ für %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ konnte seit %2$@ nicht mehr mit Ihrem Pod kommunizieren.\n\nOhne Kommunikation mit dem Pod kann die App keine Befehle für die Insulinabgabe senden oder genaue, aktuelle Informationen über Ihr aktives Insulin oder das vom Pod abgegebene Insulin anzeigen.\n\nÜberwachen Sie Ihren Blutzucker für die nächsten 6 oder mehr Stunden genau, da in Ihrem Körper Insulin aktiv sein kann oder auch nicht, das %3$@ nicht anzeigen kann."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ IE verbleibend bei %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Die Insulinabgabe wurde gestoppt. Bitte deaktiviere und entferne den Pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g IE"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 Stunde"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 Stunde 30 Minuten"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 Stunden"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 Minuten"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Laufzeit"; + +/* Section header for activity section */ +"Activity" = "Aktivität"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pumpenzeit einstellen"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarme"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sind Sie sicher, dass Sie die Pod-Einrichtung abbrechen möchten?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Möchten Sie diesen Pod wirklich deaktivieren?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sind Sie sicher, dass Sie das Omnipod Onboarding überspringen wollen?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Möchten Sie den Pod wirklich nicht mehr verwenden?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Zugewiesene Adresse"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Pod anbringen"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Versuche die Verbindung wieder aufzubauen"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Zurück"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basalabgabe"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basalrate"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolusabgabe"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Abbrechen"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Manuelles Basal abbrechen"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanüle erfolgreich eingeführt. Weiter."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Pod jetzt wechseln. Die Insulinabgabe stoppt 8 Stunden nach Ablauf des Pods oder wenn kein Insulin mehr vorhanden ist."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Pod jetzt wechseln. Die Insulinabgabe stoppt in %1$@ oder wenn kein Insulin mehr vorhanden ist."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Zeitzone ändern"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Zeit ändern"; + +/* Title for check cannula screen */ +"Check Cannula" = "Prüfe die Kanüle"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Überprüfe den Pod, bringe ihn an und bestätige dann die Pod-Anbringung."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Prüfe die Einfügung"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Prüfe…"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Kommunikation wiederhergestellt"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Sicherheitserinnerung"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Vertrauenserinnerungen sind Pieptöne vom Pod, die verwendet werden können, um ausgewählte Befehle zu bestätigen."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfiguration"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bestätige"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bestätige Pod Befestigung"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Weiter"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritische Warnungen"; + +/* Unit for singular day in pod life remaining */ +"day" = "Tag"; + +/* Unit for plural days in pod life remaining */ +"days" = "Tage"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktivieren"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Pod deaktivieren"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktiviert"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktiviere."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktiviere…"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Pod löschen"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Abgabelimits"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Gerätedetails"; + +/* The title of the device information section in settings */ +"Device Information" = "Geräteinformation"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Geräte"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Deaktiviere Bolustöne"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Pod verwerfen"; + +/* No comment provided by engineer. */ +"Done" = "Fertig"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Aktiviere Bolustöne"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fehler"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Fehler beim Deaktivieren der Bolustöne"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Fehler beim Aktivieren der Bolustöne"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fehler beim Fortfahren"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fehler beim Unterbrechen"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Erinnerung an den Ablauf der Nutzungsdauer"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Standard Erinnerung an den Ablauf der Nutzungsdauer"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Abgelaufen"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Läuft ab"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Fehler beim Abbrechen der manuellen Basalrate"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Wiederaufnahme der Insulinabgabe fehlgeschlagen"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Fehler beim Einstellen der Pumpenzeit"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Fehler beim Anhalten der Insulinabgabe"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Fehler beim Aktualisieren der Einstellung für die Sicherheitserinnerung."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Fehler beim Aktualisieren der Ablauferinnerung"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Fehler beim Aktualisieren der Erinnerung für einen niedrigen Vorratsbehälter"; + +/* Pod life HUD view label */ +"Fault" = "Störung"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Füllen Sie einen neuen Pod mit U-100-Insulin (Entfernen Sie nicht den Nadelverschluss). Warten Sie auf 2 Pieptöne."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Deaktivierung abschließen"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Pod-Setup abschließen"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Einrichtung abschließen"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Mehr als %1$@ verbleibende Einheiten um %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "Stunde"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "Stunden"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Wenn Du die Einrichtung abbrichst, dann wird der Pod deaktiviert und unbrauchbar."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Der unvollständig eingerichtete Pod muss vor der Kopplung eines neuen deaktiviert werden. Bitte deaktivieren und verwerfen Sie den Pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Der unvollständig eingerichtete Pod muss vor der Kopplung mit einem neuen deaktiviert werden. Bitte deaktivieren und entfernen Sie den Pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Kanüle einsetzen"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Eingeführt"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Füge ein, bitte warte…"; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Füge ein…"; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulinabgabe\nunterbrochen"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Abgegebenes Insulin"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Insulinabgabe wurde gestoppt. Pod jetzt wechseln."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Die Insulinabgabe wird angehalten, bis Sie sie manuell wieder aufnehmen. Wann soll Loop Sie daran erinnern, die Abgabe fortzusetzen?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Verbleibendes Insulin"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintyp"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Ungültiger Eintrag"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Wurde der Katheter ordentlich eingeführt?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Halten Sie den RileyLink während des Koppelns ca. 15 cm vom Pod entfernt."; + +/* description label for last status date pod details row */ +"Last Status" = "Letzter Status"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop passt Ihre Insulinabgabe nicht automatisch an, bis die temporäre Basalrate beendet oder abgebrochen wurde."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* description label for lot number pod details row */ +"Lot Number" = "LOT Nummer"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Niedriges Reservoir"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Erinnerung an niedriges Reservoir"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Stellen Sie sicher, dass sich Ihr iPhone und Ihr Pod nahe beieinander befinden. Wenn die Kommunikationsprobleme bestehen bleiben, dann gehen Sie an einen anderen Ort."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "Minute"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "Minuten"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Fehlende Konfiguration"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NV"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Weiter"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nein"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Keine\nAbgabe"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Kein Insulin"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Kein Pod gekoppelt"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Keine Erinnerung"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nein, mit Pod fortfahren"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nein, Pumpe so lassen wie sie ist"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Keiner"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Benachrichtigungseinstellungen"; + +/* No comment provided by engineer. */ +"Numbers" = "Zahlen"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod Erinnerung"; + +/* Button title to pair with pod during setup */ +"Pair" = "Koppeln"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Neuen Pod koppeln"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Pod koppeln"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Pod koppeln."; + +/* Label text indicating pairing finished. */ +"Paired" = "Gekoppelt"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Koppeln"; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Koppeln…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Koppeln…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Percent = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI-Version"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Testtöne abspielen"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Testtöne abspielen…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Bitte vergewissern Sie sich, dass der Pod sicher an Ihrem Körper befestigt ist.\n\nDer Katheter kann mit jedem Pod nur einmal eingeführt werden. Tippen Sie auf „Bestätigen“, wenn der Pod angeschlossen ist."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Bitte deaktivieren Sie den Pod. Wenn die Deaktivierung abgeschlossen ist, können Sie einen neuen Pod koppeln."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Bitte deaktivieren Sie den Pod. Wenn die Deaktivierung abgeschlossen ist, können Sie ihn entfernen und einen neuen Pod koppeln."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM-Version"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod aktiviert"; + +/* Label describing pod age view */ +"Pod Age" = "Pod-Alter"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod erfolgreich deaktiviert. Weiter."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Pod-Fehler"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod abgelaufen"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod abgelaufen"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod läuft ab"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod läufen ab in"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod Fehlerdetails"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Pod Verstopfung"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod erfolgreich gekoppelt. Weiter."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod-Einstellungen"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod Einrichtung"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Stelle vorbereiten."; + +/* title for previous pod page */ +"Previous Pod" = "Vorheriger Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informationen über den letzten Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Gefüllt"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Befülle, bitte warte."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Befülle…"; + +/* The text of the loading label when priming */ +"Priming…" = "Befülle…"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Uhrzeit der Pumpe"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + +/* Label describing time remaining view */ +"Remaining" = "Verbleibend"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Entferne den Pod vom Körper"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Pumpe löschen"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Entferne die Nadelkappe des Pods und überprüfe die Kanüle. Dann entferne die Papierträger."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Pod ersetzen"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Pod jetzt ersetzen"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Insulinabgabe wiederaufnehmen"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Nehme Insulinabgabe wieder auf…"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Wiederholen"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Pod-Deaktivierung wiederholen"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "Der RileyLink ermöglicht die Kommunikation mit der Pumpe über Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink Einrichten"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Speichern"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Speichere…"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Voreingestellt"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Geplante Basalrate"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Geplante Erinnerung"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Wähle die Insulinart aus, die Du für diesen Pod benutzen möchtest."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sequenznummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Temporäre Basalrate setzen"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Temporärere Basalrate setzen"; + +/* Title for setup complete screen */ +"Setup Complete" = "Einrichtung abgeschlossen"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Signalverlust"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod-Onboarding überspringen?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Erfolgreich"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Abgabe unterbrechen"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Insulinabgabe unterbrechen"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Unterbrochen"; + +/* Label for suspended at time */ +"Suspended At" = "Unterbrochen um"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Unterbreche die Insulinabgabe…"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Omnipod nicht mehr verwenden"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Zu einer anderen Pumpe wechseln"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Mit aktueller Uhrzeit synchronisieren."; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Mit Pod synchronisieren"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tippe unten, um das Einführen der Kanüle zu starten."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Temporäre Basalrate"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Temporary Basal fehlgeschlagen"; + +/* The title of the command to run the test command */ +"Test Command" = "Befehl testen"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Teste Befehle…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Die App konfiguriert eine Erinnerung auf dem Pod, um Dich vor Ablauf des Pods zu benachrichtigen. Legen die Anzahl der Stunden fest, die Du vor Ablauf des Pods benachrichtigt werden möchtest."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Die App benachrichtigt Dich vor Ablauf des Pods.\n\nScrolle, um die gewünschte Anzahl von Stunden im Voraus festzulegen."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Die App benachrichtigt Dich, wenn die Insulinmenge im Pod diesen Wert erreicht (50-10 IE).\n\nScrolle, um die Anzahl der Einheiten festzulegen, bei der Du erinnert werden möchtest."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Die App benachrichtigt Dich, wenn die Insulinmenge im Pod diesen Wert erreicht."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Die obigen Erinnerungen ertönen nicht, wenn sich Dein Gerät im Lautlos- oder Nicht-Stören-Modus befindet.\n\nEs gibt andere kritische Pod-Warnungen und -Alarme, die auch dann ertönen, wenn Dein Gerät auf „Lautlos“ oder „Nicht stören“ eingestellt ist."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Die Uhrzeit Ihrer Pumpe unterscheidet sich von Ihrer aktuellen Uhrzeit. Möchten Sie die Uhrzeit Ihrer Pumpe auf Ihre aktuelle Uhrzeit aktualisieren?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Die Uhrzeit der Pumpe weicht von der aktuellen Uhrzeit ab. Die Zeit der Pumpe steuert die geplanten Therapieeinstellungen. Scrolle nach unten zur Zeile Pumpenzeit, um den Zeitunterschied zu überprüfen und die Pumpe zu konfigurieren."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Das Fenster oben auf dem Pod sollte pinkfarben sein, wenn der Katheter ordentlich in die Haut eingeführt wurde."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Es gab ein Problem bei der Kommunikation mit dem Pod. Wenn dieses Problem weiterhin besteht, tippen Sie auf \"Pod verwerfen\". Sie können dann einen neuen Pod aktivieren."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dies ist eine Erinnerung, die Du beim Koppeln Deines aktuellen Pods eingestellt hast."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Diese Pumpe wurde nicht mit einer maximalen Basalrate konfiguriert, da sie hinzugefügt wurde, bevor die Funktion manuelle temporäre Basalrate existierte. Bitte gehe zu Therapieeinstellungen -> Abgabegrenzen und stelle eine neue maximale Basalrate ein."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Zeit"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Änderung der Uhrzeit erkannt"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Zeichen umschalten"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Zu viele Einträge"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Gesamt Abgabe"; + +/* Units for showing temp basal rate */ +"U/hr" = "IE/h"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Pod kann nicht deaktiviert werden. Bitte fahre fort und kopple einen neuen."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Pod kann nicht erreicht werden"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Pod kann nicht erreicht werden"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Eine temporäre Basalrate kann nicht gesetzt werden: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Eine temporäre Basalrate kann nicht gesetzt werden: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Nicht abgeschlossene Aktivierung"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Nicht abgeschlossene Deaktivierung"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Unbekannt"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Warte bis das Einführen der Kanüle fertig ist."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, deaktiviere Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, mit aktueller Zeit synchronisieren"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Beginne nun damit, die Erinnerungen zu konfigurieren, Dein Pod mit Insulin zu füllen, ihn mit Deinem Gerät zu koppeln und ihn an Deinem Körper zu platzieren."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Dein Pod ist einsatzbereit.\n\n%1$@ erinnert Dich daran, Deinen Pod zu wechseln, bevor er abläuft. Du kannst eine für Dich passende Zeit wählen."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Ihr Pod gibt möglicherweise immer noch Insulin ab.\nEntfernen Sie ihn vom Körper und tippen dann auf „Weiter“."; + diff --git a/Dependencies/rileylink_ios/OmniKitUI/ar.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/en.lproj/Localizable.strings similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ar.lproj/Localizable.strings rename to Dependencies/OmniKit/OmniKitUI/Resources/en.lproj/Localizable.strings diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/es.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000..1f49ad27e8 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/es.lproj/Localizable.strings @@ -0,0 +1,769 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "Hace %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ ha recuperado la comunicación con el Pod de su cuerpo.\n\nLos registros de suministro de insulina se han actualizado y deberían coincidir con lo que se ha suministrado realmente.\n\nYa puede seguir usando %2$@ con normalidad."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Completado)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U de %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/hora"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ para %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ no ha podido comunicarse con el Pod que esta adherido a su cuerpo desde %2$@.\n\nSin comunicación con el Pod, la app no puede seguir enviando órdenes de administración de insulina ni mostrar información precisa y reciente sobre su insulina activa o la insulina que está administrando el Pod.\n\nVigile de cerca sus niveles de glucosa durante las próximas 6 horas o más, ya que puede haber o no insulina activa en su cuerpo que %3$@ no puede mostrar."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "quedan %1$@ unidades a las %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Administración de insulina ha parado. Por favor, desactive y remueva el pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 hora"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 hora 30 minutos"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 horas"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutos"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Tiempo Activo"; + +/* Section header for activity section */ +"Activity" = "Actividad"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustando la hora de la bomba..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmas"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "¿Está seguro de que desea cancelar la configuración del Pod?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "¿Está seguro que quiere apagar este pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "¿Está seguro de que desea saltearse de Omnipod Onboarding?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "¿Está seguro que quiere dejar de usar Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Dirección Asignada"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Coloque el Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Intentando restablecer la comunicación"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Atrás"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basal Administrada"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Tasas basales"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolo Administrado"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Cancelar basal manual"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Cánula insertada con éxito. Continúa."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Cambie el Pod ahora. La administración de insulina se detendrá 8 horas después de que el Pod haya caducado o cuando no quede más insulina."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Cambie el Pod ahora. La administración de insulina se detendrá en %1$@ o cuando no quede más insulina."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Cambiar Zona Horaria"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Cambiando hora..."; + +/* Title for check cannula screen */ +"Check Cannula" = "Revise la cánula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Revise el Pod, aplíquelo y, a continuación, confirme que este está bien colocado."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Comprobando inserción"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Comprobando..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicaciones recuperadas"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Recordatorios de confianza"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Los recordatorios de confianza son pitidos que emite el Pod que pueden utilizarse para tener certeza de que se han seleccionado comandos."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configuración"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmar"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirme la fijación del Pod"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continuar"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alertas críticas"; + +/* Unit for singular day in pod life remaining */ +"day" = "día"; + +/* Unit for plural days in pod life remaining */ +"days" = "días"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Desactivar"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Desactivar Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Pod desactivado"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Desactivando."; + +/* Action button description while deactivating */ +"Deactivating..." = "Desactivando..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Eliminar Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Límites de Administración de Insulina"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Detalles del dispositivo"; + +/* The title of the device information section in settings */ +"Device Information" = "Información del Dispositivo"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivos"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Desactivar Pitidos del Bolo"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Descartar Pod"; + +/* No comment provided by engineer. */ +"Done" = "Completado"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Activar Pitidos del Bolo"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Error"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Error desactivando pitidos del bolo"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Error activando pitidos del bolo"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Reanudando"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspendiendo"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Recordatorio de Caducidad"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Recordatorio de expiración predeterminado"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Caducado"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Caduca"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "No se pudo cancelar la insulina basal manual"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "No se pudo reanudar la administración de insulina"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "No se establecio la hora de la bomba"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "No se pudo suspender la administración de insulina"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "No se ha podido actualizar la preferencia de recordatorio de confianza."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "No se ha podido actualizar el recordatorio de Expiración"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "No se ha podido actualizar el recordatorio de Reserva Baja"; + +/* Pod life HUD view label */ +"Fault" = "Fallo"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Llene un nuevo pod con Insulina U-100 (deje puesta la tapa de la aguja del pod). Escuche 2 tonos."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Finalizar la desactivación"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Terminar la configuración del pod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Finalizar la Configuración"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Quedan más de %1$@ unidades a las %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "hora"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "horas"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Si cancela la configuración del Pod, el Pod actual se desactivará y quedará inutilizable."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Pod con configuración incompleta tiene que desactivarse antes de emparejarse con uno nuevo"; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Pod con configuración incompleta tiene que desactivarse antes de emparejar uno nuevo. Por favor desactive y quítese el pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Insertar Cánula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Insertada"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Insertando. Espere, por favor."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Insertando..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulina Suspendida"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulina Administrada"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "El suministro de insulina se detuvo. Cambiar Pod ahora."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "La administración de insulina se detendrá hasta que la reanude manualmente. ¿Cuándo desea que Loop le recuerde que debe reanudar la administración?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina restante"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipo de Insulina"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Entrada inválida"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "¿La cánula está insertada correctamente?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Mantenga el RileyLink a unas 6 pulgadas del Pod durante el emparejamiento."; + +/* description label for last status date pod details row */ +"Last Status" = "Último estado"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop no ajustará automáticamente la administración de insulina hasta que la tasa de administracion de insulina basal temporal finalice o se cancele."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lote"; + +/* description label for lot number pod details row */ +"Lot Number" = "Número de lote"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Reserva baja"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Recordatorio de reserva baja"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Asegúrese de que su teléfono y su pod estén cerca uno del otro. Si los problemas de comunicación persisten, muévase a otra área."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuto"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutos"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuración faltante"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "No disponible"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Siguiente"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "No"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "No hay administración"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "No hay insulina"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "No hay Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Sin recordatorio"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "No, continúe con el Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantenga la bomba como está"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Ninguno"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Configuración de las notificaciones"; + +/* No comment provided by engineer. */ +"Numbers" = "Números"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Recordatorios Omnipod"; + +/* Button title to pair with pod during setup */ +"Pair" = "Emparejar"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Emparejar Nuevo Pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Emparejar Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Emparejar Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "Emparejado"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Emparejando."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Emparejando..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Emparejando..."; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Porcentaje = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Versión PI del Pod"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Tocar Pitidos de Prueba"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Tocar Pitidos de Prueba..."; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Compruebe que el Pod está bien adherido a su cuerpo.\n\nLa cánula sólo puede insertarse una vez con cada Pod. Pulse \"Confirmar\" cuando el Pod esté ya bien adherido a su cuerpo."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Por favor desactivar el Pod. Cuando la desactivación se haya completado, puede emparejar un nuevo Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Por favor desactivar el Pod. Cuando la desactivación se haya completado, puede retirarlo y emparejar un nuevo pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Versión de PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Activado"; + +/* Label describing pod age view */ +"Pod Age" = "Tiempo de Uso del Pod"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod desactivado correctamente. Continúa"; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Error del Pod"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod caducado"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod caducado"; + +/* Label for pod expiration row */ +"Pod Expires" = "El Pod caduca"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "El Pod caduca en"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detalles de la falla del Pod"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Oclusión del Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod emparejado correctamente. Continúa."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Configuración del Pod"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configuración del Pod"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Prepare lugar de inserción"; + +/* title for previous pod page */ +"Previous Pod" = "Pod anterior"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Información anterior del Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Purgado"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Purgando. Por favor, espere."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Purgando..."; + +/* The text of the loading label when priming */ +"Priming…" = "Purgando..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Hora de la bomba"; + +/* Label text for basal rate summary */ +"Rate" = "Tasa"; + +/* Label describing time remaining view */ +"Remaining" = "Restante"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Quitar el Pod del cuerpo"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Retire la bomba"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Retire la tapa de la aguja del Pod y compruebe la cánula. A continuación, retire el envoltorio de papel de la parte de atrás."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Reemplace el Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Cambie el Pod Ahora"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservorio"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reanude la administración de insulina"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Reanudando la administración de insulina..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Reintentar"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Reintentar Desactivar el Pod"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink permite la comunicación con la bomba a través de Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Configuración de RileyLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Agregar"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Guardando..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Programa"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Insulina basal programada"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Recordatorio programado"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Seleccione el tipo de insulina que utilizará en esta bomba."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Número de secuencia"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Establecer insulina basal temporal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Establecer tasa basal temporal"; + +/* Title for setup complete screen */ +"Setup Complete" = "Instalación completada"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Pérdida de señal"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "¿Saltearse el Onboarding de Omnipod?"; + +/* The title of the status section in settings */ +"Status" = "Estado"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Logrado"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspender la infusión"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspender la administración de insulina"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspendido"; + +/* Label for suspended at time */ +"Suspended At" = "Suspendido a las"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Suspendiendo la administración de insulina..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Cambiar de Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Cambiar a otro dispositivo de administración de insulina"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizar con la hora actual"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sincronizar con el Pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Toque abajo para iniciar la inserción de la cánula."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Insulina basal temporal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "La insulina basal temporal ha fallado"; + +/* The title of the command to run the test command */ +"Test Command" = "Comando de Prueba"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Probando Comandos..."; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "La aplicación configura un recordatorio en el Pod para notificarle con antelación sobre la expiración del Pod. Establezca el número de horas de antelación con las que desea que le avise para emparejar un nuevo Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "La aplicación le avisa con antelación de la expiración del Pod.\n\nDesplácese para establecer el número de horas de antelación que le gustaría tener."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "La App le avisa cuando la cantidad de insulina en el Pod alcanza este nivel (50-10 U).\n\nDesplácese para establecer el número de unidades en las que desea que la App le avise."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "La aplicación le notifica cuando la cantidad de insulina en el Pod alcanza este nivel."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "La hora de la bomba es diferente de la hora actual. Desea actualizar la hora de su bomba a la hora actual?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "La hora de su bomba es diferente de la hora actual. La hora de su bomba controla los ajustes programados de su terapia. Desplácese hacia abajo hasta la fila que muestra la Hora de la Bomba para revisar la diferencia horaria y configurar su bomba."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La ventana situada en la parte superior del Pod debe volverse de color rosa cuando la cánula esté correctamente insertada en la piel."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Se ha producido un problema de comunicación con el Pod. Si el problema persiste, pulse Descartar Pod. A continuación, puede activar un nuevo Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Este es un recordatorio que programó cuando enlazó su Pod actual."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Esta bomba no ha sido configurada con una tasa de administración basal máxima porque fue añadida antes de que la temperatura basal manual estuviese disponible. Por favor vaya a Configuración de Terapia -> Límites de administración y establezca una nueva tasa de administración basal máxima."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Hora"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Cambio de hora detectado"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Botón de alternar"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Demasiadas entradas"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Dosis total administrada"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hra"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Desactivación del pod falló. Por favor, continúe y empareje uno nuevo"; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "No se puede conectar el Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "No se puede conectar el Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "No se ha podido establecer una tasa de insulina basal temporal: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "No se ha podido establecer una tasa de insulina basal temporal: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activación no terminada"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Desactivación no terminada"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Desconocido"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Espere hasta que finalice la inserción."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Sí"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Sí, desactivar Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sí, sincronizar con la hora actual"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Ahora comenzará el proceso de configurar sus recordatorios, llenar su Pod con insulina, emparejarlo con su dispositivo y colocárselo en el cuerpo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Su Pod está listo para usar.\n\n%1$@ le recordará cambiar su Pod antes de que caduque. Puede cambiarlo cuando sea un momento conveniente para usted."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Es posible que su Pod siga suministrando insulina.\nRetírelo de su cuerpo y pulse \"Continuar\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/fi.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/fi.lproj/Localizable.strings new file mode 100644 index 0000000000..3d3b8b6474 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/fi.lproj/Localizable.strings @@ -0,0 +1,314 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (valmis)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/tunti"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ yksikköä jäljellä klo %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insuliinin annostelu on loppunut. Deaktivoi ja poista pumppu."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktiivinen aika"; + +/* Section header for activity section */ +"Activity" = "Liikunta"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Hälytykset"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Haluatko varmasti sammuttaa tämän pumpun?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Haluatko varmasti lopettaa Omnipodin käytön?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Määritetty osoite"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Takaisin"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basaali"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basaalitasot"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolus"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Kumoa"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Muuta aikavyöhyke"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Muutetaan aikaa…"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Tarkistetaan..."; + +/* The title of the configuration section in settings */ +"Configuration" = "Määritykset"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Jatka"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktivoi"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deaktivoi pumppu"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktivoitu"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Poista Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Annostelurajat"; + +/* The title of the device information section in settings */ +"Device Information" = "Laitteen tiedot"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Laitteet"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Laita bolusäänet pois"; + +/* No comment provided by engineer. */ +"Done" = "Valmis"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Laita bolusäänet päälle"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Virhe"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Virhe laitettaessa bolusäänet pois päältä"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Virhe laitettaessa bolusäänet päälle"; + +/* The alert title for a resume error */ +"Error Resuming" = "Virhe jatkamisessa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Virhe pysäytyksessä"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Vanhenemismuistutus"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Vanhentunut"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Vanhenee"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Annostelun jatkaminen epäonnistui"; + +/* Pod life HUD view label */ +"Fault" = "Virhe"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Lopeta pumpun asennus"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Enemmän kuin %1$@ yksikköä jäljellä klo %2$@"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Puutteellisesti asennettu pumppu täytyy deaktivoida ennen kuin uusi pumppu voidaan yhdistää. Deaktivoi ja hylkää pumppu."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Puutteellisesti asennettu pumppu täytyy deaktivoida ennen kuin uusi pumppu voidaan yhdistää. Deaktivoi ja poista pumppu."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Aseta kanyyli"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Annosteltu insuliini"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insuliinityyppi"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Virheellinen merkintä"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Ei insuliinia"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ei pumppua"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Ei mitään"; + +/* Button title to pair with pod during setup */ +"Pair" = "Yhdistä"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Yhdistä uusi pumppu"; + +/* Label text indicating pairing finished. */ +"Paired" = "Yhdistetty"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Yhdistetään…"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI-versio"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Soita testiäänet"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Soitetaan testiäänet…"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM-versio"; + +/* Label describing pod age view */ +"Pod Age" = "Pumpun ikä"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pumppu vanhentunut"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pumppu vanhentunut"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pumpun asetukset"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Alustettu"; + +/* The text of the loading label when priming */ +"Priming…" = "Alustetaan…"; + +/* Label describing time remaining view */ +"Remaining" = "Jäljellä"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Vaihda pumppu"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Vaihda pumppu nyt"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Säiliö"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Yritä uudelleen"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Deaktivoi pumppu uudelleen"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink-asennus"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Tallenna"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Ohjelmoitu"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Ohjelmoitu basaali"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Valitse insuliinin tyyppi, jota käytät tässä pumpussa."; + +/* Title for setup complete screen */ +"Setup Complete" = "Asennus valmis"; + +/* The title of the status section in settings */ +"Status" = "Tila"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Onnistui"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pysäytä annostelu"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Pysäytetty"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Lopeta Omnipodin käyttö"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synkronoi pumpun kanssa"; + +/* The title of the command to run the test command */ +"Test Command" = "Testikomento"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testataan komentoja…"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Aika"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Liian monta basaalitasoa määritetty"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Pumpun deaktivointi ei onnistunut. Jatka ja yhdistä uusi pumppu."; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Tuntematon"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/fr.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000..8b5e168b5a --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,769 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "Il y a %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "La communication avec le Pod sur votre corps a été rétablie.\n\nLes enregistrements d'administration d'insuline ont été mis à jour et devraient correspondre à ce qui a été effectivement administré.\n\nVous pouvez continuer à utiliser %@ normalement maintenant."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Terminé)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/heure"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ pendant %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ n'a pas pu communiquer avec le Pod sur votre corps depuis %2$@ . \n\nSans communication avec le Pod, l'application ne peut pas continuer à envoyer des commandes pour l'administration d'insuline ou afficher des informations précises et récentes sur votre insuline active ou l'insuline administrée par le Pod. \n\nSurveillez attentivement votre glycémie pendant les 6 prochaines heures ou plus, car il peut y avoir ou non de l'insuline active dans votre corps que %3$@ ne peut pas afficher."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unités restantes à %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. L'administration d’insuline s’est arrêtée. Veuillez désactiver et remplacer le Pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 heure"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 heure 30 minutes"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 heures"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutes"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Heure d’activation"; + +/* Section header for activity section */ +"Activity" = "Activité"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Ajustement de l'horloge de la pompe..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmes"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Voulez-vous vraiment annuler la configuration du Pod ?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Voulez-vous vraiment désactiver ce Pod ?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Voulez-vous vraiment sauter l'intégration Omnipod ?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Voulez-vous vraiment arrêter d’utiliser Omnipod ?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Adresse assignée"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Appliquer le Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Tenter de rétablir la communication"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Retour"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Débit basal"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Débits basaux"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Administration bolus"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuler"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annulation du débit basal manuel"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "La canule a été insérée correctement. Continuez"; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Remplacer le pod maintenant. L'administration d'insuline s'arrêtera 8 heures après l'expiration du pod ou lorsque qu'il ne restera plus d'insuline."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Remplacer le Pod maintenant. L'administration d'insuline s'arrêtera dans %1$@ ou lorsqu'il ne restera plus d'insuline."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Changement de fuseau horaire"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Changement de l’heure..."; + +/* Title for check cannula screen */ +"Check Cannula" = "Vérifier la canule"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Vérifiez le pod, placez-le sur le site, puis confirmez qu'il est bien appliqué."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Vérification de l'insertion en cours"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Vérification en cours..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Communications récupérées"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Rappels de confiance"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Les rappels de confiance sont des bips émis par le Pod qui peuvent être utilisés pour confirmer l'exécution des commandes sélectionnées."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configuration"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmer"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirmer l'application du Pod"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continuer"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alertes critiques"; + +/* Unit for singular day in pod life remaining */ +"day" = "jour"; + +/* Unit for plural days in pod life remaining */ +"days" = "jours"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Désactiver"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Désactiver le Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Désactivé"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Désactivation."; + +/* Action button description while deactivating */ +"Deactivating..." = "Désactivation en cours..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Supprimer Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limites d'Administration"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Information de l’appareil"; + +/* The title of the device information section in settings */ +"Device Information" = "Information de l’appareil"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositifs"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Désactiver les bips de bolus"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Jeter le Pod"; + +/* No comment provided by engineer. */ +"Done" = "Terminé"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Activer les bips de bolus"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Erreur"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Erreur lors de la désactivation des bips de bolus"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Erreur lors de l’activation des bips de bolus"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erreur lors de la reprise"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erreur lors de la suspension"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Rappel d'expiration"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Rappel d'expiration par défaut"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Expiré"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Expire"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Échec d'annulation du basal manuel"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Échec de la reprise de l’administration d’insuline"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Échec de réglage de l'heure de la pompe"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Échec de la suspension de l'administration d'insuline"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Échec de la mise à jour des préférences de rappel de confiance."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Échec de la mise à jour du rappel d'expiration"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Échec de la mise à jour du rappel de réservoir bas"; + +/* Pod life HUD view label */ +"Fault" = "Erreur"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Remplir un nouveau Pod avec de l'insuline U-100 (laisser le capuchon de l'aiguille du Pod en place). 2 bips se feront entendre."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Terminer la désactivation"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Terminer l’installation du Pod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Terminer l'installation"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Plus de %1$@ unités restantes à %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "heure"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "heures"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Si vous annulez la configuration du Pod, le Pod actuel sera désactivé et sera inutilisable."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Le Pod mal activé doit être désactivé avant d’en appairer un nouveau. Veuillez le désactiver et le jeter."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Le Pod mal activé doit être désactivé avant d’en appairer un nouveau. Veuillez le désactiver et l’enlever."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Insérer la canule"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inrérée"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Insertion en cours. Attendez."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Insertion en cours..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nSuspendue"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insuline délivrée"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Administration de l'insuline"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "L'administration d'insuline s'est arrêtée. Changez de Pod maintenant."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "L'administration d'insuline sera interrompue jusqu'à ce que vous la repreniez manuellement. Quand voulez-vous que Loop vous rappelle de reprendre l'administration ?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insuline restante"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Type d'insuline"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Saisie invalide"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "La canule est-elle insérée correctement?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Gardez le RileyLink à environ 6 pouces du Pod pendant le jumelage."; + +/* description label for last status date pod details row */ +"Last Status" = "Dernier statut"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop n'ajustera pas automatiquement votre administration d'insuline tant que le débit basal temporaire ne sera pas terminé ou annulé."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* description label for lot number pod details row */ +"Lot Number" = "Numéro de lot"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Réservoir bas"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Rappel de réservoir bas"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Assurez-vous que votre téléphone et votre Pod sont proches l'un de l'autre. Si les problèmes de communication persistent, déplacez-vous vers un nouvel endroit."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minute"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutes"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuration manquante"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "N.A."; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Suivant"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Non"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Pas d'administration"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Pas d'insuline"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Aucun Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Pas de rappel"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Non, continuez avec le Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Non, garder la pompe telle quelle"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Aucun"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Paramétrage des notifications"; + +/* No comment provided by engineer. */ +"Numbers" = "Nombres"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Rappels Omnipod"; + +/* Button title to pair with pod during setup */ +"Pair" = "Appairer"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Appairer un nouveau Pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Appairer le Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Appairer le pod."; + +/* Label text indicating pairing finished. */ +"Paired" = "Appairé"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Appairage."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Appairage en cours..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Appairage en cours..."; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Pourcentage = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Version PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Jouer des bips de test"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Bips de test en cours"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Veuillez confirmer que le Pod est solidement attaché à votre corps. \n\n La canule ne peut être insérée qu'une seule fois avec chaque Pod. Appuyez sur \"Confirmer\" lorsque le Pod est appliqué."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Veuillez désactiver le pod. Une fois la désactivation terminée, vous pouvez appairer un nouveau Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Veuillez désactiver le pod. Une fois la désactivation terminée, vous pouvez le retirer et appairer un nouveau pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Version PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod activé"; + +/* Label describing pod age view */ +"Pod Age" = "Âge Pod"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod désactivé avec succès. Continuez."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Erreur du Pod"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod expiré"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod expiré"; + +/* Label for pod expiration row */ +"Pod Expires" = "Péremption du Pod"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Péremption du Pod dans"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Détails de l'erreur du pod"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Occlusion du Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod appairé avec succès. Continuez."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Réglages du pod"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configuration du Pod"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Préparer le site."; + +/* title for previous pod page */ +"Previous Pod" = "Pod précédent"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informations sur le Pod précédent"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Amorcé"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Amorçage. S'il vous plaît, attendez."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Amorçage..."; + +/* The text of the loading label when priming */ +"Priming…" = "Amorçage en cours..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Heure de la pompe"; + +/* Label text for basal rate summary */ +"Rate" = "Débit"; + +/* Label describing time remaining view */ +"Remaining" = "Restant"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Retirer le Pod du corps"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Retirer la pompe"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Retirez le capuchon d'aiguille du pod et vérifiez la canule. Retirez ensuite le film en papier de l'autocollant."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Remplacer le Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Remplacer le Pod maintenant"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Réservoir"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reprendre l'administration d'insuline"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Reprise de l'administration d'insuline..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Réessayer"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Réessayez la désactivation du Pod"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink permet la communication avec la pompe via Bluetooth."; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Configuration de RileyLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Sauvegarder"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Sauvegarde en cours..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Programme"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basal programmé"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Rappel programmé"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Sélectionnez le type d'insuline que vous utiliserez dans ce Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numéro de séquence"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Régler basal temporaire"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Régler basal temporaire"; + +/* Title for setup complete screen */ +"Setup Complete" = "L’installation est terminée"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Perte de signal"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Ignorer la phase d'intégration d'Omnipod ?"; + +/* The title of the status section in settings */ +"Status" = "Statut"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Réussi"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspendre l'administration"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspendre l'administration d'insuline"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspendu"; + +/* Label for suspended at time */ +"Suspended At" = "Suspendu à"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Suspension de l'administration d'insuline..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Changer des pompes Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Passer à un autre dispositif d'administration d'insuline"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniser avec l'heure actuelle"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synchroniser avec le Pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Appuyez ci-dessous pour commencer l'insertion de la canule."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Basale temporaire"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Échec mise en route basal temporaire"; + +/* The title of the command to run the test command */ +"Test Command" = "Commande de test"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Commandes de test en cours..."; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "L'application configure un rappel pour vous avertir à l'avance de l'expiration du pod. Définissez le nombre d'heures de préavis que vous souhaitez lors de l'appairage d'un nouveau pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "L'application vous avertit à l'avance de l'expiration du pod. \n\n Faites défiler pour définir le nombre d'heures de préavis que vous souhaitez."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "L'application vous avertit lorsque la quantité d'insuline dans le Pod atteint ce niveau (50-10 U).\n\nFaites défiler pour définir le nombre d'unités à partir duquel vous souhaitez être averti."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "L'application vous avertit quand la quantité d'insuline restante dans le pod atteint cette limite"; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "L'heure de votre pompe est différente de l'heure actuelle. Voulez vous mettre à jour l'heure de votre pompe avec l'heure actuelle ?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "L'heure de votre pompe est différente de l'heure actuelle. L'heure de votre pompe contrôle les paramètres de votre traitement. Faites défiler jusqu'à la ligne Heure de Pompe pour vérifier le décalage de l'heure et configurer votre pompe."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La fenêtre située sur le dessus du Pod est colorée en rose lorsque la canule est correctement insérée dans la peau."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Il y a eu un problème de communication avec le Pod. Si ce problème persiste, appuyez sur Jeter le pod. Vous pourrez ensuite activer un nouveau Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Ceci est un rappel que vous avez programmé quand vous avez appairé votre Pod actuel."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Cette pompe n'a pas été configurée avec un débit basal maximal parce qu'il a été rajouté avant que le basal temporaire manuel soit une fonctionnalité. Prière d'aller dans Réglages de thérapie -> Limites d'administration et configurer un nouveau débit basal maximal."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Heure"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Changement d'heure détecté"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Bouton de bascule"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Trop d’entrées"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Total administré"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/h"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Impossible de désactiver le Pod. Veuillez continuer et en jumeler un nouveau."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Impossible de joindre le Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Impossible de joindre le Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Impossible de définir un débit basal temporaire: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Impossible de définir un débit basal temporaire: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activation inachevée"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Désactivation inachevée"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Inconnu"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Attendez que l'insertion soit terminée."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Oui"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Oui, désactiver le Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Oui, synchroniser avec l'heure actuelle"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Vous allez maintenant commencer à configurer vos rappels, à remplir votre Pod d'insuline, à l'appairer et à le placer sur votre corps."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Votre Pod est prêt à l'emploi. \n\n %1$@ vous rappellera de le remplacer avant qu'il n'expire. Vous pouvez changer ce rappel qui vous convient."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Votre Pod peut encore délivrer de l'insuline.\nRetirez-le de votre corps, puis appuyez sur \"Continuer\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/he.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/he.lproj/Localizable.strings new file mode 100644 index 0000000000..7e9f7f1811 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/he.lproj/Localizable.strings @@ -0,0 +1,368 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ ago"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Finished)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/hour"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insulin delivery has stopped. Please deactivate and remove pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Active Time"; + +/* Section header for activity section */ +"Activity" = "Activity"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarms"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Are you sure you want to shutdown this pod?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Are you sure you want to stop using Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Assigned Address"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basal Delivery"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basal Rates"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolus Delivery"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancel"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Change Time Zone"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Changing time…"; + +/* The title of the configuration section in settings */ +"Configuration" = "Configuration"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continue"; + +/* Unit for singular day in pod life remaining */ +"day" = "יום"; + +/* Unit for plural days in pod life remaining */ +"days" = "ימים"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deactivate"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deactivate Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deactivated"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Delete Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Delivery Limits"; + +/* The title of the device information section in settings */ +"Device Information" = "Device Information"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Devices"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Disable Bolus Beeps"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Enable Bolus Beeps"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Error"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Error disabling bolus beeps"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Error enabling bolus beeps"; + +/* The alert title for a resume error */ +"Error Resuming" = "Error Resuming"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Error Suspending"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Expiration Reminder"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Expired"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Expires"; + +/* Pod life HUD view label */ +"Fault" = "Fault"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Finish pod setup"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Greater than %1$@ units remaining at %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "שעה"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "שעות"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Insert Cannula"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulin Delivered"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Invalid entry"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* Unit for singular minute in pod life remaining */ +"minute" = "דקה"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "דקות"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "None"; + +/* Button title to pair with pod during setup */ +"Pair" = "Pair"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Pair New Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "Paired"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Pairing…"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI Version"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Play Test Beeps"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Play Test Beeps…"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM Version"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Age"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod expired"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "חסימה בפוד"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod Settings"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Primed"; + +/* The text of the loading label when priming */ +"Priming…" = "Priming…"; + +/* Label describing time remaining view */ +"Remaining" = "Remaining"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Replace Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Replace Pod Now"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Retry"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Retry Pod Deactivation"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink Setup"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Save"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Schedule"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Scheduled Basal"; + +/* Title for setup complete screen */ +"Setup Complete" = "Setup Complete"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "אובדן אות"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Succeeded"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspend Delivery"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspended"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Switch from Omnipod Pumps"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sync With Pod"; + +/* The title of the command to run the test command */ +"Test Command" = "Test Command"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testing Commands…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "האפליקציה מגדירה תזכורת כדי להתריע טרם יושבת הפוד. ניתן לקבוע את מספר השעות לקבלת תזכורת בעת הפעלת פוד חדש."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "האפליקציה מתריעה כאשר כמות האינסולין בפוד מגיעה לרמה זו (50-10 U).\n\nניתן להגדיר מספר יחידות אינסולין לקבלת תזכורת."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "האפליקציה מתריעה כאשר כמות האינסולין בפוד מגיעה לרמה זו."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "התזכורות לא יישמעו אם המכשיר שלך נמצא במצב שקט או 'נא לא להפריע'.\n\nישנן התראות נוספות וקריטיות שיישמעו גם אם המכשיר מוגדר למצב שקט או ׳נא לא להפריע׳."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "השעה במשאבה שלך שונה מהשעה הנוכחית. הגדרות הטיפול נקבעות לפי השעה במשאבה. יש לבדוק את הפרשי הזמן ולעדכן את השעה במשאבה."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "קיימת בעיה בתקשורת עם הפוד. אם הבעיה נמשכת, הקש על השבת פוד, לאחר מכן תוכל לחבר פוד חדש."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "זוהי תזכורת שנקבעה בעת הפעלת הפוד הנוכחי."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "במשאבה זו לא הוגדרה מגבלת בזאלי מרבי, מכיוון שהיא נוספה לפני שהייתה אפשרות בזאלי זמני ידני. יש להגדיר בזאלי מירבי חדש\n(הגדרות טיפול -> מגבלות -> בזאלי מירבי)"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "שעה"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Too many entries"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "סה״כ הוזרק"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "לא ניתן להשבית את הפוד. אנא המשך והצמיד אחד חדש."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "אין תקשורת עם הפוד"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "אין תקשורת עם הפוד"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "לא ניתן להגדיר בזאלי זמני:%1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "לא ניתן להגדיר בזאלי זמני: %1$@ \n\n %2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "הפעלה לא הושלמה"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "פעולת ביטול הפוד לא הסתיימה"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Unknown"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "המתן עד להשלמת ההכנסה."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "כן"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "כעת מתחילים בתהליך של הגדרת התזכורות שלך, מילוי הפוד שלך באינסולין, שיוך למכשיר שלך והנחתו על גופך."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "הפוד שלך מוכן לשימוש. \n\n %1$@ יזכיר לך להחליף את הפוד שלך לפני שתוקפו יפוג. אתה יכול לשנות את זה לזמן שנוח לך."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/hi.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..9f04c279c9 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/hi.lproj/Localizable.strings @@ -0,0 +1,11 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + +/* The title of the continue action in an action sheet */ +"Continue" = "जारी"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "समय"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/it.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/it.lproj/Localizable.strings new file mode 100644 index 0000000000..42ce8a8dfd --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/it.lproj/Localizable.strings @@ -0,0 +1,769 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ fa"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ ha ripristinato la comunicazione con il Pod sul tuo corpo.\n\nI dati di somministrazione d'insulina sono stati aggiornati e dovrebbero corrispondere a quanto è stato effettivamente erogato.\n\nOra è possibile continuare a utilizzare %2$@ normalmente."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Terminato)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U di %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/ora"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@ %%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ per %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ ha perso la comunicazione con il pod sul suo corpo da %2$@.\n\nSenza comunicazione con il Pod, l'app non può continuare a inviare comandi per la somministrazione d'insulina ne far visualizzare informazioni accurate recenti sull'insulina attiva o sull'insulina erogata dal Pod.\n\nMonitorare attentamente la glicemia per le prossime 6 o più ore, poiché potrebbe esserci o meno insulina attiva nel corpo che %3$@ non è in grado di visualizzare."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unità rimanenti alle ore %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. L’iniezione d'insulina è stata interrotta. Disattiva e rimuovi Pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 ora"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 ora e 30 minuti"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 ore"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minuti"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Tempo Attivo"; + +/* Section header for activity section */ +"Activity" = "Attività"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Regolazione Orario Microinfusore..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Allarmi"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sei sicuro di voler annullare la configurazione del Pod?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Sei sicuro di voler spegnere Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sei sicuro di voler saltare la procedura di installazione di Omnipod?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Sei sicuro di voler interrompere l’uso di Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Indirizzo assegnato"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Applicare il Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Tentativo in corso di ristabilire la comunicazione"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Indietro"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Erogazione Basale"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Velocità basali"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Erogazione bolo"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annulla"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annulla basale manuale"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "La cannula è stata inserita con successo. Continua."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Cambiare il Pod ora. L'erogazione dell'insulina si interromperà dopo 8 ore dalla scadenza del Pod o quando non rimane più insulina nel Pod."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Cambiare Pod ora. L' erogazione d'insulina si interromperà tra %1$@ o quando non ci sarà più insulina nel serbatoio."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Cambia fuso orario"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Modifica ora in corso"; + +/* Title for check cannula screen */ +"Check Cannula" = "Controlla la cannula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Controllare il Pod, applicare sul sito e confermare il fissaggio del pod."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Controllo dell'inserimento"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Controllo in corso"; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicazioni recuperate"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Promemoria di fiducia"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "I promemoria di fiducia sono segnali acustici emessi dal Pod che possono essere utilizzati per confermare i comandi selezionati."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configurazione"; + +/* Button title for confirm attachment option */ +"Confirm" = "Conferma"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Conferma collegamento Pod"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continua"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Avvisi critici"; + +/* Unit for singular day in pod life remaining */ +"day" = "giorno"; + +/* Unit for plural days in pod life remaining */ +"days" = "giorni"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Disattiva"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Disattiva Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Disattivato"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Disattivazione."; + +/* Action button description while deactivating */ +"Deactivating..." = "Disattivazione..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Elimina Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limiti Erogazione"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Dettagli del dispositivo"; + +/* The title of the device information section in settings */ +"Device Information" = "Informazioni sul dispositivo"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivi"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Disattiva bip bolo"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Scarta Pod"; + +/* No comment provided by engineer. */ +"Done" = "Fine"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Abilita Bip Bolo"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Errore"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Errore durante la disattivazione dei bip bolo"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Errore durante l’attivazione dei bip bolo"; + +/* The alert title for a resume error */ +"Error Resuming" = "Errore durante la Ripresa"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Errore durante l’interruzione"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Promemoria scadenza"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Promemoria scadenza predef."; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Scaduto"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Scadenza"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Impossibile Cancellare Basale Manuale"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Impossibile riprendere l'erogazione dell'insulina"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Impossibile impostare Orario Microinfusore"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Impossibile Sospendere Erogazione Insulina"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Impossibile aggiornare la preferenza per il promemoria di fiducia."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Impossibile aggiornare Promemoria di Scadenza"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Impossibile aggiornare il Promemoria Livello Serbatoio Basso"; + +/* Pod life HUD view label */ +"Fault" = "Guasto"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Riempire un nuovo Pod con insulina U-100 (lasciare il cappuccio dell'ago Pod). Ascolta 2 segnali acustici."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Completa la disattivazione"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Completa configurazione Pod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Completa l'installazione"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Più di %1$@ unità rimanenti a %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "ora"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "ore"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Se annulli la configurazione del Pod, il Pod corrente verrà disattivato e sarà inutilizzabile."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Prima di abbinare un nuovo Pod è necessario disattivare i Pod non completamente configurati. Disattiva e rimuovi Pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Prima di abbinare un nuovo Pod è necessario disattivare i Pod non completamente configurati. Disattiva e rimuovi Pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Inserire Cannula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inserito"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Inserimento. Attendere prego."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Inserimento..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Erogazione Insulina sospesa"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulina somministrata"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulina Somministrata"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "L'erogazione d'insulina si è interrotta. Cambiare Pod adesso."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "La somministrazione d'insulina verrà interrotta fino a quando non riprenderà manualmente. Quando vuoi che Loop ti ricordi di riprendere la consegna?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulina Rimanente"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipo d'insulina"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Immissione non valida"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "La cannula è inserita correttamente?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Tieni il RileyLink a circa 15 cm dal Pod durante l'accoppiamento."; + +/* description label for last status date pod details row */ +"Last Status" = "Ultimo stato"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop non regolerà automaticamente l'erogazione d'insulina fino a quando l'impostazione della basale temporanea non sarà terminata o cancellata."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lotto"; + +/* description label for lot number pod details row */ +"Lot Number" = "Numero di Lotto"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Livello Serbatoio basso"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Promemoria Livello Serbatoio Basso"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Assicurati che il tuo telefono e il Pod siano vicini uno all'altro. Se il problema di comunicazione persiste, spostati in un'altra zona."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuto"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuti"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configurazione mancante"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Non disponibile"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Prossimo"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "No"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Non Erogazione"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Insulina Terminata"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "No Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Nessun promemoria"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "No, Continuare con il Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "No, mantienere la pompa così com'è"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Nessuno"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Impostazioni"; + +/* No comment provided by engineer. */ +"Numbers" = "Numeri"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Promemoria Omnipod"; + +/* Button title to pair with pod during setup */ +"Pair" = "Abbina"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Abbina nuovo Pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Abbina Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Abbina Pod."; + +/* Label text indicating pairing finished. */ +"Paired" = "Abbinato"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Abbinamento in corso."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Abbinamento in corso..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Abbinamento in corso..."; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Percentuale = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Versione PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Emetti bip di prova"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Emetti bip di prova..."; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Si prega di confermare che il Pod è saldamente fissato al corpo.\n\nLa cannula può essere inserita una sola volta con ogni Pod. Tocca \"Conferma\" quando Pod è collegato."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Si prega di disattivare il Pod. Al termine della disattivazione, è possibile associare un nuovo Pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Si prega di disattivare il Pod. Al termine della disattivazione, è possibile rimuoverlo e accoppiare un nuovo Pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Versione PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod attivato"; + +/* Label describing pod age view */ +"Pod Age" = "Età Pod"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod disattivato con successo. Continua."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Errore Pod"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod scaduto"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod Scaduto"; + +/* Label for pod expiration row */ +"Pod Expires" = "Scadenza Pod"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod scade in"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Dettagli errore Pod"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Occlusione Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod accoppiato con successo. Continua."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Impostazioni Pod"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configurazione Pod"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Preparare il sito."; + +/* title for previous pod page */ +"Previous Pod" = "Pod precedente"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informazioni Pod precedente"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Caricato"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Caricamento in corso. Attendere prego."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Caricamento in corso..."; + +/* The text of the loading label when priming */ +"Priming…" = "Caricamento in corso..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Orario Micro"; + +/* Label text for basal rate summary */ +"Rate" = "Velocità"; + +/* Label describing time remaining view */ +"Remaining" = "Rimanente"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Rimuovi il Pod dal corpo"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Rimuovere microinfusore"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Rimuovere il cappuccio dell'ago del Pod e controllare la cannula. Quindi rimuovere le due coperture di carta."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Sostituisci Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Sostituisci Pod adesso"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Serbatoio"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Riprendi Erogazione Insulina"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Ripresa erogazione insulina..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Riprova"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Riprova a disattivare Pod"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink consente la comunicazione con la pompa tramite Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Configurazione"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Salva"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Salvataggio..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Programma"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basale Programmata"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Promemoria Programmato"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Seleziona il tipo d'insulina che utilizzerai in questo Pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numero progressivo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Impostazione Base Temporanea"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Impostazione Base Temporanea"; + +/* Title for setup complete screen */ +"Setup Complete" = "Impostazione completata"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Perdita Segnale"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Saltare la procedura di installazione di Omnipod?"; + +/* The title of the status section in settings */ +"Status" = "Stato"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Effettuato con successo"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Sospendi erogazione"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Sospendi l'erogazione d'insulina"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Sospeso"; + +/* Label for suspended at time */ +"Suspended At" = "Sospeso a"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Sospendere l'erogazione d'insulina..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Passa a pompe diverse da Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Passare ad un altro dispositivo per la somministrazione d'insulina"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizza con l'ora corrente"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sincronizza con Pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tocca sotto per iniziare l'inserimento della cannula."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Basale Temporanea"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Basale Temporanea Fallita"; + +/* The title of the command to run the test command */ +"Test Command" = "Prova Comando"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Prova Comandi..."; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "L'App puo' configurare un promemoria capace di avvisare in anticipo della scadenza del Pod.\n\nPer impostare il numero di ore preferito per il preavviso dalla voce Omnipod della schermata principale usare i submenu' Configurazione>Impostazioni Notifiche>Notifica Scadenza e sceglire il numero di ore desiderato per l'avviso di scadenza."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "L'App può avvisare in anticipo della scadenza del Pod.\n\nPer impostare il numero di ore in anticipo desiderato scorrere nella lista ore ed impostare il numero di ore desiderato"; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "L'App puo' dare un avviso quando la quantità di insulina nel Pod raggiunge un certo determinato livello compreso fra 50-10 Unita'.\n\nPer impostare questo avviso scorrere nella lista delle Unita' di insulina e scegliere il numero per il quale si desidera ricevere l'avviso."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "L'App puo' avvisare quando la quantità di insulina nel Pod raggiunge un predisposto determinato livello."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "l'orario del microinfusore e' diverso da quello del tempo attuale. Vuoi fare un controllo e cambiare l'orario del microinfusore con il tempo attuale?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "L'orario impostato nel microinfusore è diverso dall'orario corrente. L'orario del microinfusore detta e controlla le impostazioni della terapia programmata e va corretto: Nella lista degli 'orari del microinfusore verificare la differenza di orario e configurare correttamente il microinfusore."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "La finestra nella parte superiore del Pod sara' di colore rosa quando la cannula è stata inserita correttamente nella pelle."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Si è verificato un problema di comunicazione con il Pod. Se il problema persiste, toccare Elimina Pod, e dopo si procedere ad attivare un nuovo Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Questo è un promemoria che hai pianificato quando hai accoppiato il tuo Pod corrente."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Questo microinfusore non è stato configurato con una dose di basale massima perché questa è stata inserita prima che la basale temporanea manuale diventasse una funzione attiva. Andare su Impostazioni terapia - > Limiti erogazione e impostare un nuovo profilo basale massimo."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tempo"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Rilevato Cambio di orario "; + +/* No comment provided by engineer. */ +"Toggle sign" = "segnale di attivazione/disattivazione"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Troppe voci"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Erogazione Totale"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/ora"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Impossibile disattivare Pod. Continua e abbina un nuovo Pod."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Impossibile raggiungere Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Impossibile raggiungere Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Impossibile impostare una velocità basale temporanea: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Impossibile impostare una velocità basale temporanea: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Attivazione non completata"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Disattivazione non completata"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Sconosciuto"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Attendere il completamento dell'inserimento."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "sì"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Sì, disattiva il pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Sì, sincronizza con l'ora corrente"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Ora inizierai il processo di configurazione dei tuoi promemoria, riempiendo il tuo Pod d'insulina, accoppiandolo al tuo dispositivo e posizionandolo sul tuo corpo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Il tuo Pod è pronto per l'uso. \n\n %1$@ ti ricorderà di cambiare il tuo pod prima che scada. Questo orario puo' cambiato per un altro a te piu' conveniente."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Il tuo Pod potrebbe ancora erogare insulina.\n Rimuovilo dal tuo corpo, e poi tocca \"Continua\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/ja.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..0830d96ed0 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,276 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ 前"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (完了)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/時"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%2$@の時点で %1$@ U 残っています"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@。インスリン注入が止まりました。ポッドを停止して取り外してください。."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "アクティブ時間"; + +/* Section header for activity section */ +"Activity" = "アクティビティ"; + +/* The title of the cell showing alarm status */ +"Alarms" = "アラーム"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "ポッドを終了しますか?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Omnipodの使用を終了しますか?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "割り当てアドレス"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "基礎注入"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "基礎レート"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "ボーラス注入"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "キャンセル"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "タイムゾーンを変更"; + +/* Progress message for changing pod time. */ +"Changing time…" = "時間を変えています"; + +/* The title of the configuration section in settings */ +"Configuration" = "コンフィグレーション"; + +/* The title of the continue action in an action sheet */ +"Continue" = "次へ"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "無効にする"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "ポッドを無効にする"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "停止されました"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Omnipodを削除"; + +/* Title text for delivery limits */ +"Delivery Limits" = "注入限度"; + +/* The title of the device information section in settings */ +"Device Information" = "デバイス情報"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "デバイス"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "ボーラス音をオフにする"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "ボーラス音をオンにする"; + +/* Accessibility label indicating an error occurred */ +"Error" = "エラー"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "ボーラス音オフエラー"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "ボーラス音オンエラー"; + +/* The alert title for a resume error */ +"Error Resuming" = "再開エラー"; + +/* The alert title for a suspend error */ +"Error Suspending" = "一時中止エラー"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "有効期限リマインダー"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "期限切れ"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "期限"; + +/* Pod life HUD view label */ +"Fault" = "エラー"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "ポッド設定を終了"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "%2$@時点で %1$@U以上残っています"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "正しく設定されていないポッドはペアリングの前に停止してください。ポッドを停止して処分してください。"; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "正しく設定されていないポッドはペアリングの前に停止してください。ポッドを停止して処分してください。"; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "カニューレを挿入"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "インスリン注入済み"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "入力が無効です"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "ロット"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "なし"; + +/* Button title to pair with pod during setup */ +"Pair" = "ペアリング"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "新しいポッドをペアリング"; + +/* Label text indicating pairing finished. */ +"Paired" = "ペアリングされました"; + +/* The text of the loading label when pairing */ +"Pairing…" = "ペアリングしています"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PIバージョン"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "警告音をテスト"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "警告音をテストしています"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PMバージョン"; + +/* Label describing pod age view */ +"Pod Age" = "ポッド経過時間"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "ポッド期限切れ"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "ポッド設定"; + +/* The text of the loading label when pod is primed */ +"Primed" = "プライミング完了"; + +/* Pod pairing action button text while priming */ +"Priming..." = "プライミング中"; + +/* Label describing time remaining view */ +"Remaining" = "残り"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "ポッドを交換"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "すぐにポッドを交換してください"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "やり直す"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "ポッドの停止をやり直す"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink 設定"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "保存"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "パターン"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "定期基礎"; + +/* Title for setup complete screen */ +"Setup Complete" = "設定完了"; + +/* The title of the status section in settings */ +"Status" = "ステータス"; + +/* A message indicating a command succeeded */ +"Succeeded" = "成功"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "注入を一時停止"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "一時停止"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Omnipodポンプから変更"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "ポッドとシンク"; + +/* The title of the command to run the test command */ +"Test Command" = "テストコマンド"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "コマンドをテストしています"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "入力過多"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/時"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "ポッドの停止ができません。新しいポッドをペアリングしてください。"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "不明"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/nb.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/nb.lproj/Localizable.strings new file mode 100644 index 0000000000..d79c3b796c --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/nb.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ siden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ har gjenopprettet kommunikasjonen med pod på kroppen din.\n\nInsulintilførselsjournaler er oppdatert og bør samsvare med det som faktisk ble levert. \n\n Du kan fortsette å bruke %2$@ normalt nå."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ E"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ E (Ferdig)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ E av%2$@ E (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ E/time"; + +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ for %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ har ikke vært i stand til å kommunisere med pod på kroppen din siden %2$@ . \n\n Uten kommunikasjon med pod kan ikke appen fortsette å sende kommandoer for insulintilførsel eller vise nøyaktig, fersk informasjon om ditt aktive insulin eller insulinet som leveres av pod. \n\n Overvåk blodsukkerverdi nøye de neste 6 timene eller mer, siden det kan være insulin som virker aktivt i kroppen din som %3$@ ikke kan vise."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter gjenstår ved %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insulintilførsel har stoppet. Vennligst deaktiver og fjern pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 time"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 time 30 minutter"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 timer"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minutter"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Justerer pumpetid..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmer"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Er du sikker på at du vil avbryte Pod-oppsettet?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Er du sikker på at du vil avslutte denne pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Er du sikker på at du vil hoppe over Omnipod Onboarding?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Er du sikker på at du vil slutte å bruke Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Tildelt Adresse"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Fest Pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Prøver å gjenopprette kommunikasjonen"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tilbake"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basalleveranse"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basal-satser"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolus-leveranse"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Avbryt manuell basal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyle skutt inn vellykket. Fortsett."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Bytt Pod nå. Insulintilførselen vil stoppe 8 timer etter at pod har utløpt eller når det ikke er mer insulin igjen."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Bytt Pod nå. Insulintilførselen vil stoppe om %1$@ eller når det ikke er mer insulin igjen."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Endre tidssone"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Endrer tid..."; + +/* Title for check cannula screen */ +"Check Cannula" = "Sjekk kanyle"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Sjekk pod, påfør, og bekreft deretter at pod er festet."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrollerer innsetting"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Sjekker..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Kommunikasjon gjenopprettet"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Bekreftelser"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Tillitspåminnelser er pip fra pod som kan brukes til å bekrefte valgte kommandoer."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigurasjon"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bekreft"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bekreft at Pod er festet"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Fortsett"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritiske varsler"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dager"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktiver"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deaktiver Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktivert"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktiverer."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktiverer..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Slett Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Leveringsgrenser"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Enhetsdetaljer"; + +/* The title of the device information section in settings */ +"Device Information" = "Enhetsinformasjon"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheter"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Slå av lyd ved bolus"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Kast Pod"; + +/* No comment provided by engineer. */ +"Done" = "Ferdig"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Slå på lyd ved bolus"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Feil"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Kunne ikke slå av lyd ved bolus"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Kunne ikke slå på lyd ved bolus"; + +/* The alert title for a resume error */ +"Error Resuming" = "Feil ved gjenopptagelse"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Kunne ikke stoppe"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Påminnelse om utløp"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Utløpspåminnelse Standard"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Utløpt"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Utløper"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Kunne ikke avbryte manuell basal"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Kunne ikke gjenoppta insulinlevering"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Kunne ikke stille inn klokkeslett for pumpe"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Kunne ikke stanse insulintilførselen"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Kan ikke oppdatere innstillinger for påminnelsesalarm."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Kunne ikke oppdatere Utløpspåminnelse"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Kunne ikke oppdatere påminnelsen om lavt reservoar"; + +/* Pod life HUD view label */ +"Fault" = "Feil"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Fyll en ny pod med U-100 insulin (la kanylehetten være på). Lytt etter 2 pip."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Fullfør deaktivering"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Fullfør oppsett for pod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Fullfør oppsettet"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Større enn %1$@ enheter igjen ved %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "time"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "timer"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Hvis du avbryter Pod-oppsettet, vil gjeldende Pod deaktiveres og bli ubrukelig."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Ufullstendig oppsatt pod må deaktiveres før sammenkobling med en ny. Vennligst deaktiver og kast pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Ufullstendig oppsatt pod må deaktiveres før sammenkobling med en ny. Vennligst deaktiver og fjern pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Før inn kanyle"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Ført inn"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Fører inn. Vennligst vent."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Fører inn..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insulintilførsel utsatt"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Levert insulin"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Insulintilførselen stoppet. Bytt Pod nå."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Insulintilførselen vil bli stoppet til du gjenopptar manuelt. Når vil du at Loop skal minne deg på å gjenoppta leveringen?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Gjenværende insulin"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintype"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Ugyldig oppføring"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Er kanylen satt inn riktig?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Hold Rileylink ca. 15 cm fra Pod under sammenkobling."; + +/* description label for last status date pod details row */ +"Last Status" = "Siste status"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop vil ikke automatisk justere insulintilførselen før den midlertidige basaldosen er ferdig eller avbrytes."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Parti"; + +/* description label for lot number pod details row */ +"Lot Number" = "Lot-nummer"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Lavt reservoar"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Påminnelse om lavt reservoar"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Forsikre deg om at telefonen og pod er nær hverandre. Hvis kommunikasjonsproblemer vedvarer, flytter du til et nytt område."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minutt"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minutter"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Mangler Konfigurasjon"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "N/A"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Neste"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nei"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Ingen Leveranse"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Ingen insulin"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Ingen påminnelse"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nei, fortsett med Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nei, behold pumpen som den er"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Ingen"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Varslingsinnstillinger"; + +/* No comment provided by engineer. */ +"Numbers" = "Tall"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod-påminnelser"; + +/* Button title to pair with pod during setup */ +"Pair" = "Koble sammen"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Koble sammen ny pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Par Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Sammenkoble pod."; + +/* Label text indicating pairing finished. */ +"Paired" = "Sammenkoblbet"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Kobler sammen."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Kobler sammen..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Kobler sammen..."; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Prosent = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI Versjon"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Spill test-toner"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Spill test-toner..."; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Vennligst bekreft at pod er godt festet til kroppen din. \n\n Kanylen kan bare settes inn én gang med hver pod. Trykk på \"Bekreft\" når pod er festet."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Vennligst deaktiver pod. Når deaktiveringen er fullført, kan du pare en ny pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Vennligst deaktiver pod. Når deaktiveringen er fullført, kan du fjerne den og pare en ny pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM Versjon"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Aktivert"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Alder"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod ble deaktivert. Fortsett."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Pod Feil"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod utløpt"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod Utløpt"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod Utløper"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod utløper om"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod-feildetaljer"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Pod Okklusjon"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Vellykket sammenkobling av Pod. Fortsett."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod-innstillinger"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod oppsett"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Klargjør infusjonsstedet"; + +/* title for previous pod page */ +"Previous Pod" = "Forrige pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informasjon om forrige pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Fyllt"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Fyller. Vennligst vent."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Fyller..."; + +/* The text of the loading label when priming */ +"Priming…" = "Fyller..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pumpetid"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + +/* Label describing time remaining view */ +"Remaining" = "Gjenstående"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Fjern pod fra kroppen"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Fjern pumpen"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Fjern kanylehetten til pod og sjekk kanylen. Fjern deretter plasterbeskyttelsen."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Bytt pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Bytt pod nå"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoar"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Gjenoppta insulintilførsel"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Gjenopptar insulintilførsel..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Prøv på nytt"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Prøv igjen å deaktivere pod"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink tillater kommunikasjon med pumpen ved hjelp av Bluetooth."; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink-oppsett"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Lagre"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Lagrer..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Tidsplan"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Planlagt basal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Planlagt påminnelse"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Velg hvilken type insulin du skal bruke i denne pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvensnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Still inn midlertidig basal"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Still inn midlertidig basaldose"; + +/* Title for setup complete screen */ +"Setup Complete" = "Klargjøring ferdig"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Signal Tap"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Vil du hoppe over Omnipod Introduseringen?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Suksess"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pause leveranse"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Insulintilførsel utsatt"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspendert"; + +/* Label for suspended at time */ +"Suspended At" = "Utsatt klokken"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Utsetter insulintilførselen..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Bytt fra Omnipod pumpe"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Bytt til annen insulintilførselsenhet"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synkroniser til gjeldende tid"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synkroniser med pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Trykk nedenfor for å starte innsetting av kanyle."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Midlertidig basal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Midlertidig basal mislyktes"; + +/* The title of the command to run the test command */ +"Test Command" = "Test kommando"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Tester kommandoer..."; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Appen konfigurerer en påminnelse på pod for å varsle deg før pod utløper. Angi antall timer forhåndsvarsel du vil konfigurere når du parer en ny Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Appen varsler deg før pod utløper.\n\nBla for å angi antall timer forhåndsvarsel du vil ha."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Appen varsler deg når mengden insulin i Pod når dette nivået (50-10 E).\n\nBla for å angi antall enheter du vil bli minnet på."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Appen varsler deg når mengden insulin i pod når dette nivået."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Påminnelsene ovenfor vil ikke høres hvis enheten er i Stille- eller Ikke forstyrr-modus. \n\n Det er andre kritiske Pod-varsler og alarmer som vil høres selv om enheten er satt til Stille eller Ikke forstyrr-modus."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Klokken på pumpen er forskjellig fra gjeldende tid. Vil du oppdatere tiden på pumpen til gjeldende tid?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Klokken på pumpen er forskjellig fra gjeldende tid. Pumpens tid styrer dine planlagte behandlingsinnstillinger. Rull ned til Pumpetid-raden for å se tidsforskjellen og konfigurere pumpen."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Vinduet på toppen av Pod-en skal farges rosa når kanylen er riktig satt inn i huden."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Det oppsto et problem med pod-kommunikasjonen. Hvis problemet fortsetter, trykk Forkaste pod. Deretter kan du aktivere en ny pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dette er en påminnelse som du planla når du koblet til din nåværende pod."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Denne pumpen er ikke konfigurert med maksimal basaldose fordi den ble lagt til før manuell midlertidig basaldose var en tilgjengelig funksjon. Gå til Behandlingsinnstillinger -> Leveringsgrenser og sett en ny maksimal basaldose."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tidsendring oppdaget"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Vis/skjul"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "For mange oppføringer"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Total levering"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/t"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Kunne ikke deaktivere pod. Vennligst fortsett og koble sammen med en ny."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan ikke nå pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan ikke nå pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Klarte ikke å angi en midlertidig basal: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Klarte ikke å angi en midlertidig basal: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Ufullstendig aktivering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Ufullstendig deaktivering"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Ukjent"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Vent til innsettingen er fullført."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, deaktiver Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synkroniser til gjeldende tid"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Du vil nå begynne prosessen med å konfigurere påminnelsene, fylle pod med insulin, pare til enheten og plassere den på kroppen."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod er klar til bruk. \n\n %1$@ vil minne deg på å bytte pod før den utløper. Du kan endre dette til et tidspunkt som passer deg."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Pod kan fortsatt levere insulin.\nFjern den fra kroppen din, og trykk deretter på \"Fortsett\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/nl.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/nl.lproj/Localizable.strings new file mode 100644 index 0000000000..eb46584b18 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/nl.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ geleden"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ heeft de communicatie met de pod op je lichaam hersteld. \n\nDe gegevens over insulinetoediening zijn bijgewerkt en moeten overeenkomen met wat daadwerkelijk is toegediend. \n\nJe kunt %2$@ nu weer normaal gebruiken."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ E"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ E (afgerond)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ E van %2$@ E (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ E/uur"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ voor %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ kan sinds %2$@ niet communiceren met de pod op je lichaam. \n\nZonder communicatie met de pod kan de app geen opdrachten voor insulinetoediening blijven sturen of nauwkeurige, recente informatie weergeven over je actieve insuline of de insuline die door de pod wordt toegediend. \n\nHoud je glucose de komende 6 uur of langer nauwlettend in de gaten, omdat er wel of geen actieve insuline in je lichaam aanwezig is die %3$@ niet kan weergeven."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ eenheden over om %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insulinetoediening is gestopt. Deactiveer en vervang pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g E"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 uur"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 uur 30 minuten"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 uur"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minuten"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Werkzame Tijd"; + +/* Section header for activity section */ +"Activity" = "Activiteit"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pomptijd Aanpassen..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmen"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Weet je zeker dat je de Podinstallatie wilt annuleren?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Weet je zeker dat je deze pod wilt afsluiten"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Weet je zeker dat je Omnipod Onboarding wilt overslaan?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Weet je zeker dat je wilt stoppen met gebruik Omnipod"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Toegewezen adres"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Pod Aanbrengen"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Poging om de communicatie te herstellen"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Terug"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basaaltoediening"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basaalsnelheden"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolustoediening"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Annuleer"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Annuleer Handmatige Basaal"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Canule succesvol ingebracht. Ga verder."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Vervang Pod nu. De insulinetoediening stop 8 uur nadat de Pod is verlopen of wanneer er geen insuline meer over is."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Vervang Pod nu. De insulinetoediening stop over %1$@ of wanneer er geen insuline meer over is."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Verander Tijdzone"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Tijd Aanpassen..."; + +/* Title for check cannula screen */ +"Check Cannula" = "Controleer Canule"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Controleer de Pod, breng aan op de infusieplaats en bevestig dat de pod goed zit vastgeplakt."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Controleer Inbrengen Canule"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Controleren..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comms Hersteld"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Bevestigingsherinneringen"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Bevestigingsherinneringen zijn piepjes van de pod die kunnen worden gebruikt ter bevestiging van de geselecteerde opdrachten."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configuratie"; + +/* Button title for confirm attachment option */ +"Confirm" = "Bevestigen"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Bevestig Vastgeplakte Pod"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Ga Verder"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritieke Meldingen"; + +/* Unit for singular day in pod life remaining */ +"day" = "dag"; + +/* Unit for plural days in pod life remaining */ +"days" = "dagen"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deactiveer"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deactiveer Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Gedeactiveerd"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deactiveren."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deactiveren..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Verwijder Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Toedieningslimieten"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Apparaatgegevens"; + +/* The title of the device information section in settings */ +"Device Information" = "Apparaat informatie"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Apparaten"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Stop Gebruik Boluspiepjes"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Gooi Pod Weg"; + +/* No comment provided by engineer. */ +"Done" = "Gereed"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Boluspiepjes Inschakelen"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fout"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Fout in stoppen gebruik boluspiepjes"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Fout in toepassen gebruik boluspiepjes"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fout Bij Hervatten"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fout Bij Onderbreken"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Vervaldatumherinnering"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Standaard Herinnering"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Verlopen"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Vervalt"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Handmatig Basaal Annuleren Mislukt"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Insulinetoediening Hervatten Mislukt"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Pomptijd Instellen Mislukt"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Insulinetoediening Onderbreken Mislukt"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Bevestigingsherinneringvoorkeuren bijwerken mislukt."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Vervaldatumherinnering Bijwerken Mislukt"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Bijwerken Reservoir Bijna Leeg Herinnering Mislukt"; + +/* Pod life HUD view label */ +"Fault" = "Fout"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Vul een nieuwe pod met U-100 insuline (laat de Podnaalddop zitten). Luister naar 2 piepjes."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Voltooi deactivering"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Rond podinstallatie af"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Voltooi Installatie"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Meer dan %1$@ eenheden resterend om %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "uur"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "uur"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Als je de Podinstallatie annuleert, wordt de huidige Pod gedeactiveerd en onbruikbaar."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Een gedeeltelijk ingestelde pod moet eerst worden gedeactiveerd voordat er geprobeerd wordt een nieuwe pod te koppelen. Deactiveer pod en gooi weg."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Een gedeeltelijk ingestelde pod moet eerst worden gedeactiveerd voordat er geprobeerd wordt een nieuwe pod te koppelen. Deactiveer pod en gooi weg."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Canule Inbrengen"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Ingebracht"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Aan het inbrengen. Wacht even."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Canule wordt ingebracht..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Insuline\nOnderbroken"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Geleverde insuline"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulinetoediening"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Insulinetoediening gestopt. Vervang Pod nu."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "De insulinetoediening wordt gestopt totdat je de toediening handmatig hervat. Wanneer wil je dat Loop je eraan herinnert de toediening te hervatten?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Resterende Insuline"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulinetype"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Ongeldige invoer"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Is de canule juist ingebracht?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Houd de RileyLink tijdens het koppelen ongeveer 15 cm van de pod verwijderd."; + +/* description label for last status date pod details row */ +"Last Status" = "Laatste Status"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop past je insulinetoediening niet meer automatisch aan totdat de tijdelijke basaalsnelheid afloopt of wordt geannuleerd."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* description label for lot number pod details row */ +"Lot Number" = "Lotnummer"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Reservoir Bijna Leeg"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Herinnering Reservoir Bijna Leeg"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Zorg ervoor dat je telefoon en pod zich dicht bij elkaar bevinden. Als de communicatieproblemen aanhouden, ga dan naar een andere plek."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuten"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Configuratie Niet Compleet"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NB"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Volgende"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nee"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Geen\nToediening"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Geen Insuline"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Geen Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Geen Herinnering"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nee, Ga Verder Met Pod"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nee, laat de pomp ongewijzigd"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Geen"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Meldingsinstellingen"; + +/* No comment provided by engineer. */ +"Numbers" = "Nummers"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod Herinneringen"; + +/* Button title to pair with pod during setup */ +"Pair" = "Koppel"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Koppel Nieuwe Pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Koppel Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Koppel pod."; + +/* Label text indicating pairing finished. */ +"Paired" = "Gekoppeld"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Koppelen."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Koppelen…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Koppelen…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI versie"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Testpiepjes Afspelen"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Speelt testpiepjes…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Controleer of de Pod goed op je lichaam vastgeplakt zit.\n\nDe canule kan slechts één keer per Pod worden ingebracht. Tik op \"Bevestigen\" wanneer de Pod is vastgeplakt."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Deactiveer de pod. Wanneer de deactivering voltooid is, kun je een nieuwe pod koppelen."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Deactiveer de pod. Wanneer de deactivering voltooid is, kun je deze verwijderen en een nieuwe pod koppelen."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM versie"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Geactiveerd"; + +/* Label describing pod age view */ +"Pod Age" = "Podleeftijd"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod succesvol gedeactiveerd. Ga verder."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Podfout"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod is verlopen"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod Verlopen"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod Verloopt"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod verloopt over"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod Foutgegevens"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Podverstopping"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod succesvol gekoppeld. Ga verder."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod Instellingen"; + +/* Title for PodSetupView */ +"Pod Setup" = "Podinstallatie"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Infusieplaats voorbereiden."; + +/* title for previous pod page */ +"Previous Pod" = "Vorige Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informatie Vorige Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Voorbereid"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Voorbereiden. Wacht even."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Voorbereiden..."; + +/* The text of the loading label when priming */ +"Priming…" = "Voorbereiden..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pomptijd"; + +/* Label text for basal rate summary */ +"Rate" = "Snelheid"; + +/* Label describing time remaining view */ +"Remaining" = "Resterend"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Verwijder Pod van Lichaam"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Verwijder Pomp"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Verwijder de naalddop van de pod en controleer de canule. Verwijder vervolgens de beschermlaag van de hechtstrip."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Vervang Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Vervang Pod Nu"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Hervat Insulinetoediening"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Insulinetoediening hervatten..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Opnieuw Proberen"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Probeer Deactivering Pod Opnieuw"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink staat communicatie met de pomp toe via Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink Installatie"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Opslaan"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Opslaan..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Plan"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Ingesteld Basaal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Geplande Herinnering"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Selecteer het type insuline dat je in deze pod gaat gebruiken."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Volgnummer"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Tijdelijk Basaal Instellen"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Tijdelijke Basaalsnelheid Instellen"; + +/* Title for setup complete screen */ +"Setup Complete" = "Configuratie Voltooid"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Signaalverlies"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod Onboarding Overslaan?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Geslaagd"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Onderbreek Toediening"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Onderbreek Insulinetoediening"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Onderbroken"; + +/* Label for suspended at time */ +"Suspended At" = "Onderbroken om"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Insulinetoediening Onderbreken..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Verwissel Omnipod Pompen"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Schakel over op een ander insulinetoedieningsapparaat"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchroniseer met de huidige tijd"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synchroniseer met pod"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Tik hieronder om het inbrengen van de canule te starten."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Tijdelijke Basaal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Tijdelijk Basaal Mislukt"; + +/* The title of the command to run the test command */ +"Test Command" = "Testcommando"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Test Commando’s…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "De app stelt een herinnering in op de pod om je van tevoren op de hoogte te stellen van het verlopen van de Pod. Stel het aantal uur in van de vooraankondiging die je wenst in te stellen bij het koppelen van een nieuwe Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "De App kondigt van tevoren aan wanneer de Pod verloopt.\n\nScroll om het aantal uren in te stellen voor de gewenste vooraankondiging."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "De App geeft een melding wanneer de hoeveelheid insuline in de Pod dit niveau bereikt (50-10 E).\n\nScroll om het aantal eenheden in te stellen waarbij je herinnerd wilt worden."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "De App geeft een melding wanneer de hoeveelheid insuline in de Pod dit niveau bereikt."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Bovenstaande herinneringen zijn niet hoorbaar wanneer je apparaat in de modus Stil of Niet Storen staat.\n\nAndere kritieke Podmeldingen en Podalarmen gaan wel af, zelfs als je apparaat op de modus Stil of Niet Storen staat."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "De tijd op je pomp is anders dan de huidige tijd. Wil je de tijd op je pomp bijwerken naar de huidige tijd?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "De tijd op je pomp is anders dan de huidige tijd. De tijd van je pomp bepaalt je geplande therapieinstellingen. Scroll omlaag naar de Pomptijd om het tijdsverschil te bekijken en de pomp te configureren."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Het venster aan de bovenkant van de pod moet roze gekleurd zijn wanneer de canule correct in de huid is ingebracht."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Er is een communicatieprobleem opgetreden met de pod. Als dit probleem zich blijft voordoen, tik op Pod Verwijderen. Je kunt dan een nieuwe Pod activeren."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Dit is een herinnering die je hebt gepland toen je je huidige Pod koppelde."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Deze Pomp is niet geconfigureerd met een maximale basaalsnelheid omdat deze toegevoegd is voordat het handmatig instellen van een tijdelijke basaalsnelheid een functie was. Ga naar Therapieinstellingen -> Toedieningslimieten en stel een nieuwe Maximale Basaalsnelheid in."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tijd"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Tijdsverschil Ontdekt"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Schakel symbool"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Te veel invoer"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Totaal Toegediend"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/uur"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Onmogelijk om pod te deactiveren. Ga verder en koppel een nieuwe pod."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Kan Pod Niet Bereiken"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Kan Pod niet Bereiken"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Kan geen tijdelijke basaalsnelheid instellen: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Kan geen tijdelijke basaalsnelheid instellen: %1$@ \n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Onvoltooide Activering"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Onvoltooide deactivering"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Onbekend"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Wacht tot het inbrengen voltooid is."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Ja"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Ja, Deactiveer Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Ja, Synchroniseer met Huidige Tijd"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Je begint nu met het configureren van je herinneringen, het vullen van je Pod met insuline, het koppelen van je apparaat en het op je lichaam plaatsen."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Je Pod is klaar voor gebruik.\n\n%1$@ zal je eraan herinneren je pod te vervangen voordat deze verloopt. Je kunt dit wijzigen naar een tijdstip dat beter uitkomt."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Je Pod kan nog steeds insuline toedienen.\nVerwijder de Pod van je lichaam en tik vervolgens op \"Ga Verder\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/pl.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/pl.lproj/Localizable.strings new file mode 100644 index 0000000000..516eaa5661 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/pl.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ temu"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ odzyskał łączność z POD'em, na twoim ciele. \n\nLogi podawania insuliny zostały zaktualizowane i powinny być zgodne z faktycznie podanymi. \n\nMożesz nadal normalnie używać %2$@ ."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ J"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ J (zakończone)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ J z %2$@ J (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ J/godzina"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ J"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@J"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ za %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ nie może komunikować się z POD'em na twoim ciele od %2$@ . \n\nBez komunikacji z POD'em aplikacja nie może wysyłać poleceń podania insuliny ani wyświetlać dokładnych, aktualnych informacji o aktywnej insulinie lub insulinie podawanej przez POD'a. \n\nUważnie monitoruj poziom glukozy przez następne 6 lub więcej godzin, ponieważ w organizmie może działać insulina, której %3$@ nie może wyświetlić."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednostek pozostaje w %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Podawanie insuliny zostało zatrzymane. Deaktywuj i zdejmij PODa"; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g/J"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 godzina"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 godzina 30 minut"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 godziny"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 minut"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Czas aktywności"; + +/* Section header for activity section */ +"Activity" = "Aktywność"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Synchronizacja czasu pompy..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmy"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Czy na pewno chcesz anulować konfigurację POD'a?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Czy na pewno chcesz wyłączyć tego PODa?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Czy na pewno chcesz pominąć instalację Omnipod’a?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Czy na pewno chcesz przestać korzystać z Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Przypisany adres"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Przyklej POD'a do ciała"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Próba przywrócenia komunikacji"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Powrót"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Podawanie dawki podstawowej"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Dawka Podstawowa (Baza)"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Podawanie bolusa"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Anuluj"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Anuluj ręczną dawkę podstawową"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kaniula wprowadzona prawidłowo. Kontynuuj."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Zmień POD teraz. Podawanie insuliny zostanie zatrzymane 8 godzin po wygaśnięciu POD'a lub gdy zabraknie insuliny."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Zmień POD. Podawanie insuliny zostanie zatrzymane za %1$@ lub gdy zabraknie insuliny."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Zmień strefę czasową"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Zmiana czasu…"; + +/* Title for check cannula screen */ +"Check Cannula" = "Sprawdź kaniulę"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Przyklej POD'a, następnie potwierdź jego założenie"; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Sprawdzanie wkłucia"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Sprawdzanie..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Odzyskano komunikację"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Przypomnienia (sygnały dźwiękowe) z POD'a"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Przypomnienia potwierdzające to sygnały dźwiękowe, z których można korzystać w celu potwierdzania wybranych poleceń."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfiguracja"; + +/* Button title for confirm attachment option */ +"Confirm" = "Potwierdź"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Potwierdź założenie POD'a"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Kontynuuj"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alerty krytyczne"; + +/* Unit for singular day in pod life remaining */ +"day" = "dzień"; + +/* Unit for plural days in pod life remaining */ +"days" = "dni"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Dezaktywuj"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Dezaktywuj POD'a"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktywowany"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Dezaktywacja."; + +/* Action button description while deactivating */ +"Deactivating..." = "Dezaktywacja..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Usuń Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podawania"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Szczegóły urządzenia"; + +/* The title of the device information section in settings */ +"Device Information" = "Informacje o urządzeniu"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Urządzenia"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Wyłącz dźwięki bolusa"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Odrzuć POD'a"; + +/* No comment provided by engineer. */ +"Done" = "Gotowe"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Włącz dźwięki bolusa"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Błąd"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Błąd wyłączania dźwięków bolusa"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Błąd włączania dźwięków bolusa"; + +/* The alert title for a resume error */ +"Error Resuming" = "Błąd wznawiania"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Błąd wstrzymywania"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Termin Ważności"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Domyślne przypomnienie o terminie ważności"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Po terminie"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Upływa termin ważności"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Nie udało się anulować dawki podstawowej ustawionej ręcznie"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Nie udało się wznowić podawania insuliny"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nie udało się ustawić czasu pompy"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Nie udało się wstrzymać podawania insuliny"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Błąd aktualizacji ustawień dla przypomnień."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nie udało się zaktualizować przypomnienia o terminie ważności"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nie udało się zaktualizować przypomnienia o niskim poziomie w zbiorniczku"; + +/* Pod life HUD view label */ +"Fault" = "Usterka"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Napełnij nowego POD'a insuliną U-100 (minimum 80j). Pozostaw niebieską osłonkę igły. Powinieneś usłyszeć dwa sygnały dźwiękowe."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Zakończ dezaktywację"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Zakończ konfigurację PODa"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Zakończ konfigurację"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Więcej niż %1$@ jedn. pozostaje w %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "godzina"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "godziny"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Jeśli anulujesz konfigurację POD'a, bieżący POD zostanie dezaktywowany i nie będzie można go używać."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Niekompletną konfigurację PODa należy deaktywować przed sparowaniem z nowym. Deaktywuj i wyrzuć PODa."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Niekompletną konfigurację PODa należy deaktywować przed sparowaniem z nowym. Deaktywuj i usuń PODa."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Wprowadź kaniulę"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Wprowadzono"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Wprowadzanie. Proszę czekać."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Wprowadzanie..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Podawanie insuliny zawieszone"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulina podana"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Podawanie insuliny zostało zatrzymane. Wymień POD'a."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Podawanie insuliny zostanie wstrzymane do czasu ręcznego wznowienia. Kiedy chcesz, aby Loop przypomniał Ci o wznowieniu podawania insuliny?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Pozostała ilość insuliny"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Rodzaj insuliny"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Nieprawidłowy wpis"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Czy kaniula jest prawidłowo wprowadzona?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Trzymaj RileyLink około 15 cm od POD'a podczas parowania."; + +/* description label for last status date pod details row */ +"Last Status" = "Ostatni status"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Pętla nie będzie automatycznie dostosowywać dawki insuliny, dopóki tymczasowa dawka podstawowa nie zakończy się lub nie zostanie anulowana."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Partia"; + +/* description label for lot number pod details row */ +"Lot Number" = "Numer LOT"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Niski poziom w zbiorniczku"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Przypomnienie o niski poziomie w zbiorniczku"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Upewnij się, że telefon i POD znajdują się blisko siebie. Jeśli problemy z komunikacją nie ustąpią, przenieś się w inne miejsce."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minuta"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minuty"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Brak konfiguracji"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "Niedostępne"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Następny"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nie"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Brak podawania"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Brak insuliny"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Brak POD'a"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Brak przypomnienia"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nie, kontynuuj parowanie z POD'em"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nie, pozostaw pompę bez zmian"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Brak"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Ustawienia powiadomień"; + +/* No comment provided by engineer. */ +"Numbers" = "Liczby"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Przypomnienia Omnipod"; + +/* Button title to pair with pod during setup */ +"Pair" = "Paruj"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Sparuj nowego PODa"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Sparuj POD'a"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Sparuj POD'a"; + +/* Label text indicating pairing finished. */ +"Paired" = "Sparowany"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Parowanie."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Parowanie…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Parowanie…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procent = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Wersja PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Odtwarzaj dźwięki testu"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Odtwarzaj dźwięki testu…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Potwierdź, że POD jest poprawnie przymocowany do ciała. \n\nKaniulę można wprowadzić tylko raz w każdym POD'dzie. Stuknij „Potwierdź”, gdy POD jest przymocowany."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Proszę dezaktywować POD'a. Po zakończeniu dezaktywacji możesz sparować nowego POD'a."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Proszę dezaktywować POD'a. Po zakończeniu dezaktywacji usuń POD'a i sparuj nowego."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Wersja PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "POD aktywowany"; + +/* Label describing pod age view */ +"Pod Age" = "Wiek POD'a"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "POD został dezaktywowany pomyślnie. Kontynuować."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Błąd POD'a"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Termin ważności POD'a upłynął"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Termin ważności POD'a upłynął"; + +/* Label for pod expiration row */ +"Pod Expires" = "POD kończy działanie"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "POD wygasa za"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Szczegóły usterki POD'a"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Niedrożność POD'a"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod został pomyślnie sparowany. Kontynuować."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Ustawienia PODa"; + +/* Title for PodSetupView */ +"Pod Setup" = "Konfiguracja POD'a"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Przygotuj miejsce"; + +/* title for previous pod page */ +"Previous Pod" = "Poprzedni POD"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informacje o poprzednim POD'dzie"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Napełniony"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Wypełnianie. Proszę czekać."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Wypełnianie..."; + +/* The text of the loading label when priming */ +"Priming…" = "Napełnianie…"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Czas pompy"; + +/* Label text for basal rate summary */ +"Rate" = "Tempo"; + +/* Label describing time remaining view */ +"Remaining" = "Pozostało"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Usuń POD'a z ciała"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Usuń pompę"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Usuń osłonę igły i sprawdź kaniulę. Następnie usuń papierowe zabezpieczenie kleju."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Wymień POD'a"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Wymień PODa teraz"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Zbiorniczek"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Wznów podawanie insuliny"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Wznawianie podawania insuliny..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Spróbuj ponownie"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Ponów deaktywację PODa"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink umożliwia komunikację z pompą przez Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Konfiguracja RileyLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Zapisz"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Zapisywanie..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Harmonogram"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Zaplanowana dawka podstawowa"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Zaplanowane przypomnienie"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Wybierz rodzaj insuliny, której będziesz używać w tym POD."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Numer sekwencji"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Ustaw Bazę Tymczasową"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Ustaw tymczasową dawkę podstawową"; + +/* Title for setup complete screen */ +"Setup Complete" = "Konfiguracja zakończona"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Utrata sygnału"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Pominąć instalację Omnipod’a?"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Zakończone powodzeniem"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Wstrzymaj podawanie"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Wstrzymaj podawanie insuliny"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Wstrzymane"; + +/* Label for suspended at time */ +"Suspended At" = "Zawieszony o godz."; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Wstrzymanie podawania insuliny..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Przełącz z pomp Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Zmień pompę insulinową na inną"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Synchronizuj z bieżącym czasem"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synchronizuj z PODem"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Stuknij poniżej, aby rozpocząć wprowadzanie kaniuli."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Baza tymczasowa"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Baza tymczasowa nie powiodła się"; + +/* The title of the command to run the test command */ +"Test Command" = "Polecenie testowe"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testowanie poleceń…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplikacja konfiguruje przypomnienie w POD, aby powiadomić Cię z wyprzedzeniem o wygaśnięciu ważności POD'a. Ustaw liczbę godzin wyprzedzenia, które chcesz skonfigurować podczas parowania nowego POD'a."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikacja z wyprzedzeniem powiadomi użytkownika o wygaśnięciu ważności POD'a.\n\nZaplanuj powiadomienie (wybierz liczbę godzin)."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplikacja powiadomi Cię, gdy ilość insuliny w POD osiągnie poziom (50-10 J). \n\nUstaw liczbę jednostek, przy których chcesz otrzymywać przypomnienia."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplikacja powiadomi Cię, gdy ilość insuliny w POD osiągnie ten poziom."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Powyższe przypomnienia nie będą się pojawiały, jeśli urządzenie jest w trybie cichym lub nie przeszkadzać. \n\nIstnieją inne krytyczne alerty i alarmy POD'ów, które będą emitowane, nawet jeśli urządzenie jest ustawione w trybie cichym lub nie przeszkadzać."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Czas na pompie różni się od aktualnego czasu. Czy chcesz zaktualizować czas na pompie do aktualnego czasu?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Czas na pompie różni się od aktualnego czasu. Czas pompy steruje ustawieniami zaplanowanej terapii. Przewiń w dół do wiersza Czas pompy, aby przejrzeć różnicę czasu i skonfigurować pompę."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Okienko na górze POD'a powinno zabarwić się na różowo, gdy kaniula jest prawidłowo wprowadzona pod skórę."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Wystąpił problem z komunikacją z POD'em. Jeśli problem się utrzymuje, wybierz opcję Odrzuć POD'a. Następnie możesz aktywować nowy POD."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "To jest przypomnienie, które zaplanowałeś podczas parowania bieżącego Poda."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Limit podaży został ustawiony przed wprowadzeniem bazy tymczasowej. Wróć do ustawień terapii i ustaw nowy limit maksymalnej dawki podstawowej (bazy)."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Czas"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Wykryto zmianę czasu"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Przełącz znak"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Zbyt dużo wpisów"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Łącznie podano"; + +/* Units for showing temp basal rate */ +"U/hr" = "J/godz"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Deaktywacja PODa niemożliwa. Kontynuuj i sparuj nowy."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Nie można połączyć się z Podem"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Nie można połączyć się z Podem"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nie można ustawić tymczasowej dawki podstawowej: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nie można ustawić tymczasowej dawki podstawowej: %1$@ \n\n %2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Niedokończona aktywacja"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Niedokończona dezaktywacja"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Nieznany"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Poczekaj, aż wprowadzanie zostanie zakończone."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Tak"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Tak, dezaktywuj POD'a"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Tak, zsynchronizuj z bieżącym czasem"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Rozpoczynasz proces konfigurowania przypomnień (dźwięków emitowanych przez POD'a), napełniania POD'a insuliną, parowania z telefonem i umieszczania go na ciele."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Twój POD jest gotowy do użycia. \n\n%1$@ przypomni Ci o zmianie POD'a przed jego wygaśnięciem. Możesz dokonać zmiany na dogodny dla Ciebie termin."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Twój POD może nadal dostarczać insulinę.\nUsuń go z ciała, a następnie wybierz \"Kontynuuj\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/pt-BR.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000000..34d4156dac --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,276 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ atrás"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Completo)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U do %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/hora"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unidades restantes em %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. A administração de insulina parou. Desative e remova o pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Tempo Ativo"; + +/* Section header for activity section */ +"Activity" = "Atividade"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmes"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Tem certeza de que deseja encerrar este pod?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Tem certeza de que deseja parar de usar o Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Endereço Atribuído"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Entrega Basal"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Taxas Basais"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Entrega de Bolus"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Cancelar"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Alterar Fuso Horário"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Alterando a hora..."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configuração"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continuar"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Desativar"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Desativar Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Desativado"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Remover Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limites de Entrega"; + +/* The title of the device information section in settings */ +"Device Information" = "Informação do Dispositivo"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispositivos"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Desativar Bipes de Bolus"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Ativar bipes de bolus"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Erro"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Erro ao desativar bipes de bolus"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Erro ao ativar bipes de bolus"; + +/* The alert title for a resume error */ +"Error Resuming" = "Erro ao Retomar"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Erro ao Suspender"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Lembrete de Expiração"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Expirada"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Expira"; + +/* Pod life HUD view label */ +"Fault" = "Falha"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Concluir configuração do pod"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Mais de %1$@ unidades restantes em %2$@"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Pod de configuração incompleta deve ser desativado antes de emparelhar com um novo. Desative e descarte o pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Pod de configuração incompleta deve ser desativado antes de emparelhar com um novo. Desative e remova o pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Inserir Cânula"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulina Entregue"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Entrada inválida"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Nenhum"; + +/* Button title to pair with pod during setup */ +"Pair" = "Emparelhar"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Emparelhe um Novo Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "Emparelhado"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Emparelhando..."; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Versão PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Tocar bipes de teste"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Tocar bipes de teste…"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Versão PM"; + +/* Label describing pod age view */ +"Pod Age" = "Idade do Pod"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod expirado"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Configurações do Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Preparado"; + +/* The text of the loading label when priming */ +"Priming…" = "Preparando…"; + +/* Label describing time remaining view */ +"Remaining" = "Restante"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Substituir Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Substituir Pod Agora"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Tentar de Novo"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Retentar Desativação do Pod"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Configuração RileyLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Salvar"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Agendada"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Basal Agendado"; + +/* Title for setup complete screen */ +"Setup Complete" = "Instalação Concluída"; + +/* The title of the status section in settings */ +"Status" = "Estado"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Completo"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspender Entrega"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspenso"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Mudar de Bombas Omnipod"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sincronizar com o Pod"; + +/* The title of the command to run the test command */ +"Test Command" = "Testar Comando"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testando Comandos…"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Muitas entradas"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Não foi possível desativar o pod. Continue e emparelhe um novo."; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Desconhecido"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/ro.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/ro.lproj/Localizable.strings new file mode 100644 index 0000000000..070106fb39 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/ro.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ în urmă"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ a restabilit comunicarea cu Pod-ul de pe corpul tău. \n\n Înregistrările privind administrarea de insulină au fost actualizate și ar trebui să se potrivească cu ceea ce a fost administrat efectiv. \n\n Puteți continua să utilizați %2$@ în mod normal acum."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (finalizat)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U din %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/oră"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ pentru %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ nu a putut comunica cu Pod-ul de pe corpul tău de la %2$@.\n\nÎn lipsa comunicației cu Pod-ul, aplicația nu poate continua să trimită comenzi pentru administrarea de insulină sau să afișeze informații exacte și recente despre insulina activă sau despre insulina administrată de Pod.\n\nMonitorizați-vă glicemia cu atenție în următoarele 6 sau mai multe ore, deoarece este posibil să existe sau nu insulină care lucrează activ în corpul dumneavoastră și pe care %3$@ nu o poate afișa."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ unități rămase la %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Administrarea insulinei a fost oprită. Trebuie să dezactivați și să detașati Pod-ul."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g U"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 oră"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 oră și 30 de minute"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 ore"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 de minute"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Timp activ"; + +/* Section header for activity section */ +"Activity" = "Activitate"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Reglarea timpului pompei..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarme"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Sigur doriți să anulați configurarea Pod-ului?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Sigur doriți să opriți acest Pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Sunteți sigur că doriți să săriți peste inițierea pompei Omnipod?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Sunteți sigur că nu mai doriți să utilizați pompa Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Adresă asignată"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Atașați Pod-ul"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Se încearcă restabilirea comunicațiilor"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Înapoi"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Administrare bazală"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Rate bazale"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Administrare bolus"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Renunță"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Anulați bazala manuală"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Canula a fost introdusă cu succes. Continuați."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Schimbați Pod-ul acum. Livrarea insulinei se va opri la 8 ore după expirarea Pod-ului sau când nu mai rămâne deloc insulină."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Schimbați Pod-ul acum. Livrarea insulinei se va opri în %1$@ sau când nu mai rămâne insulină."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Schimbare fus orar"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Se modifică ora…"; + +/* Title for check cannula screen */ +"Check Cannula" = "Verificați canula"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Verificați Pod-ul, puneți-l pe piele, după care confirmați că este lipit."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Se verifică inserția"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Se verifică..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Comunicații reluate"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Mementouri de confimare"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Memento-urile de confirmare sunt semnale sonore de la Pod care pot fi folosite pentru confirmarea comenzilor selectate."; + +/* The title of the configuration section in settings */ +"Configuration" = "Configurare"; + +/* Button title for confirm attachment option */ +"Confirm" = "Confirmați"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Confirmați atașarea Pod-ului"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Continuă"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Alerte critice"; + +/* Unit for singular day in pod life remaining */ +"day" = "zi"; + +/* Unit for plural days in pod life remaining */ +"days" = "zile"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Dezactivează"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Dezactivează Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Dezactivat"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Se dezactivează."; + +/* Action button description while deactivating */ +"Deactivating..." = "Se dezactivează..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Șterge Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limite de livrare"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Detalii despre dispozitiv"; + +/* The title of the device information section in settings */ +"Device Information" = "Informații dispozitiv"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Dispozitive"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Dezactivează beep-urile de bolus"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Renunțați la Pod"; + +/* No comment provided by engineer. */ +"Done" = "Realizat"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Activează beep-urile de bolus"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Eroare"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Eroare la dezactivarea beep-urilor de bolus"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Eroare la activarea beep-urilor de bolus"; + +/* The alert title for a resume error */ +"Error Resuming" = "Eroare în timpul reluării"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Eroare în timpul suspendării"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Memento de expirare"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Memento de expirare implicit"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Expirat"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Expiră"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Nu s-a reușit anularea bazalei manuale"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Nu s-a reușit reluarea administrării de insulină"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nu s-a reușit setarei timpului de pe pompă"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Nu s-a reușit suspendarea administrării de insulină"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Nu s-a reușit actualizarea preferinței în ceea ce privește memento-ul de confirmare."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nu s-a reușit actualizarea memento-ului de expirare"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nu s-a reușit actualizarea memento-ului privind rezervorul scăzut"; + +/* Pod life HUD view label */ +"Fault" = "Defecțiune"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Umpleți un pod nou cu U-100 Insulină (nu înlăturați capacul acului de pe Pod). Așteptați să se audă 2 bipuri."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Finalizați dezactivarea"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Finalizare setare Pod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Finalizați configurarea"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Au rămas mai mult de %1$@ unități la %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "oră"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "ore"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Dacă anulați configurarea Pod-ului, Pod-ul actual va fi dezactivat și va fi inutilizabil."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Înainte de a asocia un Pod nou, trebuie să dezactivați orice Pod setat incomplet. Dezactivați și aruncați Pod-ul curent."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Înainte de a asocia un Pod nou, trebuie să dezactivați orice Pod setat incomplet. Dezactivați și îndepărtați Pod-ul curent."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Inserează canula"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Inserată"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Se inserează. Vă rog așteptați."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Se inserează canula..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Administrarea insulinei suspendată"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulină livrată"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Administrarea de insulină s-a oprit. Schimbați Pod-ul acum."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Administrarea de insulină va fi oprită până când veți relua manual. Când doriți ca Loop să vă reamintească să reluați administrarea?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Insulină rămasă"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Tipul de insulină"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Rată invalidă"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Canula este introdusă corect?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Țineți RileyLink-ul la aproximativ 15 cm de Pod în timpul asocierii."; + +/* description label for last status date pod details row */ +"Last Status" = "Ultima stare"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop nu va ajusta automat administrarea de insulină până când rata bazală temporară nu se termină sau nu este anulată."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* description label for lot number pod details row */ +"Lot Number" = "Numărul lotului"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Rezervor scăzut"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Memento pentru rezervor scăzut"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Asigurați-vă că telefonul și Pod-ul sunt aproape unul de celălalt. Dacă problemele de comunicare persistă, mutați-vă într-o zonă nouă."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minut"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minute"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Lipsă configurare"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Continuați"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nu"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Nicio\nAdministrare"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Fără insulină"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Niciun Pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Niciun memento"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Nu, continuați cu Pod-ul"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Nu, păstrați pompa așa cum este"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Nimic"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Setări de notificare"; + +/* No comment provided by engineer. */ +"Numbers" = "Numere"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Mementouri Omnipod"; + +/* Button title to pair with pod during setup */ +"Pair" = "Asociază"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Asociază un Pod nou"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Asociază un Pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Asociază un Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "Asociat"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Se asociază."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Se asociază…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Se asociază…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Procentaj = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Versiune PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Redă beep-uri de test"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Beep-uri de test în desfășurare…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Vă rugăm să confirmați că Pod-ul este bine fixat de corpul dumneavoastră. \n\nCanula poate fi introdusă doar o singură dată cu fiecare Pod. Atingeți „Confirmați” când Pod-ul este fixat."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Vă rugăm să dezactivați podul. Când dezactivarea este completă, puteți asocia un nou pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Vă rugăm să dezactivați podul. Când dezactivarea este completă, îl puteți elimina și asociați un nou pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Versiune PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod activat"; + +/* Label describing pod age view */ +"Pod Age" = "Vechime Pod"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod-ul a fost dezactivat cu succes."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Eroare Pod"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod-ul a expirat."; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod Expirat"; + +/* Label for pod expiration row */ +"Pod Expires" = "Pod-ul expiră"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod-ul expiră în"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detalii despre eroarea Pod-ului"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Ocluzie Pod"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod-ul a fost asociat cu succes. Continuați."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Setări Pod"; + +/* Title for PodSetupView */ +"Pod Setup" = "Configurare Pod-ului"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Pregătiți locul."; + +/* title for previous pod page */ +"Previous Pod" = "Pod-ul anterior"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Informații despre Pod-ul anterior"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Pregătit."; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Pregătire în curs. Vă rugăm să așteptați."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Pregătire în curs..."; + +/* The text of the loading label when priming */ +"Priming…" = "Pregătire în curs..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Ora pompei"; + +/* Label text for basal rate summary */ +"Rate" = "Rată"; + +/* Label describing time remaining view */ +"Remaining" = "Rămas"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Înlăturați Pod-ul de pe corp"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Ștergeți pompa"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Scoateți capacul acului de pe Pod și verificați canula. Apoi înlăturați eticheta de hârtie de pe spate."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Înlocuiți Pod-ul"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Înlocuiți Pod-ul acum"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Rezervor"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Reluați administrarea de insulină"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Se reia administrarea de insulină..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Reîncearcă"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Reîncearcă dezactivarea Pod-ului"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink-ul permite comunicarea cu pompa prin Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Configurarea RileyLink-ului"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Salvează"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Salvare..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Orar"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Bazală programată"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Memento programat"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Selectați tipul de insulină pe care o veți utiliza în acest pod."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Număr de ordine"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Setați bazala temporară"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Setați bazala temporară"; + +/* Title for setup complete screen */ +"Setup Complete" = "Configurare finalizată"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Pierdere de semnal"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Săriți peste inițierea pompei Omnipod?"; + +/* The title of the status section in settings */ +"Status" = "Stare"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Succes"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Suspendă administrarea"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Suspendați administrarea de insulină"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Suspendat"; + +/* Label for suspended at time */ +"Suspended At" = "Suspendat la"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Administrarea de insulină se suspendă..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Schimbă de la pompele Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Treceți la alt dispozitiv de administrare a insulinei"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Sincronizați cu ora curentă"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sincronizează cu Pod-ul"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Atingeți mai jos pentru a începe introducerea canulei."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Bazală temporară"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Rata temporară de bazală a eșuat"; + +/* The title of the command to run the test command */ +"Test Command" = "Comandă de test"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Se execută comenzile de test…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplicația configurează un memento pe pod pentru a vă notifica înainte de expirarea Pod. Setați numărul de ore înainte de notificare pe care doriți să o configurați atunci când asociați un pod nou."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplicația vă notifică în avans de expirarea Pod.\n\nDerulați pentru a seta numărul de ore dorite pentru notificare."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplicația vă anunță când cantitatea de insulină din Pod atinge acest nivel (50-10 U). \n\nDerulați pentru a seta numărul de unități la care doriți să fiți notificat."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplicația vă notifică când cantitatea de insulină din Pod atinge acest nivel."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Mementourile de mai sus nu vor suna dacă dispozitivul este în modul Silențios sau Nu deranjați.\n\nExistă și alte alerte și alarme critice de Pod care vor suna chiar dacă dispozitivul este setat la modul Silențios sau Nu deranjați."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Ora de pe pompă este diferită de ora curentă. Puteți revizui ora pompei și să o sincronizați cu ora curentă în meniul setări."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Ora pompei este diferită de ora curentă. Ora pompei dvs. controlează setările de terapie programate. Derulați în jos la rândul Ora pompei pentru a revizui diferența de oră și a configura pompa dvs."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Fereastra din partea superioară a Pod-ului trebuie să fie colorată în roz atunci când canula a fost introdusă corect în piele."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "A apărut o problemă la comunicarea cu podul. Dacă această problemă persistă, atingeți Renunțați la pod. Apoi puteți activa un nou Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Acesta este un memento pe care l-ați programat atunci când ați asociat Pod-ul curent."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Această pompă nu a fost configurată cu o rată maximă de insulină bazală, deoarece a fost adăugată înainte ca rata temporară de insulină bazală să fie o opțiune. Vă rugăm să mergeți la Setări terapie -> limite de livrare și să setați o nouă rată maximă de insulină bazală."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Timp"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "S-a detectat schimbarea orei"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Semn de comutare"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Prea multe înregistrări"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Administrare totală"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/oră"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Nu s-a putut dezactiva Pod-ul. Continuați și asociați un Pod nou."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Nu se poate conecta la Pod"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Nu se poate conecta la Pod"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nu se poate seta o rată temporară de insulină bazală: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nu se poate seta o rată temporară de insulină bazală: %1$@ \n\n %2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Activare neterminată"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Dezactivare neterminată"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Necunoscut"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Așteptați până când inserarea este finalizată."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Da"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Da, dezactivați Pod-ul"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Da, sincronizați cu ora curentă"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Veți începe acum procesul de configurare a memento-urilor, umplerea Pod-ului cu insulină, asocierea cu dispozitivul dumneavoastră și amplasarea acestuia pe corp."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod-ul dumneavoastră este gata de utilizare. \n\n %1$@ vă va reaminti să vă schimbați Pod-ul înainte de a expira. Puteți schimba într-un moment convenabil pentru dumneavoastră."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Este posibil ca Podul dvs. să administreze în continuare insulină.\nScoateți-l din corpul dumneavoastră, apoi atingeți \"Continuați\"."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/ru.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000..87461c57ea --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,772 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ назад"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ восстановил связь с подом на вашем теле.\n\nЗаписи о поданном инсулине были обновлены и должны соответствовать тому, что было доставлено на самом деле.\n\nТеперь вы можете продолжать использовать %2$@ в обычном режиме."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ ед"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ ед (подано)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ ед из %2$@ ед (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ ед/час"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ Ед"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ед"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%1$@ за %2$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ не может связаться с подом на вашем теле с %2$@.\n\nБез связи с подом приложение не может продолжать отправлять команды на доставку инсулина или отображать точную, свежую информацию о вашем активном инсулине или инсулине, доставляемом подом.\n\nВнимательно следите за уровнем глюкозы в течение следующих 6 или более часов, поскольку в вашем организме может активно работать или не работать инсулин, который %3$@ не может отобразить."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ед остается в %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Подача инсулина остановлена. Остановите и снимите Pod"; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g Ед"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 час"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 час 30 минут"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 часа"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 минут"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Активирован в"; + +/* Section header for activity section */ +"Activity" = "Нагрузка"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Настройка времени помпы..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Оповещения"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Вы уверены, что хотите отменить настройку Pod?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Вы уверены, что хотите выключить этот под?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Вы уверены, что хотите пропустить Omnipod Onboarding?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Вы уверены, что хотите прекратить использование Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Присвоенный адрес"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Прикрепить под"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Попытка восстановления связи"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Назад"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Подача базала"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Скорости базала"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Подача болюса"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Отмена"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Отменить ручную ВБС"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Канюля введена успешно. Продолжить."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Замените под сейчас. Подача инсулина прекратится через 8 часов после истечения срока действия пода или когда инсулина больше не останется."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Замените под сейчас. Подача инсулина прекратится через %1$@ или когда инсулина больше не останется."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Изменить часовой пояс"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Выполняется изменение времени"; + +/* Title for check cannula screen */ +"Check Cannula" = "Проверьте канюлю"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Проверьте под, приклейте его на место установки, затем подтвердите прикрепление пода."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Проверка ввода канюли"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Проверка..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Связь восстановлена"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Напоминания об уверенности"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Напоминания об уверенности - это звуковые сигналы, подаваемые подом, которые можно использовать для подтверждения выбранных команд."; + +/* The title of the configuration section in settings */ +"Configuration" = "Конфигурация"; + +/* Button title for confirm attachment option */ +"Confirm" = "Подтвердить"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Подтвердите, что под прикреплен к телу"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Продолжить"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Критические оповещения"; + +/* Unit for singular day in pod life remaining */ +"day" = "день"; + +/* Unit for plural days in pod life remaining */ +"days" = "дней"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Деактивировать"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Деактивировать Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Не активен"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Деактивация."; + +/* Action button description while deactivating */ +"Deactivating..." = "Деактивация..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Удалить Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Пределы подачи"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Сведения об устройстве"; + +/* The title of the device information section in settings */ +"Device Information" = "Информация об устройстве"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Устройства"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Отключить звуковой сигнал болюса"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Выбросить под"; + +/* No comment provided by engineer. */ +"Done" = "Готово"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Включить звуковой сигнал болюса"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Ошибка"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Ошибка при отключении звуковых сигналов болюса"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Ошибка включения звуковых сигналов болюса"; + +/* The alert title for a resume error */ +"Error Resuming" = "Ошибка возобновления"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Ошибка приостановки"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Напоминание об истечении срока"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Напоминание об истечении срока действия По умолчанию"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Срок истек"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Срок истекает"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Не удалось отменить ручной базал"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Не удалось возобновить подачу инсулина"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Не удалось установить время в помпе"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Не удалось приостановить подачу инсулина"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Не удалось обновить настройки напоминания о конфиденциальности."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Не удалось обновить напоминание об истечении срока действия"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Не удалось обновить напоминание о низком уровне резервуара"; + +/* Pod life HUD view label */ +"Fault" = "Сбой"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Заправьте новый под инсулином (не менее 100 единиц, крышка канюли должна быть на месте). Дождитесь 2 звуковых сигналов."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Завершение деактивации"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Завершить настройку Omnipod"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Завершить настройку"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Более %1$@ ед остается в %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "час"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "часов"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Если вы отмените настройку пода, текущий под будет деактивирован и станет непригодным для использования."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Неполностью настроенный Omnipod должен быть отключен до соединения с новым. Отключите и утилизируйте Pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Неполностью настроенный Omnipod должен быть отключен до соединения с новым. Отключите и удалите Pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Ввести канюлю"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Введено"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Введение канюли. Пожалуйста, подождите."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Введение канюли..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "Подача инсулина остановлена"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Инсулин подан"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Введение инсулина остановлено. Замените Под."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Подача инсулина будет прекращена до тех пор, пока вы не возобновите ее вручную. Когда вы хотите, чтобы Loop напомнил вам о необходимости возобновить подачу?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Остаток инсулина"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Тип инсулина"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Неверная запись"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Правильно ли введен катетер?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Во время сопряжения держите RileyLink на расстоянии около 20 сантиметров от пода."; + +/* description label for last status date pod details row */ +"Last Status" = "Последнее состояние"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop не будет автоматически регулировать подачу инсулина, пока временная базальная скорость не закончится или не будет отменена."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* description label for lot number pod details row */ +"Lot Number" = "Lot Number"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Мало инсулина в резервуаре"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Резервуар помпы пуст"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Убедитесь, что ваш телефон и под находятся рядом друг с другом. Если проблемы со связью сохраняются, перейдите в другое место."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "минута"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "минут"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Отсутствует конфигурация"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Продолжить"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Нет"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "Нет подачи"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Нет инсулина"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Нет пода"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Нет напоминаний"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Нет, продолжить с подом"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Нет, оставить время в помпе как есть"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Не подан"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Настройки уведомлений"; + +/* No comment provided by engineer. */ +"Numbers" = "Цифры"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Напоминания пода"; + +/* Button title to pair with pod during setup */ +"Pair" = "Сопряжение"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Установить сопряжение"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Сопрячь под"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Сопрячь под."; + +/* Label text indicating pairing finished. */ +"Paired" = "Сопряжен"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Начать сопряжение"; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Сопряжение..."; + +/* The text of the loading label when pairing */ +"Pairing…" = "Производится Сопряжение"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Процент = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Версия PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Включить проверку сигналов"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Проверка тест сигнала"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Убедитесь, что под надежно приклеен на вашем теле.\n\nКатетер можно ввести только один раз. Нажмите кнопку \"Подтвердить\", когда под приклеен."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Пожалуйста, деактивируйте под. Когда деактивация будет закончена, Вы сможете сопрячь новый."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Пожалуйста, деактивируйте под. Когда деактивация будет закончена, Вы можете снять старый под и сопрячь новый."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Версия PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Под активирован"; + +/* Label describing pod age view */ +"Pod Age" = "Pod проработал"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Под успешно деактивирован. Продолжить."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Ошибка пода"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Срок работы Omnipod истек"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Под истек"; + +/* Label for pod expiration row */ +"Pod Expires" = "Срок действия пода истекает"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Под истекает "; + +/* description label for pod fault details */ +"Pod Fault Details" = "Детали ошибка пода"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Закупорка пода"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Под успешно сопряжен. Продолжить."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Настройки пода"; + +/* Title for PodSetupView */ +"Pod Setup" = "Настройка пода"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Подготовьте место установки помпы"; + +/* title for previous pod page */ +"Previous Pod" = "Предыдущий под"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Предыдущая информация о поде"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Заправлено"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Заправка. Пожалуйста, подождите."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Заправить..."; + +/* The text of the loading label when priming */ +"Priming…" = "Заправка..."; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Время в помпе"; + +/* Label text for basal rate summary */ +"Rate" = "Rate"; + +/* Label describing time remaining view */ +"Remaining" = "Остается"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Снимите под с тела"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Удалите помпу"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Отломите защитную крышку канюли и проверьте состояние самой канюли. Далее снимите защитные стикеры с пластыря."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Заменить Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Немедленно замените Pod"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Возобновить подачу инсулина"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Возобновление подачи инсулина..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Повторить"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Повторить деактивацию Pod’a"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "Rileylink необходим для коммуникации с помпой посредством Bluetooth"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Настройка RilryLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Сохранить"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Сохранение..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "По графику"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Запланированная база"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Запланированное напоминание"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Выберите тип инсулина, с которым Вы будете использовать этот под."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Порядковый номер"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Установить ВБС"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Установить ВБС"; + +/* Title for setup complete screen */ +"Setup Complete" = "Настройка завершена"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Сигнал потерян"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Пропустить настройку Omnipod?"; + +/* The title of the status section in settings */ +"Status" = "Статус"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Успешно"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Остановить подачу"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Остановить подачу инсулина"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Остановлено"; + +/* Label for suspended at time */ +"Suspended At" = "Приостановлено в"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Остановка подачи инсулина..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Отключиться от помп Omnipod"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Переключиться на другое устройство для введения инсулина"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Синхронизация с текущим временем"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Синхронизировать с Pod'ом"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Нажмите ниже, чтобы начать ввод канюли."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "ВБС"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Ошибка установки ВБС"; + +/* The title of the command to run the test command */ +"Test Command" = "Провести тест"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Команды тестов"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Приложение настраивает напоминание на телефоне, чтобы уведомить вас об истечении срока действия Pod. Установите количество часов предварительного уведомления, которое вы хотите сохранить при сопряжении нового Pod."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Приложение заранее уведомит Вас об истечении срока действия Pod.\n\nПрокрутите, чтобы установить количество часов предварительного уведомления, которое вы хотели бы получить."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Приложение уведомит Вас, когда количество инсулина в Pod достигнет этого уровня (50-10 Ед).\n\nПрокрутите, чтобы установить количество единиц, о которых вы хотели бы получить напоминание."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Приложение уведомит Вас, когда количество инсулина в Pod достигнет этого уровня."; + +/* Description text for critical alerts */ +"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Приведенные выше напоминания не будут звучать, если ваше устройство находится в режиме Тишина или Не беспокоить.\n\nЕсть и другие критические оповещения и сигналы тревоги Pod, которые будут звучать, даже если ваше устройство настроено в режим Тишина или Не беспокоить."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Время на вашей помпе отличается от текущего времени. Вы хотите обновить время на вашей помпе на текущее?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Время на помпе отличается от текущего времени. Время вашей помпы контролирует ваши запланированные настройки терапии. Прокрутите вниз до строки времени помпы, чтобы просмотреть разницу во времени и настроить помпу."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Когда канюля правильно введена под кожу, окошко в верхней части пода должно окраситься в розовый цвет."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Возникла проблема с общением с подом. Если эта проблема сохраняется, нажмите \"Деактивировать Pod\". Затем вы можете активировать новый Pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Это напоминание, которое вы запланировали при сопряжении с текущим подом."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Эта помпа не была настроена с максимальным базалом, потому что была добавлена до того, как установка ручной ВБС стала возможной. Пожалуйста, перейдите в настройки терапии -> Лимиты доставки и установите новый максимальный базал."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Время"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Обнаружено изменение времени"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Переключение входа"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Слишком много данных"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Подано всего"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/hr"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Не удалось деактивировать Pod. Пропустить и начать соединение с новым."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Невозможно связаться с подом"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Невозможно связаться с подом"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Невозможно установить ВБС: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Невозможно установить ВБС: %1$@\n\n%2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Не закончена активация"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Незавершенная деактивация"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Неизвестно"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Подождите, пока ввод канюли завершится."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Да"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Деактивировать Pod"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Да, синхронизировать с текущим временем"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Сейчас Вы начнете процесс конфигурирования напоминаний, заправки пода инсулином, сопряжения с телефоном и установкой пода на тело."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Под готов к использованию.\n\n%1$@ напомнит вам о необходимости замены пода до истечения срока его действия. Вы можете изменить это на удобное для вас время."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Ваш под может по-прежнему доставлять инсулин.\n Удалите его с тела, затем нажмите «Продолжить»."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/sk.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..2280786fa7 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/sk.lproj/Localizable.strings @@ -0,0 +1,661 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "pred %@"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ obnovil komunikáciu s podom na vašom tele. \n\n Záznamy o podávaní inzulínu boli aktualizované a mali by zodpovedať tomu, čo bolo skutočne podané. \n\nTeraz môžete naďalej normálne používať %2$@ ."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ j"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ j (Dokončené)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ j z %2$@ j ( %3$@ )"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ j/hod"; + +/* Appends a full-stop to a statement */ +"%@." = "%@ ."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@ %%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ j"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@ j"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "1 pre 2"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ sa nepodarilo komunikovať s podom na vašom tele od %2$@ . \n\nBez komunikácie s podom, nemôže aplikácia pokračovať v odosielaní príkazov na aplikáciu inzulínu, ani zobrazovať presné a aktuálne informácie o vašom aktívnom inzulíne alebo o inzulíne podávanom podom. \n\nPočas nasledujúcich 6 alebo viac hodín pozorne sledujte svoju glykémiu, pretože vo vašom tele môže alebo nemusí aktívne pôsobiť inzulín, ktorý %3$@ nedokáže zobraziť."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ jednotiek zostávajúcich na %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Podávanie inzulínu sa zastavilo. Prosím, deaktivujte a odstráňte pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@ %2$@ %3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@ + %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%g j"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktívny čas"; + +/* Section header for activity section */ +"Activity" = "Aktivita"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmy"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Naozaj chcete vypnúť tento pod?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Naozaj chcete preskočiť nastavovanie Omnipodu?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Naozaj chcete prestať používať Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Priradená adresa"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Aplikujte pod"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "Prebieha obnovenie komunikácie"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Späť"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Podávanie bazálu"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Bazálne dávky"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Podávanie bolusu"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušiť"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanyla úspešne zavedená. Pokračovať."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Ihneď vymeniť pod. Podávanie inzulínu sa zastaví o 8 hodín alebo keď sa minie inzulín."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Ihneď vymeniť pod. Podávanie inzulínu sa zastaví o %1$@ alebo keď sa minie inzulín."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Zmeniť časové pásmo"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Mení sa čas…"; + +/* Title for check cannula screen */ +"Check Cannula" = "Skontrolujte kanylu"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Skontrolujte pod, aplikujte ho na telo, potom potvrďte prilepenie podu."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Kontrola zavedenia"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontroluje sa..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "Príkazy obnovené"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Potvrdzovacie pripomienky sú pípnutia z podu, ktoré možno použiť pre potvrdenie vybraných príkazov."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigurácia"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Pokračovať"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritické výstrahy"; + +/* Unit for singular day in pod life remaining */ +"day" = "deň"; + +/* Unit for plural days in pod life remaining */ +"days" = "dni"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Deaktivovať"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Deaktivovať pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Deaktivované"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Deaktivuje sa."; + +/* Action button description while deactivating */ +"Deactivating..." = "Deaktivuje sa..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Odstrániť Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Limity podávania"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Podrobnosti o zariadení"; + +/* The title of the device information section in settings */ +"Device Information" = "Informácie o zariadení"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Zariadenia"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Vypnúť pípanie pri boluse"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Zlikvidujte pod"; + +/* No comment provided by engineer. */ +"Done" = "Hotovo"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Povoliť pípanie pri boluse"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Chyba"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Chyba pri vypnutí bolusových pípnutí"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Chyba pri povoľovaní bolusových pípnutí"; + +/* The alert title for a resume error */ +"Error Resuming" = "Chyba pri obnovení"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Chyba pri pozastavení"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Pripomienka o expirácii"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Predvolené pripomenutie o expirácii"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Expiroval"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Expiruje"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Zrušenie manuálneho bazálu zlyhalo"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Obnovenie podávania inzulínu zlyhalo"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Nastavenie času pumpy zlyhalo"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "Pozastavenie podávania inzulínu zlyhalo"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Nepodarilo sa aktualizovať predvoľbu pripomenutia dôveryhodnosti."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Nepodarilo sa aktualizovať pripomenutie o expirácii"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Nepodarilo sa aktualizovať pripomienku nízkej hladiny v rezervoári"; + +/* Pod life HUD view label */ +"Fault" = "Chyba"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Naplňte nový pod inzulínom U-100 (kryt ihly ponechajte nasadený). Budete počuť 2 pípnutia."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Dokončiť deaktiváciu"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Dokončiť nastavenie podu"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Dokončiť nastavenie"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Viac ako %1$@ jednotiek zostávajúcich o %2$@"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "hodina"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "hodiny"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Neúplne nastavený pod musí byť deaktivovaný pred spárovaním s novým podom. Deaktivujte a zlikvidujte pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Neúplne nastavený pod musí byť deaktivovaný pred spárovaním s novým podom. Deaktivujte a odstráňte pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Zaviesť kanylu"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Zavádzanie. Počkajte, prosím."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Zavádza sa.."; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Inzulín podaný"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Podávanie inzulínu"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "Podávanie inzulínu sa zastavilo. Vymeňte modul teraz."; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Zostávajúci inzulín"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Typ inzulínu"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Neplatný údaj"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Počas párovania držte RileyLink približne 6 palcov od podu."; + +/* description label for last status date pod details row */ +"Last Status" = "Posledný stav"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop nebude automaticky upravovať podávanie inzulínu, kým dočasná bazálna dávka nebude ukončená alebo zrušená."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Šarža"; + +/* description label for lot number pod details row */ +"Lot Number" = "Číslo šarže"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Nízka hladina v rezervoári"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Pripomienka Nízka hladina v rezervoári"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Uistite sa, že váš telefón a pod sú blízko seba. Ak problémy s komunikáciou pretrvávajú, presuňte sa na iné miesto."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "minúta"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "minúty"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Chýba konfigurácia"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "NA"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Ďalej"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Nie"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Žiadny inzulín"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Žiadny pod"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Žiadna pripomienka"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Žiadny"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Nastavenia oznámení"; + +/* No comment provided by engineer. */ +"Numbers" = "Čísla"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Pripomienky omnipodu"; + +/* Button title to pair with pod during setup */ +"Pair" = "Párovať"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Párovať nový pod"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Párovať pod"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Párovať pod."; + +/* Label text indicating pairing finished. */ +"Paired" = "Spárované"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Párovanie."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Páruje sa…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Párovanie…"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "Verzia PI"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Prehrať skúšobné pípnutia"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Prehrať skúšobné pípnutia…"; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Prosím, deaktivujte pod. Po dokončení deaktivácie, môžete spárovať nový pod."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Prosím, deaktivujte pod. Po dokončení deaktivácie, ho môžete odstrániť a spárovať nový pod."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "Verzia PM"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod aktivovaný"; + +/* Label describing pod age view */ +"Pod Age" = "Vek podu"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod deaktivovaný úspešne. Pokračovať."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Chyba podu"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod vypršal"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod expiroval"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Pod expiruje o"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Detaily chyby podu"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Oklúzia podu"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod sprárovaný úspešne. Pokračovať."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Nastavenia podu"; + +/* Title for PodSetupView */ +"Pod Setup" = "Nastavenie podu"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Pripravte miesto."; + +/* title for previous pod page */ +"Previous Pod" = "Predchádzajúci Pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Pripravené"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Pripravuje sa. Prosím čakajte."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Príprava…"; + +/* The text of the loading label when priming */ +"Priming…" = "Príprava…"; + +/* Label text for basal rate summary */ +"Rate" = "Dávka"; + +/* Label describing time remaining view */ +"Remaining" = "Zostáva"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Odstráňte kryt z ihly a skontrolujte kanylu. Potom odstráňte papierovú podložku."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Vymeňte pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Ihneď vymeňte pod"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Rezervoár"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "Obnoviť podávanie inzulínu"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "Obnovuje sa podávanie inzulínu..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Skúsiť znova"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Opäť deaktivovať pod"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink umožňuje komunikáciu s pumpou cez Bluetooth."; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Nastavenie RileyLinku"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Uložiť"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Ukladá sa..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Plán "; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Naplánovaný bazál"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Naplánovaná pripomienka"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Vyberte typ inzulínu, ktorý budete používať v tomto pode."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sekvenčné číslo"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Nastaviť dočasný bazál"; + +/* Title for setup complete screen */ +"Setup Complete" = "Nastavenie je dokončené"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Strata signálu"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Preskočiť Omnipod Onboarding?"; + +/* The title of the status section in settings */ +"Status" = "Stav"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Úspešné"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "Zastavte podávanie inzulínu"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Pozastavené"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "Pozastavenie podávania inzulínu..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Prepnúť z púmp Omnipod "; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synchronizovať s podom"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Ťuknutím nižšie spustíte zavádzanie kanyly."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Dočasný bazál"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Dočasný bazál zlyhal"; + +/* The title of the command to run the test command */ +"Test Command" = "Testovať príkaz"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testovanie príkazov…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Aplikácia nakonfiguruje pripomienku do podu, aby vás vopred upozornila na expiráciu podu. Počas párovania nového podu, nastavte, koľko hodín vopred, by ste chceli pripomienku nakonfigurovať."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Aplikácia vás vopred upozorní na expiráciu podu. \n\nRolovaním nastavte počet hodín vopred, kedy chcete upozornenie dostať."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Aplikácia vás upozorní, keď množstvo inzulínu v pode dosiahne túto úroveň (50 – 10 U). \n\nRolovaním nastavte počet jednotiek, pri ktorých chcete byť upozornení."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Aplikácia vás upozorní, keď množstvo inzulínu v pode dosiahne túto úroveň."; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Čas na pumpe je iný ako aktuálny čas. Čas pumpy riadi vaše naplánované liečebné nastavenia. Prejdite nadol na riadok Čas pumpy, pozrite si časový rozdiel a nakonfigurujte pumpu."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Nastal problém s komunikáciou s podom. Ak tento problém pretrváva, ťuknite na položku Zlikvidovať Pod. Potom môžete aktivovať nový pod."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Toto je pripomienka, ktorú ste naplánovali pri spárovaní aktuálneho Podu."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "V tejto pumpe nebola nakonfigurovaná maximálna bazálna dávka, pretože bola pridaná predtým, než bola funkcia manuálneho dočasného bazálu. Prejdite do Liečebné nastavenia - > Limity dávkovania a nastavte novú maximálnu bazálnu dávku."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Čas"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Zistila sa zmena času"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Značka prepnutia"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Príliš veľa záznamov"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Celková dávka"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Pod nie je možné deaktivovať. Prosím pokračujte a spárujte nový pod."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Pod nie je v dosahu."; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Pod nie je v dosahu."; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Nie je možné nastaviť dočasnú dávku bazálu: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Nie je možné nastaviť dočasnú dávku bazálu: %1$@ \n\n %2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Aktivácia neukončená"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Deaktivácia neukončená"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Neznáme"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Počkajte kým nie je zavedenie ukončené."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Áno"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Teraz začnete s procesom konfigurácie pripomienok, naplnením podu inzulínom, jeho spárovaním s vašim zariadením a umiestnením podu na telo."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Váš pod je pripravený na použitie. \n\n %1$@ vám pripomenie, aby ste vymenili svoj pod pred časom jeho expirácie. Môžete to zmeniť na čas, ktorý vám vyhovuje."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/sv.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/sv.lproj/Localizable.strings new file mode 100644 index 0000000000..4ea789ca72 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/sv.lproj/Localizable.strings @@ -0,0 +1,314 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ sedan"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ E"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ E (Klar)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%@ E av %@ E (%@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ E/h"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ E"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@E"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ enheter återstår kl. %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Insulintillförseln har avbrutits. Inaktivera podden och byt till en ny podd."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktiv tid"; + +/* Section header for activity section */ +"Activity" = "Aktivitet"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Larm"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Är du säker att du vill stänga av denna podd?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Är du säker att du vill sluta använda Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Tilldelad adress"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Tillbaka"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Basaldos"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Basaldoser"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolusdos"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Avbryt"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Ändra tidszon"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Ändra tid…"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrollerar..."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfiguration"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Fortsätt"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Inaktivera"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Inaktivera podd"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Inaktiverad"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Radera Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Maxdoser"; + +/* The title of the device information section in settings */ +"Device Information" = "Enhetsinformation"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Enheter"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Stäng av bolusljud"; + +/* No comment provided by engineer. */ +"Done" = "Färdig"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Slå på bolusljud"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Fel"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Fel vid avstängning av bolusljud"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Fel vid aktivering av bolusljud"; + +/* The alert title for a resume error */ +"Error Resuming" = "Fel vid återupptagande"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Fel vid försök till paus"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Påminnelse om utgångsdatum"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Utgått"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Utgår"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "Misslyckades att återuppta insulintillförsel"; + +/* Pod life HUD view label */ +"Fault" = "Fel"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Gör färdigt poddinställningen"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Fler än %1$@ enheter återstår kl. %2$@"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Ofullständigt inställd podd måste inaktiveras före parkoppling av ny podd. Inaktivera och kasta den gamla podden."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Ofullständigt inställd podd måste inaktiveras före parkoppling av ny podd. Inaktivera och kasta den gamla podden."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "För in kanyl"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulin doserat"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "Insulintyp"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Ogiltig inmatning"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "Inget insulin"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Ingen Podd"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Ingen"; + +/* Button title to pair with pod during setup */ +"Pair" = "Parkoppla"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Parkoppla ny podd"; + +/* Label text indicating pairing finished. */ +"Paired" = "Parkopplad"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Parkopplar…"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI-version"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Spela upp testljud"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Spelar upp testljud…"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM-version"; + +/* Label describing pod age view */ +"Pod Age" = "Poddålder"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod har utgått"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Poddens utgångsdatum passerat"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Poddinställningar"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Podden är fylld"; + +/* The text of the loading label when priming */ +"Priming…" = "Podden fylls..."; + +/* Label describing time remaining view */ +"Remaining" = "Återstår"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Byt podd"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Byt podd nu"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoar"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Försök igen"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Försök inaktivera podden igen"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink inställning"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Spara"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Schema"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Schemalagd basal"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Välj vilken typ av insulin du kommer att använda."; + +/* Title for setup complete screen */ +"Setup Complete" = "Inställning klar"; + +/* The title of the status section in settings */ +"Status" = "Status"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Lyckades"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Pausa insulintillförsel"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Pausad"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Byt från Omnipod-pumpar"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Synkronisera med podd"; + +/* The title of the command to run the test command */ +"Test Command" = "Kommandotest"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Testar att skicka kommandon…"; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Tid"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "För många inmatningar"; + +/* Units for showing temp basal rate */ +"U/hr" = "E/timme"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Kunde inte deaktivera podden. Var god fortsätt genom att parkoppla en ny podd."; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Okänd"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/tr.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000000..16a15c6731 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,769 @@ +/* No comment provided by engineer. */ +"—" = "—"; + +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ önce"; + +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* No comment provided by engineer. */ +"%@ has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use %@ normally now." = "%1$@ vücudunuzdaki pod ile iletişimi yeniden sağladı.\n\nİnsülin iletim kayıtları güncellendi ve gerçekte iletilenlerle eşleşmelidir.\n\nŞimdi normal şekilde %2$@ kullanmaya devam edebilirsiniz."; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ Ü"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ Ü (Tamamlandı)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ Ü'si %2$@ Ü'nin (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ Ü/saat"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ Ü"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@Ü"; + +/* Summary string for temporary basal rate configuration page */ +"%1$@ for %2$@" = "%2$@ için %1$@"; + +/* Format string for main text of delivery uncertainty recovery page. (1: app name)(2: date of command)(3: app name) */ +"%1$@ has been unable to communicate with the pod on your body since %2$@.\n\nWithout communication with the pod, the app cannot continue to send commands for insulin delivery or display accurate, recent information about your active insulin or the insulin being delivered by the Pod.\n\nMonitor your glucose closely for the next 6 or more hours, as there may or may not be insulin actively working in your body that %3$@ cannot display." = "%1$@ , %2$@ tarihinden beri vücudunuzdaki pod ile iletişim kuramıyor. \n\nPod ile iletişim olmadan, uygulama insülin iletimi için komutlar göndermeye devam edemez ve aktif insülininiz veya pod tarafından verilen insülin hakkında doğru ve güncel bilgileri görüntüleyemez. \n\n Vücudunuzda aktif olarak çalışan ve %3$@ tarafından görüntülenemeyen insülin olabilir veya olmayabilir, önümüzdeki 6 saat veya daha uzun bir süre boyunca kan şekerinizi yakından takip edin."; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ ünite kaldı %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. İnsülin iletimi durdu. Lütfen pod'u devre dışı bırakın ve çıkarın."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* Format string for reservoir level above max measurable threshold. (1: measurable reservoir threshold) (2: units) */ +"%1$@+ %2$@" = "%1$@+ %2$@"; + +/* Format string for total delivery on pod details screen */ +"%g U" = "%gr Ü"; + +/* Button text for 1 hour suspend duration */ +"1 hour" = "1 saat"; + +/* Button text for 1 hour 30 minute suspend duration */ +"1 hour 30 minutes" = "1 saat 30 dakika"; + +/* Button text for 2 hour suspend duration */ +"2 hours" = "2 saat"; + +/* Button text for 30 minute suspend duration */ +"30 minutes" = "30 dakika"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Aktif Zaman"; + +/* Section header for activity section */ +"Activity" = "Aktivite"; + +/* Text indicating ongoing pump time synchronization */ +"Adjusting Pump Time..." = "Pompa Zamanı Ayarlanıyor..."; + +/* The title of the cell showing alarm status */ +"Alarms" = "Alarmlar"; + +/* Alert title for cancel pairing modal */ +"Are you sure you want to cancel Pod setup?" = "Pod kurulumunu iptal etmek istediğinizden emin misiniz?"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Bu pod'u kapatmak istediğinizden emin misiniz?"; + +/* No comment provided by engineer. */ +"Are you sure you want to skip Omnipod Onboarding?" = "Omnipod katılımını atlamak istediğinizden emin misiniz?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Omnipod'u kullanmayı bırakmak istediğinizden emin misiniz?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Atanan Adres"; + +/* Title for Attach Pod screen */ +"Attach Pod" = "Pod Ekleme"; + +/* Description string above progress indicator while attempting to re-establish communication from an unacknowledged command */ +"Attemping to re-establish communication" = "İletişim yeniden kuruluyor"; + +/* Back button text on DeliveryUncertaintyRecoveryView */ +"Back" = "Geri"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Bazal İletimi"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Bazal Oranlar"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Bolus İletimi"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "İptal"; + +/* Button title to cancel manual basal */ +"Cancel Manual Basal" = "Manuel Bazalı İptal Et"; + +/* Insert cannula action button accessibility label when cannula insertion succeeded */ +"Cannula inserted successfully. Continue." = "Kanül başarıyla yerleştirildi. Devam et."; + +/* The action string on pod status page when pod expired */ +"Change Pod now. Insulin delivery will stop 8 hours after the Pod has expired or when no more insulin remains." = "Pod'u şimdi değiştirin. İnsülin iletimi, podun süresi dolduktan 8 saat sonra veya insülin kalmadığında duracaktır."; + +/* Format string for the action string on pod status page when pod expired. (1: service time remaining) */ +"Change Pod now. Insulin delivery will stop in %1$@ or when no more insulin remains." = "Pod'u şimdi değiştirin. İnsülin iletimi %1$@ içinde veya insülin kalmadığında duracaktır."; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Saat Dilimini Değiştir"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Saat değiştiriliyor…"; + +/* Title for check cannula screen */ +"Check Cannula" = "Kanülü Kontrol Edin"; + +/* Label text for step three of attach pod instructions */ +"Check Pod, apply to site, then confirm pod attachment." = "Pod'u kontrol edin, uygulayın, ardından pod eklemeyi onaylayın."; + +/* Insert cannula action button accessibility label checking insertion */ +"Checking Insertion" = "Yerleştirmeyi Kontrol Et"; + +/* Cannula insertion button text while checking insertion */ +"Checking..." = "Kontrol ediliyor..."; + +/* Title for uncertainty recovered screen */ +"Comms Recovered" = "İletişim Kurtarıldı"; + +/* Text for confidence reminders navigation link */ +"Confidence Reminders" = "Emniyet Hatırlatıcıları"; + +/* Help text for BeepPreferenceSelectionView */ +"Confidence reminders are beeps from the pod which can be used to acknowledge selected commands." = "Emniyet hatırlatıcıları, poddan gelen ve seçilen komutları onaylamak için kullanılabilen bip sesleridir."; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigürasyon"; + +/* Button title for confirm attachment option */ +"Confirm" = "Onayla"; + +/* Alert title for confirm pod attachment */ +"Confirm Pod Attachment" = "Pod Eklemeyi Onayla"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Devam et"; + +/* Title for critical alerts description */ +"Critical Alerts" = "Kritik Uyarılar"; + +/* Unit for singular day in pod life remaining */ +"day" = "gün"; + +/* Unit for plural days in pod life remaining */ +"days" = "gün"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Devre dışı bırak"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Pod'u devre dışı bırak"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Devre dışı"; + +/* Deactivate pod action button accessibility label while deactivating */ +"Deactivating." = "Devre dışı bırakılıyor."; + +/* Action button description while deactivating */ +"Deactivating..." = "Devre dışı bırakılıyor..."; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Omnipod'u Sil"; + +/* Title text for delivery limits */ +"Delivery Limits" = "İletim Limitleri"; + +/* Text for device details disclosure row + title for device details page */ +"Device Details" = "Cihaz Detayları"; + +/* The title of the device information section in settings */ +"Device Information" = "Cihaz bilgisi"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Cihazlar"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Bolus Bip Seslerini Devre Dışı Bırak"; + +/* Pairing interface navigation bar button text for discard pod action + Text for discard pod button */ +"Discard Pod" = "Podu At"; + +/* No comment provided by engineer. */ +"Done" = "Tamamlandı"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Bolus Bip Seslerini Etkinleştir"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Hata"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Bolus bip sesleri devre dışı bırakılırken hata oluştu"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Bolus bip sesleri etkinleştirilirken hata oluştu"; + +/* The alert title for a resume error */ +"Error Resuming" = "Sürdürme Hatası"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Askıya Alma Hatası"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Süre Sonu Hatırlatıcısı"; + +/* Label text for expiration reminder default row */ +"Expiration Reminder Default" = "Varsayılan Süre Sonu Hatırlatıcısı"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Süresi doldu"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Süresi doluyor"; + +/* Alert title for failing to cancel manual basal error */ +"Failed to Cancel Manual Basal" = "Manuel Bazal İptal Edilemedi"; + +/* Alert title for resume error */ +"Failed to Resume Insulin Delivery" = "İnsülin İletimine Devam Edilemedi"; + +/* Alert title for time sync error */ +"Failed to Set Pump Time" = "Pompa Zamanı Ayarlanamadı"; + +/* Alert title for suspend error */ +"Failed to Suspend Insulin Delivery" = "İnsülin İletimi Askıya Alınamadı"; + +/* Alert title for error when updating confidence reminder preference */ +"Failed to update confidence reminder preference." = "Emniyet hatırlatıcısı tercihi güncellenemedi."; + +/* Alert title for error when updating expiration reminder */ +"Failed to Update Expiration Reminder" = "Süre Sonu Hatırlatıcısı Güncellenemedi"; + +/* Alert title for error when updating low reservoir reminder */ +"Failed to Update Low Reservoir Reminder" = "Düşük Rezervuar Hatırlatıcısı Güncellenemedi"; + +/* Pod life HUD view label */ +"Fault" = "Hata"; + +/* Label text for step 1 of pair pod instructions */ +"Fill a new pod with U-100 Insulin (leave Pod needle cap on). Listen for 2 beeps." = "Yeni bir podu U-100 İnsülin ile doldurun (Pod iğne kapağını çıkarmayın). 2 bip sesini dinleyin."; + +/* Settings page link description when next lifecycle action is to finish deactivation */ +"Finish deactivation" = "Devre Dışı Bırakmayı Bitir"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Pod kurulumunu tamamlayın"; + +/* Action button title to continue at Setup Complete */ +"Finish Setup" = "Kurulumu Bitir"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "%2$@ de kalan %1$@ üniteden fazla"; + +/* Unit for singular hour in pod life remaining */ +"hour" = "saat"; + +/* Unit for plural hours in pod life remaining */ +"hours" = "saat"; + +/* Alert message body for confirm pod attachment */ +"If you cancel Pod setup, the current Pod will be deactivated and will be unusable." = "Pod kurulumunu iptal ederseniz, mevcut Pod devre dışı bırakılır ve kullanılamaz hale gelir."; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Tam olarak kurulmamış pod, yeni bir pod ile eşleştirilmeden önce devre dışı bırakılmalıdır. Lütfen pod'u devre dışı bırakın ve atın."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Tam olarak kurulmamış pod, yeni bir pod ile eşleştirilmeden önce devre dışı bırakılmalıdır. Lütfen pod'u devre dışı bırakın ve çıkarın."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Kanül yerleştirin"; + +/* Label text indicating insertion finished. */ +"Inserted" = "Yerleştirildi"; + +/* Insert cannula action button accessibility label while pairing */ +"Inserting. Please wait." = "Yerleştiriliyor. Lütfen bekleyin.."; + +/* Cannula insertion button text while inserting */ +"Inserting..." = "Yerleştiriliyor..."; + +/* Text shown in insulin delivery space when insulin suspended */ +"Insulin\nSuspended" = "İnsülin\nAskıya alındı"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "İnsülin İletildi"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "İnsulin İletimi"; + +/* The action string on pod status page when pod faulted */ +"Insulin delivery stopped. Change Pod now." = "İnsülin iletimi durdu. Pod'u şimdi değiştirin."; + +/* Message for suspend duration selection action sheet */ +"Insulin delivery will be stopped until you resume manually. When would you like Loop to remind you to resume delivery?" = "Siz manuel olarak devam edene kadar insülin iletimi durdurulacaktır. Loop'un iletime devam etmenizi ne zaman hatırlatmasını istersiniz?"; + +/* Header for insulin remaining on pod settings screen */ +"Insulin Remaining" = "Kalan İnsülin"; + +/* Text for confidence reminders navigation link + Title for insulin type selection screen */ +"Insulin Type" = "İnsülin Tipi"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Geçersiz Girdi"; + +/* Question to confirm the cannula is inserted properly */ +"Is the cannula inserted properly?" = "Kanül düzgün yerleştirildi mi?"; + +/* Label text for step 2 of pair pod instructions */ +"Keep the RileyLink about 6 inches from the pod during pairing." = "Eşleştirme sırasında RileyLink'i pod'dan yaklaşık 15cm uzakta tutun."; + +/* description label for last status date pod details row */ +"Last Status" = "Son Durum"; + +/* Description text on manual temp basal action sheet */ +"Loop will not automatically adjust your insulin delivery until the temporary basal rate finishes or is canceled." = "Loop, geçici bazal oran bitene veya iptal edilene kadar insülin iletiminizi otomatik olarak ayarlamaz."; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Parti"; + +/* description label for lot number pod details row */ +"Lot Number" = "Parti Numarası"; + +/* Label text for low reservoir value row + Navigation bar title for LowReservoirReminderSetupView + Title for LowReservoirReminderSetupView */ +"Low Reservoir" = "Düşük Rezervuar"; + +/* Label for low reservoir reminder row + Title for low reservoir reminder edit page */ +"Low Reservoir Reminder" = "Düşük Rezervuar Hatırlatıcısı"; + +/* The action string on pod status page when pod data is stale */ +"Make sure your phone and pod are close to each other. If communication issues persist, move to a new area." = "Telefonunuzun ve podunuzun birbirine yakın olduğundan emin olun. İletişim sorunları devam ederse, yeni bir alana geçin."; + +/* Unit for singular minute in pod life remaining */ +"minute" = "dakika"; + +/* Unit for plural minutes in pod life remaining */ +"minutes" = "dakika"; + +/* Alert title for missing temp basal configuration */ +"Missing Config" = "Eksik Yapılandırma"; + +/* String shown on pod details for active time when conversion fails. + String shown on pod details for last status date when not available. + String shown on pod details for total delivery when not available. */ +"NA" = "mev. değil"; + +/* Text of continue button on ExpirationReminderSetupView */ +"Next" = "Sonraki"; + +/* Button label for user to answer cannula was not properly inserted */ +"No" = "Hayır"; + +/* Text shown in insulin remaining space when no pod is paired */ +"No\nDelivery" = "İletim\nYok"; + +/* Error message for reservoir view when reservoir empty */ +"No Insulin" = "İnsülin yok"; + +/* Label for pod life state when no pod paired + Text shown in insulin remaining space when no pod is paired */ +"No Pod" = "Pod Yok"; + +/* Value text for no expiration reminder */ +"No Reminder" = "Hatırlatıcı Yok"; + +/* Continue pairing button title of in pairing cancel modal */ +"No, Continue With Pod" = "Hayır, Pod ile Devam Et"; + +/* Button text to cancel pump time sync */ +"No, Keep Pump As Is" = "Hayır, Pompayı Olduğu Gibi Tutun"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "Hiçbiri"; + +/* navigation title for notification settings + Text for pod details disclosure row */ +"Notification Settings" = "Bildirim ayarları"; + +/* No comment provided by engineer. */ +"Numbers" = "Sayılar"; + +/* Title for omnipod reminders section */ +"Omnipod Reminders" = "Omnipod Hatırlatıcıları"; + +/* Button title to pair with pod during setup */ +"Pair" = "Eşleştir"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Yeni Pod'u Eşleştirme"; + +/* Navigation bar title for PairPodView + Pod pairing action button text while ready to pair + Settings page link description when next lifecycle action is to pair new pod + Title for pod pairing screen */ +"Pair Pod" = "Pod eşleştirme"; + +/* Pairing action button accessibility label while ready to pair */ +"Pair pod." = "Pod eşleştir"; + +/* Label text indicating pairing finished. */ +"Paired" = "Eşleştirilmiş"; + +/* Pairing action button accessibility label while pairing */ +"Pairing." = "Eşleştiriliyor."; + +/* Pod pairing action button text while pairing */ +"Pairing..." = "Eşleştiriliyor…"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Eşleştiriliyor…"; + +/* No comment provided by engineer. */ +"Percent = %lf" = "Yüzde = %lf"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI Sürümü"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Test Bip Sesi Çal"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Test Bip Sesi Çalınıyor…"; + +/* Alert message body for confirm pod attachment */ +"Please confirm that the Pod is securely attached to your body.\n\nThe cannula can be inserted only once with each Pod. Tap “Confirm” when Pod is attached." = "Lütfen Pod'un vücudunuza güvenli bir şekilde takıldığından emin olun. \n\n Kanül, her Pod ile yalnızca bir kez yerleştirilebilir. Pod eklendiğinde \"Onayla\"ya dokunun."; + +/* Instructions for deactivate pod when pod not on body */ +"Please deactivate the pod. When deactivation is complete, you may pair a new pod." = "Lütfen podu devre dışı bırakın. Devre dışı bırakma tamamlandığında, yeni bir podu eşleştirebilirsiniz."; + +/* Instructions for deactivate pod when pod is on body */ +"Please deactivate the pod. When deactivation is complete, you may remove it and pair a new pod." = "Lütfen podu devre dışı bırakın. Devre dışı bırakma tamamlandığında onu çıkarabilir ve yeni bir podu eşleştirebilirsiniz."; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM Sürümü"; + +/* description label for activated at time pod details row + Label for pod insertion row */ +"Pod Activated" = "Pod Etkinleştirildi"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Yaşı"; + +/* Deactivate pod action button accessibility label when deactivation complete */ +"Pod deactivated successfully. Continue." = "Pod başarıyla devre dışı bırakıldı. Devam et."; + +/* Error message for reservoir view during general pod fault */ +"Pod Error" = "Pod Hatası"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod'un süresi doldu"; + +/* Error message for reservoir view when pod expired + Label for pod expiration row, past tense */ +"Pod Expired" = "Pod Süresi Doldu"; + +/* Label for pod expiration row */ +"Pod Expires" = "Podun Süresi Doluyor"; + +/* Label for pod life state when time remaining */ +"Pod expires in" = "Podun süresi şu tarihte doluyor:"; + +/* description label for pod fault details */ +"Pod Fault Details" = "Pod Hata Detayları"; + +/* Error message for reservoir view when pod occlusion checks failed */ +"Pod Occlusion" = "Pod Tıkanıklığı"; + +/* Pairing action button accessibility label when pairing succeeded */ +"Pod paired successfully. Continue." = "Pod başarıyla eşleştirildi. Devam et."; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod Ayarları"; + +/* Title for PodSetupView */ +"Pod Setup" = "Pod Kurulumu"; + +/* Label text for step one of attach pod instructions */ +"Prepare site." = "Bölgeyi hazırlayın."; + +/* title for previous pod page */ +"Previous Pod" = "Önceki Pod"; + +/* Text for previous pod information row */ +"Previous Pod Information" = "Önceki Pod Bilgileri"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Hazırlandı"; + +/* Pairing action button accessibility label while priming */ +"Priming. Please wait." = "Hazırlanıyor. Lütfen bekleyin."; + +/* Pod pairing action button text while priming */ +"Priming..." = "Hazırlanıyor..."; + +/* The text of the loading label when priming */ +"Priming…" = "Hazırlanıyor…"; + +/* The title of the command to change pump time zone */ +"Pump Time" = "Pompa Zamanı"; + +/* Label text for basal rate summary */ +"Rate" = "Oran"; + +/* Label describing time remaining view */ +"Remaining" = "Kalan"; + +/* Title for remove pod modal */ +"Remove Pod from Body" = "Podu Vücuttan Çıkarın"; + +/* Title for Omnipod PumpManager deletion action sheet. */ +"Remove Pump" = "Pompayı Çıkar"; + +/* Label text for step two of attach pod instructions */ +"Remove the pod's needle cap and check cannula. Then remove paper backing." = "Pod'un iğne kapağını çıkarın ve kanülü kontrol edin. Ardından yapışkan kağıt desteğini çıkarın."; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Pod'u Değiştir"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Pod'u Şimdi Değiştirin"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Rezervuar"; + +/* Text for suspend resume button when insulin delivery is suspended */ +"Resume Insulin Delivery" = "İnsülin İletimine Devam Et"; + +/* Text for suspend resume button when insulin delivery is resuming */ +"Resuming insulin delivery..." = "İnsülin iletimine devam ediliyor..."; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Yeniden dene"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Pod Devre Dışı Bırakmayı Yeniden Dene"; + +/* bodyText for RileyLinkSetupView */ +"RileyLink allows for communication with the pump over Bluetooth" = "RileyLink, pompa ile Bluetooth üzerinden iletişim kurulmasını sağlar"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink Kurulumu"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Kaydet"; + +/* button title for saving low reservoir reminder while saving + button title for saving scheduled reminder while saving */ +"Saving..." = "Kaydediliyor..."; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Çizelge"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Programlanan Bazal"; + +/* Card title for scheduled reminder + Scheduled reminder card title on NotificationSettingsView + Title for scheduled expiration reminder edit page + Title of SetupCompleteView */ +"Scheduled Reminder" = "Planlanmış Hatırlatıcı"; + +/* Title text for insulin type confirmation page */ +"Select the type of insulin that you will be using in this pod." = "Bu pod için kullanacağınız insülin tipini seçin."; + +/* description label for sequence number pod details row */ +"Sequence Number" = "Sıra numarası"; + +/* Button text for setting manual temporary basal rate */ +"Set Temporary Basal" = "Geçici Bazal Ayarla"; + +/* Button title to set temporary basal rate */ +"Set Temporary Basal Rate" = "Geçici Bazal Oranı Ayarla"; + +/* Title for setup complete screen */ +"Setup Complete" = "Kurulum tamamlandı"; + +/* Error message for reservoir view during general pod fault */ +"Signal Loss" = "Sinyal Kaybı"; + +/* No comment provided by engineer. */ +"Skip Omnipod Onboarding?" = "Omnipod Katılımı Atlansın mı?"; + +/* The title of the status section in settings */ +"Status" = "Durum"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Başarılı"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "İletimi Askıya Al"; + +/* Text for suspend resume button when insulin delivery active */ +"Suspend Insulin Delivery" = "İnsülin İletimini Askıya Al"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Askıya alındı"; + +/* Label for suspended at time */ +"Suspended At" = "Askıya Alındı"; + +/* Text for suspend resume button when insulin delivery is suspending */ +"Suspending insulin delivery..." = "İnsülin iletimi askıya alınıyor..."; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Omnipod Pompalardan Geçiş"; + +/* Label for PumpManager deletion button */ +"Switch to other insulin delivery device" = "Diğer insülin iletim cihazına geçin"; + +/* The title of the command to change pump time zone */ +"Sync to Current Time" = "Geçerli Saate Senkronize Et"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Pod ile Senkronize Et"; + +/* Label text for step one of insert cannula instructions */ +"Tap below to start cannula insertion." = "Kanül yerleştirmeyi başlatmak için aşağıya dokunun."; + +/* Navigation Title for ManualTempBasalEntryView */ +"Temporary Basal" = "Geçici Bazal"; + +/* Alert title for a failure to set temporary basal */ +"Temporary Basal Failed" = "Geçici Bazal Başarısız"; + +/* The title of the command to run the test command */ +"Test Command" = "Komut testi"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Komutlar test ediliyor…"; + +/* Footer text for omnipod reminders section */ +"The app configures a reminder on the pod to notify you in advance of Pod expiration. Set the number of hours advance notice you would like to configure when pairing a new Pod." = "Uygulama, Pod süresi dolmadan önce sizi bilgilendirmek için pod üzerinde bir hatırlatıcı yapılandırır. Yeni bir Pod eşleştirirken kaç saat önce bildirim almak istediğinizi yapılandırın."; + +/* Description text on ExpirationReminderSetupView */ +"The App notifies you in advance of Pod expiration.\n\nScroll to set the number of hours advance notice you would like to have." = "Uygulama, Pod'un süresinin dolacağını size önceden bildirir.\n\nKaç saat önceden bildirimde bulunmak istediğinizi ayarlamak için kaydırın."; + +/* Description text on LowReservoirReminderSetupView */ +"The App notifies you when the amount of insulin in the Pod reaches this level (50-10 U).\n\nScroll to set the number of units at which you would like to be reminded." = "Uygulama, Poddaki insülin miktarı (50-10 U) seviyesine ulaştığında sizi bilgilendirir.\n\nHatırlatılmasını istediğiniz seviyeyi ayarlamak için kaydırın."; + +/* Footer text for low reservoir value row */ +"The App notifies you when the amount of insulin in the Pod reaches this level." = "Uygulama, Poddaki insülin miktarı bu seviyeye ulaştığında sizi bilgilendirir."; + +/* Message for pod sync time action sheet */ +"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Pompanızdaki saat geçerli saatten farklı. Pompanızdaki saati geçerli saate güncellemek istiyor musunuz?"; + +/* description for time change detected notice */ +"The time on your pump is different from the current time. Your pump’s time controls your scheduled therapy settings. Scroll down to Pump Time row to review the time difference and configure your pump." = "Pompanızdaki saat, geçerli saatten farklı. Pompanızın zamanı, planlanmış tedavi ayarlarınızı kontrol eder. Saat farkını gözden geçirmek ve pompanızı yapılandırmak için Pompa Saati satırına ilerleyin."; + +/* Description of proper cannula insertion */ +"The window on the top of the Pod should be colored pink when the cannula is properly inserted into the skin." = "Kanül cilde düzgün bir şekilde yerleştirildiğinde Pod'un üst kısmındaki pencere pembe renkte olmalıdır."; + +/* Format string for recovery suggestion during deactivate pod. */ +"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Pod ile iletişim kurarken bir sorun oluştu. Bu sorun devam ederse Pod'u At'a dokunun. Daha sonra yeni bir Pod etkinleştirebilirsiniz."; + +/* Footer text for scheduled reminder area */ +"This is a reminder that you scheduled when you paired your current Pod." = "Bu, mevcut Podunuzu eşleştirdiğinizde planladığınız bir hatırlatıcıdır."; + +/* Alert format string for missing temp basal configuration. */ +"This Pump has not been configured with a maximum basal rate because it was added before manual temp basal was a feature. Please go to Therapy Settings -> Delivery Limits and set a new Maximum Basal Rate." = "Bu Pompa, manuel geçici bazal bir özellik olmadan önce eklendiği için maksimum bazal oranla yapılandırılmamıştır. Lütfen tedavi ayarları -> iletim limitleri bölümüne gidin ve yeni bir maksimum bazal oran ayarlayın."; + +/* Label for expiration reminder row + Label for scheduled expiration reminder row + Label for scheduled reminder value row */ +"Time" = "Zaman"; + +/* Title for pod sync time action sheet. + title for time change detected notice */ +"Time Change Detected" = "Zaman Değişikliği Algılandı"; + +/* No comment provided by engineer. */ +"Toggle sign" = "Geçiş işareti"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Çok fazla giriş"; + +/* description label for total delivery pod details row */ +"Total Delivery" = "Toplam İletim"; + +/* Units for showing temp basal rate */ +"U/hr" = "Ü/sa"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Pod devre dışı bırakılamıyor. Lütfen devam edin ve yeni bir pod eşleştirin."; + +/* Title of delivery uncertainty recovery page */ +"Unable to Reach Pod" = "Pod'a Ulaşılamıyor"; + +/* Title for pending command recovery screen */ +"Unable To Reach Pod" = "Pod'a Ulaşılamıyor"; + +/* Alert format string for a failure to set temporary basal. (1: error description) */ +"Unable to set a temporary basal rate: %1$@" = "Geçici bir bazal oran ayarlanamıyor: %1$@"; + +/* Alert format string for a failure to set temporary basal with recovery suggestion. (1: error description) (2: recovery text) */ +"Unable to set a temporary basal rate: %1$@\n\n%2$@" = "Geçici bir bazal oran ayarlanamıyor: %1$@ \n\n %2$@"; + +/* Label for pod life state when pod not fully activated */ +"Unfinished Activation" = "Tamamlanmamış Etkinleştirme"; + +/* Label for pod life state when pod not fully deactivated */ +"Unfinished deactivation" = "Tamamlanmamış devre dışı bırakma"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Bilinmeyen"; + +/* Label text for step two of insert cannula instructions */ +"Wait until insertion is completed." = "Yerleştirme işlemi tamamlanana kadar bekleyin."; + +/* Button label for user to answer cannula was properly inserted */ +"Yes" = "Evet"; + +/* Button title for confirm deactivation option */ +"Yes, Deactivate Pod" = "Evet, Pod'u Devre Dışı Bırak"; + +/* Button text to confirm pump time sync */ +"Yes, Sync to Current Time" = "Evet, Geçerli Saatle Senkronize Et"; + +/* bodyText for PodSetupView */ +"You will now begin the process of configuring your reminders, filling your Pod with insulin, pairing to your device and placing it on your body." = "Şimdi hatırlatıcılarınızı yapılandırma, Pod'unuzu insülinle doldurma, cihazınızla eşleştirme ve vücudunuza yerleştirme işlemlerine başlayacaksınız."; + +/* Format string for instructions for setup complete view. (1: app name) */ +"Your Pod is ready for use.\n\n%1$@ will remind you to change your pod before it expires. You can change this to a time convenient for you." = "Pod'unuz kullanıma hazır. \n\n %1$@ Pod'unuzun süresi dolmadan önce değiştirmenizi hatırlatacak. Bunu size uygun bir zamana değiştirebilirsiniz."; + +/* Alert message body for confirm pod attachment */ +"Your Pod may still be delivering Insulin.\nRemove it from your body, then tap “Continue.“" = "Pod'unuz hala İnsülin veriyor olabilir.\nVücudunuzdan çıkarın ve ardından \"Devam\"a dokunun."; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/vi.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000000..a78f4f7010 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,276 @@ +/* Format string for last status date on pod details screen */ +"%@ ago" = "%@ trước đó"; + +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (Đã hoàn tất)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/giờ"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units vẫn đang còn lúc %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. Việc tiêm Insulin đã dừng. Hủy kích hoạt và thay pod."; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Thời gian Hoạt động"; + +/* Section header for activity section */ +"Activity" = "Hoạt động"; + +/* The title of the cell showing alarm status */ +"Alarms" = "Cảnh báo"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "Bạn có chắc muốn tắt pod này?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "Bạn có chắc muốn dừng sử dụng Omnipod?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Địa chỉ được chỉ định"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "Liều tiêm basal"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "Lịch biểu tiêm liều nền"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "Liều tiêm bolus"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Hủy bỏ"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "Thay đổi múi giờ"; + +/* Progress message for changing pod time. */ +"Changing time…" = "Đang thay đổi giờ…"; + +/* The title of the configuration section in settings */ +"Configuration" = "Cấu hình"; + +/* The title of the continue action in an action sheet */ +"Continue" = "Tiếp tục"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "Hủy kích hoạt"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "Hủy kích hoạt Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "Đã hủy kích hoạt"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "Xóa Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "Giới hạn liều tiêm"; + +/* The title of the device information section in settings */ +"Device Information" = "Thông tin thiết bị"; + +/* Header for devices section of RileyLinkSetupView */ +"Devices" = "Thiết bị"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "Vô hiệu tiếng Beep liều bolus"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "Bật tiếng Beep liều bolus"; + +/* Accessibility label indicating an error occurred */ +"Error" = "Lỗi"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "Lỗi trong việc vô hiệu tiếng beep liều bolus"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "Lỗi trong việc bật tiếng beep liều bolus"; + +/* The alert title for a resume error */ +"Error Resuming" = "Lỗi khi đang tái thực hiện"; + +/* The alert title for a suspend error */ +"Error Suspending" = "Lỗi khi đang tạm ngưng"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Nhắc nhở Hết hạn"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Đã hết hạn"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Hết hạn"; + +/* Pod life HUD view label */ +"Fault" = "Lỗi"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "Hoàn tất thiết lập pod"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"Greater than %1$@ units remaining at %2$@" = "Nhiều hơn %1$@ units vẫn còn lúc %2$@"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Thiết lập pod không hoàn thành phải được hủy rước khi tiến hành ghép đôi pod mới. Đề nghị hủy và loại pod."; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Thiết lập pod không hoàn thành phải được hủy rước khi tiến hành ghép đôi pod mới. Đề nghị hủy và thay thế pod."; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "Lắp Cannula"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "Insulin đã được tiêm"; + +/* Title of insulin delivery section */ +"Insulin Delivery" = "Insulin Delivery"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "Lỗi nhập không hợp lệ"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "Lot"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "None"; + +/* Button title to pair with pod during setup */ +"Pair" = "Ghép đôi"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "Ghép đôi pod mới"; + +/* Label text indicating pairing finished. */ +"Paired" = "Đã được ghép đôi"; + +/* The text of the loading label when pairing */ +"Pairing…" = "Đang ghép đôi…"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI Version"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "Kiểm tra tiếng Beep"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "Kiểm tra tiếng Beep…"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM Version"; + +/* Label describing pod age view */ +"Pod Age" = "Pod Age"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod đã hết hạn"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Các thiết lập cho pod"; + +/* The text of the loading label when pod is primed */ +"Primed" = "Đã được mồi"; + +/* The text of the loading label when priming */ +"Priming…" = "Đang mồi…"; + +/* Label describing time remaining view */ +"Remaining" = "Đang còn lại"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "Thay thế Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "Thay thế pod ngay"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "Reservoir"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "Thử lại"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "Hủy kích hoạt pod lại"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "Cài đặt RileyLink"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "Lưu"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "Kế hoạch"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; + +/* Title for setup complete screen */ +"Setup Complete" = "Cấu hình hoàn thành"; + +/* The title of the status section in settings */ +"Status" = "Tình trạng"; + +/* A message indicating a command succeeded */ +"Succeeded" = "Đã thành công"; + +/* Title for suspend duration selection action sheet */ +"Suspend Delivery" = "Tạm ngưng liều insulin"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "Đã tạm ngưng"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "Chuyển đổ từ bơm Omnipod"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "Sync với Pod"; + +/* The title of the command to run the test command */ +"Test Command" = "Thử nghiệm câu lệnh"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "Thử nghiệm câu lệnh…"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Quá nhiều mục"; + +/* Units for showing temp basal rate */ +"U/hr" = "U/giờ"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "Không thể hủy kích hoạt pod. Đề nghị tiếp tục và ghép đôi pod mới."; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "Không nhận ra"; + diff --git a/Dependencies/OmniKit/OmniKitUI/Resources/zh-Hans.lproj/Localizable.strings b/Dependencies/OmniKit/OmniKitUI/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000000..0eef3c1b12 --- /dev/null +++ b/Dependencies/OmniKit/OmniKitUI/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,252 @@ +/* Format string for delivered insulin. (1: The localized amount) + Format string for insulin remaining in reservoir. (1: The localized amount) */ +"%@ U" = "%@ U"; + +/* Format string for bolus progress when finished. (1: The localized amount) */ +"%@ U (Finished)" = "%@ U (已输注)"; + +/* Format string for bolus progress. (1: The delivered amount) (2: The programmed amount) (3: the percent progress) */ +"%@ U of %@ U (%@)" = "%1$@ U of %2$@ U (%3$@)"; + +/* Format string for temp basal rate. (1: The localized amount) */ +"%@ U/hour" = "%@ U/小时"; + +/* Appends a full-stop to a statement */ +"%@." = "%@."; + +/* Format string for bolus percent progress. (1: Percent progress) */ +"%@%%" = "%@%%"; + +/* Format string for reservoir reading when above or equal to maximum reading. (1: The localized amount) */ +"%@+ U" = "%@+ U"; + +/* Format string for reservoir volume. (1: The localized volume) */ +"%@U" = "%@U"; + +/* Accessibility format string for (1: localized volume)(2: time) */ +"%1$@ units remaining at %2$@" = "%1$@ units remaining at %2$@"; + +/* Format string providing instructions for replacing pod due to a fault. (1: The fault description) */ +"%1$@. Insulin delivery has stopped. Please deactivate and remove pod." = "%1$@. 胰岛素输注已停止,请移除Pod"; + +/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ +"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; + +/* The title of the cell showing the pod activated at time */ +"Active Time" = "Pod启动时间"; + +/* The title of the cell showing alarm status */ +"Alarms" = "提醒"; + +/* Confirmation message for shutting down a pod */ +"Are you sure you want to shutdown this pod?" = "确定要停止这个Pod吗?"; + +/* Confirmation message for removing Omnipod PumpManager */ +"Are you sure you want to stop using Omnipod?" = "确定要停止使用这个Pod吗?"; + +/* The title text for the address assigned to the pod */ +"Assigned Address" = "Assigned Address"; + +/* The title of the cell showing pod basal status */ +"Basal Delivery" = "当前基础率"; + +/* The title text for the basal rate schedule */ +"Basal Rates" = "基础率"; + +/* The title of the cell showing pod bolus status */ +"Bolus Delivery" = "当前大剂量"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "取消"; + +/* The title of the command to change pump time zone */ +"Change Time Zone" = "更改时区"; + +/* Progress message for changing pod time. */ +"Changing time…" = "更改时间"; + +/* The title of the configuration section in settings */ +"Configuration" = "配置"; + +/* The title of the continue action in an action sheet */ +"Continue" = "继续"; + +/* Button title to deactivate pod because of fault during setup */ +"Deactivate" = "解除"; + +/* Button title for pod deactivation + Button title to deactivate pod */ +"Deactivate Pod" = "解除Pod"; + +/* Label text showing pod is deactivated */ +"Deactivated" = "已解除"; + +/* Button title to delete Omnipod PumpManager */ +"Delete Omnipod" = "删除Omnipod"; + +/* Title text for delivery limits */ +"Delivery Limits" = "输注限制"; + +/* The title of the device information section in settings */ +"Device Information" = "设备信息"; + +/* Title text for button to disable bolus beeps */ +"Disable Bolus Beeps" = "禁用大剂量输注中提醒"; + +/* Title text for button to enable bolus beeps */ +"Enable Bolus Beeps" = "启动大剂量输注中提醒"; + +/* The alert title for disable bolus beeps error */ +"Error disabling bolus beeps" = "禁用大剂量输注中提醒错误"; + +/* The alert title for enable bolus beeps error */ +"Error enabling bolus beeps" = "启用大剂量输注中提醒错误"; + +/* The alert title for a resume error */ +"Error Resuming" = "恢复输注错误"; + +/* The alert title for a suspend error */ +"Error Suspending" = "无法暂停"; + +/* The title of the cell showing the pod expiration reminder date */ +"Expiration Reminder" = "Pod到期提醒"; + +/* The title of the cell showing the pod expiration after expiry */ +"Expired" = "Pod已到期"; + +/* The title of the cell showing the pod expiration */ +"Expires" = "Pod即将到期"; + +/* Pod life HUD view label */ +"Fault" = "错误"; + +/* The title of the command to finish pod setup */ +"Finish pod setup" = "完成设置"; + +/* Instructions when deactivating pod that has been paired, but not attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and discard pod." = "Pod设置失败,请解除该从身体移除Pod,然后配对新Pod"; + +/* Instructions when deactivating pod that has been paired and possibly attached. */ +"Incompletely set up pod must be deactivated before pairing with a new one. Please deactivate and remove pod." = "Pod设置失败,请解除并从身体移除该Pod,然后配对新Pod"; + +/* Button title to insert cannula during setup */ +"Insert Cannula" = "植入Pod"; + +/* The title of the cell showing delivered insulin */ +"Insulin Delivered" = "已输注胰岛素"; + +/* The error message shown when Loop's basal schedule has an unsupported rate */ +"Invalid entry" = "无效输入"; + +/* The title of the cell showing the pod lot id */ +"Lot" = "批次号"; + +/* The detail text for bolus delivery when no bolus is being delivered */ +"None" = "无"; + +/* Button title to pair with pod during setup */ +"Pair" = "配对"; + +/* The title of the command to pair new pod */ +"Pair New Pod" = "配对新Pod"; + +/* Label text indicating pairing finished. */ +"Paired" = "已配对"; + +/* The text of the loading label when pairing */ +"Pairing…" = "配对中"; + +/* The title of the cell showing the pod pi version */ +"PI Version" = "PI版本号"; + +/* The title of the command to play test beeps */ +"Play Test Beeps" = "测试提示音"; + +/* Progress message for play test beeps. */ +"Play Test Beeps…" = "提示音测试中"; + +/* The title of the cell showing the pod pm version */ +"PM Version" = "PM版本号"; + +/* Label describing pod age view */ +"Pod Age" = "Pod使用天数"; + +/* Label for pod life state when within pod expiration window */ +"Pod expired" = "Pod已到期"; + +/* Title of the pod settings view controller */ +"Pod Settings" = "Pod设置"; + +/* The text of the loading label when pod is primed */ +"Primed" = "已充盈"; + +/* The text of the loading label when priming */ +"Priming…" = "正在充盈"; + +/* Label describing time remaining view */ +"Remaining" = "剩余"; + +/* Label indicating pod replacement necessary + The title of the command to replace pod */ +"Replace Pod" = "更换Pod"; + +/* The title of the command to replace pod when there is a pod fault */ +"Replace Pod Now" = "现在更换Pod"; + +/* The title of the cell showing reservoir status */ +"Reservoir" = "胰岛素容量"; + +/* Action button description for deactivate after failed attempt + Cannula insertion button text while showing error + Pod pairing action button text while showing error */ +"Retry" = "重试"; + +/* Button title for retrying pod deactivation */ +"Retry Pod Deactivation" = "重新尝试解绑"; + +/* Navigation title for RileyLinkSetupView */ +"RileyLink Setup" = "RileyLink设置"; + +/* Title of button to save delivery limit settings + Title of button to sync basal profile when no pod paired */ +"Save" = "保存"; + +/* The detail text of the basal row when pod is running scheduled basal */ +"Schedule" = "预设"; + +/* Title of insulin delivery section */ +"Scheduled Basal" = "预设基础率"; + +/* Title for setup complete screen */ +"Setup Complete" = "设置完成"; + +/* The title of the status section in settings */ +"Status" = "状态"; + +/* A message indicating a command succeeded */ +"Succeeded" = "成功"; + +/* The detail text of the basal row when pod is suspended */ +"Suspended" = "暂停"; + +/* Title text for the button to delete Omnipod PumpManager */ +"Switch from Omnipod Pumps" = "删除Omnipod泵"; + +/* Title of button to sync basal profile from pod */ +"Sync With Pod" = "同步配置到Pod"; + +/* The title of the command to run the test command */ +"Test Command" = "测试命令"; + +/* Progress message for testing commands. */ +"Testing Commands…" = "测试命令进行中"; + +/* The error message shown when Loop's basal schedule has more entries than the pod can support */ +"Too many entries" = "Pod不支持该基础率设置"; + +/* Instructions when pod cannot be deactivated */ +"Unable to deactivate pod. Please continue and pair a new one." = "无法解除Pod,请配对新Pod"; + +/* The detail text for delivered insulin when no measurement is available */ +"Unknown" = "未知"; + diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewControllers/OmnipodUICoordinator.swift b/Dependencies/OmniKit/OmniKitUI/ViewControllers/OmnipodUICoordinator.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewControllers/OmnipodUICoordinator.swift rename to Dependencies/OmniKit/OmniKitUI/ViewControllers/OmnipodUICoordinator.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/DeactivatePodViewModel.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/DeactivatePodViewModel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/DeactivatePodViewModel.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/DeactivatePodViewModel.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/DeliveryUncertaintyRecoveryViewModel.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/DeliveryUncertaintyRecoveryViewModel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/DeliveryUncertaintyRecoveryViewModel.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/DeliveryUncertaintyRecoveryViewModel.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/InsertCannulaViewModel.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/InsertCannulaViewModel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/InsertCannulaViewModel.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/InsertCannulaViewModel.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/OmnipodSettingsViewModel.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/OmnipodSettingsViewModel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/OmnipodSettingsViewModel.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/OmnipodSettingsViewModel.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/PairPodViewModel.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/PairPodViewModel.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/PairPodViewModel.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/PairPodViewModel.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/PodLifeState.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/PodLifeState.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/PodLifeState.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/PodLifeState.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/ViewModels/RileyLinkListDataSource.swift b/Dependencies/OmniKit/OmniKitUI/ViewModels/RileyLinkListDataSource.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/ViewModels/RileyLinkListDataSource.swift rename to Dependencies/OmniKit/OmniKitUI/ViewModels/RileyLinkListDataSource.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/AttachPodView.swift b/Dependencies/OmniKit/OmniKitUI/Views/AttachPodView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/AttachPodView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/AttachPodView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/BasalStateView.swift b/Dependencies/OmniKit/OmniKitUI/Views/BasalStateView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/BasalStateView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/BasalStateView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/BeepPreferenceSelectionView.swift b/Dependencies/OmniKit/OmniKitUI/Views/BeepPreferenceSelectionView.swift similarity index 95% rename from Dependencies/rileylink_ios/OmniKitUI/Views/BeepPreferenceSelectionView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/BeepPreferenceSelectionView.swift index 2f9215a8ff..7d757eebe7 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/BeepPreferenceSelectionView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/BeepPreferenceSelectionView.swift @@ -39,7 +39,7 @@ struct BeepPreferenceSelectionView: View { VStack { List { Section { - Text("Confidence reminders are beeps from the pod which can be used to acknowledge selected commands.").fixedSize(horizontal: false, vertical: true) + Text(LocalizedString("Confidence reminders are beeps from the pod which can be used to acknowledge selected commands.", comment: "Help text for BeepPreferenceSelectionView")).fixedSize(horizontal: false, vertical: true) .padding(.vertical, 10) } diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/CheckInsertedCannulaView.swift b/Dependencies/OmniKit/OmniKitUI/Views/CheckInsertedCannulaView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/CheckInsertedCannulaView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/CheckInsertedCannulaView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/DeactivatePodView.swift b/Dependencies/OmniKit/OmniKitUI/Views/DeactivatePodView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/DeactivatePodView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/DeactivatePodView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/DeliveryUncertaintyRecoveryView.swift b/Dependencies/OmniKit/OmniKitUI/Views/DeliveryUncertaintyRecoveryView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/DeliveryUncertaintyRecoveryView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/DeliveryUncertaintyRecoveryView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/ErrorView.swift b/Dependencies/OmniKit/OmniKitUI/Views/DesignElements/ErrorView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/ErrorView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/DesignElements/ErrorView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/LeadingImage.swift b/Dependencies/OmniKit/OmniKitUI/Views/DesignElements/LeadingImage.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/LeadingImage.swift rename to Dependencies/OmniKit/OmniKitUI/Views/DesignElements/LeadingImage.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/RoundedCard.swift b/Dependencies/OmniKit/OmniKitUI/Views/DesignElements/RoundedCard.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/DesignElements/RoundedCard.swift rename to Dependencies/OmniKit/OmniKitUI/Views/DesignElements/RoundedCard.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/ExpirationReminderPickerView.swift b/Dependencies/OmniKit/OmniKitUI/Views/ExpirationReminderPickerView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/ExpirationReminderPickerView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/ExpirationReminderPickerView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/ExpirationReminderSetupView.swift b/Dependencies/OmniKit/OmniKitUI/Views/ExpirationReminderSetupView.swift similarity index 93% rename from Dependencies/rileylink_ios/OmniKitUI/Views/ExpirationReminderSetupView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/ExpirationReminderSetupView.swift index 96568b7300..a764e1432d 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/ExpirationReminderSetupView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/ExpirationReminderSetupView.swift @@ -38,7 +38,7 @@ struct ExpirationReminderSetupView: View { } .padding() } - .navigationBarTitle("Expiration Reminder", displayMode: .automatic) + .navigationBarTitle(LocalizedString("Expiration Reminder", comment: "Title for ExpirationReminderSetupView"), displayMode: .automatic) .navigationBarHidden(false) .toolbar { ToolbarItem(placement: .navigationBarTrailing) { diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/InsertCannulaView.swift b/Dependencies/OmniKit/OmniKitUI/Views/InsertCannulaView.swift similarity index 98% rename from Dependencies/rileylink_ios/OmniKitUI/Views/InsertCannulaView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/InsertCannulaView.swift index 9ae07c46c3..a57c5e7cad 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/InsertCannulaView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/InsertCannulaView.swift @@ -59,7 +59,7 @@ struct InsertCannulaView: View { }) { Text(LocalizedString("Deactivate Pod", comment: "Button text for deactivate pod button")) .accessibility(identifier: "button_deactivate_pod") - .actionButtonStyle(.destructive) + .actionButtonStyle(.secondary) } .disabled(self.viewModel.state.isProcessing) } diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/InsulinTypeConfirmation.swift b/Dependencies/OmniKit/OmniKitUI/Views/InsulinTypeConfirmation.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/InsulinTypeConfirmation.swift rename to Dependencies/OmniKit/OmniKitUI/Views/InsulinTypeConfirmation.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/LowReservoirReminderEditView.swift b/Dependencies/OmniKit/OmniKitUI/Views/LowReservoirReminderEditView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/LowReservoirReminderEditView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/LowReservoirReminderEditView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/LowReservoirReminderSetupView.swift b/Dependencies/OmniKit/OmniKitUI/Views/LowReservoirReminderSetupView.swift similarity index 94% rename from Dependencies/rileylink_ios/OmniKitUI/Views/LowReservoirReminderSetupView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/LowReservoirReminderSetupView.swift index 69df68e3ff..dcb526570a 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/LowReservoirReminderSetupView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/LowReservoirReminderSetupView.swift @@ -50,7 +50,7 @@ struct LowReservoirReminderSetupView: View { } .padding() } - .navigationBarTitle("Low Reservoir", displayMode: .automatic) + .navigationBarTitle(LocalizedString("Low Reservoir", comment: "Navigation bar title for LowReservoirReminderSetupView"), displayMode: .automatic) .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button(LocalizedString("Cancel", comment: "Cancel button title"), action: { diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/ManualTempBasalEntryView.swift b/Dependencies/OmniKit/OmniKitUI/Views/ManualTempBasalEntryView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/ManualTempBasalEntryView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/ManualTempBasalEntryView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/NotificationSettingsView.swift b/Dependencies/OmniKit/OmniKitUI/Views/NotificationSettingsView.swift similarity index 96% rename from Dependencies/rileylink_ios/OmniKitUI/Views/NotificationSettingsView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/NotificationSettingsView.swift index a218752f46..34becf6c2a 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/NotificationSettingsView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/NotificationSettingsView.swift @@ -44,7 +44,7 @@ struct NotificationSettingsView: View { RoundedCard( footer: LocalizedString("This is a reminder that you scheduled when you paired your current Pod.", comment: "Footer text for scheduled reminder area")) { - Text("Scheduled Reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Scheduled reminder card title on NotificationSettingsView")) Divider() scheduledReminderRow(scheduledDate: scheduledReminderDate, allowedDates: allowedDates) } @@ -56,7 +56,7 @@ struct NotificationSettingsView: View { RoundedCard( title: LocalizedString("Critical Alerts", comment: "Title for critical alerts description"), - footer: LocalizedString("The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if you device is set to Silent or Do Not Disturb mode.", comment: "Description text for critical alerts") + footer: LocalizedString("The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode.", comment: "Description text for critical alerts") ) } .navigationBarTitle(LocalizedString("Notification Settings", comment: "navigation title for notification settings")) diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodReservoirView.swift b/Dependencies/OmniKit/OmniKitUI/Views/OmnipodReservoirView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodReservoirView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/OmnipodReservoirView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodSettingsView.swift b/Dependencies/OmniKit/OmniKitUI/Views/OmnipodSettingsView.swift similarity index 99% rename from Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodSettingsView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/OmnipodSettingsView.swift index 58dae2d348..d1106705d4 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/OmnipodSettingsView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/OmnipodSettingsView.swift @@ -250,7 +250,7 @@ struct OmnipodSettingsView: View { } private var doneButton: some View { - Button("Done", action: { + Button(LocalizedString("Done", comment: "Title of done button on OmnipodSettingsView"), action: { self.viewModel.doneTapped() }) } diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/PairPodView.swift b/Dependencies/OmniKit/OmniKitUI/Views/PairPodView.swift similarity index 97% rename from Dependencies/rileylink_ios/OmniKitUI/Views/PairPodView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/PairPodView.swift index d57c94abd1..c174ec23cd 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/PairPodView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/PairPodView.swift @@ -80,7 +80,7 @@ struct PairPodView: View { } .animation(.default) .alert(isPresented: $cancelModalIsPresented) { cancelPairingModal } - .navigationBarTitle("Pair Pod", displayMode: .automatic) + .navigationBarTitle(LocalizedString("Pair Pod", comment: "Navigation bar title for PairPodView"), displayMode: .automatic) .navigationBarBackButtonHidden(self.viewModel.backButtonHidden) .navigationBarItems(trailing: self.viewModel.state.navBarVisible ? cancelButton : nil) } diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/PodDetailsView.swift b/Dependencies/OmniKit/OmniKitUI/Views/PodDetailsView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/PodDetailsView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/PodDetailsView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/PodLifeHUDView.swift b/Dependencies/OmniKit/OmniKitUI/Views/PodLifeHUDView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/PodLifeHUDView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/PodLifeHUDView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/PodSetupView.swift b/Dependencies/OmniKit/OmniKitUI/Views/PodSetupView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/PodSetupView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/PodSetupView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/RileyLinkSetupView.swift b/Dependencies/OmniKit/OmniKitUI/Views/RileyLinkSetupView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/RileyLinkSetupView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/RileyLinkSetupView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift b/Dependencies/OmniKit/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift similarity index 96% rename from Dependencies/rileylink_ios/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift index f1489aeac9..f39a2acb1b 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/ScheduledExpirationReminderEditView.swift @@ -49,7 +49,7 @@ struct ScheduledExpirationReminderEditView: View { // Keep picker outside of card in compact view, because it forces full device width. VStack(spacing: 0) { RoundedCard { - Text("Scheduled Reminder", comment: "Card title for scheduled reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Card title for scheduled reminder")) Divider() valueRow } @@ -59,7 +59,7 @@ struct ScheduledExpirationReminderEditView: View { } else { RoundedCard { - Text("Scheduled Reminder", comment: "Card title for scheduled reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Card title for scheduled reminder")) Divider() valueRow picker diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/SetupCompleteView.swift b/Dependencies/OmniKit/OmniKitUI/Views/SetupCompleteView.swift similarity index 97% rename from Dependencies/rileylink_ios/OmniKitUI/Views/SetupCompleteView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/SetupCompleteView.swift index f64e84cf95..23980b86e3 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/SetupCompleteView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/SetupCompleteView.swift @@ -44,7 +44,7 @@ struct SetupCompleteView: View { .fixedSize(horizontal: false, vertical: true) Divider() VStack(alignment: .leading) { - Text("Scheduled Reminder") + Text(LocalizedString("Scheduled Reminder", comment: "Title of SetupCompleteView")) Divider() NavigationLink( destination: ScheduledExpirationReminderEditView( diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/TimeView.swift b/Dependencies/OmniKit/OmniKitUI/Views/TimeView.swift similarity index 100% rename from Dependencies/rileylink_ios/OmniKitUI/Views/TimeView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/TimeView.swift diff --git a/Dependencies/rileylink_ios/OmniKitUI/Views/UncertaintyRecoveredView.swift b/Dependencies/OmniKit/OmniKitUI/Views/UncertaintyRecoveredView.swift similarity index 77% rename from Dependencies/rileylink_ios/OmniKitUI/Views/UncertaintyRecoveredView.swift rename to Dependencies/OmniKit/OmniKitUI/Views/UncertaintyRecoveredView.swift index c3b785b9f0..cefb4072e6 100644 --- a/Dependencies/rileylink_ios/OmniKitUI/Views/UncertaintyRecoveredView.swift +++ b/Dependencies/OmniKit/OmniKitUI/Views/UncertaintyRecoveredView.swift @@ -16,7 +16,7 @@ struct UncertaintyRecoveredView: View { var body: some View { GuidePage(content: { - Text("\(self.appName) has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use \(self.appName) normally now.") + Text(LocalizedString("Loop has recovered communication with the pod on your body.\n\nInsulin delivery records have been updated and should match what has actually been delivered.\n\nYou may continue to use Loop normally now.", comment: "Text body for page showing insulin uncertainty has been recovered.")) .fixedSize(horizontal: false, vertical: true) .padding([.top, .bottom]) }) { diff --git a/Dependencies/OmniKit/README.md b/Dependencies/OmniKit/README.md new file mode 100644 index 0000000000..99d5864a42 --- /dev/null +++ b/Dependencies/OmniKit/README.md @@ -0,0 +1,8 @@ +# OmniKit +Omnipod Eros PumpManager For Loop + +## Status +Supported. Incorporated into Loop + +## For more information +Please join loop zulipchat at https://loop.zulipchat.com/ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/project.pbxproj b/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/project.pbxproj index 996e090dfe..75f90fad6a 100644 --- a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/project.pbxproj +++ b/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/project.pbxproj @@ -127,6 +127,13 @@ B40BF26423ABD4E600A43CEE /* ShareClientPlugin-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ShareClientPlugin-Bridging-Header.h"; sourceTree = ""; }; B40BF26523ABD4E700A43CEE /* ShareClientPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareClientPlugin.swift; sourceTree = ""; }; B40BF26723ABD55200A43CEE /* OSLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLog.swift; sourceTree = ""; }; + C121D8CC29C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C121D8CD29C7866D00DA0520 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + C15A581B29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C15A581C29C7866600D3A5A1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + C1C247842995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1C247852995823200371B88 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = ""; }; + C1FAB5BC29C786B000D25073 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = ""; }; F5D9C04227DAC15A002E48F6 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; F5D9C04327DAC15A002E48F6 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; F5E0BE3027E1E05E0033557E /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; @@ -411,6 +418,10 @@ da, tr, he, + sk, + ar, + cs, + hi, ); mainGroup = 432B0E7E1CDFC3C50045347B; productRefGroup = 432B0E891CDFC3C50045347B /* Products */; @@ -550,6 +561,10 @@ 7D9BF1302336FFAF005DCFD6 /* da */, F5D9C04327DAC15A002E48F6 /* tr */, F5E0BE3127E1E05F0033557E /* he */, + C1C247852995823200371B88 /* sk */, + C15A581C29C7866600D3A5A1 /* ar */, + C121D8CD29C7866D00DA0520 /* cs */, + C1FAB5BC29C786B000D25073 /* hi */, ); name = Localizable.strings; sourceTree = ""; @@ -576,6 +591,9 @@ 7D9BF12F2336FFAF005DCFD6 /* da */, F5D9C04227DAC15A002E48F6 /* tr */, F5E0BE3027E1E05E0033557E /* he */, + C1C247842995823200371B88 /* sk */, + C15A581B29C7866600D3A5A1 /* ar */, + C121D8CC29C7866D00DA0520 /* cs */, ); name = Localizable.strings; sourceTree = ""; diff --git a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme b/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme deleted file mode 100644 index fb7a17ba47..0000000000 --- a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared-watchOS.xcscheme +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme b/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme deleted file mode 100644 index a0c1b3dbeb..0000000000 --- a/Dependencies/dexcom-share-client-swift/ShareClient.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/ShareClient.swift b/Dependencies/dexcom-share-client-swift/ShareClient/ShareClient.swift index e5ff0e5e2b..6222c2c735 100644 --- a/Dependencies/dexcom-share-client-swift/ShareClient/ShareClient.swift +++ b/Dependencies/dexcom-share-client-swift/ShareClient/ShareClient.swift @@ -37,7 +37,8 @@ public enum KnownShareServers: String { // https://github.com/bewest/share2nightscout-bridge private let dexcomUserAgent = "Dexcom Share/3.0.2.11 CFNetwork/711.2.23 Darwin/14.0.0" private let dexcomApplicationId = "d89443d2-327c-4a6f-89e5-496bbb0317db" -private let dexcomLoginPath = "/ShareWebServices/Services/General/LoginPublisherAccountByName" +private let dexcomAuthenticatePath = "/ShareWebServices/Services/General/AuthenticatePublisherAccount" +private let dexcomLoginByIdPath = "/ShareWebServices/Services/General/LoginPublisherAccountById" private let dexcomLatestGlucosePath = "/ShareWebServices/Services/Publisher/ReadPublisherLatestGlucoseValues" private let maxReauthAttempts = 2 @@ -97,25 +98,66 @@ public class ShareClient { if token != nil { callback(nil) } else { - fetchToken() { (error, token) in - if error != nil { + fetchAccountID { result in + switch result { + case .failure(let error): callback(error) - } else { - self.token = token - callback(nil) + case .success(let accountId): + self.fetchTokenByAccountId(accountId) { (error, token) in + if error != nil { + callback(error) + } else { + self.token = token + callback(nil) + } + } } } } } - private func fetchToken(_ callback: @escaping (ShareError?, String?) -> Void) { + private func fetchAccountID(_ callback: @escaping (Result) -> Void) { let data = [ "accountName": username, "password": password, "applicationId": dexcomApplicationId ] - guard let url = URL(string: shareServer + dexcomLoginPath) else { + guard let url = URL(string: shareServer + dexcomAuthenticatePath) else { + return callback(.failure(.fetchError)) + } + + dexcomPOST(url, JSONData: data as [String : AnyObject]?) { (error, response) in + if let error = error { + return callback(.failure(.httpError(error))) + } + + guard let response = response, + let data = response.data(using: .utf8), + let decoded = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) + else { + return callback(.failure(.loginError(errorCode: "unknown"))) + } + + if let token = decoded as? String { + // success is a JSON-encoded string containing the token + callback(.success(token)) + } else { + // failure is a JSON object containing the error reason + let errorCode = (decoded as? [String: String])?["Code"] ?? "unknown" + callback(.failure(.loginError(errorCode: errorCode))) + } + } + } + + private func fetchTokenByAccountId(_ accountId: String, callback: @escaping (ShareError?, String?) -> Void) { + let data = [ + "accountId": accountId, + "password": password, + "applicationId": dexcomApplicationId + ] + + guard let url = URL(string: shareServer + dexcomLoginByIdPath) else { return callback(ShareError.fetchError, nil) } diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/ar.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..03d5881574 --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClient/ar.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Sensor state description for the valid state */ +"OK" = "موافق"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/cs.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..5c6942918d --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClient/cs.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* Sensor state description for the valid state */ +"OK" = "OK"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/da.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/da.lproj/Localizable.strings index 8f44a1b5fc..101a8f4f2c 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/da.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/da.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/es.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/es.lproj/Localizable.strings index a2dbc8a073..edcf527f9b 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/es.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/es.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/fr.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/fr.lproj/Localizable.strings index 37a06aad57..86054aaeb5 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/fr.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/fr.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/he.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/he.lproj/Localizable.strings index 0c5ccd9408..9a5cce7ec2 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/he.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/he.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/it.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/it.lproj/Localizable.strings index 43e410b24a..d1b43727be 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/it.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/it.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/ja.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/ja.lproj/Localizable.strings index eafeed5cff..88ba410a6a 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/ja.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/ja.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/nb.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/nb.lproj/Localizable.strings index 31d3169481..d9faa73563 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/nb.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/nb.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/nl.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/nl.lproj/Localizable.strings index 16befb6be9..613f7e9b8a 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/nl.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/nl.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/pl.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/pl.lproj/Localizable.strings index aacca8fe6c..a8cb5f7f85 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/pl.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/pl.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/pt-BR.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/pt-BR.lproj/Localizable.strings index 537041cefe..1c57553411 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/pt-BR.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/pt-BR.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/ro.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/ro.lproj/Localizable.strings index de1de00f8c..6780b4280e 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/ro.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/ro.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/ru.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/ru.lproj/Localizable.strings index 74085abfa1..cb65b52d75 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/ru.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/ru.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/sk.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..b2a1c7f96f --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClient/sk.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* The title of the Dexcom Share service + Title for the CGMManager option */ +"Dexcom Share" = "Dexcom Share"; + +/* Sensor state description for the valid state */ +"OK" = "OK"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/sv.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/sv.lproj/Localizable.strings index 2316899901..632534acad 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/sv.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/sv.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/tr.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/tr.lproj/Localizable.strings index 0c5ccd9408..d43a9a9735 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/tr.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/tr.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/vi.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/vi.lproj/Localizable.strings index e827c67466..1e679c0683 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/vi.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/vi.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClient/zh-Hans.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClient/zh-Hans.lproj/Localizable.strings index 871bf95468..257200d22d 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClient/zh-Hans.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClient/zh-Hans.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/ar.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..445d89029b --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClientUI/ar.lproj/Localizable.strings @@ -0,0 +1,13 @@ +/* Confirmation message for deleting a CGM */ +"Are you sure you want to delete this CGM?" = "هل أنت متأكد أنك تريد حذف هذا CGM؟"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "إلغاء"; + +/* Button title to delete CGM + Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "حذف CGM"; + +/* Title describing glucose value */ +"Glucose" = "قراءات السكر"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/cs.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..1ca1519136 --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClientUI/cs.lproj/Localizable.strings @@ -0,0 +1,6 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušit"; + +/* Title describing glucose value */ +"Glucose" = "Glukóza"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/da.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/da.lproj/Localizable.strings index d9bc5560a0..c64e350c88 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/da.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/da.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/de.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/de.lproj/Localizable.strings index 02cfe0ec80..1e5ec0a654 100644 --- a/Dependencies/dexcom-share-client-swift/ShareClientUI/de.lproj/Localizable.strings +++ b/Dependencies/dexcom-share-client-swift/ShareClientUI/de.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* Confirmation message for deleting a CGM */ -"Are you sure you want to delete this CGM?" = "Möchtest Du das CGM wirklich löschen?"; +"Are you sure you want to delete this CGM?" = "Sind Sie sicher, dass Sie dieses CGM löschen wollen?"; /* The title of the cancel action in an action sheet */ "Cancel" = "Abbrechen"; @@ -15,7 +15,7 @@ "Delete CGM" = "CGM löschen"; /* Title describing glucose value */ -"Glucose" = "Glukose"; +"Glucose" = "Blutzucker"; /* Section title for latest glucose reading */ "Latest Reading" = "Letzter Wert"; diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/es.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/es.lproj/Localizable.strings index d58ad77e9d..8ac7014f53 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/es.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/es.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/fi.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/fi.lproj/Localizable.strings index f6abb2e8d3..849076707b 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/fi.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/fi.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/fr.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/fr.lproj/Localizable.strings index 39485de4e7..5af84a77d5 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/fr.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/fr.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/he.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/he.lproj/Localizable.strings index da3f31f8f5..1c6e68dbee 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/he.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/he.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/hi.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..04348dff53 --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClientUI/hi.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* The title of the cancel action in an action sheet */ +"Cancel" = "निरस्त"; + +/* Title describing glucose value */ +"Glucose" = "शुगर"; + +/* Title describing glucose trend */ +"Trend" = "ट्रेंड"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/it.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/it.lproj/Localizable.strings index e81975113a..dba367fae0 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/it.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/it.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/ja.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/ja.lproj/Localizable.strings index 7fae84bb53..64860f5931 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/ja.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/ja.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/nb.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/nb.lproj/Localizable.strings index 391a6a94c2..186b813384 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/nb.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/nb.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/nl.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/nl.lproj/Localizable.strings index 1692446199..941e893bf3 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/nl.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/nl.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/pl.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/pl.lproj/Localizable.strings index 027f7f30f2..9161c79eef 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/pl.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/pl.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/pt-BR.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/pt-BR.lproj/Localizable.strings index db3fec2901..348e8d4d06 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/pt-BR.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/pt-BR.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/ro.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/ro.lproj/Localizable.strings index 9717cab22f..aac055afd4 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/ro.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/ro.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/ru.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/ru.lproj/Localizable.strings index 95dce2fec8..5d74f15352 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/ru.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/ru.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/sk.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..ad6dd8e110 --- /dev/null +++ b/Dependencies/dexcom-share-client-swift/ShareClientUI/sk.lproj/Localizable.strings @@ -0,0 +1,37 @@ +/* Confirmation message for deleting a CGM */ +"Are you sure you want to delete this CGM?" = "Naozaj chcete odstrániť toto CGM?"; + +/* The title of the cancel action in an action sheet */ +"Cancel" = "Zrušiť"; + +/* Title describing glucose date */ +"Date" = "Dátum"; + +/* Button title to delete CGM + Title text for the button to remove a CGM from Loop */ +"Delete CGM" = "Odstrániť CGM"; + +/* Title describing glucose value */ +"Glucose" = "Glykémia"; + +/* Section title for latest glucose reading */ +"Latest Reading" = "Posledné čítanie"; + +/* Outside US share server option title */ +"Outside US" = "Mimo USA"; + +/* The title of the Dexcom share password credential */ +"Password" = "Heslo"; + +/* The title of the Dexcom share server URL credential */ +"Server" = "Server"; + +/* Title describing glucose trend */ +"Trend" = "Trend"; + +/* U.S. share server option title */ +"US" = "USA"; + +/* The title of the Dexcom share username credential */ +"Username" = "Meno používateľa"; + diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/sv.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/sv.lproj/Localizable.strings index ad70818cfb..04bf3ec150 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/sv.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/sv.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/tr.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/tr.lproj/Localizable.strings index da3f31f8f5..7a46824f72 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/tr.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/tr.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/vi.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/vi.lproj/Localizable.strings index 7a5274bb58..242079bf46 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/vi.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/vi.lproj/Localizable.strings differ diff --git a/Dependencies/dexcom-share-client-swift/ShareClientUI/zh-Hans.lproj/Localizable.strings b/Dependencies/dexcom-share-client-swift/ShareClientUI/zh-Hans.lproj/Localizable.strings index 79b51e7920..cd0fdbbc3e 100644 Binary files a/Dependencies/dexcom-share-client-swift/ShareClientUI/zh-Hans.lproj/Localizable.strings and b/Dependencies/dexcom-share-client-swift/ShareClientUI/zh-Hans.lproj/Localizable.strings differ diff --git a/Dependencies/rileylink_ios/Common/OSLog.swift b/Dependencies/rileylink_ios/Common/OSLog.swift index 73fb7018d9..9b7a7c9009 100644 --- a/Dependencies/rileylink_ios/Common/OSLog.swift +++ b/Dependencies/rileylink_ios/Common/OSLog.swift @@ -4,143 +4,29 @@ // // Copyright © 2017 LoopKit Authors. All rights reserved. // -// -// OSLog.swift -// OmniBLE -// -// Copyright © 2017 LoopKit Authors. All rights reserved. -// OSLog updated for FreeAPSX logs -// import os.log -import Foundation - -let storeLoopLog: Bool = false - -let loggerLock = NSRecursiveLock() -let baseReporter: IssueReporter = SimpleLogReporter() -let category = Logger.Category.RileyLink - -extension NSLocking { - func perform(_ block: () throws -> T) rethrows -> T { - lock() - defer { unlock() } - return try block() - } -} - -extension NSRecursiveLock { - convenience init(label: String) { - self.init() - name = label - } -} -extension NSLock { - convenience init(label: String) { - self.init() - name = label - } -} extension OSLog { - convenience init(category: String) { - self.init(subsystem: "com.loopkit.RileyLink", category: category) + self.init(subsystem: "com.ps2.rileylink", category: category) } func debug(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .debug, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } + log(message, type: .debug, args) } func info(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .info, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.info( - {msg}(), - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - - + log(message, type: .info, args) } func `default`(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .default, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - loggerLock.perform { - category.logger.debug( - {msg}(), - printToConsole: true, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .default, args) } func error(_ message: StaticString, _ args: CVarArg...) { - if (!storeLoopLog) { - log(message, type: .error, args) - } else { - let msg_format = message.withUTF8Buffer{ - String(decoding: $0, as: UTF8.self) - } - let msg = String(format: msg_format.replacingOccurrences(of: "{public}", with: ""), args) - DispatchWorkItem(qos: .background, flags: .enforceQoS) { - - loggerLock.perform { - category.logger.warning( - {msg}(), - description: {msg}(), - error: nil, - file: #file, - function: #function, - line: #line - ) - } - }.perform() - } - + log(message, type: .error, args) } private func log(_ message: StaticString, type: OSLogType, _ args: [CVarArg]) { @@ -162,275 +48,3 @@ extension OSLog { } } } - -protocol IssueReporter: AnyObject { - /// Call this method in `applicationDidFinishLaunching()`. - func setup() - - func setUserIdentifier(_: String?) - - func reportNonFatalIssue(withName: String, attributes: [String: String]) - - func reportNonFatalIssue(withError: NSError) - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) -} - -final class Logger { - static let `default` = Logger(category: .default, reporter: baseReporter) - static let RileyLink = Logger(category: .RileyLink, reporter: baseReporter) - - enum Category: String { - case `default` - case RileyLink - - var name: String { - rawValue - } - - var logger: Logger { - switch self { - case .default: return .default - case .RileyLink: return .RileyLink - - } - } - - fileprivate var log: OSLog { - let subsystem = Bundle.main.bundleIdentifier! - switch self { - case .default: return OSLog.default - case .RileyLink: return OSLog(subsystem: subsystem, category: name) - } - } - } - - fileprivate enum Error: Swift.Error { - case error(String) - case errorWithInnerError(String, Swift.Error) - case errorWithDescription(String, String) - case errorWithDescriptionAndInnerError(String, String, Swift.Error) - - private func domain() -> String { - switch self { - case let .error(domain), - let .errorWithDescription(domain, _), - let .errorWithDescriptionAndInnerError(domain, _, _), - let .errorWithInnerError(domain, _): - return domain - } - } - - private func innerError() -> Swift.Error? { - switch self { - case let .errorWithDescriptionAndInnerError(_, _, error), - let .errorWithInnerError(_, error): - return error - default: return nil - } - } - - func asNSError() -> NSError { - var info: [String: Any] = ["Description": String(describing: self)] - - if let error = innerError() { - info["Error"] = String(describing: error) - } - - return NSError(domain: domain(), code: -1, userInfo: info) - } - } - - private let category: Category - private let reporter: IssueReporter - let log: OSLog - - private init(category: Category, reporter: IssueReporter) { - self.category = category - self.reporter = reporter - log = category.log - } - - static func setup() { - loggerLock.perform { - baseReporter.setup() - } - } - - func debug( - _ message: @autoclosure () -> String, - printToConsole: Bool = true, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let message = "DEV: \(message())" - if printToConsole { - os_log("%@ - %@ - %d %{public}@", log: log, type: .debug, file.file, function, line, message) - } - reporter.log(category.name, message, file: file, function: function, line: line) - } - - func info( - _ message: String, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let printedMessage = "INFO: \(message)" - os_log("%@ - %@ - %d %{public}@", log: log, type: .info, file.file, function, line, printedMessage) - reporter.log(category.name, printedMessage, file: file, function: function, line: line) - } - - func warning( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "WARN: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .default, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - - } - - func error( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) -> Never { - errorWithoutFatalError(message, description: description, error: maybeError, file: file, function: function, line: line) - - fatalError( - "\(message) @ \(String(describing: description)) @ \(String(describing: maybeError)) @ \(file) @ \(function) @ \(line)" - ) - } - - - fileprivate func errorWithoutFatalError( - _ message: String, - description: String? = nil, - error maybeError: Swift.Error? = nil, - file: String = #file, - function: String = #function, - line: UInt = #line - ) { - let loggerError = maybeError.loggerError(message: message, withDescription: description) - let message = "ERR: \(String(describing: loggerError))" - - os_log("%@ - %@ - %d %{public}@", log: log, type: .error, file.file, function, line, message) - reporter.log(category.name, message, file: file, function: function, line: line) - reporter.reportNonFatalIssue(withError: loggerError.asNSError()) - } -} - -private extension Optional where Wrapped == Swift.Error { - func loggerError(message: String, withDescription description: String?) -> Logger.Error { - switch (description, self) { - case (nil, nil): - return .error(message) - case let (descr?, nil): - return .errorWithDescription(message, descr) - case let (nil, error?): - return .errorWithInnerError(message, error) - case let (descr?, error?): - return .errorWithDescriptionAndInnerError(message, descr, error) - } - } -} - - -final class SimpleLogReporter: IssueReporter { - private let fileManager = FileManager.default - - private var dateFormatter: DateFormatter { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - return dateFormatter - } - - func setup() {} - - func setUserIdentifier(_: String?) {} - - func reportNonFatalIssue(withName _: String, attributes _: [String: String]) {} - - func reportNonFatalIssue(withError _: NSError) {} - - func log(_ category: String, _ message: String, file: String, function: String, line: UInt) { - let now = Date() - let startOfDay = Calendar.current.startOfDay(for: now) - - if !fileManager.fileExists(atPath: SimpleLogReporter.logDir) { - try? fileManager.createDirectory( - atPath: SimpleLogReporter.logDir, - withIntermediateDirectories: false, - attributes: nil - ) - } - - if !fileManager.fileExists(atPath: SimpleLogReporter.logFile) { - createFile(at: startOfDay) - } else { - if let attributes = try? fileManager.attributesOfItem(atPath: SimpleLogReporter.logFile), - let creationDate = attributes[.creationDate] as? Date, creationDate < startOfDay - { - try? fileManager.removeItem(atPath: SimpleLogReporter.logFilePrev) - try? fileManager.moveItem(atPath: SimpleLogReporter.logFile, toPath: SimpleLogReporter.logFilePrev) - createFile(at: startOfDay) - } - } - - let logEntry = "\(dateFormatter.string(from: now)) [\(category)] \(file.file) - \(function) - \(line) - \(message)\n" - let data = logEntry.data(using: .utf8)! - try? data.append(fileURL: URL(fileURLWithPath: SimpleLogReporter.logFile)) - } - - private func createFile(at date: Date) { - fileManager.createFile(atPath: SimpleLogReporter.logFile, contents: nil, attributes: [.creationDate: date]) - } - - static var logFile: String { - getDocumentsDirectory().appendingPathComponent("logs/log.txt").path - } - - static var logDir: String { - getDocumentsDirectory().appendingPathComponent("logs").path - } - - static var logFilePrev: String { - getDocumentsDirectory().appendingPathComponent("logs/log_prev.txt").path - } - - static func getDocumentsDirectory() -> URL { - let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) - let documentsDirectory = paths[0] - return documentsDirectory - } -} - -private extension Data { - func append(fileURL: URL) throws { - if let fileHandle = FileHandle(forWritingAtPath: fileURL.path) { - defer { - fileHandle.closeFile() - } - fileHandle.seekToEndOfFile() - fileHandle.write(self) - } else { - try write(to: fileURL, options: .atomic) - } - } -} - -private extension String { - var file: String { components(separatedBy: "/").last ?? "" } -} diff --git a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift b/Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift deleted file mode 100644 index c17a040d2d..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/Messages/Models/TimestampedHistoryEvent.swift +++ /dev/null @@ -1,40 +0,0 @@ -// -// TimestampedPumpEvent.swift -// RileyLink -// -// Created by Nate Racklyeft on 6/15/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - - -// Boxes a TimestampedPumpEvent, storing its reconciled date components -public struct TimestampedHistoryEvent { - public let pumpEvent: PumpEvent - public let date: Date - - public init(pumpEvent: PumpEvent, date: Date) { - self.pumpEvent = pumpEvent - self.date = date - } - - public func isMutable(atDate date: Date = Date(), forPump model: PumpModel) -> Bool { - guard let bolus = self.pumpEvent as? BolusNormalPumpEvent else { - return false - } - let deliveryFinishDate = date.addingTimeInterval(bolus.deliveryTime) - return model.appendsSquareWaveToHistoryOnStartOfDelivery && bolus.type == .square && deliveryFinishDate > date - } -} - - -extension TimestampedHistoryEvent: DictionaryRepresentable { - public var dictionaryRepresentation: [String : Any] { - var dict = pumpEvent.dictionaryRepresentation - - dict["timestamp"] = ISO8601DateFormatter.defaultFormatter().string(from: date) - - return dict - } -} diff --git a/Dependencies/rileylink_ios/MinimedKit/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/da.lproj/Localizable.strings deleted file mode 100644 index 1872ee8c37..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/da.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "En bolus er allerede i gang"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmUrPåmindelse"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basal Profil %1$@: %2$@ E/time"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus i gang"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Tjek at pumpen ikke er suspenderet eller under klargøring, eller har en procent midlertidig basal type"; - -/* Pump error code returned when command refused */ -"Command refused" = "Kommando nægtet"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Kommunikation med en anden pumpe opdaget."; - -/* Error description */ -"Decoding Error" = "Undersøger fejl"; - -/* Error description */ -"Device Error" = "Enheds Fejl"; - -/* Describing the pump history insulin data source */ -"Event History" = "Hændelses log"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Fejlagtigt svar ved %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Sørg for at din RileyLink er i nærheden, og tændt"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Max indstilling overskredet"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Serier"; - -/* Describing the North America pump region */ -"North America" = "Nord Amerika"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumpe svarede ikke"; - -/* Error description */ -"Pump Error" = "Pumpe Fejl"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pumpe er afbrudt"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pumpe reagerede uventet"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radio indstilling fejlede"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Midlertidig Basal: %1$.3f E/time"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Midlertidig Basal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Midlertidig Basal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Ukendt pumpe fejlkode: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Unknown pumpe model %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Ukendt svar under %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Verden (World-Wide)"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/de.lproj/Localizable.strings deleted file mode 100644 index 057d09dc98..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/de.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Ein Bolus wird bereits abgegeben"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkalisch"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/Stunde"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus im Gang"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Überprüfen, ob die Pumpe nicht unterbrochen wurde oder sich im Füllmodus befindet, oder prozentuell temporären Basalraten aktiviert sind"; - -/* Pump error code returned when command refused */ -"Command refused" = "Befehl verweigert"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Kommunikation mit einer anderen Pumpe festgestellt"; - -/* Error description */ -"Decoding Error" = "Dekodierungsfehler"; - -/* Error description */ -"Device Error" = "Gerätefehler"; - -/* Describing the pump history insulin data source */ -"Event History" = "Ereignisverlauf"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Ungültige Antwort während %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Sicherstellen, dass RileyLink sich in der Nähe befindet und angeschaltet ist"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Max Einstellung überschritten"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Serie"; - -/* Describing the North America pump region */ -"North America" = "Nordamerika"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumpe hat nicht geantwortet"; - -/* Error description */ -"Pump Error" = "Pumpenfehler"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pumpe ist gesperrt"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pumpe hat unerwartet geantwortet"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpennachricht(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "Einstellen des RileyLink Funksignals fehlgeschlagen"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Temporäre Basalrate: %1$.3f E/St"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Temporäre Basalrate: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Temporäre Basalrate: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Unbekannter Fehlercode der Pumpe: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Unbekanntes Pumpenmodell: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Unbekannte Antwort oder %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Weltweit"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/es.lproj/Localizable.strings deleted file mode 100644 index 6da8c08d9a..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/es.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Un bolo ya está en progreso"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alcalina"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Perfil Basal %1$@: %2$@ U/hora"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolo en progreso"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Revisa que la microinfusora no esté suspendida o en cebado, o que tenga una basal de tipo temporal"; - -/* Pump error code returned when command refused */ -"Command refused" = "Comando rechazado"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comunicación con otra microinfusadora detectado."; - -/* Error description */ -"Decoding Error" = "Error de decodificación"; - -/* Error description */ -"Device Error" = "Error de Dispositivo"; - -/* Describing the pump history insulin data source */ -"Event History" = "Historial de Eventos"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Respuesta inválida durante %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litio"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Asegúrate de que tu RileyLink esté cerca y encendido"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Ajuste máximo excedido"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed Serie 500/700"; - -/* Describing the North America pump region */ -"North America" = "Norte America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "La microinfusora no respondió"; - -/* Error description */ -"Pump Error" = "Error de microinfusora"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "La microinfusora está suspendida"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "La microinfusora respondió de forma inesperada"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "MensageMicroinfusadora(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservorio"; - -/* Error description */ -"RileyLink radio tune failed" = "Sintonización de señal de radio de RileyLink falló"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Basal Temporal: %1$.3f U/hora"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Basal Temporal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Basal Temporal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Error desconocido de código de microinfusora: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Modelo desconocido de microinfusora: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Respuesta desconocida durante %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Mundial"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/fi.lproj/Localizable.strings deleted file mode 100644 index 13968da7fd..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/fi.lproj/Localizable.strings +++ /dev/null @@ -1,105 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Bolus on jo käynnissä"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "HerätysKelloMuistutus"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "HälytysSensori"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaliini"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basaaliprofiili %1$@: %2$@ U/h"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus käynnissä"; - -/* Describing the Canada pump region */ -"Canada" = "Kanada"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Tarkista, että pumppu ei ole pysäytetty, vakiotäytöllä tai basaalityypiksi ei ole valittu prosentteja"; - -/* Pump error code returned when command refused */ -"Command refused" = "Komento hylättiin"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Toisen pumpun viestintää havaittu."; - -/* Error description */ -"Decoding Error" = "Dekoodausvirhe"; - -/* Error description */ -"Device Error" = "Laitevirhe"; - -/* Describing the pump history insulin data source */ -"Event History" = "Tapahtumahistoria"; - -/* Pump error code when invalid history page is requested */ -"History page does not exist" = "Historiasivua ei ole olemassa"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Virheellinen vastaus %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja se on kytketty päälle"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Maksimiasetus ylitetty"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 -sarja"; - -/* Describing the North America pump region */ -"North America" = "Pohjois-Amerikka"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumppu ei vastannut"; - -/* Error description */ -"Pump Error" = "Pumppuvirhe"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pumppu on pysäytetty"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pumppu vastasi epätavallisesti"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumppuViesti(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Säiliö"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink-radion viritys epäonnistui"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Tilapäinen basaali: %1$.3f U/h"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Tilapäinen basaali: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Tilapäinen basaali: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Tuntematon pumpun virhekoodi: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Tuntematon pumppumalli: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Tuntematon vastaus %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Maailmanlaajuinen"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/fr.lproj/Localizable.strings deleted file mode 100644 index 5570462877..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/fr.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Un bolus est déjà en cours"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alcaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Profil basal %1$@: %2$@ U/heure"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus en cours"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Vérifiez que la pompe n’est pas suspendue ou amorcée, ou a un type basal temporaire de pour cent"; - -/* Pump error code returned when command refused */ -"Command refused" = "Commande refusée"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Communications avec une autre pompe détectée"; - -/* Error description */ -"Decoding Error" = "Erreur de décodage"; - -/* Error description */ -"Device Error" = "Erreur de périphérique"; - -/* Describing the pump history insulin data source */ -"Event History" = "Historique des événements"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Réponse invalide pendant %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Assurez-vous que votre RileyLink est à proximité et sous tension"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Paramètre maximum dépassée"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Serié Minimed 500/700"; - -/* Describing the North America pump region */ -"North America" = "Amérique du Nord"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "La pompe n’a pas répondu"; - -/* Error description */ -"Pump Error" = "Erreur de pompe"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "La pompe est suspendue"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "La pompe a réagi de manière inattendue"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Message de pompe(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Réservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "La synthèse radio RileyLink a échoué"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Basal Temporaire: %1$.3f U/heure"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Basal Temporaire: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Basal Temporaire: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Code d’erreur de pompe inconnu: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Modèle de pompe inconnu: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Réponse inconnue pendant %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Monde Entier"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/he.lproj/Localizable.strings deleted file mode 100644 index afe05abcf5..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/he.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "A bolus is already in progress"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basal Profile %1$@: %2$@ U/hour"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Check that the pump is not suspended or priming, or has a percent temp basal type"; - -/* Pump error code returned when command refused */ -"Command refused" = "Command refused"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comms with another pump detected."; - -/* Error description */ -"Decoding Error" = "Decoding Error"; - -/* Error description */ -"Device Error" = "Device Error"; - -/* Describing the pump history insulin data source */ -"Event History" = "Event History"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Invalid response during %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Max setting exceeded"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "North America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pump did not respond"; - -/* Error description */ -"Pump Error" = "Pump Error"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pump is suspended"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pump responded unexpectedly"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radio tune failed"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Temporary Basal: %1$.3f U/hour"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Temporary Basal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Temporary Basal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Unknown pump error code: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Unknown pump model: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Unknown response during %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "World-Wide"; diff --git a/Dependencies/rileylink_ios/MinimedKit/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/it.lproj/Localizable.strings deleted file mode 100644 index d36c353cee..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/it.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Un bolo è già in esecuzione"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "Promemoria sveglia"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "Allarme Sensori"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alcalina"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Profilo basale %1$@: %2$@ U/ora"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolo in esecuzione"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verificare che il microinfusore non sia sospeso o che stia riavvolgendo o che abbia un tipo basale impostato su percentuale"; - -/* Pump error code returned when command refused */ -"Command refused" = "Comando negato"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comunicazione con un altro microinfusore rilevata"; - -/* Error description */ -"Decoding Error" = "Errore di Decodifica"; - -/* Error description */ -"Device Error" = "Errore del Dispositivo"; - -/* Describing the pump history insulin data source */ -"Event History" = "Storia degli Eventi"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Risposta non valida per %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litio"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Assicurati che il tuo RileyLink sia nelle vicinanze e acceso"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Impostazione massima superata"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed serie 500/700"; - -/* Describing the North America pump region */ -"North America" = "Nord America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Il microinfusore non risponde"; - -/* Error description */ -"Pump Error" = "Errore Mincroinfusore"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Il microinfusore è sospeso"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Il microinfusore ha risposto inaspettatamente"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Serbatoio"; - -/* Error description */ -"RileyLink radio tune failed" = "Sintonizzazione radio RileyLink fallita"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Basale Temporanea: %1$.3f U/ora"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Basale Temporanea: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Basale Temporanea: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Codice errore microinfusore sconosciuto: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Modello di microinfusore sconosciuto: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Risposta sconosciuta per %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Internazionale"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/ja.lproj/Localizable.strings deleted file mode 100644 index 25ea53322a..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/ja.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "ボーラス注入中"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "アラームリマインダー"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "アラームセンサー"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "アルカリ"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "ベーサルプロファイル %1$@: %2$@ U/時"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "ボーラス注入中"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "ポンプが停止、プライミング中、または基礎レートが一時的に変更になっていないことを確認してください"; - -/* Pump error code returned when command refused */ -"Command refused" = "コマンド拒否"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "他のポンプが検出"; - -/* Error description */ -"Decoding Error" = "デコーディングエラー"; - -/* Error description */ -"Device Error" = "デバイスエラー"; - -/* Describing the pump history insulin data source */ -"Event History" = "イベント履歴"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "%1$@ で反応が無効: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "リチウム"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "RileyLink が近くにあり電源が入っているか確認してください"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "設定の制限を超えています"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 シリーズ"; - -/* Describing the North America pump region */ -"North America" = "North America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "ポンプが反応しません"; - -/* Error description */ -"Pump Error" = "ポンプエラー"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "ポンプが停止しています"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "ポンプが不意に反応しました"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "ポンプメッセージ(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "リザーバ"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink 通信に失敗しました"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "一時基礎レート: %1$.3f U/hour"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "一時基礎レート: %1$d 分"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "一時基礎レート: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "ポンプエラーコード 不明: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "ポンプモデル 不明: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "反応が不明 %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "World-Wide"; diff --git a/Dependencies/rileylink_ios/MinimedKit/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/nb.lproj/Localizable.strings deleted file mode 100644 index ed3f73a6ad..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/nb.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "En bolus pågår allerede"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "PåminnelseAlarmklokke"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkalisk"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/timen"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus pågår"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Sjekk at pumpa ikke har stoppet tilførsel av insulin, at priming ikke foregår, eller har en midlertidig prosentbasaltype pågående."; - -/* Pump error code returned when command refused */ -"Command refused" = "Kommando avvist"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Oppdaget kommunikasjon med en annen pumpe"; - -/* Error description */ -"Decoding Error" = "Dekodingsfeil"; - -/* Error description */ -"Device Error" = "Enhetsfeil"; - -/* Describing the pump history insulin data source */ -"Event History" = "Hendelseshistorikk"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Ugyldig respons ved %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Kontroller at din RileyLink er i nærheten og er påslått"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Maksinnstilling overskredet"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 series"; - -/* Describing the North America pump region */ -"North America" = "Nord Amerika"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumpa svarte ikke"; - -/* Error description */ -"Pump Error" = "Pumpefeil"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pumpe er pauset"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pumpen svarte uventet"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpemelding(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoar"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radiotuning feilet"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Midlertidig basaldose: %1$.3f E/timen"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Midlertidig basaldose: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Midlertidig basaldose: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Ukjent feilkode fra pumpe: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Ukjent pumpemodell: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Ukjent respons ved %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "World-Wide"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/nl.lproj/Localizable.strings deleted file mode 100644 index 029300ad7e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/nl.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Er is al een bolus actief"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basaal profiel %1$@: %2$@ E/uur"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus bezig"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Controleer dat de pomp niet is onderbroken of aan het initialiseren, of dat er een tijdelijke basaal (in %) staat ingesteld "; - -/* Pump error code returned when command refused */ -"Command refused" = "Commando geweigerd"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Communicatie met een andere pomp gedetecteerd"; - -/* Error description */ -"Decoding Error" = "Decodingsfout"; - -/* Error description */ -"Device Error" = "Apparaatfout"; - -/* Describing the pump history insulin data source */ -"Event History" = "Pomp historie"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Foutief antwoord gedurende %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Wees er zeker van dat de RileyLink is in de buurt en aanstaat"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Max instelling overschreden"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 series"; - -/* Describing the North America pump region */ -"North America" = "Noord-Amerika"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pomp reageert niet"; - -/* Error description */ -"Pump Error" = "Pomp foutmelding"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pomp is onderbroken"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pomp reageerde onverwacht"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Bericht Pomp (%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "Afstemmen van de RileyLink Radio mislukt"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Tijdelijk basaal: %1$.3f E/uur"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Tijdelijk basaal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Tijdelijk basaal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Onbekende foutmelding pomp: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Onbekend model pomp: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Onbekend antwoord gedurende %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Wereldwijd"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/pl.lproj/Localizable.strings deleted file mode 100644 index a0d6d8539b..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/pl.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Podawanie bolusa jest już w toku"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaliczna"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Profil bazy %1$@: %2$@ J/godzinę"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Podawanie bolusa w toku"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Sprawdź, czy pompa nie jest zawieszona, nie trwa wypełnianie lub nie ma ustawionej procentowej dawki tymczasowej w ustawieniach."; - -/* Pump error code returned when command refused */ -"Command refused" = "Odmowa wykonania polecenia"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Wykryto połączenie z inną pompą."; - -/* Error description */ -"Decoding Error" = "Błąd dekodowania"; - -/* Error description */ -"Device Error" = "Błąd urządzenia"; - -/* Describing the pump history insulin data source */ -"Event History" = "Historia zdarzeń"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Nieprawidłowa odpowiedź podczas %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litowa"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Upewnij się, że Twój RileyLink jest w pobliżu i jest włączony"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Maksymalne ustawienie przekroczone"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed serii 500/700"; - -/* Describing the North America pump region */ -"North America" = "Ameryka Północna"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pompa nie odpowiada"; - -/* Error description */ -"Pump Error" = "Błąd pompy"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pompa jest zawieszona"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pompa odpowiedziała w nieoczekiwany sposób"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Wiadomość od pompy(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Zbiornik"; - -/* Error description */ -"RileyLink radio tune failed" = "Dostrajanie radia RileyLink zakończone niepowodzeniem"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Baza tymczasowa: %1$.3f J/godz"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Baza tymczasowa: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Baza tymczasowa: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Nieznany kod błędu pompy: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Nieznany model pompy: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Nieoczekiwana odpowiedź podczas %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Ogólnoświatowa"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/pt-BR.lproj/Localizable.strings deleted file mode 100644 index 69bb5df7ba..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Um bolus está em andamento"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "LembreteDeAlarme"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmeDeSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alcalina"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Perfil Basal %1$@: %2$@ U/hora"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus em andamento"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verifique se a bomba não está suspensa ou em preparação ou tem uma basal temporária percentual"; - -/* Pump error code returned when command refused */ -"Command refused" = "Comando recusado"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comunicação com outra bomba detectada."; - -/* Error description */ -"Decoding Error" = "Erro de Decodificação"; - -/* Error description */ -"Device Error" = "Erro no Dispositivo"; - -/* Describing the pump history insulin data source */ -"Event History" = "Histórico de Eventos"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Resposta inválida durante %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lítio"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Verifique se o seu RileyLink está próximo e ligado"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Configuração máxima excedida"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "América do Norte"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "A bomba não respondeu"; - -/* Error description */ -"Pump Error" = "Erro na Bomba"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Bomba suspensa"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = " Bomba respondeu inesperadamente"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "MensagemDaBomba(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservatório"; - -/* Error description */ -"RileyLink radio tune failed" = "A sintonia do rádio RileyLink falhou"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Basal Temporária: %1$.3f U/hora"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Basal Temporária: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Basal Temporária: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Código de erro da bomba desconhecido: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Modelo de bomba desconhecido: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Resposta desconhecida durante %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Mundial"; diff --git a/Dependencies/rileylink_ios/MinimedKit/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/ro.lproj/Localizable.strings deleted file mode 100644 index 6a0cdc73da..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/ro.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Există deja un bolus în curs de administrare"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alcalină"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Profil bazal %1$@: %2$@ U/oră"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus în curs de administrare"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Verificați că pompa nu este suspendată sau în curs de amorsare sau ca nu folosește un tip procentual de bazală temporară"; - -/* Pump error code returned when command refused */ -"Command refused" = "Comandă refuzată"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "S-a detectat o comunicare cu altă pompă."; - -/* Error description */ -"Decoding Error" = "Eroare la decodare"; - -/* Error description */ -"Device Error" = "Eroare dispozitiv"; - -/* Describing the pump history insulin data source */ -"Event History" = "Istoric evenimente"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Răspuns invalid în timpul %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litiu"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropiere"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Setare maximă depășită"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "North America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumpa nu a răspuns"; - -/* Error description */ -"Pump Error" = "Eroare pompă"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pompa este suspendată"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pompa a răspuns în mod neașteptat"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Rezervor"; - -/* Error description */ -"RileyLink radio tune failed" = "Eșec RileyLink la reglarea radio"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Bazală temporară: %1$.3f U/oră"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Bazală temporară: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Bazală temporară: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Cod de eroare pompă necunoscut: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Model de pompă necunoscut: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Răspuns nerecunoscut în timpul %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Global"; diff --git a/Dependencies/rileylink_ios/MinimedKit/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/ru.lproj/Localizable.strings deleted file mode 100644 index 6276f7459a..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/ru.lproj/Localizable.strings +++ /dev/null @@ -1,99 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Болюс уже подается"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "Напоминание будильника"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "Предупреждение от сенсора"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Щелочная"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Профиль базала %1$@: %2$@ ед/ч"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Подается болюс"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Убедитесь, что помпа не остановлена и не заполняется или не находится в режиме подачи оставшихся процентов временного базала"; - -/* Pump error code returned when command refused */ -"Command refused" = "Отказ в выполнении команды"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Обнаружена коммуникация с другой помпой"; - -/* Error description */ -"Decoding Error" = "Ошибка декодирования"; - -/* Error description */ -"Device Error" = "Ошибка устройства"; - -/* Describing the pump history insulin data source */ -"Event History" = "История событий"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Неверный отклик в интервале %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Литиевая"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink включен и находится поблизости"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Максимальное значение превышено"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed серий 500/700"; - -/* Describing the North America pump region */ -"North America" = "Сев Америка"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Помпа не ответила"; - -/* Error description */ -"Pump Error" = "Ошибка помпы"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Помпа остановлена"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Неожиданный отклик помпы"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Сообщение помпы(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Резервуар"; - -/* Error description */ -"RileyLink radio tune failed" = "Настройка радиосвязи с RileyLink не удалась"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Временный базал: %1$.3f ед/ч"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Временный базал: %1$d мин"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Временный базал: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Неизвестный код ошибки помпы: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Неизвестная модель помпы: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Неизвестный отклик в интервале %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Глобальный"; - diff --git a/Dependencies/rileylink_ios/MinimedKit/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/sv.lproj/Localizable.strings deleted file mode 100644 index adec1279d3..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/sv.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "En bolusdos ges redan"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaliskt"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basalprofil %1$@: %2$@ E/h"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Ger bolus"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Kontrollera att pumpen inte är pausad eller håller på att fyllas, eller har en temporär basal inställd med procentuellt värde."; - -/* Pump error code returned when command refused */ -"Command refused" = "Kommandot avvisades"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Kommunikation med en annan pump upptäcktes."; - -/* Error description */ -"Decoding Error" = "Avkodingsfel"; - -/* Error description */ -"Device Error" = "Enhetsfel"; - -/* Describing the pump history insulin data source */ -"Event History" = "Händelsehistorik"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Ogiltigt svar under %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Litium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära både telefonen och pumpen, och att den är laddad och påslagen"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Inställt maxvärde överskridet"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "Nordamerika"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pumpen svarade inte"; - -/* Error description */ -"Pump Error" = "Pumpfel"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pumpen är pausad"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pump svarade oväntat"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "Pumpmeddelande(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoar"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radiosignal misslyckad"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Temporär basal: %1$.3f E/timme"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Temporär basal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Temporär basal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Okänt pumpfel: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Okänd pumpmodell: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Okänt svar under %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "Global"; diff --git a/Dependencies/rileylink_ios/MinimedKit/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/tr.lproj/Localizable.strings deleted file mode 100644 index afe05abcf5..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/tr.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "A bolus is already in progress"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Basal Profile %1$@: %2$@ U/hour"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Check that the pump is not suspended or priming, or has a percent temp basal type"; - -/* Pump error code returned when command refused */ -"Command refused" = "Command refused"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comms with another pump detected."; - -/* Error description */ -"Decoding Error" = "Decoding Error"; - -/* Error description */ -"Device Error" = "Device Error"; - -/* Describing the pump history insulin data source */ -"Event History" = "Event History"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Invalid response during %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Max setting exceeded"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "North America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Pump did not respond"; - -/* Error description */ -"Pump Error" = "Pump Error"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Pump is suspended"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Pump responded unexpectedly"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Reservoir"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radio tune failed"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Temporary Basal: %1$.3f U/hour"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Temporary Basal: %1$d min"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Temporary Basal: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Unknown pump error code: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Unknown pump model: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Unknown response during %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "World-Wide"; diff --git a/Dependencies/rileylink_ios/MinimedKit/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKit/vi.lproj/Localizable.strings deleted file mode 100644 index c480a95964..0000000000 --- a/Dependencies/rileylink_ios/MinimedKit/vi.lproj/Localizable.strings +++ /dev/null @@ -1,98 +0,0 @@ -/* Communications error for a bolus currently running */ -"A bolus is already in progress" = "Liều bolus đang được thực hiện"; - -/* The description of AlarmClockReminderPumpEvent */ -"AlarmClockReminder" = "AlarmClockReminder"; - -/* The description of AlarmSensorPumpEvent */ -"AlarmSensor" = "AlarmSensor"; - -/* Describing the battery chemistry as Alkaline */ -"Alkaline" = "Alkaline"; - -/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */ -"Basal Profile %1$@: %2$@ U/hour" = "Hồ sơ Basal %1$@: %2$@ U/giờ"; - -/* Pump error code when bolus is in progress */ -"Bolus in progress" = "Liều bolus đang thực hiện"; - -/* Suggestions for diagnosing a command refused pump error */ -"Check that the pump is not suspended or priming, or has a percent temp basal type" = "Kiểm tra và đảm bảo bơm không tạm ngưng hoặc đang bơm hoặc đang thực hiện liều basal tạm thời"; - -/* Pump error code returned when command refused */ -"Command refused" = "Lệnh bị từ chối"; - -/* No comment provided by engineer. */ -"Comms with another pump detected" = "Comms cho bơm khác được phát hiện."; - -/* Error description */ -"Decoding Error" = "Đang giải mã bị lỗi"; - -/* Error description */ -"Device Error" = "Thiết bị lỗi"; - -/* Describing the pump history insulin data source */ -"Event History" = "Lược sử tác vụ trước đó"; - -/* Format string for failure reason. (1: The operation being performed) (2: The response data) */ -"Invalid response during %1$@: %2$@" = "Phản ứng không phù hợp trong khoảng %1$@: %2$@"; - -/* Describing the battery chemistry as Lithium */ -"Lithium" = "Lithium"; - -/* Recovery suggestion */ -"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật"; - -/* Pump error code describing max setting exceeded */ -"Max setting exceeded" = "Cài đặt tối đa vượt giới hạn"; - -/* Pump title (1: model number) */ -"Minimed %@" = "Minimed %@"; - -/* Generic title of the minimed pump manager */ -"Minimed 500/700 Series" = "Minimed 500/700 Series"; - -/* Describing the North America pump region */ -"North America" = "North America"; - -/* No comment provided by engineer. */ -"Pump did not respond" = "Bơm không phản hồi"; - -/* Error description */ -"Pump Error" = "Bơm lỗi"; - -/* No comment provided by engineer. */ -"Pump is suspended" = "Bơm đang được tạm ngưng"; - -/* No comment provided by engineer. */ -"Pump responded unexpectedly" = "Bơm phản ứng bất ngờ"; - -/* The format string describing a pump message. (1: The packet type)(2: The message type)(3: The message address)(4: The message data */ -"PumpMessage(%1$@, %2$@, %3$@, %4$@)" = "PumpMessage(%1$@, %2$@, %3$@, %4$@)"; - -/* Describing the reservoir insulin data source */ -"Reservoir" = "Ngăn chứa insulin"; - -/* Error description */ -"RileyLink radio tune failed" = "RileyLink radio thất bại"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in minutes) */ -"Temporary Basal: %1$.3f U/hour" = "Liều Basal tạm thời: %1$.3f U/giờ"; - -/* The format string description of a TempBasalDurationPumpEvent. (1: The duration of the temp basal in minutes) */ -"Temporary Basal: %1$d min" = "Liều Basal tạm thời: %1$d phút"; - -/* The format string description of a TempBasalPumpEvent. (1: The rate of the temp basal in percent) */ -"Temporary Basal: %1$d%%" = "Liều Basal tạm thời: %1$d%%"; - -/* The format string description of an unknown pump error code. (1: The specific error code raw value) */ -"Unknown pump error code: %1$@" = "Không xác định lỗi của bơm: %1$@"; - -/* No comment provided by engineer. */ -"Unknown pump model: %@" = "Không xác định mẫu bơm: %@"; - -/* Format string for an unknown response. (1: The operation being performed) (2: The response data) */ -"Unknown response during %1$@: %2$@" = "Phản hồi không xác định trong %1$@: %2$@"; - -/* Describing the worldwide pump region */ -"World-Wide" = "World-Wide"; diff --git a/Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.h b/Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.h deleted file mode 100644 index 6e5b334c5e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitPlugin/MinimedKitPlugin.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// MinimedKitPlugin.h -// MinimedKitPlugin -// -// Created by Pete Schwamb on 8/24/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -#import - -//! Project version number for MinimedKitPlugin. -FOUNDATION_EXPORT double MinimedKitPluginVersionNumber; - -//! Project version string for MinimedKitPlugin. -FOUNDATION_EXPORT const unsigned char MinimedKitPluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Dependencies/rileylink_ios/MinimedKitTests/BasalScheduleTests.swift b/Dependencies/rileylink_ios/MinimedKitTests/BasalScheduleTests.swift deleted file mode 100644 index c4d08d792d..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitTests/BasalScheduleTests.swift +++ /dev/null @@ -1,76 +0,0 @@ -// -// BasalScheduleTests.swift -// RileyLink -// -// Created by Jaim Zuber on 5/2/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. -// - -import XCTest -@testable import MinimedKit - -class BasalScheduleTests: XCTestCase { - - var sampleData: Data { - let sampleDataString = "06000052000178050202000304000402000504000602000704000802000904000a02000b04000c02000d02000e02000f040010020011040012020013040014020015040016020017040018020019000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - - return Data(hexadecimalString: sampleDataString)! - } - - func testBasicConversion() { - let profile = BasalSchedule(rawValue: sampleData)! - - XCTAssertEqual(profile.entries.count, 26) - - let basalSchedule = profile.entries - - // Test each element - XCTAssertEqual(basalSchedule[0].index, 0) - XCTAssertEqual(basalSchedule[0].timeOffset, TimeInterval(minutes: 0)) - XCTAssertEqual(basalSchedule[0].rate, 0.15, accuracy: .ulpOfOne) - - XCTAssertEqual(basalSchedule[1].index, 1) - XCTAssertEqual(basalSchedule[1].timeOffset, TimeInterval(minutes: 30)) - XCTAssertEqual(basalSchedule[1].rate, 2.05, accuracy: .ulpOfOne) - - // Tests parsing rates that take two bytes to encode - XCTAssertEqual(basalSchedule[2].index, 2) - XCTAssertEqual(basalSchedule[2].timeOffset, TimeInterval(minutes: 60)) - XCTAssertEqual(basalSchedule[2].rate, 35.00, accuracy: .ulpOfOne) - - // Tests parsing entry on the second page - XCTAssertEqual(basalSchedule[25].index, 25) - XCTAssertEqual(basalSchedule[25].timeOffset, TimeInterval(minutes: 750)) - XCTAssertEqual(basalSchedule[25].rate, 0.05, accuracy: .ulpOfOne) - - XCTAssertEqual(sampleData.hexadecimalString, profile.rawValue.hexadecimalString) - } - - func testTxData() { - let profile = BasalSchedule(entries: [ - BasalScheduleEntry(index: 0, timeOffset: .hours(0), rate: 1.0), - BasalScheduleEntry(index: 1, timeOffset: .hours(4), rate: 2.0), - ]) - - XCTAssertEqual("280000500008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", profile.rawValue.hexadecimalString) - } - - func testDataFrameParsing() { - let frames = DataFrameMessageBody.dataFramesFromContents(sampleData) - - XCTAssertEqual("0106000052000178050202000304000402000504000602000704000802000904000a02000b04000c02000d02000e02000f04001002001104001202001304001402", frames[0].txData.hexadecimalString) - XCTAssertEqual("0200150400160200170400180200190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", frames[1].txData.hexadecimalString) - XCTAssertEqual("8300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", frames[2].txData.hexadecimalString) - - XCTAssertEqual(3, frames.count) - } - - func testEmptySchedule() { - let emptyData = Data(hexadecimalString: "00003f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")! - - let profile = BasalSchedule(rawValue: emptyData) - XCTAssertNil(profile) - - XCTAssertEqual(emptyData, BasalSchedule(entries: []).rawValue) - } -} diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ar.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/ar.lproj/Localizable.strings deleted file mode 100644 index 8fced6f561..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ar.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Are you sure you want to delete this pump?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Awake Until"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Best Frequency"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Change Time"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Change Time Zone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Changing time…"; - -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Delete Pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Delivery Limits"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Discover Commands"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Discovering commands…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Enable Diagnostic LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Enabled Diagnostic LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Error Resuming"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspending"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Fetch Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Fetch Recent History"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Fetching glucose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Fetching history…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Fetching pump model…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Get Pump Model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Get Statistics…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Last Awake"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Listening Off"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry Pair"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "No response"; - -/* The title of the cell showing the last idle */ -"On Idle" = "On Idle"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferred Data Source"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pump Battery Type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pump Model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Read Basal Schedule"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Read Pump Status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Reading basal schedule…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Reading pump status…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistics"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Save to Pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sending button press…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspended: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Trials"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tune Radio Frequency"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Tuning radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unknown"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ca.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/ca.lproj/Localizable.strings deleted file mode 100644 index 8fced6f561..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ca.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Are you sure you want to delete this pump?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Awake Until"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Best Frequency"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Change Time"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Change Time Zone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Changing time…"; - -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Delete Pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Delivery Limits"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Discover Commands"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Discovering commands…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Enable Diagnostic LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Enabled Diagnostic LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Error Resuming"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspending"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Fetch Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Fetch Recent History"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Fetching glucose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Fetching history…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Fetching pump model…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Get Pump Model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Get Statistics…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Last Awake"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Listening Off"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry Pair"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "No response"; - -/* The title of the cell showing the last idle */ -"On Idle" = "On Idle"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferred Data Source"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pump Battery Type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pump Model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Read Basal Schedule"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Read Pump Status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Reading basal schedule…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Reading pump status…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistics"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Save to Pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sending button press…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspended: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Trials"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tune Radio Frequency"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Tuning radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unknown"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/Localizable.strings deleted file mode 100644 index bc912a8caa..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ planlagt basal \n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Udestående enheder insulin\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline og Lithium batterier henfalder med forskellige satser. Alkaline har tendens til at have et lineært fald over tid, hvor Lithium batteri celler typisk opretholder deres spænding indtil halvejen i deres levetid. Ved normalt brug i en ikke-MySentry kompatibel Minimed (x22/x15) insulin pumpe, som kører Loop vil alkaline batterier holde cirka 4 til 5 dage. Lithium batterier holder mellem 1 til 2 uger. Denne indstilling bruger forskellige batteri henfalds satser for hver kemiske batteritype og alarmere brugeren når et batteri er cirka 8 til 10 timer fra at løbe tør."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Er du sikker på at du vil fjerne denne pumpe?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Vågen indtil"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rater"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Bedste frekvens"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Giver bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Ændre klokkeslæt"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Skift Tidszone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Skifter tiden…"; - -/* The title of the section describing commands */ -"Commands" = "Kommandoer"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Tilslutningstilstand"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Fjern pumpe"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Indgivelsesgrænser"; - -/* The title of the section describing the device */ -"Device" = "Enhed"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Opdag kommandoer"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Opdager kommandoer..."; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Slå diagnoserings LED’er til"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnoserings LED’er aktiveret"; - -/* The alert title for a resume error */ -"Error Resuming" = "Fejl under genoptagelse"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fejl under udsættelse"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Hent seneste glukose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Hent seneste historie"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Henter glukose..."; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Henter histoik..."; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Henter pumpe model..."; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Hent pumpe model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Hent statistik"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Levering af insulin kan blive bestemt fra pumpen ved enten at tolke på begivenheds historikken eller ved at sammenligne volumen af reservoiret over tid. Aflæsning af begivenheds historik kan give mere præcise status grafer og uploading af up-to-date behandlings data til Nightscout, ved bekostning af hurtigere dræning af pumpe batteriet, risiko for højere fejlrate i radiokommunikation i forhold til aflæsning af volumen af reservoiret. Hvis den valgte kilde ikke kan anvendes, af en eller anden grund, så vil systemet falde tilbage på den anden mulighed."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Senest vågen"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Aflytning slået fra"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry parring"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "Intet svar"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Slumre"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Foretrukne data kilde"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pumpe batteritype"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pumpe ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pumpe model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Læs basal plan"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Læs pumpe status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Læser basal plan..."; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Læser pumpe status..."; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistik"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Gem på pumpen"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send knappe tryk"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sender knappe tryk "; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Styrke"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Gennemført"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspenderet: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Forsøg"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Indstil radio frekvens"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Indstiller radio frekvens..."; - -/* The detail text for an unknown pump model */ -"Unknown" = "Ukendt"; - -/* The title of the cell showing uptime */ -"Uptime" = "Oppetid"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/MinimedPumpManager.strings deleted file mode 100644 index ae6ed4fe86..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/da.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ - -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink Indstilling"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Find Enhed"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Andre Enheder"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Juster ikke uret i pumpens menu."; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pumpe Ur"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Indtast det 6-cifrede pumpe ID"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Gennemgå pumpens indstillinger nedenfor. De kan altid ændres i Loop’s indstillinger."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Hvis du rejser til en anden tidszone i længere tid, kan du ændre pumpens tidszone i Loop’s Indstillinger."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop vil holde din pumpes ur synkroniseret med din telefon, i den tidszone du er i nu."; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Indstilling Komplet"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pumpe Indstilling"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pumpe Indstilling"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Hoved Menu"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Tilbehør"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Tilslut Enheder"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Pumpens ID er den 6-cifrede nummeriske del af serienummeret (mærket SN eller S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pumpe ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Pumpen er klar til brug."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Pumpe Indstillinger"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Pumpe region og farve er angivet som de sidste 3 bogstaver i modelnummeret (mærket REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region og Farve"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pumpe Udsendelser"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Tændt"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Angiv pumpe region"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop vil lytte efter status beskeder fra pumpen. Følg nedenstående skridt på pumpen, for at aktivere disse beskeder:"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/Localizable.strings deleted file mode 100644 index 2f94269b2d..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basale Zeitplaneinträge\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Insulineinheiten verbleiben\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkali- und Lithiumbatterien zerfallen unterschiedlich schnell. Alkaline neigen dazu, einen linearen Spannungsabfall im Laufe der Zeit zu haben, während Lithium-Zellen-Batterien neigen dazu, die Spannung bis zur Hälfte ihrer Lebensdauer beizubehalten. Bei normaler Verwendung in einer Nicht-MySentry-kompatiblen Minimed (x22 / x15) Insulinpumpe, die Loop läuft, halten Alkali-Batterien etwa 4 bis 5 Tage. Lithium-Batterien halten zwischen 1-2 Wochen. Diese Auswahl verwendet unterschiedliche Batteriespannungs-Abnahmeraten für jeden der Batteriechemietypen und warnt den Benutzer, wenn eine Batterie ungefähr 8 bis 10 Stunden nach einem Fehler liegt."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Sind Sie sicher dass sie diese Pumpe loeschen wollen?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Aktiv bis"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basalrate"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batterie: %1$@ Volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Beste Frequenz"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusabgabe: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Abbrechen"; - -/* The title of the command to change pump time */ -"Change Time" = "Zeit ändern"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Zeitzone ändern"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Zeit ändern"; - -/* The title of the section describing commands */ -"Commands" = "Befehle"; - -/* The title of the configuration section in settings */ -"Configuration" = "Konfiguration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Verbinden"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Verbindungsstatus"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Pumpe löschen"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Abgabebeschränkungen"; - -/* The title of the section describing the device */ -"Device" = "Gerät"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Befehle entdecken"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Befehle werden entdeckt…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Diagnostische LEDs aktivieren"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnostische LEDs aktiviert"; - -/* The alert title for a resume error */ -"Error Resuming" = "Fehler beim Fortfahren"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fehler beim Unterbrechen"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Enlite-Glukosewert einlesen"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Aktueller Verlauf abrufen"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Glukosewerte abrufen…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Verlauf abrufen…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Pumpenmodell abrufen…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware-Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Pumpmodell erhalten"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Statistiken abrufen…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Die Insulinabgabe kann von der Pumpe bestimmt werden, indem entweder die Ereignishistorie interpretiert wird oder das Reservoirvolumen über die Zeit verglichen wird. Das Lesen der Ereignishistorie ermöglicht eine genauere Statusgrafik und das Hochladen aktueller Behandlungsdaten in Nightscout, auf Kosten einer schnelleren Pumpenbatterieentleerung und der Möglichkeit einer höheren Funkfehlerrate im Vergleich zum Lesen des Reservoirvolumens. Wenn das ausgewählte Gerät aus irgendeinem Grund nicht verwendet werden kann, versucht das System, auf die andere Option zurückzugreifen."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Zuletzt aktiv"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Signal aus"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Verbinden MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "Keine Antwort"; - -/* The title of the cell showing the last idle */ -"On Idle" = "im Leerlauf"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Gehen Sie auf Ihrer Pumpe zum Menü \"Geräte anschließen\" und wählen Sie „Geräte finden\".\n\nHauptmenü Insulinpumpe >\nZusatzfunktionen >\nGeräte anschließen >\nAndere Geräte >\nEin >\nGerät finden"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Bevorzugte Datenquelle"; - -/* The title of the section describing the pump */ -"Pump" = "Pumpe"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Typ Pumpenbatterie"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pumpen-ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pumpenmodell"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pumpeneinstellungen"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Basalzeitplan lesen"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Pumpenstatus lesen"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Basalzeitplan lesen…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Pumpenstand lesen…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Wiederholen"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistik"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "In der Pumpe abspeichern…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Sende-Taste drücken"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sende Knopfdruck…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signalstärke"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Erfolgreich"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Unterbrochen: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Versuche"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Stellen Sie die Sendefrequenz ein"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Frequenz abstimmen…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unbekannt"; - -/* The title of the cell showing uptime */ -"Uptime" = "Betriebszeit"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/MinimedPumpManager.strings deleted file mode 100644 index c75a77bcf5..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/de.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,69 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink-Einstellungen"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Gerät finden"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Andere Geräte"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Ändern Sie nicht die Zeit in Ihrem Pumpenmenü."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Dienstprogramme"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Geräte verbinden"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Uhrzeit der Pumpe"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Die Pumpen-ID ist der 6-stellige numerische Teil der Seriennummer (gekennzeichnet als SN oder S / N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pumpen-ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Ihre Pumpe ist betriebsbereit."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Geben Sie die 6-stellige Pumpen-ID ein"; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Wenn Sie für längere Zeit in eine andere Zeitzone verreisen, kann die Zeitzone der Pumpe jederzeit über das Einstellungsmenü von Loop geändert werden."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop synchronisiert die Uhrzeit Ihrer Pumpe mit der Uhrzeit Ihres Smartphones in Ihrer aktuellen Zeitzone."; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Die Region und die Farbe der Pumpe sind mit den letzten 3 Buchstaben in der Modellnummer bezeichnet (REF-Nummer in der Kennzeichnung der Pumpe)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region und Farbe"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Setup erfolgreich"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Datenübertragung der Pumpe"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "An"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Einstellungen der Pumpe"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Geben Sie die Region der Pumpe ein"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Einstellungen der Pumpe"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop wird die Statusberichte Ihrer Pumpe überwachen. Führen Sie die nachfolgenden Schritte in Ihrer Pumpe aus, um diese Statusberichte einzuschalten:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Hauptmenü"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/Localizable.strings deleted file mode 100644 index 28daf0b24a..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ entradas de configuración basal\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Unidades de insulina restantes\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Las baterías alcalinas y de litio se degradan en ritmos distintos. La alcalinas tienden a tener una baja de voltaje linear en el tiempo mientras que las de litio tienden a mantener un voltaje hasta que pasan la mitad de su tiempo de vida. Bajo condiciones normales en una micro-infusora no compatible con MySentry ( x22/x15) siendo utilizado con Loop, las baterías alcalinas durarán aproximadamente de 4 a 5 días. Las baterías de litio durarán de una a dos semanas. Esta selección utilizará diferentes rangos de decadencia para el voltaje de cada una de las bataerías y alertará al usuario cuando la batería tenga aproximadamente de 8 a 10 horas restantes de vida."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "¿Estás seguro de querer eliminar esta microinfusora?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Despierto hasta"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Rangos de Basal"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batería: %1$@ voltios\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Mejor frecuencia"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolo en progreso: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The title of the command to change pump time */ -"Change Time" = "Cambiar Hora"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Cambiar Zona Horaria"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Cambiando hora..."; - -/* The title of the section describing commands */ -"Commands" = "Comandos"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuracion"; - -/* Button title to connect to pump during setup */ -"Connect" = "Conectar"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Estado de Conexión"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Eliminar Microinfusora"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Límites de Administración de Insulina"; - -/* The title of the section describing the device */ -"Device" = "Dispositivo"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Descubrir Comandos"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Descubriendo comandos…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Habilitar diagnóstico LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnóstico LEDs Habilitado"; - -/* The alert title for a resume error */ -"Error Resuming" = "Error Reanudando"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspendiendo"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Obtener Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Obtener Historia Reciente"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Obtener glucosa…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Obtener historial…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Obtener modelo de microinfusora…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Obtener modelo de Microinfusora"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Obtener Estadísticas…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "La entrega de insulina puede ser determinada por la microinfusora interpretando los eventos históricos o comparando el volúmen del reservorio sobre el tiempo. Leer los eventos históricos permite una gráfica de status mas exacta y permite subir tratamientos actualizados a Nightscout, con el costo de una menor duración de la batería y la posiblidad de mayores errores de radio comparado con leer solamente el volúmen del reservorio. Si la fuente seleccionada no puede ser utilizada por cualquier motivo, el sistema intentará utilizar la otra opción."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Último Despierto"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Escuchando Apagado"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Junta de MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Nombre"; - -/* Message display when no response from tuning pump */ -"No response" = "No respuesta"; - -/* The title of the cell showing the last idle */ -"On Idle" = "En Inactivo"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Fuente de Datos Preferida"; - -/* The title of the section describing the pump */ -"Pump" = "Bomba"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Tipo de batería de microinfusora"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID de Microinfusadora"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Modelo de Microinfusadora"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Configuración de la bomba"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Obtener prefil basal"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Obtener estada de microinfusadora"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Obteniendo perfil basal…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Obteniendo estada de microinfusadora…"; - -/* The title of the cell showing the pump region */ -"Region" = "Región"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Estadísticas de RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Guardar en Microinfusora…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Enviar presion de botón"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Enviando presion de botón…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Intensidad de señal"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Logrado"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspendido: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Pruebas"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Sintonizar frecuencia de radio"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Sintonizando frecuencia de radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Desconocido"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/MinimedPumpManager.strings deleted file mode 100644 index f6dcf8d72a..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/es.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Configuración de RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Encontrar Dispositivo"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Otros Dispositivos"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "No cambies la hora utilizando el menú de tu microinfusora."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilidades"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Conectar Dispositivos"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Reloj de Microinfusora"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "El número de ID de la microinfusora es la porción de 6 dígitos del número serial (indicados como SN o S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID de Microinfusora"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Tu microinfusora está lista para usarse."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Ingresa el número de ID de 6 dígitos de tu microinfusora"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Revisa la configuración de tu microinfusora debajo. Puedes cambiar esta configuración en cualquier momento en la pantalla de Configuración de Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "En caso de viajar a una zona horaria distinta por un periodo extendido de tiempo, podrás cambiar la zona horaria de la microinfusora en cualquier momento a través de la pantalla de Configuración de Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop mantendrá el reloj de tu microinfusora sincronizado con tu teléfono en la zona horaria en la que te encuentres ahora."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Configuración de la Microinfusora"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "La región de la microinfusora y el color están indicados en las tres últimas letras del número de modelo (indicados como REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Región y Color"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Configuración Completa"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pump Broadcasts"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Encendido"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Configuración de Microinfusora"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Configuración de Microinfusora"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Ingresa la región de la Microinfusora"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop escuchará mensajes de estado enviados por tu microinfusora. Sigue los pasos enlistados a continuación en tu microinfusora para habilitar estos mensajes:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Menú Principal"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/Localizable.strings deleted file mode 100644 index e3a733cd7d..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basaaliohjelman kirjausta\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ insuliiniyksikköä jäljellä\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkali- ja litiumparistot tyhjenevät eri nopeudella. Alkaliparistojen varaus vähenee yleensä lineaarisesti ajan kuluessa, kun taas litiumparistot ylläpitävät yleensä varaustaan korkeana kunnes käyttöaika on noin puolessa välissä. Normaalilla käytöllä Minimed (x22/x15) insuliinipumppu toimii Loop-käytössä alkaliparistolla noin 4–5 päivää. Litiumparistot kestävät 1–2 viikkoa. Tämä valinta näyttää pariston varauksen vähenemisnopeuden sen perusteella kumpi paristotyyppi on valittu ja varoittaa käyttäjää, kun pariston käyttöaika on loppumassa noin 8–10 tunnin kuluessa"; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Haluatko varmasti poistaa tämän pumpun?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Hereillä asti"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basaalitasot"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Paristo: %1$@ volttia\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Paras taajuus"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Annostellaan bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Muuta aika"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Muuta aikavyöhyke"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Muutetaan aikaa…"; - -/* The title of the section describing commands */ -"Commands" = "Komennot"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Yhteyden tila"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Poista pumppu"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Annostelurajat"; - -/* The title of the section describing the device */ -"Device" = "Laite"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Hae komennot"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Haetaan komentoja…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Ota käyttöön diagnostiset LED-valot"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnostiset LED-valot otettu käyttöön"; - -/* The alert title for a resume error */ -"Error Resuming" = "Virhe jatkamisessa"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Virhe pysäytyksessä"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Hae Enliten glukoosiarvo"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Hae viimeaikaiset tapahtumat"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Haetaan glukoosiarvo…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Haetaan viimeaikaisia tapahtumia…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Haetaan pumpun mallia…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Laiteohjelmisto"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Hae pumpun malli"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Hae tilastotiedot…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Pumpun annostelemat insuliinimäärät on mahdollista määrittää joko tulkitsemalla tapahtumahistoriaa tai arvioimalla pumppusäiliön insuliinimäärää ajan kuluessa. Tapahtumahistorian lukeminen antaa tarkemman kuvan tilanteesta ja mahdollistaa ajantasaisen tiedonsiirron Nightscoutiin, mutta toisaalta tämä kuluttaa pumpun paristoa nopeammin ja lisää radiovirheiden todennäköisyyttä siihen verrattuna, että luettaisiin ainoastaan pumppusäiliössä olevan insuliinin määrää. Jos valittua lähdettä ei voida mistä tahansa syystä käyttää, järjestelmä pyrkii käyttämään toista vaihtoehtoa."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Viimeksi hereillä"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Kuuntelu pois päältä"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry-paritus"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "Ei vastausta"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Valmiustilassa"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Mene pumppusi Etsi laite -näytölle ja valitse \"Etsi laite\".\n\n Päävalikko >\nTyökalut >\nYhdistä laitteet >\nMuut laitteet >\nPäällä >\nEtsi laite"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Ensisijainen tietolähde"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pumpun paristotyyppi"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pumpun tunniste"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pumpun malli"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Lue basaaliohjelma"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Lue pumpun tila"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Luetaan basaaliohjelmaa…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Luetaan pumpun tilaa…"; - -/* The title of the cell showing the pump region */ -"Region" = "Alue"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLinkin tiedot"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Tallenna pumppuun…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Lähetä napin painallus"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Lähetetään napin painallusta…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signaalin vahvuus"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Onnistui"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Annostelu pysäytetty: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Yritykset"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Säädä radiotaajuus"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Säädetään radiota…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Tuntematon"; - -/* The title of the cell showing uptime */ -"Uptime" = "Päällä"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/MinimedPumpManager.strings deleted file mode 100644 index acbbb30c55..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/fi.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink-asennus"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Etsi laite"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Muut laitteet"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Älä muuta kellonaikaa käyttämällä pumpun omaa valikkoa."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Apuohjelmat"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Yhdistä laitteet"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pumpun kello"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Pumpun tunniste on 6-numeroinen osa sarjanumeroa (alkaa SN tai S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pumpun tunniste"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Pumppu on käyttövalmis."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Syötä 6-numeroinen pumpun tunniste"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Tarkista pumpun asetukset alta. Voit muokata näitä asetuksia milloin tahansa Loopin Asetukset-näkymässä."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Jos matkustat toiselle aikavyöhykkeelle pidemmäksi aikaa, voit muuttaa pumpun aikavyöhykkeen milloin tahansa Loopin Asetukset-näkymässä."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop synkronoi pumpun kellon puhelimesi kanssa samalle aikavyöhykkeelle sijaintisi perusteella."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Pumpun asetukset"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Pumpun alue ja väri on merkitty kolmella viimeisellä kirjaimella mallinumeron lopussa (nimetty REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Alue ja väri"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Asennus valmis"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pumpun lähetykset"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Päällä"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pumpun asennus"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Syötä pumpun alue"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pumpun asennus"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop kuuntelee pumpun lähettämiä tilaviestejä. Seuraa alla mainittuja ohjeita ottaaksesi nämä viestit käyttöön pumpussasi:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Päävalikko"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/Localizable.strings deleted file mode 100644 index 126a5a5caf..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ entrées du profil basal\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ unités d’insuline restantes\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Les piles Alkaline et Lithium se vident à des vitesses différentes. Les Alkalines tendent à avoir une tension qui décroit de façon linéaire alors que les piles Lithium maintiennent leur tension jusqu’à la moitiée de leur durée de vie. Lors d’un usage normale de Loop avec pompe compatible Non-MySentry Minimed (x22/x15), les piles Alkalines durent environ 4-5 jours. Les piles Lithium durent 1-2 semaines. Cette option utilisera différents modèles en fonction du type de pile et alertera l’utilisateur quand la pile sera à 8-10 heures de sa fin de vie. "; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Êtes-vous sûr de vouloir supprimer cette pompe?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Réveillé jusqu’à"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Débits basaux"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Pile: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Meilleure Fréquence"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolus en cours: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Annuler"; - -/* The title of the command to change pump time */ -"Change Time" = "Changer l’heure"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Changement de fuseau horaire"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Changement de l’heure..."; - -/* The title of the section describing commands */ -"Commands" = "Commandes"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Se connecter"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Etat de connexion"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Supprimer la pompe"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limites d’administration"; - -/* The title of the section describing the device */ -"Device" = "Dispositif"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Découvrir les commandes"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Découverte des commandes…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Activer les LEDs de diagnostique"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Activation des LEDs de diagnostique"; - -/* The alert title for a resume error */ -"Error Resuming" = "Erreur lors de la reprise"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Erreur lors de la suspension"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Obtenir glycémie Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Obtenir historique récente"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Obtention des glycémies …"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Obtention de l’historique …"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Obtention du modèle de pompe…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Microprogramme"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Version du firmware"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Obtenir le modèle de pompe"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Obtenir les statistiques…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Les données d’administration de l’insuline sont obtenus de la pompe soit en regardant l’historique des événements, soit en comparant le niveau du réservoir avant/après. Regardant l’historique des événements permet un graphique des donnés plus fiable ainsi qu’un téléchargement plus à jour sur Nightscout, au prix d’une baisse plus rapide du niveau de la pile et de plus de probabilité d’erreur de radio comparé à la lecture du niveau du réservoir. Si une de ces options ne marche pas, le système essayera de revenir à l’autre option par défaut."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Dernier réveille"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "L’écoute désactivée"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Jumelage MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Nom"; - -/* Message display when no response from tuning pump */ -"No response" = "Pas de réponse"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Au Repos"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Source de données préférée"; - -/* The title of the section describing the pump */ -"Pump" = "Pompe"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Type de pile dans la pompe"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Identifiant de la pompe"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Modèle de pompe"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Paramètres de la pompe"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Lire profil basal"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Lire l’état de la pompe"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Lecture du profil basal…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Lecture de l’état de la pompe…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Statistiques RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Enregistrer dans la pompe…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Envoyer appui de bouton"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Envoie de l’appui de bouton…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Force du signal"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Réussi"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspendu: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Essais"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Régler la fréquence radio"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Regulation de la fréquence radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Inconnu"; - -/* The title of the cell showing uptime */ -"Uptime" = "Temps de fonctionnement"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/MinimedPumpManager.strings deleted file mode 100644 index e64637ae43..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/fr.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Configuration de RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Découvrir dispositif"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Autres dispositifs"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Ne changez pas l’heure en utilisant le menu de votre pompe."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilitaires"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Connecter des dispositifs"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Horloge à Pompe"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "L’ID de la pompe correspond à la partie numérique à 6 chiffres du numéro de série (étiquetée SN ou S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID de la Pompe"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Votre pompe est prête à l’emploi."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Entrez l’ID de la pompe à 6 chiffres"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Vérifiez vos paramètres de pompe ci-dessous. Vous pouvez modifier ces paramètres à tout moment dans l’écran Paramètres de boucle."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Si vous voyagez dans un fuseau horaire différent pendant une période prolongée, vous pouvez modifier le fuseau horaire de la pompe à tout moment dans l’écran Paramètres de Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop gardera l’horloge de votre pompe synchronisée avec votre téléphone dans le fuseau horaire où vous vous trouvez maintenant."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Paramètres de la Pompe"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "La région et la couleur de la pompe sont désignées par les 3 dernières lettres du numéro de modèle (étiquetées REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Région et Couleur"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "L’installation est terminée"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Transmissions de Pompes"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Éveillé"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Configuration de la Pompe"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Configuration de la Pompe"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Entrez la région des pompes"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop écoutera les messages d’état envoyés par votre pompe. Suivez les étapes ci-dessous sur votre pompe pour activer ces messages:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Menu Principal"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/Localizable.strings deleted file mode 100644 index 8fced6f561..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Are you sure you want to delete this pump?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Awake Until"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Best Frequency"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Change Time"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Change Time Zone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Changing time…"; - -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Delete Pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Delivery Limits"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Discover Commands"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Discovering commands…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Enable Diagnostic LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Enabled Diagnostic LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Error Resuming"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspending"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Fetch Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Fetch Recent History"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Fetching glucose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Fetching history…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Fetching pump model…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Get Pump Model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Get Statistics…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Last Awake"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Listening Off"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry Pair"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "No response"; - -/* The title of the cell showing the last idle */ -"On Idle" = "On Idle"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferred Data Source"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pump Battery Type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pump Model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Read Basal Schedule"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Read Pump Status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Reading basal schedule…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Reading pump status…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistics"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Save to Pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sending button press…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspended: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Trials"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tune Radio Frequency"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Tuning radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unknown"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/MinimedPumpManager.strings deleted file mode 100644 index a44f54c693..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/he.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,69 +0,0 @@ - -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink Setup"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Find Device"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Other Devices"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Do not change the time using your pumpʼs menu."; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pump Clock"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Enter the 6-digit pump ID"; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Setup Complete"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pump Setup"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pump Setup"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Main Menu"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilities"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Connect Devices"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pump ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Your pump is ready for use."; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region and Color"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pump Broadcasts"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "On"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Enter the pump region"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/Localizable.strings deleted file mode 100644 index e129d5e5e5..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ inserimento basale\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Unità insulina residua\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Le batterie alcaline e al litio decadono a velocità diverse. Le batterie alcaline tendono ad avere una caduta di tensione lineare nel tempo mentre le batterie al litio tendono a mantenere la tensione fino a metà della loro durata. In condizioni di utilizzo normali con in esecuzione Loop, in un microinfusore d'insulina non compatibile con MySentry (x22/x15), le batterie alcaline durano dai 4 ai 5 giorni circa. Le batterie al litio durano tra 1-2 settimane. Questa selezione utilizzerà diverse velocità di decadimento della tensione della batteria per ciascuno dei tipi di chimica della batteria e avviserà l'utente quando una batteria si trova a circa 8-10 ore dall'esaurimento."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Sei sicuro di voler eliminare questo microinfusore?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Attivo sino"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Tassi basali"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batteria: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "La migliore Frequenza"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolo in corso: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancella"; - -/* The title of the command to change pump time */ -"Change Time" = "Cambia Orario"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Cambia fuso orario"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Modifica ora in corso"; - -/* The title of the section describing commands */ -"Commands" = "Comandi"; - -/* The title of the configuration section in settings */ -"Configuration" = "Impostazioni"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connetti"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Stato Connessione"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Elimina Microinfusore"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limiti di somministrazione"; - -/* The title of the section describing the device */ -"Device" = "Dispositivo"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Scopri i Comandi"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Scoperta dei comandi…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Abilita LED Diagnostici"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "LED Diagnostici Abilitati"; - -/* The alert title for a resume error */ -"Error Resuming" = "Errore durante la ripresa"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Errore durante l’interruzione"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Sincronizzare Glicemie Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Sincronizzare Storia Recente"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Recupero glicemie…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Recupero della cronologia…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Recupero modello microinfusore…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Ottieni Modello del Microinfusore"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Ottieni Statistiche…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "L'insulina somministrata può essere determinata dalla pompa sia interpretando la cronologia eventi o confrontando il volume del serbatoio nel tempo. La lettura della cronologia degli eventi consente una statistica più accurata e trasmette dati sempre aggiornati a Nightscout, a discapito di un maggiore consumo di batteria e con la possibilità di incorrere in un maggior tasso di errore di comunicazione rispetto alla sola lettura del volume del serbatoio. Se la sorgente selezionata non può essere utilizzata per qualsiasi ragione, il sistema tenterà di ripiegare sull'altra opzione."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Ultimo risveglio"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Ricevendo"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Accoppia MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Nome"; - -/* Message display when no response from tuning pump */ -"No response" = "Nessuna risposta"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Inattivo"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Fonte Dati"; - -/* The title of the section describing the pump */ -"Pump" = "Microinfusore"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Tipo Batteria Microinfusore"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID microinfusore"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Modello Microinfusore"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Impostazioni del microinfusore"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Leggi programma basale"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Leggi stato microinfusore"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Lettura programma basale…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Lettura stato microinfusore…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Riprova"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Statistiche RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Salva su Microinfusore…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Invia prova pressione Pulsante"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Inviando prova pressione pulsante…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Potenza Segnale"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Effettuato con successo"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Sospeso: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Prove"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Sintonizzare la frequenza radio"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Sintonizzazione radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Sconosciuto"; - -/* The title of the cell showing uptime */ -"Uptime" = "Tempo d'attività"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/MinimedPumpManager.strings deleted file mode 100644 index b79698fd95..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/it.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Impostazioni RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Trova Device"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Altri Device"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Non cambiare l'ora corrente attraverso il menu sul microinfusore."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilita'"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Connetti Device"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Ora Microinfusore"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "L'ID del microinfusore e' il numero di 6 cifre del SN o S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID Microinfusore"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "il tuo microinfusore e' pronto all'uso."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Inserisci il SN (numero di 6 cifre) del microinfusore"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Controlla le impostazioni del tuo microinfusore qui sotto. Puoi cambiarli quando vuoi nel menu' Impostazioni di Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Se stai viaggiando in un paese con un differente fuso orario, puoi cambiare il fuso orario del tuo microinfusore quando vuoi nel menu' impostazioni di Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop sincronizzera' automaticamente l'orario impostato sul tuo microinfusore con quello del paese in cui ti trovi."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Impostazioni Microinfusore"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "La provenienza del microinfusore ed il colore sono descritti nelle ultime tre lettere del modello del tuo microinfusore (REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Provenienza e colore"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Settaggio completato"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Trasmissione Microinfusore"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Acceso"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Impostazione Microinfusore"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Impostazione Microinfusore"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Inserisci la provenienza del microinfusore"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop sara' in attesa di messaggi di stato inviati dal microinfusore. Segui i successivi passaggi per abilitare questi messaggi:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Menu Principale"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/Localizable.strings deleted file mode 100644 index e9ecb269a1..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "基礎パターン入力 %1$@回\\n\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "インスリン 残り%1$@U\\n\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "アルカリ電池とリチウム電池では消耗速度が異なります。アルカリは徐々に電力が落ちるのに対し、リチウムは電池生命の前半は電圧を保持します。MySentryに互換性のないMinimed (x22/x15)でループを使用する場合は、アルカリ電池は4~5日、リチウム電池は1~2週間使用できることが多いです。それぞれの電池の種類の電圧消耗速度を設定して、電池生命が約8~10時間になるとユーザに知らせます。"; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "このポンプを削除しますか?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "無線終了"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "基礎レート"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "電池: %1$@ ボルト\\n\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "最良周波数"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "ボーラス注入中: %1$@\\n\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "キャンセル"; - -/* The title of the command to change pump time */ -"Change Time" = "時刻を変更"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "時間帯を変更"; - -/* Progress message for changing pump time. */ -"Changing time…" = "時刻を変更中 ..."; - -/* The title of the section describing commands */ -"Commands" = "コマンド"; - -/* The title of the configuration section in settings */ -"Configuration" = "コンフィグレーション"; - -/* Button title to connect to pump during setup */ -"Connect" = "接続"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "接続状態"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "ポンプを削除"; - -/* Title text for delivery limits */ -"Delivery Limits" = "注入限度"; - -/* The title of the section describing the device */ -"Device" = "デバイス"; - -/* The title of the command to discover commands */ -"Discover Commands" = "コマンドを見つける"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "コマンドを見つけています…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "診断 LED を有効にする"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "診断 LED を無効にする"; - -/* The alert title for a resume error */ -"Error Resuming" = "再開エラー"; - -/* The alert title for a suspend error */ -"Error Suspending" = "一時停止エラー"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Enliteのグルコースを取得"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "直近履歴を取得"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "グルコースを取得しています..."; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "履歴を取得しています..."; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "ポンプモデルを取得しています ..."; - -/* The title of the cell showing firmware version */ -"Firmware" = "ファームウェア"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "ファームウェアバージョン"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "ポンプモデルを取得"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "統計を取得…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "インスリン注入は、イベント履歴を解釈する、またはリザーバの残量を計ることにより決定されます。イベント履歴を読み取ることにより、ステータスグラフがより正確になり、Nightscoutに最新のトリートメントデータをアップロードできます。リザーバの残量のみを計るよりも、ポンプの電池寿命が短くなり、無線周波数のエラーが増える可能性があります。選択されているデータソースが何らかの事情により使えない場合は、システムはもう片方のソースを使用します。"; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "受信"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "受信オフ"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentryをペアリング"; - -/* The title of the cell showing device name */ -"Name" = "機器名"; - -/* Message display when no response from tuning pump */ -"No response" = "反応なし"; - -/* The title of the cell showing the last idle */ -"On Idle" = "アイドル"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "ポンプの Find Device 画面で「Find Device」を選択します。\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "推奨データソース"; - -/* The title of the section describing the pump */ -"Pump" = "ポンプ"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "ポンプの電池の種類"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ポンプID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "ポンプモデル"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "ポンプ設定"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "基礎パターンを読む"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "ポンプの状態を読む"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "基礎パターンを読んでいます ..."; - -/* Progress message for reading pump status */ -"Reading pump status…" = "ポンプの状態を読んでいます ..."; - -/* The title of the cell showing the pump region */ -"Region" = "リージョン"; - -/* Button title to retry sentry setup */ -"Retry" = "やり直す"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink 統計"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "ポンプに保存…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "ボタン押しを送信"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "ボタン押しを送信しています ..."; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "シグナル強度"; - -/* A message indicating a command succeeded */ -"Succeeded" = "成功しました"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "一時停止: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "トライ"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "無線周波数を合わせる"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "無線を合わせています ..."; - -/* The detail text for an unknown pump model */ -"Unknown" = "不明"; - -/* The title of the cell showing uptime */ -"Uptime" = "アップタイム"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/MinimedPumpManager.strings deleted file mode 100644 index 1f2d014690..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ja.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,74 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink 設定"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "デバイスを探す"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "他のデバイス"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "ポンプのメニュー機能を使って日付時刻を変更しないでください。"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "ユーティリティ"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "デバイスを接続"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "ポンプ時刻"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "ポンプIDはシリアル番号の 6桁の数字の部分です。(SNやS/Nで表示)"; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ポンプID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "ポンプを使えます"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "6桁のポンプIDを入力"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "ポンプの設定を確認してください。この設定はループの設定画面でいつでも変更できます。"; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "時差がある海外へ旅行に行く時は、ループの設定画面からいつでもポンプの日付時刻を変更出来ます。."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "ループはiPhoneと同期して、あなたが今いる場所のタイムゾーンにポンプの日付時刻を同期し続けます。"; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "ポンプ設定"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "ポンプのリージョンと色は型番 (REFで表示)の最終の3文字で表されています。"; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "リージョンと色"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "設定完了"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "ポンプのブロードキャスト"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "オン"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "ポンプ設定"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "ポンプリージョンを入力"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "ポンプ設定"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "ループがポンプが発するステータスメッセージを聞き取ります。ポンプがメッセージを発せられるように次のステップにしたがって設定してください。"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "メインメニュー"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/Localizable.strings deleted file mode 100644 index 74cd1c130e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basalsprofilinnslag"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "Gjenstående %1$@ Enheter med insulin"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaliske- og lithiumbatterier mister spenning med forskjellige kurver. Alkaliske har som regel en lineært minskende spenning, mens lithiumbatterier pleier å holde på spenningen gjennom omtrent halvparten av levetiden. Ved normalt bruk i en Non-MySentry kompatibel Minimed (x22/x15) insulinpumpe som kjører Loop, pleier alkaliske batterier å holde i 4 til 5 dager. Lithiumbatterier holder som regel 1-2 uker. Dette valget vil bruke forskjellige kurver for nedgang i batterispenning for hver av de forskjellige batteritypene, og varsle brukeren når batteriet er omtrent 8 til 10 timer fra å være tomt."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Er du sikker på at du vil slette denne pumpen?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Aktiv til"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal-satser"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Beste frekvens"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Gir bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Avbryt"; - -/* The title of the command to change pump time */ -"Change Time" = "Endre tid"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Endre tidssone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Endrer tid..."; - -/* The title of the section describing commands */ -"Commands" = "Kommandoer"; - -/* The title of the configuration section in settings */ -"Configuration" = "Oppsett"; - -/* Button title to connect to pump during setup */ -"Connect" = "Koble til"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Tilkoblingsstatus"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Slette pumpe"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Leveransegrenser"; - -/* The title of the section describing the device */ -"Device" = "Enhet"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Oppdage kommandoer"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Oppdager kommandoer…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Tilgjengeligjør diagnostiske LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Tilgjengeligjort diagnostiske LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Kunne ikke fortsette"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Kunne ikke stoppe"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Hent enlite blodsukker"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Hent nylig historikk"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Henter glukose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Henter historikk…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Henter pumpemodell…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Fastvare"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Fastvareversjon"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Hent pumpemodell"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Hent statistikk…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulintilførsel kan hentes fra pumpa, enten ved å tolke hendelsehistorikken, eller ved å sammenligne reservoarvolumet over tid. Ved å lese hendelsehistorikken får man mer nøyaktig statuskurve og kan laste opp oppdaterte hendelser til Nightscout. Ulempen er høyere batteriforbruk i pumpa, og muligheten for større antall feil ved radiokommunikasjon - sammenlignet med å bare lese reservoarvolumet. Hvis den valgte kilden av noen grunn ikke kan brukes, vill systemet prøve den andre måten."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Sist aktiv"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Radio inaktiv"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry pair"; - -/* The title of the cell showing device name */ -"Name" = "Navn"; - -/* Message display when no response from tuning pump */ -"No response" = "Ingen svar"; - -/* The title of the cell showing the last idle */ -"On Idle" = "På Vent"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "På pumpen, gå til \"Find Device\"-skjermen og velg \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Foretrukken datakilde"; - -/* The title of the section describing the pump */ -"Pump" = "Pumpe"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Type pumpebatteri"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pumpe ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pumpemodell"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pumpeinnstillinger"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Les basalplan"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Les pumpestatus"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Leser basalplan…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Leser pumpestatus…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Prøv igjen"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink statistikk"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Lagre til pumpe…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send tastetrykk"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sender tastetrykk…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signalstyrke"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Suksess"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Pauset: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Forsøk"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Still radiofrekvens"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Stiller radiofrekvens…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Ukjent"; - -/* The title of the cell showing uptime */ -"Uptime" = "Oppetid"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/MinimedPumpManager.strings deleted file mode 100644 index bf8209f76c..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/nb.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink-innstillinger"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Finn enhet"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Andre enheter"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Ikke endre tiden via pumpemenyen."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Tilbehør"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Tilkoble enheter"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pumpeklokke"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Pumpe-ID er den 6-siffrede (tall) delen av serienummeret (merket som SN eller S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pumpe-ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Din pumpe er klar for bruk."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Tast den 6-siffrede pumpe ID'n."; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Gjennomgå dine pumpeinnstillinger nedenfor. Du kan endre disse innstillingene når som helst under innstillinger i Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Hvis du reiser til en annen tidssone for en lenger tid, kan du endre pumpens tidssone når som helst under innstillinger i Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop holder din pumpes klokke synkronisert med din telefon til den tidssone du er i nå."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Pumpeinnstillinger"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Pumperegionen og farge er angitt som de 3 siste bokstavene i modellnummeret (merket som REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region og farge"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Innstillinger ferdige"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pumpe sender"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "På"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pumpeinnstillinger"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pumpeinnstillinger"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Angi pumperegionen"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop hører etter statusmeldinger sendt fra din pumpe. Følg trinnene nedenfor på din pumpe for å gjøre disse meldingene tilgjengelige:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Hovedmenu"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/Localizable.strings deleted file mode 100644 index df99bb6fd8..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basaal schemas\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Eenheden insuline resterend\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline en Lithium batterijen werken na verloop van tijd minder goed. Alkaline heeft de neiging om in de loop van de tijd een lineair spanningsverlies te hebben, terwijl lithium batterijen de neiging hebben om hun spanning te behouden tot halverwege hun levensduur. Bij normaal gebruik in een niet-MySentry-compatibele Minimed (x22 / x15) insulinepomp met Loop, gaan Alkaline batterijen ongeveer 4 tot 5 dagen mee. Lithiumbatterijen gaan tussen de 1 tot 2 weken mee. Deze selectie gebruikt verschillende leegloop snelheden voor batterijvoltage voor elk van de typen batterijen en waarschuwt de gebruiker wanneer een batterij ongeveer in 8 tot 10 uur leeg is."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Weet u zeker dat u deze pomp wilt verwijderen?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Actief tot"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basaal ratios"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batterij: %1$@ Volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Beste frequentie"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolussen: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Annuleer"; - -/* The title of the command to change pump time */ -"Change Time" = "Tijd aanpassen"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Pas tijdzone aan"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Vervang tijd…"; - -/* The title of the section describing commands */ -"Commands" = "Commando's"; - -/* The title of the configuration section in settings */ -"Configuration" = "Instellingen"; - -/* Button title to connect to pump during setup */ -"Connect" = "Verbinden"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Verbindingsstatus"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Verwijder de pomp"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Leveringslimieten"; - -/* The title of the section describing the device */ -"Device" = "Apparaat"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Commando’s opzoeken"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Opdrachten opzoeken…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Diagnostische LEDs aanzetten"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnostische LEDs aangezet"; - -/* The alert title for a resume error */ -"Error Resuming" = "Fout met hervatten"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Fout met onderbreken"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Ophalen enlite glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Lees recente pompgeschiedenis"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Glucosegegevens aan het ophalen…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Haal geschiedenis op…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Haal pompmodel op…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware versie"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Lees pompmodel"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Statistieken ophalen…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "De toediening van insuline kan worden vastgesteld aan de hand van de pomp door de pomp historie te interpreteren of door het reservoir volume in de loop van de tijd te vergelijken. Het lezen van de pomp historie zorgt voor een meer accurate statusgrafiek en het uploaden van up-to-date behandelingsgegevens naar Nightscout. Dit gaat ten koste van de batterij en de mogelijkheid van een hogere radiofout snelheid vergeleken met het alleen lezen van het reservoir volume. Als de geselecteerde bron om welke reden dan ook niet kan worden gebruikt, probeert het systeem terug te vallen op de andere optie."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Laatst actief"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Luisteren uit"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry verbinden"; - -/* The title of the cell showing device name */ -"Name" = "Naam"; - -/* Message display when no response from tuning pump */ -"No response" = "Geen reactie"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Inactief"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Ga op uw pomp naar het hoofdmenu om uw apparaat te zoeken. Selecteer in Hoofdmenu: Hulpprogramma's>\nApparaten koppelen>\nOverige apparaten >\nAan>\nApparaat zoeken"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Voorkeur databron"; - -/* The title of the section describing the pump */ -"Pump" = "Pomp"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pomp batterij type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pomp ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pompmodel"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pomp instellingen"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Lees basaal schema"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Lees pompstatus"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Lees basaal schema…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Lees pomp gegevens…"; - -/* The title of the cell showing the pump region */ -"Region" = "Regio"; - -/* Button title to retry sentry setup */ -"Retry" = "Opnieuw proberen"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink statistieken"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Opslaan in pomp…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Verstuur signaal induwen knop"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Versturen induwen knop…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signaalsterkte"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Geslaagd 👍"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Onderbroken: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Pogingen"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Stel radiofrequentie in"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Radio instellen…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Onbekend"; - -/* The title of the cell showing uptime */ -"Uptime" = "Tijd actief"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/MinimedPumpManager.strings deleted file mode 100644 index aa8cf5d30f..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/nl.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink instellingen"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Zoek apparaat"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Andere apparaten"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Verander de tijd niet via het menu van de pomp."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Hulpprogramma's"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Koppel apparaten"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pomp klok"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Het ID van de pomp is het 6-cijferige gedeelte van het serienummer (aangegeven als SN of S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pomp ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "De pomp is klaar voor gebruik."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Voer het 6-cijferige ID van de pomp in"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Bekijk de pompinstellingen hieronder. Je kunt deze altijd veranderen via het instellingenscherm van Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Als je voor een langere periode in een andere tijdzone verblijft, dan kun je altijd de tijdzone van de pomp veranderen in het instellingenscherm van Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop zorgt ervoor dat de klok van uw pomp gesynchroniseerd blijft met uw telefoon in de tijdzone waarin u zich nu bevindt."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Pomp instellingen"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "De regio en kleur van de pomp worden aangeduid in de laatste 3 letters van het modelnummer (gelabeld als REF)"; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Regio en kleur"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Configuratie voltooid"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pomp connectiviteit"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Aan"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pomp configuratie"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pomp configuratie"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Voer regio van de pomp in"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop luistert naar statusberichten die door de pomp worden verzonden. Volg de stappen hieronder op de pomp om deze statusberichten in te schakelen:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Hoofdmenu"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/Localizable.strings deleted file mode 100644 index 3e0e6a33fe..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ wpisów dawki podstawowej\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ jednostek insuliny pozostało\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterie alkaliczne i litowe różnią się szybkością rozładowywania. Baterie alkaliczne mają tendencję do liniowego spadku napięcia w czasie, natomiast baterie litowe mają tendencję do utrzymywania napięcia do momentu osiągnięcia połowy żywotności. W trakcie normalnego korzystania z Loop w niekompatybilnej z MySentry pompie (x22/x15), czas życia baterii alkalicznych wynosi ok. 4-5 dni. Żywotność baterii litowych wynosi ok. 1-2 tygodni. Wybór odpowiedniego typu baterii pozwoli na wybranie lepszego algorytmu zużycia baterii, dzięki czemu Loop będzie mógł wysłać ostrzeżenie, gdy zostanie ok. 8-10 godzin do całkowitego rozładowania."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Jesteś pewien, że chcesz usunąć tę pompę?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Aktywny od"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Dawki podstawowe"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Bateria: %1$@ V\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Najlepsza częstotliwość"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Podawanie bolusa: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Anuluj"; - -/* The title of the command to change pump time */ -"Change Time" = "Zmień godzinę"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Zmień strefę czasową"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Zmiana czasu…"; - -/* The title of the section describing commands */ -"Commands" = "Komendy"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Połącz"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Status połączenia"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Usuń pompę"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limity podawania"; - -/* The title of the section describing the device */ -"Device" = "Urządzenie"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Przejrzyj komunikaty"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Przeglądanie komunikatów…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Włącz diagnostyczne LEDy"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnostyczne LEDy włączone"; - -/* The alert title for a resume error */ -"Error Resuming" = "Błąd wznawiania"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Błąd wstrzymywania"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Pobierz glukozę z Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Pobierz najnowszą historię"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Pobieranie glukozy…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Pobieranie historii…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Pobieranie modelu pompy…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Oprogramowanie"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Pobierz model pompy"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Pobieranie statystyk…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Podaż insuliny jest ustalana dzięki pobieraniu danych z pompy. Może się to odbywać na dwa sposoby: poprzez interpretację historii zdarzeń lub poprzez porównywanie objętości zbiornika na insulinę w czasie. Interpretacja historii zdarzeń pozwala na dokładniejsze odwzorowanie wykresu statusu i wysyłanie aktualnych danych dotyczących leczenia do Nightscouta. Odbywa się to kosztem szybszego zużycia baterii i większym ryzykiem błędu transmisji radiowej względem drugiego sposobu, czyli porównywania objętości zbiornika na insulinę w czasie. Jeśli wybrany sposób z jakiegoś powodu nie może być użyty, system podejmie próbę powrotu do drugiej opcji."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Ostatnio aktywny"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Nasłuchiwanie wyłączone"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Połącz z MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "Brak odpowiedzi"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Wstrzymany"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferowane źródło danych"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Rodzaj baterii w pompie"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID pompy"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Model pompy"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Sprawdź dawkę podstawową"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Sprawdź status pompy"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Sprawdzanie dawki podstawowej…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Sprawdzanie statusu pompy…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Statystyki RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Zapisz na pompie…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Wyślij polecenie wciśnięcia przycisku"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Wysyłanie polecenia wciśnięcia przycisku…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Siła sygnału"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Zakończone powodzeniem"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Zawieszona: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Wyniki testu"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Dostrój częstotliwość radiową"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Dostrajanie radia…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Nieznana"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/MinimedPumpManager.strings deleted file mode 100644 index fda0a282b5..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/pl.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,76 +0,0 @@ - -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Konfiguracja RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Znajdź urządzenie"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Inne urządzenia"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Nie zmieniaj godziny w ustawieniach czasu swojej pompy."; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Zegar w pompie"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Wprowadź 6-cyfrowe ID pompy"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Sprawdź poprawność znajdujących się poniżej ustawień Twojej pompy. Możesz je zmodyfikować w dowolnym momencie w zakładce Ustawienia."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Jeśli podróżujesz do innej strefy czasowej na dłuższy okres, możesz zmienić strefę czasową pompy w dowolnym momencie w zakładce Ustawienia."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop będzie synchronizował zegar pompy ze strefą czasową ustawioną aktualnie w Twoim telefonie."; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Konfiguracja zakończona"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Konfiguracja pompy"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Konfiguracja pompy"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Menu główne"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Narzędzia"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Połącz urządzenia"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "ID pompy to 6-cyfrowy numer (oznaczony jako SN lub S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID pompy"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Twoja pompa jest gotowa do użycia."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Ustawienia pompy"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Region i kolor pompy są oznaczone jako 3 ostatnie litery numeru modelu (który jest określony jako REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region i kolor"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Komunikaty pompy"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Włączony"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Wprowadź region pompy"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop będzie nasłuchiwał komunikatów wysyłanych przez Twoją pompę. Postępuj zgodnie z poniższymi krokami (na Twojej pompie), aby umożliwić wysyłanie komunikatów:"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/Localizable.strings deleted file mode 100644 index c894f2c332..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ entradas de basal programadas\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Unidades de insulina restantes\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterias alcalinas e de lítio descarregam de formas diferentes. Baterias alcalinas tendem a perder voltagem linearmente, enquanto baterias de célula de lítio tendem a manter a voltagem até metade de sua vida útil. Em condições normais de uso do Loop em uma bomba Minimed que não utiliza o MySentry (x22/x15), baterias alcalinas devem durar entre 4 e 5 dias. Baterias de lítio duram entre 1 e 2 semanas. Essa seleção vai utilizar diferentes taxas de descarregamento para cada tipo de bateria e alertar o usuário quando a bateria estiver entre 8 e 10 horas de falhar."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Tem certeza que quer deletar essa bomba?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Ligado até"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Taxas Basais"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Bateria: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Melhor Frequência"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Injetando Bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The title of the command to change pump time */ -"Change Time" = "Mudar Horário"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Alterar Fuso Horário"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Alterando a hora..."; - -/* The title of the section describing commands */ -"Commands" = "Comandos"; - -/* The title of the configuration section in settings */ -"Configuration" = "Ajustes"; - -/* Button title to connect to pump during setup */ -"Connect" = "Conectar"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Estado da Conexão"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Deletar Bomba"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limites de Entrega"; - -/* The title of the section describing the device */ -"Device" = "Dispositivo"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Descobrir Comandos"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Descobrindo comandos..."; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Habilitar LEDs de Diagnóstico"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "LEDs de Diagnóstico Habilitados"; - -/* The alert title for a resume error */ -"Error Resuming" = "Erro ao Retomar"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Erro ao Suspender"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Buscar Glicose do Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Buscar Histórico Recente"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Buscando glicose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "`Buscando histórico…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Buscando modelo da bomba..."; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Extrair Modelo da Bomba"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Extrair Estatísticas…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "A quantidade de insulina utilizada pode ser determinada tanto interpretando o histórico de eventos quanto medindo a diferença no volume do reservatório. Ler a partir do histórico de eventos permite um gráfico de estado mais preciso e o envio de dados de tratamento mais atualizados para o Nightscout, mas com um maior gasto de bateria e com uma maior possibilidade de erros de transmissão, quando comparado com a leitura apenas do volume do reservatório. Se a fonte selecionada não puder ser utilizada por algum motivo, o sistema tentará a outra opção."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Ultima Conexão"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Escutar Desligado"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Pair MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Nome"; - -/* Message display when no response from tuning pump */ -"No response" = "Sem Resposta"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Tempo Ocioso"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Na sua Bomba, vá para a tela de encontrar dispositivos (Find Device) e selecione \"Encontrar Dispositivo\" (Find Device).\n\nMenu Principal >\nUtilitários (Utilities) >\nConectar Dispositivos (Connect Devices)\nOutros Dispositivos (Other Devices) >\nLigar (On) >\nEncontrar Dispositivo (Find Device)"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Fonte de Dados Preferido"; - -/* The title of the section describing the pump */ -"Pump" = "Bomba"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Tipo de Bateria da Bomba"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID da Bomba"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Modelo da Bomba"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Ajustes Bomba"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Ler Programação de Basal"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Ler Estado da Bomba"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Lendo programação de basal…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Lendo estado da bomba…"; - -/* The title of the cell showing the pump region */ -"Region" = "Região"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Estatísticas do RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Salvar na Bomba…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Enviando aperto do botão"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Potência do Sinal"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Completo"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspenso: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Tentativas"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Sintonizar frequência"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Sintonizando frequência…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Desconhecido"; - -/* The title of the cell showing uptime */ -"Uptime" = "Tempo de Atividade"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/MinimedPumpManager.strings deleted file mode 100644 index ac1b01e0cd..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/pt-BR.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,74 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Configuração RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Localizar Dispositivo"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Outro Dispositivo"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Não altere a hora utilizando o menu da sua bomba."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilidades"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Conectar Dispositivos"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Hora da Bomba"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "O ID da bomba é a parte numérica de 6 dígitos do número de série (etiquetado como SN ou S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID da Bomba"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Sua bomba está pronta para uso."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Digite o ID da bomba de 6 dígitos"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Revise as configurações da sua bomba abaixo. Você pode alterar essas configurações a qualquer momento na tela Configurações do Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Se você viajar para um fuso horário diferente por um longo período de tempo, poderá alterar o fuso horário da bomba a qualquer momento na tela Configurações do Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop manterá o relógio da sua bomba sincronizado com o seu telefone no fuso horário em que você está agora."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Configurações da Bomba"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "A região e a cor da bomba são indicadas como as três últimas letras do número do modelo (etiquetado como REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Região e Cor"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Instalação Concluída"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Transmissões da Bomba"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Ligado"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Configuração da Bomba"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Entre com a região da bomba"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Configuração da Bomba"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop receberá as mensagens de status enviadas por sua bomba. Siga as etapas abaixo na sua bomba para ativar estas mensagens:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Título Principal"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/pt-PT.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/pt-PT.lproj/Localizable.strings deleted file mode 100644 index 00cb1533d4..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/pt-PT.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Are you sure you want to delete this pump?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Awake Until"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basal Rates"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Best Frequency"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancelar"; - -/* The title of the command to change pump time */ -"Change Time" = "Change Time"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Change Time Zone"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Changing time…"; - -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The title of the configuration section in settings */ -"Configuration" = "Ajustes"; - -/* Button title to connect to pump during setup */ -"Connect" = "Conectar"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Delete Pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Delivery Limits"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Discover Commands"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Discovering commands…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Enable Diagnostic LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Enabled Diagnostic LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Error Resuming"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Error Suspending"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Fetch Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Fetch Recent History"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Fetching glucose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Fetching history…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Fetching pump model…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Get Pump Model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Get Statistics…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Last Awake"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Listening Off"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry Pair"; - -/* The title of the cell showing device name */ -"Name" = "Nome"; - -/* Message display when no response from tuning pump */ -"No response" = "No response"; - -/* The title of the cell showing the last idle */ -"On Idle" = "On Idle"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferred Data Source"; - -/* The title of the section describing the pump */ -"Pump" = "Bomba"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pump Battery Type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pump Model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Ajustes Bomba"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Read Basal Schedule"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Read Pump Status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Reading basal schedule…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Reading pump status…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistics"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Save to Pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sending button press…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspended: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Trials"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tune Radio Frequency"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Tuning radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unknown"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/Localizable.strings deleted file mode 100644 index b1f5791e71..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/Localizable.strings +++ /dev/null @@ -1,210 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ intervale de insulină bazală\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Unități de insulină rămase\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Baterii alcaline și cele cu litiu se descarcă diferit. La cele alcaline, tensiunea scade proporțional cu descărcare, pe când cele cu litiu mențin tensiunea normală pană aproape de descărcare completă. În condiții normale pe pompele Minimed care nu sunt compatibile cu MySentry (x22/x15), rulând Loop, bateriile alcaline durează 4-5 zile. Bateriile cu litiu durează aproximativ 1-2 săptămâni. Prin această opțiune se alege modul de calcul al descărcării bateriilor în funcție de tipul lor, astfel încât utilizatorul să fie anunțat cu 8-10 ore înainte de descărcare completă."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Sigur vreți să ștergeți această pompă?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Activ până la"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Rate bazale"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Baterie: %1$@ volți\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Frecvența optimă"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Se livrează: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Anulare"; - -/* The title of the command to change pump time */ -"Change Time" = "Ajustarea ceasului"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Schimbarea fusului orar"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Se ajusteaza ceasul…"; - -/* The title of the section describing commands */ -"Commands" = "Comenzi"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configurare"; - -/* Button title to connect to pump during setup */ -"Connect" = "Conectare"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Starea conexiunii"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Elimină pompa"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limitarea livrării"; - -/* The title of the section describing the device */ -"Device" = "Dispozitiv"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Descoperă comenzi"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Descoperirea comenzilor…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Aprinde LED-urile de diagnoză"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "LED-urile de diagnoza pornite"; - -/* The alert title for a resume error */ -"Error Resuming" = "Eroare la reluare livrării"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Eroare la suspendarea livrării"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Obține datelor de la Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Obține istoricul recent"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Obținerea glicemiei…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Obținerea istoricului…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Obținerea modelului pompei…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Versiunea Firmware"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Obține modelul pompei"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Obținerea statisticelor…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Livrarea insulinei poate fi determinată din interpretarea istoricului citit din pompă sau analizând nivelul rezervorului în timp. Citirea istoricului de evenimente permite o construcție mai exacta a graficului și uploadarea datelor actualizate în Nightscout cu prețul descărcării mai rapide a bateriei pompei si a probabilității mai mari de erori de transmisie radio, comparând cu citire numai a nivelului rezervorului. Dacă dintr-o cauză sau alta sistemul nu va reuși să folosească opțiunea aleasă, se va încerca revenirea la cealaltă posibilitate."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Ultima activitate"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Ascultare oprită"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Conectare MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Denumire"; - -/* Message display when no response from tuning pump */ -"No response" = "Nici un raspuns"; - -/* The title of the cell showing the last idle */ -"On Idle" = "în așteptare"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Pe pompa, mergeți la ecranul \"Find Device\" și selectați \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Sursa de date preferată"; - -/* The title of the section describing the pump */ -"Pump" = "Pompa"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Tipul bateriei pompei"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID-ul pompei"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Modelul pompei"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Setările pompei"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Citirea programului bazalelor"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Citirea stării pompei"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Se citește programul bazalelor…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Se citește starea pompei…"; - -/* The title of the cell showing the pump region */ -"Region" = "Regiune"; - -/* Button title to retry sentry setup */ -"Retry" = "Reîncearcă"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Statisticile RileyLink-ului"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Se salvează în pompă…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Trimite apăsarea butonului"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Se trimite apăsarea butonului…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Puterea semnalului"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspendat: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Încercări"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Ajustarea frecvenței radio"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Se ajustează frecvența…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Necunoscut"; - -/* The title of the cell showing uptime */ -"Uptime" = "Timp în funcțiune"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/MinimedPumpManager.strings deleted file mode 100644 index 9824c27b29..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ro.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,74 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Setare RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Caută dispozitiv"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Alte dispozitive"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Nu modificați timpul folosind meniul pompei."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilitare"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Dispozitive conectate"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Ceas pompă"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "ID-ul de pompă este porțiunea de 6 cifre din numărul serial (afișat ca SN sau S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "ID pompă"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Pompa este gata de utilizare."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Introduceți ID-ul pompei format din 6 cifre"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Verificați setările pompei de mai jos. Puteți modifica ulterior aceste setări din ecranul de setări Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "În cazul în care călătoriți într-un alt fus orar pentru o perioadă extinsă, puteți modifica fusul orar al pompei din ecranul de setări Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop va menține sincronizat ceasul pompei cu cel al telefonului, în fusul orar în care vă aflați acum."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Setări pompă"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Regiunea pompei și culoarea sunt indicate prin ultimele 3 litere ale numărului de model (afișat ca REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Regiune și culoare"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Setup complet"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Transmisii pompă"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Activ"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Setare pompă"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Introduceți regiunea pompei"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Setare pompă"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop va recepționa mesajele de status transmise de pompă. Urmații pașii de mai jos pentru a activa aceste mesaje:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Meniu principal"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/Localizable.strings deleted file mode 100644 index 774b11f287..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ записи графика подачи базала\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Осталось единиц инсулина\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Щелочные и литиевые батарейки садятся с различной скоростью. У щелочных падение линейное, в то время как литиевые сохраняют напряжение в течение половины срока службы. При нормальном пользовании в помпе Minimed без Mysentry (x22/x15) с применением алгоритма ИПЖ щелочные батарейки служат примерно от 4 до 5 дней. Литиевые служат от 1 до 2 недель. Эта настройка будет использовать разную скорость падения напряжения батареек в зависимости от их химического типа и предупреждать пользователя за 8-10 часов до отказа "; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Вы уверены, что хотите удалить эту помпу?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Рабочее состояние до"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Скорости базала"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Батарея: %1$@ вольт\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Лучшая частота"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Болюс: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Отмена"; - -/* The title of the command to change pump time */ -"Change Time" = "Изменить время"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Изменить часовой пояс"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Выполняется изменение времени"; - -/* The title of the section describing commands */ -"Commands" = "Команды"; - -/* The title of the configuration section in settings */ -"Configuration" = "Конфигурация"; - -/* Button title to connect to pump during setup */ -"Connect" = "Подключить"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Состояние соединения"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Удалить помпу"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Лимит подачи"; - -/* The title of the section describing the device */ -"Device" = "устройство"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Обнаружить команды"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Обнаружение команд…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Включить LED лампочки диагностики"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "LED лампочки диагностики включены"; - -/* The alert title for a resume error */ -"Error Resuming" = "Ошибка возобновления"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Ошибка остановки"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Получить данные гликемии с Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Получить логи недавней истории"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Получаю гликемию…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Получаю логи…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Получаю модель помпы…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Прошивка"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Версия прошивки"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Получить модель помпы"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Получить статистику…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Подача инсулина может определяться с помпы путем интерпретации истории событий или сравнением изменения объемов резервуара за прошедшее время. Чтение истории событий позволяет вычертить более точный график состояния и загрузить в Nightscout актуальные данные лечения/назначений (за счет более быстрого истощения батареи помпы и более высокого процента ошибок радиосвязи) по сравнению со считыванием данных только об объеме резервуара."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Недавнее состояние активности"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Получаю данные от"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Сопряжение с MySentry "; - -/* The title of the cell showing device name */ -"Name" = "Название"; - -/* Message display when no response from tuning pump */ -"No response" = "Нет ответа"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Бездействие"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "На вашей помпе перейдите на экран \"Найти устройство\" и выберите \"Найти Устройство\".\n\nГлавное меню >\nУтилиты >\nПодключение устройств >\nДругие устройства >\nВ>\nНайти устройство"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Предпочтительный источник данных"; - -/* The title of the section describing the pump */ -"Pump" = "Помпа"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Тип батареи помпы"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Инд номер помпы"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Модель помпы"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Настройки помпы"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Прочитать график базала"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Прочитать статус помпы"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Чтение графика базала…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Чтение статуса помпы…"; - -/* The title of the cell showing the pump region */ -"Region" = "Регион"; - -/* Button title to retry sentry setup */ -"Retry" = "Повторить"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Статистика RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Сохранить на помпе…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Отправить команду нажать кнопку"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Отправляется команда нажать кнопку…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Уровень сигнала"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Успешно"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Приостановлено: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Попытки"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Настроить радиочастоту"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Настраивается радиочастота…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Неизвестно"; - -/* The title of the cell showing uptime */ -"Uptime" = "Время непрерывной работы"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/MinimedPumpManager.strings deleted file mode 100644 index da9394a8d7..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/ru.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Настройки RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Найти устройство"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Другие устройства"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Не меняйте настройки времени через меню помпы."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Утилиты"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Соединить устройства"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Часы помпы"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "ID помпы это 6-значная цифровая часть серийного номера (обозначаемого SN or S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "идентификатор ID помпы"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Помпа готова к работе."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Введите 6-значный идентификатор ID помпы"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Проверьте настройки помпы ниже. Эти настройки можно поменять в любое время через экран общих настроек Loop."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Если вы перемещаетесь в другой часовой пояс на длительное время, вы можете изменить часовой пояс в любое время через экран общих настроек Loop."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop будет синхронизировать часы помпы с часами телефона в том часовом поясе, в котором вы сейчас находитесь."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Настройки помпы"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Регион помпы и ее цвет обозначаются тремя последними цифрами номера модели (маркируется как REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Регион и цвет"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Установка завершена"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Помпа передает"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "Вкл"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Настройки помпы"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Настройки помпы"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Введите регион помпы"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop будет отслеживать сообщения о состоянии с помпы. Выполните следующие шаги на помпе чтобы активировать такие сообщения"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Главное меню"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/sk.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/sk.lproj/Localizable.strings deleted file mode 100644 index dba1a73a05..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/sk.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basal schedule entries\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Units of insulin remaining\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Are you sure you want to delete this pump?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Awake Until"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Bazálne Dávky"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Battery: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Best Frequency"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolusing: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Cancel"; - -/* The title of the command to change pump time */ -"Change Time" = "Change Time"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Zmeniť Časové Pásmo"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Mení sa čas…"; - -/* The title of the section describing commands */ -"Commands" = "Príkazy"; - -/* The title of the configuration section in settings */ -"Configuration" = "Configuration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Connect"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Stav pripojenia"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Delete Pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Limity Dávkovania"; - -/* The title of the section describing the device */ -"Device" = "Zariadenie"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Discover Commands"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Discovering commands…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Enable Diagnostic LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Enabled Diagnostic LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Zhrnutie Chyby"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Chyba Pozastavenia"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Fetch Enlite Glucose"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Fetch Recent History"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Fetching glucose…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Fetching history…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Fetching pump model…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Get Pump Model"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Get Statistics…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Last Awake"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Listening Off"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry Pair"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* Message display when no response from tuning pump */ -"No response" = "No response"; - -/* The title of the cell showing the last idle */ -"On Idle" = "On Idle"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Preferred Data Source"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pump Battery Type"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pump Model"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pump Settings"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Read Basal Schedule"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Read Pump Status"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Reading basal schedule…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Reading pump status…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink Statistics"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Save to Pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Send Button Press"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Sending button press…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Sila Signálu"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Succeeded"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Suspended: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Trials"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tune Radio Frequency"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Tuning radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Unknown"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/Localizable.strings deleted file mode 100644 index 3227336625..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ basalscheman\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Enheter insulin återstår\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkaliska och litiumbatterier tappar spänning med olika hastighet. Alkaliska tenderar att ha ett linjärt spänningsfall över tiden, medan litiumcellsbatterier tenderar att behålla spänning fram till halva deras livslängd. Under normal användning, i en icke-MySentry-kompatibel Minimed (x22/x15) insulinpump som kör Loop, varar alkaliska batterier cirka 4 till 5 dagar. Litiumbatterier håller mellan 1-2 veckor. Detta val kommer att använda olika spänningsfall beroende på batterityp och varna användaren när ett batteri har cirka 8 till 10 timmar kvar av sin livslängd."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Säkert att du vill radera den här pumpen?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Vaken tills"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Basaldoser"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Batteri: %1$@ volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Besta frekvensen"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Ger bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Avbryt"; - -/* The title of the command to change pump time */ -"Change Time" = "Ändra tid"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Ändra tidszon"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Ändra tid…"; - -/* The title of the section describing commands */ -"Commands" = "Kommandon"; - -/* The title of the configuration section in settings */ -"Configuration" = "Konfiguration"; - -/* Button title to connect to pump during setup */ -"Connect" = "Anslut"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Anslutningsstatus"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Radera pump"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Maxdosvärde"; - -/* The title of the section describing the device */ -"Device" = "Enhet"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Upptäck kommandon"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Upptäcker kommandon…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Slå på diagnostiska LED"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Diagnostiska LED på"; - -/* The alert title for a resume error */ -"Error Resuming" = "Fel vid återupptagande"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Kunde inte pausa pump"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Hämta Enlite Glukos"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Hämta senaste historik"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Hämtar glukos…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Hämtar historik…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Hämtar pumpmodell…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware-version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Hämtar Pumpmodell"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Hämtar statistik…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Mängd doserat insulin kan bestämmas antingen genom att tolka händelsehistoriken från pumpen eller genom att jämföra reservoarvolymen över tid. Att läsa av händelsehistoriken tillåter ett mer korrekt status-diagram och mer aktuella behandlingsdata för uppladdning till Nightscout, men laddar ur batteriet snabbare och ökar risken för andel eventuella radiofel jämfört med avläsning av endast reservoarvolym. Om det ena alternativet av någon anledning inte kan användas, försöker systemet med det andra alternativet."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Senast vaken"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Avlyssning av"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry parkoppling"; - -/* The title of the cell showing device name */ -"Name" = "Namn"; - -/* Message display when no response from tuning pump */ -"No response" = "Inget svar"; - -/* The title of the cell showing the last idle */ -"On Idle" = "I viloläge"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "På din pump, gå till skärmen 'Hitta enhet' och välj 'Hitta enhet'.\n\nHuvudmeny >\nTillbehör >\nAnslut enheter >\nAndra enheter >\nOn >\nHitta enhet"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Föredragen datakälla"; - -/* The title of the section describing the pump */ -"Pump" = "Pump"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Typ av pumpbatteri"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pump-ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pumpmodell"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pumpinställningar"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Läs Basalscheman"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Läs pumpstatus"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Läser basalscheman…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Läser pumpstatus…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Försök igen"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink statistik"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Spara till pump…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Skicka knapptryckning"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Skicka knapptryckning…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signalstyrka"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Lyckades"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Pausad: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Försök"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Radiofrekvens"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Justera radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Okänd"; - -/* The title of the cell showing uptime */ -"Uptime" = "Körs sedan"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/MinimedPumpManager.strings deleted file mode 100644 index 0184b8eb45..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/sv.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink inställning"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Hitta enhet"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Annan enhet"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Ädra inte tiden i din pumps menyer."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Tillbehör"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Anslut eheter"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pumpklocka"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Ditt pump-ID är den 6-siffriga nemeriska delen av serienumret (markerat med SN eller S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pump-ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Din pump är redo att användas."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Ange ditt 6-siffriga pump-ID"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Se över dina pumpinställingar nedan. Du kan närsomhelst ändra dessa i Loops inställningar."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Om du reser till annan tidszon under en längre tid, kan du ändra tidszonen närsomhelst i Loops iställningar."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop kommer att synkronisera pumpens klocka med din telefon i tidszonen du befinner dig nu."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Pumpinställningar"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Pumpregion och färg är märkta som de 3 sista siffrorna i modellnumret (markerad som REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region och färg"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Inställning klar"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pumpsändningar"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "På"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pumpinställning"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Ange pumpregion"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pumpinställning"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop kommer att lyssna på statusmeddelanden skickade av din pump. Följ de här stegen nedan på din pump för att aktivera dessa meddelanden:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Huvudmeny"; - diff --git a/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/Localizable.strings deleted file mode 100644 index b48c72210d..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ bazal program girişleri\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Ünite insülin kaldı\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Alkalin ve lityum piller farklı hızlarda biter. Alkalin piller zamanla doğrusal bir voltaj düşüşüne sahip olma eğilimindeyken, lityum hücreli piller ömürlerinin yarısına kadar voltaj tutma eğilimindedir. Alkalin piller, Loop ile normal kullanımda MySentry uyumlu olmayan bir Minimed (x22/x15) insülin pompası ile yaklaşık 4 ila 5 gün dayanır. Lityum piller ise 1-2 hafta dayanır. Bu seçim, pil türlerinin her biri için farklı pil voltajı düşüş oranı kullanır ve pil bitmeden yaklaşık 8-10 saat önce kullanıcıyı uyarır."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Bu pompa'yı silmek istediğinden emin misin?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Kadar Etkin"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Bazal Oranları"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Pil: %1$@ volt\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "En İyi Frekans"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Vazgeç"; - -/* The title of the command to change pump time */ -"Change Time" = "Zamanı değiştir"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Zaman dilimini Değiştir"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Zaman değiştiriliyor…"; - -/* The title of the section describing commands */ -"Commands" = "Komutlar"; - -/* The title of the configuration section in settings */ -"Configuration" = "Yapılandırma"; - -/* Button title to connect to pump during setup */ -"Connect" = "Bağlan"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Bağlantı Durumu"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Pompayı Sil"; - -/* Title text for delivery limits */ -"Delivery Limits" = "İletim Kısıtlamaları"; - -/* The title of the section describing the device */ -"Device" = "Cihaz"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Komutları Keşfet"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Komutlar Keşfediliyor…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Tanılama LED'lerini Etkinleştir"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Tanılama LED'leri Etkin"; - -/* The alert title for a resume error */ -"Error Resuming" = "Devam ederken hata oluştu"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Askıya alırken Hata"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Enlite Glikoz Değerlerini Al"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Yakın Geçmişi Al"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Glikoz değeri alınıyor…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Geçmiş alınıyor…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Pompa modeli alınıyor…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Aygıt Yazılımı"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Aygıt Yazılımı Sürümü"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Pompa Modelini Al"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "İstatistikleri Al…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "İnsülin iletimi, olay geçmişi yorumlanarak veya zaman içinde rezervuar hacmi karşılaştırılarak pompadan belirlenebilir. Olay geçmişinin okunması, daha doğru bir durum grafiğine ve güncel tedavi verilerinin Nightscout'a yüklenmesine karşın, yalnızca rezervuar hacmini okumaya kıyasla daha hızlı pompa pili tüketimi ve daha yüksek pompa iletişim hatasına sebep olabilir. Seçilen kaynak herhangi bir nedenle kullanılamıyorsa sistem diğer seçeneğe geri dönmeye çalışacaktır."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Son uyanma"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Dinleme kapalı"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry'e Bağlan"; - -/* The title of the cell showing device name */ -"Name" = "İsim"; - -/* Message display when no response from tuning pump */ -"No response" = "Yanıt yok"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Boşta"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "Pompanızda, Cihaz Bul ekranına gidin ve \"Cihaz Bul\"u seçin.\n\nAna Menü >\nAraçlar >\nCihazları Bağlayın >\nDiğer Cihazlar >\nAçık >\nCihaz Bul"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Tercih Edilen Veri Kaynağı"; - -/* The title of the section describing the pump */ -"Pump" = "Pompa"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Pompa Pil Tipi"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Pompa ID"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Pompa Modeli"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Pompa Ayarları"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Bazal Planı Oku"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Pompa Durumunu Oku"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Bazal Planı Okunuyor…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Pompa durumu okunuyor…"; - -/* The title of the cell showing the pump region */ -"Region" = "Bölge"; - -/* Button title to retry sentry setup */ -"Retry" = "Tekrar Dene"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink İstatistikleri"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Pompaya Kaydet…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Gönder Düğmesine Bas"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Gönderme düğmesine basın…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Sinyal Gücü"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Başarılı oldu"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Duraklatıldı: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Denemeler"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Radyo Frekansını Ayarla"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Frekans ayarlanıyor…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Bilinmiyor"; - -/* The title of the cell showing uptime */ -"Uptime" = "Çalışma süresi"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/MinimedPumpManager.strings deleted file mode 100644 index a44f54c693..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/tr.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,69 +0,0 @@ - -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink Setup"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Find Device"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Other Devices"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Do not change the time using your pumpʼs menu."; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Pump Clock"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Enter the 6-digit pump ID"; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Setup Complete"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Pump Setup"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Pump Setup"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Main Menu"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Utilities"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Connect Devices"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Pump ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Your pump is ready for use."; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Region and Color"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pump Broadcasts"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "On"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Enter the pump region"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/uk.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/uk.lproj/Localizable.strings deleted file mode 100644 index c13f74f216..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/uk.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ записи базального графіка\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Залишилося одиниць інсуліну\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Лужні та літієві батареї сідають з різною швидкістю. У лужних падіння лінійне, тоді як літієві зберігають напругу протягом половини терміну служби. При нормальному користуванні в помпі Minimed без Mysentry (x22/x15) із застосуванням алгоритму ІПЗ лужні батареї служать приблизно від 4 до 5 днів. Літієві служать від 1 до 2 тижнів. Це налаштування буде використовувати різну швидкість падіння напруги батарейок залежно від їх хімічного типу і попереджати користувача за 8-10 годин до відмови"; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Ви впевнені, що хочете видалити цю помпу?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Робочий стан до"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Дози базалу"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Батарея: %1$@ вольт\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Найкраща частота"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Болюс: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Відмінити"; - -/* The title of the command to change pump time */ -"Change Time" = "Змінити час"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Змінити часовий пояс"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Зміна часу…"; - -/* The title of the section describing commands */ -"Commands" = "Команди"; - -/* The title of the configuration section in settings */ -"Configuration" = "Налаштування"; - -/* Button title to connect to pump during setup */ -"Connect" = "Підключити"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Стан з'єднання"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Видалити помпу"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Ліміт доставки"; - -/* The title of the section describing the device */ -"Device" = "Пристрій"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Відкрийте для себе команди"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Виявлення команд…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Увімкнути LED лампочки діагностики"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "LED лампочки діагностики включені"; - -/* The alert title for a resume error */ -"Error Resuming" = "Помилка при відновленні"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Помилка призупинення"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Отримати дані глюкози з Enlite"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Отримати логі недавньої історії"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Отримання глюкози…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Отримання історії…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Отримання моделі насоса…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Прошивка"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Версія прошивки"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Отримати модель помпи"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Отримати статистику…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Подача інсуліну може визначатися з помпи шляхом інтерпретації історії подій чи порівнянням зміни обсягів резервуара за час. Читання історії подій дозволяє викреслити більш точний графік стану та завантажити в Nightscout актуальні дані лікування/призначень (за рахунок швидшого виснаження батареї помпи та вищого відсотка помилок радіозв'язку) порівняно зі зчитуванням даних лише про обсяг резервуара."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Останнє пробудження"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Отримую дані від"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Сполучення з MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Ім’я"; - -/* Message display when no response from tuning pump */ -"No response" = "Немає відповіді"; - -/* The title of the cell showing the last idle */ -"On Idle" = "У режимі очікування"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "На помпі перейдіть на екран «Знайти пристрій» і виберіть «Знайти пристрій».\n\\Головне меню >\\Утиліти >\nПідключити пристрої >\\Інші пристрої >\nУвімк. >\nЗнайти пристрій"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Бажане джерело даних"; - -/* The title of the section describing the pump */ -"Pump" = "Помпа"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Тип батареї помпи"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "ID помпи"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Модель помпи"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Налаштування Помпи"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Прочитати графік базалу"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Прочитати статус помпи"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Читання графіка базалу…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Читання статусу помпи..."; - -/* The title of the cell showing the pump region */ -"Region" = "Регіон"; - -/* Button title to retry sentry setup */ -"Retry" = "Спробувати знову"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Статистика RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Зберегти на помпі…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Натисніть кнопку «Надіслати»."; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Відправляється команда нажать кнопку…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Рівень сигналу"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Успішно"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Припинено: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Випробування"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Налаштуйте радіочастоту"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Налаштовується радіочастота..."; - -/* The detail text for an unknown pump model */ -"Unknown" = "Невідомий"; - -/* The title of the cell showing uptime */ -"Uptime" = "Час роботи"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/Localizable.strings deleted file mode 100644 index 92ede5373e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ Lịch biểu liều nền\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "%1$@ Số unit insulin còn lại\n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "Pin kềm và pin lithium phân rã ở các mức độ khác nhau. Pin kềm có xu hướng giảm điện áp tuyến tính theo thời gian trong khi pin lithium có xu hướng duy trì điện áp cho đến khi hết nửa vòng đời. Trong điều kiện sử dụng bình thường trên bơm Minimed (loại X22 hay X15) khi chạy Loop, pin kiềm có thể dùng được trong khoảng 4 đến 5 ngày trong khi pin lithium dùng dc 2 tuần. Việc lựa chọn này được sử dụng theo các mức phân rã điện áp khác nhau cho mỗi loại pin hóa học và sẽ có cảnh báo đối với người dùng khi pin hỏng đạt khoảng từ 8-10 giờ."; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "Bạn có chắc muốn xóa bơm này không?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "Giữ liên lạc cho đến khi"; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "Tỷ lệ liều nền"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "Pin: %1$@ volts\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "Tần số tối ưu"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "Đang tiêm liều bolus: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "Hủy bỏ"; - -/* The title of the command to change pump time */ -"Change Time" = "Thay đổi thời gian"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "Đổi múi giờ"; - -/* Progress message for changing pump time. */ -"Changing time…" = "Đang thay đổi thời gian…"; - -/* The title of the section describing commands */ -"Commands" = "Các câu lệnh"; - -/* The title of the configuration section in settings */ -"Configuration" = "Cấu hình"; - -/* Button title to connect to pump during setup */ -"Connect" = "Kết nối"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Tình trạng Kết nối"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "Xóa bơm"; - -/* Title text for delivery limits */ -"Delivery Limits" = "Giới hạn tiêm"; - -/* The title of the section describing the device */ -"Device" = "Thiết bị"; - -/* The title of the command to discover commands */ -"Discover Commands" = "Phát hiện các dòng lệnh"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "Đang phát hiện các dòng lệnh…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "Cho phép chuẩn đoán LEDs"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "Cho phép chuẩn đoán LEDs"; - -/* The alert title for a resume error */ -"Error Resuming" = "Lỗi khi thực hiện Tiếp tục lại"; - -/* The alert title for a suspend error */ -"Error Suspending" = "Lỗi khi thực hiện Tạm ngưng"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "Lấy dữ liệu đường huyết"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "Lấy dữ liệu gần đây"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "Đang lấy dữ liệu đường huyết…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "Đang lấy thông tin…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "Đang lấy model bơm…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Chương trình cơ sở"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Chương trình cơ sở"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "Lấy model của bơm"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "Lấy các thống kê…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "Việc tiêm insulin có thể được quyết định từ bơm bằng cách kết hợp giải thuật dữ liệu của người sử dụng và so sánh với khối lượngngăn chứa insulin theo thời gian. Việc đọc các dữ liệu cũ sẽ đảm bảo biểu đồ đường huyết luôn được tính chính xác và tải dữ liệu điều trị cập nhật lên Nightscout, nhưng lại tăng việc tiêu hao pin cũng như lỗi giao tiếp tần số radio cao hơn việc chỉ đọc mỗi dữ liệu ngăn chứa insulin. Trong trường hợp nguồn dữ liệu không được lựa chọn vì bất kỳ lý do gì thì phần mềm sẽ quay sang lựa chọn khác."; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "Lần giao tiếp cuối cùng"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "Đang lắng nghe"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "Ghép đôi MySentry"; - -/* The title of the cell showing device name */ -"Name" = "Tên"; - -/* Message display when no response from tuning pump */ -"No response" = "Không có phản hồi nào"; - -/* The title of the cell showing the last idle */ -"On Idle" = "Đang chờ"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "Nguồn dữ liệu được ưa thích"; - -/* The title of the section describing the pump */ -"Pump" = "Bơm"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "Loại pin của bơm"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "Số ID của bơm"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "Model của bơm"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "Cấu hình của bơm"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "Đọc lịch biểu tiêm liều nền"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "Đọc tình trạng bơm"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "Đang đọc lịch biểu liều nền…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "Đang đọc tình trạng bơm…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Thử lại"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "Các thống kê của RileyLink"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "Lưu vào bơm…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "Gửi nút bấm"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "Đang gửi nút bấm…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Cường độ tín hiệu"; - -/* A message indicating a command succeeded */ -"Succeeded" = "Đã thành công"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "Đã tạm ngưng: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "Các thử nghiệm"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "Tần số Radio"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "Chuyển tần số radio…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "Không nhận ra"; - -/* The title of the cell showing uptime */ -"Uptime" = "Thời gian hoạt động"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/MinimedPumpManager.strings deleted file mode 100644 index cf2f6a812e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/vi.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,74 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "Cài đặt RileyLink"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "Tìm kiếm thiết bị"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "Các thiết bị khác"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "Không thay đổi thời gian sử dụng trên menu bơm của bạn."; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "Các tiện ích"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "Kết nối thiết bị"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "Đồng hồ của bơm"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "Số ID của bơm là phần số củ dãy số seri (được ký hiệu là SN hay S/N)."; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "Số ID của bơm"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "Bơm của bạn đã sẵn sàng."; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "Nhập 6 số ID của bơm"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "Xem lại cấu hình bơm của bạn bên dưới. Bạn có thể thay đổi cấu hình bất kỳ lúc nào."; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "Trường hợp bạn du lịch đến vùng khác múi giờ trong thời gian dài, bạn có thể thay dổi múi giờ của bơm bất kỳ lúc nào trong phần cấu hình của bơm."; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop sẽ giữ đồng hồ của bơm đồng hóa với điện thoại trong múi giờ mà bạn đang hiện diện."; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "Cấu hình cho bơm"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "Khu vực và màu sắc của bơm được thể hiện qua 3 chữ cuối của chủng loại bơm (thể hiện là REF)."; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "Vùng và Màu sắc"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "Cấu hình hoàn thành"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "Pump Broadcasts"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "On"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "Cấu hình bơm"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "Nhập khu vực của bơm"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "Cấu hình cho bơm"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop sẽ lắng nghe các thông điệp được gửi từ bơm của bạn. Làm theo các bước dưới đây để thực hiện các thông điệp này:"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "Menu chính"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/Localizable.strings b/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index a089f7664e..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,209 +0,0 @@ -/* The format string for displaying a frequency tune trial. Extra spaces added for emphesis: (1: frequency in MHz)(2: success count)(3: total count)(4: average RSSI) */ -"%1$@ %2$@/%3$@ %4$@" = "%1$@ %2$@/%3$@ %4$@"; - -/* The format string describing number of basal schedule entries: (1: number of entries) */ -"%1$@ basal schedule entries\n" = "%1$@ 基础率\n"; - -/* The format string describing units of insulin remaining: (1: number of units) */ -"%1$@ Units of insulin remaining\n" = "胰岛素剩余量 %1$@ U \n"; - -/* The format string for displaying an offset from a time zone: (1: GMT)(2: -)(3: 4:00) */ -"%1$@%2$@%3$@" = "%1$@%2$@%3$@"; - -/* Instructions on selecting battery chemistry type */ -"Alkaline and Lithium batteries decay at differing rates. Alkaline tend to have a linear voltage drop over time whereas lithium cell batteries tend to maintain voltage until halfway through their lifespan. Under normal usage in a Non-MySentry compatible Minimed (x22/x15) insulin pump running Loop, Alkaline batteries last approximately 4 to 5 days. Lithium batteries last between 1-2 weeks. This selection will use different battery voltage decay rates for each of the battery chemistry types and alert the user when a battery is approximately 8 to 10 hours from failure." = "碱性电池和锂电池以不同的速率衰减。随着时间的推移,碱性电池往往具有线性电压降,而锂电池电池则随时间呈线性下降的电压一直保持到其寿命的一半。在非MySentry兼容Minimed(x22 / x15)的胰岛素泵运行Loop时,正常使用情况下,碱性电池可持续大约4至5天,锂电池持续1-2周。此选择将针对每种电池化学类型使用不同的电池电压衰减速率,并在电池电量耗尽前8至10小时前提醒用户。"; - -/* Confirmation message for deleting a pump */ -"Are you sure you want to delete this pump?" = "确定删除该泵?"; - -/* The title of the cell describing an awake radio */ -"Awake Until" = "唤醒 "; - -/* The title text for the basal rate schedule */ -"Basal Rates" = "基础率"; - -/* The format string describing pump battery voltage: (1: battery voltage) */ -"Battery: %1$@ volts\n" = "电池:%1$@ V\n"; - -/* The label indicating the best radio frequency */ -"Best Frequency" = "最优频率"; - -/* The format string describing pump bolusing state: (1: bolusing) */ -"Bolusing: %1$@\n" = "大剂量: %1$@\n"; - -/* The title of the cancel action in an action sheet */ -"Cancel" = "取消"; - -/* The title of the command to change pump time */ -"Change Time" = "修改时间"; - -/* The title of the command to change pump time zone */ -"Change Time Zone" = "更改时区"; - -/* Progress message for changing pump time. */ -"Changing time…" = "更改时间"; - -/* The title of the section describing commands */ -"Commands" = "命令"; - -/* The title of the configuration section in settings */ -"Configuration" = "配置"; - -/* Button title to connect to pump during setup */ -"Connect" = "连接"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "连接状态"; - -/* Button title to delete pump - Title text for the button to remove a pump from Loop */ -"Delete Pump" = "删除泵"; - -/* Title text for delivery limits */ -"Delivery Limits" = "输注限制"; - -/* The title of the section describing the device */ -"Device" = "设备"; - -/* The title of the command to discover commands */ -"Discover Commands" = "搜索"; - -/* Progress message for discovering commands. */ -"Discovering commands…" = "正在搜索…"; - -/* The title of the command to enable diagnostic LEDs */ -"Enable Diagnostic LEDs" = "开启状态LED指示灯"; - -/* Progress message for enabling diagnostic LEDs */ -"Enabled Diagnostic LEDs" = "正在打开状态LED指示灯"; - -/* The alert title for a resume error */ -"Error Resuming" = "恢复输注错误"; - -/* The alert title for a suspend error */ -"Error Suspending" = "暂停输注错误"; - -/* The title of the command to fetch recent glucose */ -"Fetch Enlite Glucose" = "获取Enlite葡萄糖"; - -/* The title of the command to fetch recent history */ -"Fetch Recent History" = "获取最近的历史数据"; - -/* Progress message for fetching pump glucose. */ -"Fetching glucose…" = "正在获取葡萄糖信息…"; - -/* Progress message for fetching pump history. */ -"Fetching history…" = "正在获取历史数据…"; - -/* Progress message for fetching pump model. */ -"Fetching pump model…" = "正在获取胰岛素泵型号…"; - -/* The title of the cell showing firmware version */ -"Firmware" = "固件"; - -/* The title of the cell showing the pump firmware version */ -"Firmware Version" = "Firmware Version"; - -/* The title of the command to get pump model */ -"Get Pump Model" = "获取胰岛素泵型号"; - -/* Progress message for getting statistics. */ -"Get Statistics…" = "正在获取数据…"; - -/* Instructions on selecting an insulin data source */ -"Insulin delivery can be determined from the pump by either interpreting the event history or comparing the reservoir volume over time. Reading event history allows for a more accurate status graph and uploading up-to-date treatment data to Nightscout, at the cost of faster pump battery drain and the possibility of a higher radio error rate compared to reading only reservoir volume. If the selected source cannot be used for any reason, the system will attempt to fall back to the other option." = "可以通过解释事件历史记录或比较随时间推移的储存容量来确定胰岛素输注总量。阅读事件历史记录可以获得更精确的胰岛素输注量并将最新的数据上传到Nightscout,但该方式会造成更快的电池消耗以及可能造成Rileylink通信失败概率增大。如果选中的方式无法正常工作,系统将自动尝试运行另一个方案。"; - -/* The title of the cell describing an awake radio */ -"Last Awake" = "最近唤醒"; - -/* The title of the cell describing no radio awake data */ -"Listening Off" = "监听关闭"; - -/* The title of the command to pair with mysentry */ -"MySentry Pair" = "MySentry配对"; - -/* The title of the cell showing device name */ -"Name" = "设备名称"; - -/* Message display when no response from tuning pump */ -"No response" = "无响应"; - -/* The title of the cell showing the last idle */ -"On Idle" = "空闲"; - -/* Pump find device instruction */ -"On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device" = "On your pump, go to the Find Device screen and select \"Find Device\".\n\nMain Menu >\nUtilities >\nConnect Devices >\nOther Devices >\nOn >\nFind Device"; - -/* The title text for the preferred insulin data source config */ -"Preferred Data Source" = "首选数据源"; - -/* The title of the section describing the pump */ -"Pump" = "胰岛素泵"; - -/* The title text for the battery type value */ -"Pump Battery Type" = "胰岛素泵电池类型"; - -/* The title of the cell showing pump ID - The title text for the pump ID config value */ -"Pump ID" = "胰岛素泵序列号"; - -/* The title of the cell showing the pump model number */ -"Pump Model" = "泵型号"; - -/* Title of the pump settings view controller */ -"Pump Settings" = "泵设置"; - -/* The title of the command to read basal schedule */ -"Read Basal Schedule" = "读取基础率配置文件"; - -/* The title of the command to read pump status */ -"Read Pump Status" = "读取胰岛素泵状态"; - -/* Progress message for reading basal schedule */ -"Reading basal schedule…" = "正在读取基础率配置文件…"; - -/* Progress message for reading pump status */ -"Reading pump status…" = "正在读取胰岛素泵状态…"; - -/* The title of the cell showing the pump region */ -"Region" = "Region"; - -/* Button title to retry sentry setup */ -"Retry" = "Retry"; - -/* The title of the command to fetch RileyLink statistics */ -"RileyLink Statistics" = "RileyLink数据"; - -/* Title of button to save basal profile to pump - Title of button to save delivery limit settings to pump */ -"Save to Pump…" = "同步设置到泵…"; - -/* The title of the command to send a button press */ -"Send Button Press" = "发送亮屏指令"; - -/* Progress message for sending button press to pump. */ -"Sending button press…" = "正在发送亮屏指令…"; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "信号强度"; - -/* A message indicating a command succeeded */ -"Succeeded" = "成功"; - -/* The format string describing pump suspended state: (1: suspended) */ -"Suspended: %1$@\n" = "暂停: %1$@\n"; - -/* The label indicating the results of each frequency trial */ -"Trials" = "尝试"; - -/* The title of the command to re-tune the radio */ -"Tune Radio Frequency" = "调频"; - -/* Progress message for tuning radio */ -"Tuning radio…" = "正在调频…"; - -/* The detail text for an unknown pump model */ -"Unknown" = "未知"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/MinimedPumpManager.strings b/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/MinimedPumpManager.strings deleted file mode 100644 index c6f20400a2..0000000000 --- a/Dependencies/rileylink_ios/MinimedKitUI/zh-Hans.lproj/MinimedPumpManager.strings +++ /dev/null @@ -1,75 +0,0 @@ -/* Class = "UITableViewController"; title = "RileyLink Setup"; ObjectID = "0MV-2k-Dty"; */ -"0MV-2k-Dty.title" = "RileyLink设置"; - -/* Class = "UILabel"; text = "Find Device"; ObjectID = "1fp-45-qWK"; */ -"1fp-45-qWK.text" = "发现设备"; - -/* Class = "UILabel"; text = "Other Devices"; ObjectID = "A6i-Cb-baR"; */ -"A6i-Cb-baR.text" = "其他设备"; - -/* Class = "UILabel"; text = "Do not change the time using your pumpʼs menu."; ObjectID = "Bdb-j4-WcR"; */ -"Bdb-j4-WcR.text" = "不要通过胰岛素泵来修改时间"; - -/* Class = "UILabel"; text = "Utilities"; ObjectID = "c7t-pZ-WqY"; */ -"c7t-pZ-WqY.text" = "功能"; - -/* Class = "UILabel"; text = "Connect Devices"; ObjectID = "erq-yb-anx"; */ -"erq-yb-anx.text" = "连接设备"; - -/* Class = "UITableViewController"; title = "Pump Clock"; ObjectID = "Fps-h3-V4K"; */ -"Fps-h3-V4K.title" = "泵时钟"; - -/* Class = "UITableViewSection"; footerTitle = "The pump ID is the 6-digit numerical portion of the serial number (labeled as SN or S/N)."; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.footerTitle" = "泵的ID是6位数字的序列号(标签为SN或S/N)"; - -/* Class = "UITableViewSection"; headerTitle = "Pump ID"; ObjectID = "fVG-pl-jT9"; */ -"fVG-pl-jT9.headerTitle" = "泵ID"; - -/* Class = "UILabel"; text = "Your pump is ready for use."; ObjectID = "g1m-3k-XI3"; */ -"g1m-3k-XI3.text" = "泵设置已完成"; - -/* Class = "UITextField"; placeholder = "Enter the 6-digit pump ID"; ObjectID = "HeG-VF-L5P"; */ -"HeG-VF-L5P.placeholder" = "输入六位数字的泵ID"; - -/* Class = "UILabel"; text = "Review your pump settings below. You can change these settings at any time in Loopʼs Settings screen."; ObjectID = "HfQ-fG-8vO"; */ -"HfQ-fG-8vO.text" = "检查以下泵选项设置,这些选项可以随时通过Loop来设置修改。"; - -/* Class = "UILabel"; text = "If you travel to a different time zone for an extended period of time, you can change the pumpʼs time zone at any time in Loopʼs Settings screen."; ObjectID = "HuY-fE-vM8"; */ -"HuY-fE-vM8.text" = "如果你在不同的时区旅行,可以通过Loops直接设置泵的时区。"; - -/* Class = "UILabel"; text = "Loop will keep your pumpʼs clock synchronized with your phone in the time zone youʼre in now."; ObjectID = "IQ5-53-x9s"; */ -"IQ5-53-x9s.text" = "Loop将会对泵和手机所处的时区保持一致"; - -/* Class = "UITableViewController"; title = "Pump Settings"; ObjectID = "iQZ-kT-QUm"; */ -"iQZ-kT-QUm.title" = "泵设置"; - -/* Class = "UITableViewSection"; footerTitle = "The pump region and color are denoted as the last 3 letters of the the model number (labeled as REF)."; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.footerTitle" = "泵的区域和颜色包含在设备型号的最后三个字母中(标记为REF)。"; - -/* Class = "UITableViewSection"; headerTitle = "Region and Color"; ObjectID = "lGI-LD-xR7"; */ -"lGI-LD-xR7.headerTitle" = "区域与颜色"; - -/* Class = "UITableViewController"; title = "Setup Complete"; ObjectID = "Nwf-TJ-KmJ"; */ -"Nwf-TJ-KmJ.title" = "设置完成"; - -/* Class = "UITableViewController"; title = "Pump Broadcasts"; ObjectID = "oBL-lh-SHI"; */ -"oBL-lh-SHI.title" = "泵广播"; - -/* Class = "UILabel"; text = "On"; ObjectID = "ojQ-ob-gBx"; */ -"ojQ-ob-gBx.text" = "开"; - -/* Class = "UITableViewController"; title = "Pump Setup"; ObjectID = "OZk-Db-KCs"; */ -"OZk-Db-KCs.title" = "泵设置"; - -/* Class = "UINavigationItem"; title = "Pump Setup"; ObjectID = "V47-Nq-7ew"; */ -"V47-Nq-7ew.title" = "泵设置"; - -/* Class = "UILabel"; text = "Enter the pump region"; ObjectID = "tGa-FP-JqD"; */ -"tGa-FP-JqD.text" = "输入泵区域"; - -/* Class = "UILabel"; text = "Loop will listen for status messages sent by your pump. Follow the steps below on your pump to enable these messages:"; ObjectID = "yLn-Ya-p1R"; */ -"yLn-Ya-p1R.text" = "Loop将监听泵的状态信息,并按照如下步骤操作胰岛素泵来开启此功能"; - -/* Class = "UITableViewSection"; headerTitle = "Main Menu"; ObjectID = "ZnF-zy-5gR"; */ -"ZnF-zy-5gR.headerTitle" = "主菜单"; - diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/HKUnit.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/HKUnit.swift deleted file mode 100644 index 5379a7267f..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/HKUnit.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// HKUnit.swift -// RileyLink -// -// Created by Nate Racklyeft on 8/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import HealthKit - -extension HKUnit { - static let milligramsPerDeciliter: HKUnit = { - return HKUnit.gramUnit(with: .milli).unitDivided(by: HKUnit.literUnit(with: .deci)) - }() -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Info.plist b/Dependencies/rileylink_ios/NightscoutUploadKit/Info.plist deleted file mode 100644 index 21baa19b4f..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/AutomaticDoseRecommendation.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/AutomaticDoseRecommendation.swift deleted file mode 100644 index b71c427073..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/AutomaticDoseRecommendation.swift +++ /dev/null @@ -1,53 +0,0 @@ -// -// AutomaticDoseRecommendation.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 1/16/21. -// Copyright © 2021 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct AutomaticDoseRecommendation { - typealias RawValue = [String: Any] - - let timestamp: Date - let tempBasalAdjustment: TempBasalAdjustment? - let bolusVolume: Double - - public init(timestamp: Date, tempBasalAdjustment: TempBasalAdjustment?, bolusVolume: Double) { - self.timestamp = timestamp - self.tempBasalAdjustment = tempBasalAdjustment - self.bolusVolume = bolusVolume - } - - public var dictionaryRepresentation: [String: Any] { - - var rval = [String: Any]() - - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - rval["tempBasalAdjustment"] = tempBasalAdjustment?.dictionaryRepresentation - rval["bolusVolume"] = bolusVolume - return rval - } - - init?(rawValue: RawValue) { - guard - let timestampStr = rawValue["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr) - else { - return nil - } - - if let tempBasalAdjustmentRaw = rawValue["tempBasalAdjustment"] as? TempBasalAdjustment.RawValue, - let tempBasalAdjustment = TempBasalAdjustment(rawValue: tempBasalAdjustmentRaw) - { - self.tempBasalAdjustment = tempBasalAdjustment - } else { - self.tempBasalAdjustment = nil - } - - self.bolusVolume = rawValue["bolusVolume"] as? Double ?? 0 - self.timestamp = timestamp - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/BatteryStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/BatteryStatus.swift deleted file mode 100644 index 0a23632734..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/BatteryStatus.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// BatteryStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/28/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public enum BatteryIndicator: String { - case low = "low" - case normal = "normal" -} - - -public struct BatteryStatus { - let percent: Int? - let voltage: Double? - let status: BatteryIndicator? - - public init(percent: Int? = nil, voltage: Double? = nil, status: BatteryIndicator? = nil) { - self.percent = percent - self.voltage = voltage - self.status = status - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - if let percent = percent { - rval["percent"] = percent - } - if let voltage = voltage { - rval["voltage"] = voltage - } - - if let status = status { - rval["status"] = status.rawValue - } - - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/COBStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/COBStatus.swift deleted file mode 100644 index 2998505fce..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/COBStatus.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// COBStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 8/2/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct COBStatus { - typealias RawValue = [String: Any] - - public let cob: Double - public let timestamp: Date - - public init(cob: Double, timestamp: Date) { - self.cob = cob // grams - self.timestamp = timestamp - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - rval["cob"] = cob - - return rval - } - - init?(rawValue: RawValue) { - guard - let timestampStr = rawValue["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr), - let cob = rawValue["cob"] as? Double - else { - return nil - } - - self.timestamp = timestamp - self.cob = cob - } - -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/CorrectionRange.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/CorrectionRange.swift deleted file mode 100644 index bc43a6bbad..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/CorrectionRange.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// CorrectionRange.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 5/28/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. -// - -import Foundation -import HealthKit - -public struct CorrectionRange { - typealias RawValue = [String: Any] - - let minValue: Double - let maxValue: Double - - public init(minValue: HKQuantity, maxValue: HKQuantity) { - - // BG values in nightscout are in mg/dL. - let unit = HKUnit.milligramsPerDeciliter - self.minValue = minValue.doubleValue(for: unit) - self.maxValue = maxValue.doubleValue(for: unit) - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["minValue"] = minValue - rval["maxValue"] = maxValue - - return rval - } - - init?(rawValue: RawValue) { - guard - let minValue = rawValue["minValue"] as? Double, - let maxValue = rawValue["maxValue"] as? Double - else { - return nil - } - - self.minValue = minValue - self.maxValue = maxValue - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/DeviceStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/DeviceStatus.swift deleted file mode 100644 index 0f62365dcd..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/DeviceStatus.swift +++ /dev/null @@ -1,99 +0,0 @@ -// -// DeviceStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/26/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct DeviceStatus { - typealias RawValue = [String: Any] - - public let device: String - public let timestamp: Date - public let identifier: String? - public let pumpStatus: PumpStatus? - public let uploaderStatus: UploaderStatus? - public let loopStatus: LoopStatus? - public let radioAdapter: RadioAdapter? - public let overrideStatus: OverrideStatus? - - public init(device: String, timestamp: Date, pumpStatus: PumpStatus? = nil, uploaderStatus: UploaderStatus? = nil, loopStatus: LoopStatus? = nil, radioAdapter: RadioAdapter? = nil, overrideStatus: OverrideStatus? = nil, identifier: String? = nil) { - self.device = device - self.timestamp = timestamp - self.pumpStatus = pumpStatus - self.uploaderStatus = uploaderStatus - self.loopStatus = loopStatus - self.radioAdapter = radioAdapter - self.overrideStatus = overrideStatus - self.identifier = identifier - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["device"] = device - rval["created_at"] = TimeFormat.timestampStrFromDate(timestamp) - - if let pump = pumpStatus { - rval["pump"] = pump.dictionaryRepresentation - } - - if let uploader = uploaderStatus { - rval["uploader"] = uploader.dictionaryRepresentation - } - - if let loop = loopStatus { - rval["loop"] = loop.dictionaryRepresentation - } - - if let radioAdapter = radioAdapter { - rval["radioAdapter"] = radioAdapter.dictionaryRepresentation - } - - if let override = overrideStatus { - rval["override"] = override.dictionaryRepresentation - } - - if let identifier = identifier { - rval["identifier"] = identifier - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let identifier = rawValue["_id"] as? String, - let timestampStr = rawValue["created_at"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr), - let device = rawValue["device"] as? String - else { - return nil - } - - self.timestamp = timestamp - self.device = device - self.identifier = identifier - - if let loopStatusRaw = rawValue["loop"] as? LoopStatus.RawValue { - loopStatus = LoopStatus(rawValue: loopStatusRaw) - } else { - loopStatus = nil - } - - // TODO: OverrideStatus not being parsed yet - self.overrideStatus = nil - - // TODO: PumpStatus not being parsed yet - self.pumpStatus = nil - - // TODO: UploaderStatus not being parsed yet - self.uploaderStatus = nil - - // TODO: RadioAdapter not being parsed yet - self.radioAdapter = nil - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/ForecastError.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/ForecastError.swift deleted file mode 100644 index ec6945df67..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/ForecastError.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// ForecastError.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 5/28/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. -// - -import Foundation -import HealthKit - -public struct ForecastError { - typealias RawValue = [String: Any] - - let velocity: Double - let measurementDuration: TimeInterval - - public init(velocity: HKQuantity, measurementDuration: TimeInterval) { - - let glucoseUnit = HKUnit.milligramsPerDeciliter - let velocityUnit = glucoseUnit.unitDivided(by: HKUnit.second()) - - self.velocity = velocity.doubleValue(for: velocityUnit) - self.measurementDuration = measurementDuration - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - rval["velocity"] = velocity - rval["measurementDuration"] = measurementDuration - //rval["velocityUnits"] = "mg/dL/s" - return rval - } - - init?(rawValue: RawValue) { - guard - let velocity = rawValue["velocity"] as? Double, - let measurementDuration = rawValue["measurementDuration"] as? TimeInterval - else { - return nil - } - - self.velocity = velocity - self.measurementDuration = measurementDuration - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/GlucoseEntry.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/GlucoseEntry.swift deleted file mode 100644 index aec733f944..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/GlucoseEntry.swift +++ /dev/null @@ -1,150 +0,0 @@ -// -// GlucoseEntry.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 4/19/20. -// Copyright © 2020 Pete Schwamb. All rights reserved. -// -import Foundation - -public struct GlucoseEntry { - typealias RawValue = [String: Any] - - public enum GlucoseType: String { - case meter - case sensor - } - - public enum GlucoseTrend: Int, CaseIterable { - case upUpUp = 1 - case upUp = 2 - case up = 3 - case flat = 4 - case down = 5 - case downDown = 6 - case downDownDown = 7 - case notComputable = 8 - case rateOutOfRange = 9 - - init?(direction: String) { - for trend in GlucoseTrend.allCases { - if direction == trend.direction { - self = trend - return - } - } - return nil - } - - public var direction: String { - switch self { - case .upUpUp: - return "DoubleUp" - case .upUp: - return "SingleUp" - case .up: - return "FortyFiveUp" - case .flat: - return "Flat" - case .down: - return "FortyFiveDown" - case .downDown: - return "SingleDown" - case .downDownDown: - return "DoubleDown" - case .notComputable: - return "NotComputable" - case .rateOutOfRange: - return "RateOutOfRange" - } - } - } - - - public let id: String? - public let glucose: Double - public let date: Date - public let device: String? - public let glucoseType: GlucoseType - public let trend: GlucoseTrend? - public let changeRate: Double? - public let isCalibration: Bool? - - public init(glucose: Double, date: Date, device: String?, glucoseType: GlucoseType = .sensor, trend: GlucoseTrend? = nil, changeRate: Double?, isCalibration: Bool? = false, id: String? = nil) { - self.glucose = glucose - self.date = date - self.device = device - self.glucoseType = glucoseType - self.trend = trend - self.changeRate = changeRate - self.isCalibration = isCalibration - self.id = id - } - - public var dictionaryRepresentation: [String: Any] { - var representation: [String: Any] = [ - "date": date.timeIntervalSince1970 * 1000, - "dateString": TimeFormat.timestampStrFromDate(date) - ] - - representation["device"] = device - representation["_id"] = id - - switch glucoseType { - case .meter: - representation["type"] = "mbg" - representation["mbg"] = glucose - case .sensor: - representation["type"] = "sgv" - representation["sgv"] = glucose - } - - if let trend = trend { - representation["trend"] = trend.rawValue - representation["direction"] = trend.direction - } - - representation["trendRate"] = changeRate - representation["isCalibration"] = isCalibration - - return representation - } - - init?(rawValue: RawValue) { - - guard - let id = rawValue["_id"] as? String, - let epoch = rawValue["date"] as? Double - else { - return nil - } - - self.id = id - self.date = Date(timeIntervalSince1970: epoch / 1000.0) - self.device = rawValue["device"] as? String - - //Dexcom changed the format of trend in 2021 so we accept both String/Int types - if let intTrend = rawValue["trend"] as? Int { - self.trend = GlucoseTrend(rawValue: intTrend) - } else if let stringTrend = rawValue["trend"] as? String, let intTrend = Int(stringTrend) { - self.trend = GlucoseTrend(rawValue: intTrend) - } else if let directionString = rawValue["direction"] as? String { - self.trend = GlucoseTrend(direction: directionString) - } else { - self.trend = nil - } - - if let sgv = rawValue["sgv"] as? Double { - self.glucose = sgv - self.glucoseType = .sensor - } else if let mbg = rawValue["mbg"] as? Double { - self.glucose = mbg - self.glucoseType = .meter - } else { - return nil - } - - self.changeRate = rawValue["trendRate"] as? Double - self.isCalibration = rawValue["isCalibration"] as? Bool - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/IOBStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/IOBStatus.swift deleted file mode 100644 index ee1763697c..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/IOBStatus.swift +++ /dev/null @@ -1,54 +0,0 @@ -// -// IOBStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/28/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct IOBStatus { - typealias RawValue = [String: Any] - - public let timestamp: Date - public let iob: Double? // basal iob + bolus iob: can be negative - let basalIOB: Double? // does not include bolus iob - - public init(timestamp: Date, iob: Double? = nil, basalIOB: Double? = nil) { - self.timestamp = timestamp - self.iob = iob - self.basalIOB = basalIOB - } - - public var dictionaryRepresentation: [String: Any] { - - var rval = [String: Any]() - - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - - if let iob = iob { - rval["iob"] = iob - } - - if let basalIOB = basalIOB { - rval["basaliob"] = basalIOB - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let timestampStr = rawValue["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr) - else { - return nil - } - - self.timestamp = timestamp - - iob = rawValue["iob"] as? Double - basalIOB = rawValue["basaliob"] as? Double - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopEnacted.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopEnacted.swift deleted file mode 100644 index 50741620bd..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopEnacted.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// LoopEnacted.swift -// RileyLink -// -// Created by Pete Schwamb on 7/28/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct LoopEnacted { - typealias RawValue = [String: Any] - - let rate: Double? - let duration: TimeInterval? - let timestamp: Date - let received: Bool - let bolusVolume: Double - - public init(rate: Double?, duration: TimeInterval?, timestamp: Date, received: Bool, bolusVolume: Double = 0) { - self.rate = rate - self.duration = duration - self.timestamp = timestamp - self.received = received - self.bolusVolume = bolusVolume - } - - public var dictionaryRepresentation: [String: Any] { - - var rval = [String: Any]() - - rval["rate"] = rate - if let duration = duration { - rval["duration"] = duration / 60.0 - } - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - rval["received"] = received - rval["bolusVolume"] = bolusVolume - return rval - } - - init?(rawValue: RawValue) { - guard - let rate = rawValue["rate"] as? Double, - let durationMinutes = rawValue["duration"] as? Double, - let timestampStr = rawValue["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr), - let received = rawValue["received"] as? Bool - else { - return nil - } - - self.rate = rate - self.duration = TimeInterval(minutes: durationMinutes) - self.timestamp = timestamp - self.received = received - self.bolusVolume = rawValue["bolusVolume"] as? Double ?? 0 - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopSettings.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopSettings.swift deleted file mode 100644 index 5a794dbc45..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopSettings.swift +++ /dev/null @@ -1,95 +0,0 @@ -// -// LoopSettings.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 4/21/20. -// Copyright © 2020 Pete Schwamb. All rights reserved. -// -import Foundation - -public struct LoopSettings { - typealias RawValue = [String: Any] - - public let dosingEnabled: Bool - public let overridePresets: [TemporaryScheduleOverride] - public let scheduleOverride: TemporaryScheduleOverride? - public let minimumBGGuard: Double? - public let preMealTargetRange: ClosedRange? - public let maximumBasalRatePerHour: Double? - public let maximumBolus: Double? - public let deviceToken: String? - public let bundleIdentifier: String? - public let dosingStrategy: String? - - public init(dosingEnabled: Bool, overridePresets: [TemporaryScheduleOverride], scheduleOverride: TemporaryScheduleOverride?, minimumBGGuard: Double?, preMealTargetRange: ClosedRange?, maximumBasalRatePerHour: Double?, maximumBolus: Double?, - deviceToken: String?, bundleIdentifier: String?, dosingStrategy: String?) { - self.dosingEnabled = dosingEnabled - self.overridePresets = overridePresets - self.scheduleOverride = scheduleOverride - self.minimumBGGuard = minimumBGGuard - self.preMealTargetRange = preMealTargetRange - self.maximumBasalRatePerHour = maximumBasalRatePerHour - self.maximumBolus = maximumBolus - self.deviceToken = deviceToken - self.bundleIdentifier = bundleIdentifier - self.dosingStrategy = dosingStrategy - } - - public var dictionaryRepresentation: [String: Any] { - - var rval: [String: Any] = [ - "dosingEnabled": dosingEnabled, - "overridePresets": overridePresets.map { $0.dictionaryRepresentation }, - ] - - rval["minimumBGGuard"] = minimumBGGuard - rval["scheduleOverride"] = scheduleOverride?.dictionaryRepresentation - - if let preMealTargetRange = preMealTargetRange { - rval["preMealTargetRange"] = [preMealTargetRange.lowerBound, preMealTargetRange.upperBound] - } - - rval["maximumBasalRatePerHour"] = maximumBasalRatePerHour - rval["maximumBolus"] = maximumBolus - rval["deviceToken"] = deviceToken - rval["dosingStrategy"] = dosingStrategy - - if let bundleIdentifier = bundleIdentifier { - rval["bundleIdentifier"] = bundleIdentifier - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let dosingEnabled = rawValue["dosingEnabled"] as? Bool, - let overridePresetsRaw = rawValue["overridePresets"] as? [TemporaryScheduleOverride.RawValue] - else { - return nil - } - - self.dosingEnabled = dosingEnabled - self.overridePresets = overridePresetsRaw.compactMap { TemporaryScheduleOverride(rawValue: $0) } - - if let scheduleOverrideRaw = rawValue["scheduleOverride"] as? TemporaryScheduleOverride.RawValue { - scheduleOverride = TemporaryScheduleOverride(rawValue: scheduleOverrideRaw) - } else { - scheduleOverride = nil - } - - minimumBGGuard = rawValue["minimumBGGuard"] as? Double - - if let preMealTargetRangeRaw = rawValue["preMealTargetRange"] as? [Double], preMealTargetRangeRaw.count == 2 { - preMealTargetRange = ClosedRange(uncheckedBounds: (lower: preMealTargetRangeRaw[0], upper: preMealTargetRangeRaw[1])) - } else { - preMealTargetRange = nil - } - - maximumBasalRatePerHour = rawValue["maximumBasalRatePerHour"] as? Double - maximumBolus = rawValue["maximumBolus"] as? Double - deviceToken = rawValue["deviceToken"] as? String - bundleIdentifier = rawValue["bundleIdentifier"] as? String - dosingStrategy = rawValue["dosingStrategy"] as? String - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopStatus.swift deleted file mode 100644 index ed06b76a3e..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/LoopStatus.swift +++ /dev/null @@ -1,172 +0,0 @@ -// -// LoopStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/26/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation -import HealthKit - -public struct LoopStatus { - typealias RawValue = [String: Any] - - let name: String - let version: String - let timestamp: Date - - public let iob: IOBStatus? - public let cob: COBStatus? - public let predicted: PredictedBG? - let automaticDoseRecommendation: AutomaticDoseRecommendation? - let recommendedBolus: Double? - let enacted: LoopEnacted? - let rileylinks: [RileyLinkStatus]? - let failureReason: String? - let currentCorrectionRange: CorrectionRange? - let forecastError: ForecastError? - let testingDetails: [String: Any]? - - public init(name: String, version: String, timestamp: Date, iob: IOBStatus? = nil, cob: COBStatus? = nil, predicted: PredictedBG? = nil, automaticDoseRecommendation: AutomaticDoseRecommendation? = nil, recommendedBolus: Double? = nil, enacted: LoopEnacted? = nil, rileylinks: [RileyLinkStatus]? = nil, failureReason: String? = nil, currentCorrectionRange: CorrectionRange? = nil, forecastError: ForecastError? = nil, testingDetails: [String: Any]? = nil) { - self.name = name - self.version = version - self.timestamp = timestamp - self.iob = iob - self.cob = cob - self.predicted = predicted - self.automaticDoseRecommendation = automaticDoseRecommendation - self.recommendedBolus = recommendedBolus - self.enacted = enacted - self.rileylinks = rileylinks - self.failureReason = failureReason - self.currentCorrectionRange = currentCorrectionRange - self.forecastError = forecastError - self.testingDetails = testingDetails - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["name"] = name - rval["version"] = version - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - - if let iob = iob { - rval["iob"] = iob.dictionaryRepresentation - } - - if let cob = cob { - rval["cob"] = cob.dictionaryRepresentation - } - - if let predicted = predicted { - rval["predicted"] = predicted.dictionaryRepresentation - } - - if let automaticDoseRecommendation = automaticDoseRecommendation { - rval["automaticDoseRecommendation"] = automaticDoseRecommendation.dictionaryRepresentation - } - - if let recommendedBolus = recommendedBolus { - rval["recommendedBolus"] = recommendedBolus - } - - if let enacted = enacted { - rval["enacted"] = enacted.dictionaryRepresentation - } - - if let failureReason = failureReason { - rval["failureReason"] = failureReason - } - - if let rileylinks = rileylinks { - rval["rileylinks"] = rileylinks.map { $0.dictionaryRepresentation } - } - - if let currentCorrectionRange = currentCorrectionRange { - rval["currentCorrectionRange"] = currentCorrectionRange.dictionaryRepresentation - } - - if let forecastError = forecastError { - rval["forecastError"] = forecastError.dictionaryRepresentation - } - - if let testingDetails = testingDetails { - rval["testingDetails"] = testingDetails - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let name = rawValue["name"] as? String, - let version = rawValue["version"] as? String, - let timestampStr = rawValue["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr) - else { - return nil - } - - self.name = name - self.version = version - self.timestamp = timestamp - - if let iobRaw = rawValue["iob"] as? IOBStatus.RawValue { - self.iob = IOBStatus(rawValue: iobRaw) - } else { - self.iob = nil - } - - if let cobRaw = rawValue["cob"] as? COBStatus.RawValue { - self.cob = COBStatus(rawValue: cobRaw) - } else { - self.cob = nil - } - - if let predictedRaw = rawValue["predicted"] as? PredictedBG.RawValue { - predicted = PredictedBG(rawValue: predictedRaw) - } else { - predicted = nil - } - - if let automaticDoseRecommendationRaw = rawValue["automaticDoseRecommendation"] as? AutomaticDoseRecommendation.RawValue { - automaticDoseRecommendation = AutomaticDoseRecommendation(rawValue: automaticDoseRecommendationRaw) - } else { - automaticDoseRecommendation = nil - } - - recommendedBolus = rawValue["recommendedBolus"] as? Double - - if let enactedRaw = rawValue["enacted"] as? LoopEnacted.RawValue { - enacted = LoopEnacted(rawValue: enactedRaw) - } else { - enacted = nil - } - - if let rileylinksRaw = rawValue["rileylinks"] as? [RileyLinkStatus.RawValue] { - rileylinks = rileylinksRaw.compactMap { RileyLinkStatus(rawValue: $0 ) } - } else { - rileylinks = nil - } - - failureReason = rawValue["failureReason"] as? String - - if let currentCorrectionRangeRaw = rawValue["currentCorrectionRange"] as? CorrectionRange.RawValue { - currentCorrectionRange = CorrectionRange(rawValue: currentCorrectionRangeRaw) - } else { - currentCorrectionRange = nil - } - - if let forecastErrorRaw = rawValue["forecastError"] as? ForecastError.RawValue { - forecastError = ForecastError(rawValue: forecastErrorRaw) - } else { - forecastError = nil - } - - testingDetails = rawValue["testingDetails"] as? [String: Any] - - } -} - diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/NightscoutProfile.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/NightscoutProfile.swift deleted file mode 100644 index ec314a91d2..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/NightscoutProfile.swift +++ /dev/null @@ -1,180 +0,0 @@ -// -// NightscoutProfile.swift -// NightscoutUploadKit -// - -import Foundation - -fileprivate let timeZoneMap = (-18...18).reduce(into: [String: String]()) { (dict, hour) in - let from = TimeZone(secondsFromGMT: 3600 * hour)!.identifier - let to = String(format: "ETC/GMT%+d", hour * -1) - dict[from] = to -} - -fileprivate let reverseTimeZoneMap = timeZoneMap.reduce(into: [String: String]()) { (dict, entry) in - dict[entry.value] = entry.key -} - -public class ProfileSet { - typealias RawValue = [String: Any] - - public typealias ProfileStore = [String: Profile] - typealias ProfileStoreRawValue = [String: Profile.RawValue] - - public struct ScheduleItem { - typealias RawValue = [String: Any] - - public let offset: TimeInterval - public let value: Double - - public init(offset: TimeInterval, value: Double) { - self.offset = offset - self.value = value - } - - public var dictionaryRepresentation: [String: Any] { - var rep = [String: Any]() - let hours = floor(offset.hours) - let minutes = floor((offset - TimeInterval(hours: hours)).minutes) - rep["time"] = String(format:"%02i:%02i", Int(hours), Int(minutes)) - rep["value"] = value - rep["timeAsSeconds"] = Int(offset) - return rep - } - - init?(rawValue: RawValue) { - guard - let timeAsSeconds = rawValue["timeAsSeconds"] as? Double, - let value = rawValue["value"] as? Double - else { - return nil - } - - self.offset = TimeInterval(timeAsSeconds) - self.value = value - } - } - - public struct Profile { - typealias RawValue = [String: Any] - - public let timeZone: TimeZone - public let dia: TimeInterval - public let sensitivity: [ScheduleItem] - public let carbratio: [ScheduleItem] - public let basal: [ScheduleItem] - public let targetLow: [ScheduleItem] - public let targetHigh: [ScheduleItem] - public let units: String? - - public init(timezone: TimeZone, dia: TimeInterval, sensitivity: [ScheduleItem], carbratio: [ScheduleItem], basal: [ScheduleItem], targetLow: [ScheduleItem], targetHigh: [ScheduleItem], units: String) { - self.timeZone = timezone - self.dia = dia - self.sensitivity = sensitivity - self.carbratio = carbratio - self.basal = basal - self.targetLow = targetLow - self.targetHigh = targetHigh - self.units = units - } - - public var dictionaryRepresentation: [String: Any] { - var rval: [String: Any] = [ - "dia": dia.hours, - "carbs_hr": "0", - "delay": "0", - "timezone": timeZoneMap[timeZone.identifier] ?? timeZone.identifier, - "target_low": targetLow.map { $0.dictionaryRepresentation }, - "target_high": targetHigh.map { $0.dictionaryRepresentation }, - "sens": sensitivity.map { $0.dictionaryRepresentation }, - "basal": basal.map { $0.dictionaryRepresentation }, - "carbratio": carbratio.map { $0.dictionaryRepresentation }, - ] - rval["units"] = units - return rval - } - - init?(rawValue: RawValue) { - guard - let nsTimezoneIdentifier = rawValue["timezone"] as? String, - let timeZoneIdentifier = reverseTimeZoneMap[nsTimezoneIdentifier], - let timeZone = TimeZone(identifier: timeZoneIdentifier), - let diaHours = rawValue["dia"] as? Double, - let sensitivityRaw = rawValue["sens"] as? [ScheduleItem.RawValue], - let carbratioRaw = rawValue["carbratio"] as? [ScheduleItem.RawValue], - let basalRaw = rawValue["basal"] as? [ScheduleItem.RawValue], - let targetLowRaw = rawValue["target_low"] as? [ScheduleItem.RawValue], - let targetHighRaw = rawValue["target_high"] as? [ScheduleItem.RawValue] - else { - return nil - } - - self.timeZone = timeZone - self.dia = TimeInterval(hours: diaHours) - self.sensitivity = sensitivityRaw.compactMap { ScheduleItem(rawValue: $0) } - self.carbratio = carbratioRaw.compactMap { ScheduleItem(rawValue: $0) } - self.basal = basalRaw.compactMap { ScheduleItem(rawValue: $0) } - self.targetLow = targetLowRaw.compactMap { ScheduleItem(rawValue: $0) } - self.targetHigh = targetHighRaw.compactMap { ScheduleItem(rawValue: $0) } - self.units = rawValue["units"] as? String - } - } - - public let startDate : Date - public let units: String - public let enteredBy: String - public let defaultProfile: String - public let store: ProfileStore - public let settings: LoopSettings - - public init(startDate: Date, units: String, enteredBy: String, defaultProfile: String, store: ProfileStore, settings: LoopSettings) { - self.startDate = startDate - self.units = units - self.enteredBy = enteredBy - self.defaultProfile = defaultProfile - self.store = store - self.settings = settings - } - - public var dictionaryRepresentation: [String: Any] { - let dateFormatter = ISO8601DateFormatter.defaultFormatter() - let mills = String(format: "%.0f", startDate.timeIntervalSince1970.milliseconds) - - let dictProfiles = Dictionary(uniqueKeysWithValues: - store.map { key, value in (key, value.dictionaryRepresentation) }) - - let rval : [String: Any] = [ - "defaultProfile": defaultProfile, - "startDate": dateFormatter.string(from: startDate), - "mills": mills, - "units": units, - "enteredBy": enteredBy, - "loopSettings": settings.dictionaryRepresentation, - "store": dictProfiles - ] - - return rval - } - - init?(rawValue: RawValue) { - guard - let startDateStr = rawValue["startDate"] as? String, - let startDate = TimeFormat.dateFromTimestamp(startDateStr), - let units = rawValue["units"] as? String, - let enteredBy = rawValue["enteredBy"] as? String, - let defaultProfile = rawValue["defaultProfile"] as? String, - let storeRaw = rawValue["store"] as? ProfileStoreRawValue, - let settingsRaw = rawValue["loopSettings"] as? LoopSettings.RawValue, - let settings = LoopSettings(rawValue: settingsRaw) - else { - return nil - } - - self.startDate = startDate - self.units = units - self.enteredBy = enteredBy - self.defaultProfile = defaultProfile - self.store = storeRaw.compactMapValues { Profile(rawValue: $0) } - self.settings = settings - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/OverrideStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/OverrideStatus.swift deleted file mode 100755 index e8bbdb424b..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/OverrideStatus.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// OverrideStatus.swift -// NightscoutUploadKit -// -// Created by Kenneth Stack on 5/6/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -import Foundation -import HealthKit - -public struct OverrideStatus { - let name: String? - let timestamp: Date - let active: Bool - let currentCorrectionRange: CorrectionRange? - let duration: TimeInterval? - let multiplier: Double? - - - public init(name: String? = nil, timestamp: Date, active: Bool, currentCorrectionRange: CorrectionRange? = nil, duration: TimeInterval? = nil, multiplier: Double? = nil) { - self.name = name - self.timestamp = timestamp - self.active = active - self.currentCorrectionRange = currentCorrectionRange - self.duration = duration - self.multiplier = multiplier - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - rval["active"] = active - - if let name = name { - rval["name"] = name - } - - if let currentCorrectionRange = currentCorrectionRange { - rval["currentCorrectionRange"] = currentCorrectionRange.dictionaryRepresentation - } - - if let duration = duration { - rval["duration"] = duration - } - - if let multiplier = multiplier { - rval["multiplier"] = multiplier - } - - return rval - } - - - -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PredictedBG.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PredictedBG.swift deleted file mode 100644 index c1c35fbd56..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PredictedBG.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// PredictedBG.swift -// RileyLink -// -// Created by Pete Schwamb on 8/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation -import HealthKit - -public struct PredictedBG { - typealias RawValue = [String: Any] - - public let startDate: Date - public let values: [Double] - public let cob: [Double]? - public let iob: [Double]? - - public init(startDate: Date, values: [HKQuantity], cob: [HKQuantity]? = nil, iob: [HKQuantity]? = - nil) { - self.startDate = startDate - // BG values in nightscout are in mg/dL. - let unit = HKUnit.milligramsPerDeciliter - self.values = values.map { round($0.doubleValue(for: unit) * 100) / 100 } - self.cob = cob?.map { round($0.doubleValue(for: unit) * 100) / 100 } - self.iob = iob?.map { round($0.doubleValue(for: unit) * 100) / 100 } - } - - public var dictionaryRepresentation: [String: Any] { - var rval = RawValue() - - rval["startDate"] = TimeFormat.timestampStrFromDate(startDate) - rval["values"] = values - - if let cob = cob { - rval["COB"] = cob - } - - if let iob = iob { - rval["IOB"] = iob - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let startDateRaw = rawValue["startDate"] as? String, - let startDate = TimeFormat.dateFromTimestamp(startDateRaw), - let values = rawValue["values"] as? [Double] - else { - return nil - } - - self.startDate = startDate - self.values = values - self.cob = rawValue["COB"] as? [Double] - self.iob = rawValue["IOB"] as? [Double] - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PumpStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PumpStatus.swift deleted file mode 100644 index 4f5ca28c8f..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/PumpStatus.swift +++ /dev/null @@ -1,67 +0,0 @@ -// -// PumpStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/26/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public enum NightscoutSeverityLevel: Int { - case urgent = 2 - case warn = 1 - case info = 0 - case low = -1 - case lowest = -2 - case none = -3 -} - -public struct PumpStatus { - let clock: Date - let pumpID: String - let manufacturer: String? - let model: String? - let iob: IOBStatus? - let battery: BatteryStatus? - let suspended: Bool? - let bolusing: Bool? - let reservoir: Double? - let secondsFromGMT: Int? - let reservoirDisplayOverride: String? - let reservoirLevelOverride: NightscoutSeverityLevel? - - public init(clock: Date, pumpID: String, manufacturer: String? = nil, model: String? = nil, iob: IOBStatus? = nil, battery: BatteryStatus? = nil, suspended: Bool? = nil, bolusing: Bool? = nil, reservoir: Double? = nil, secondsFromGMT: Int? = nil, reservoirDisplayOverride: String?, reservoirLevelOverride: NightscoutSeverityLevel?) { - self.clock = clock - self.pumpID = pumpID - self.manufacturer = manufacturer - self.model = model - self.iob = iob - self.battery = battery - self.suspended = suspended - self.bolusing = bolusing - self.reservoir = reservoir - self.secondsFromGMT = secondsFromGMT - self.reservoirDisplayOverride = reservoirDisplayOverride - self.reservoirLevelOverride = reservoirLevelOverride - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["clock"] = TimeFormat.timestampStrFromDate(clock) - rval["pumpID"] = pumpID - rval["manufacturer"] = manufacturer - rval["model"] = model - rval["iob"] = iob?.dictionaryRepresentation - rval["battery"] = battery?.dictionaryRepresentation - rval["suspended"] = suspended - rval["bolusing"] = bolusing - rval["reservoir"] = reservoir - rval["secondsFromGMT"] = secondsFromGMT - rval["reservoir_display_override"] = reservoirDisplayOverride - rval["reservoir_level_override"] = reservoirLevelOverride?.rawValue - - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RadioAdapter.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RadioAdapter.swift deleted file mode 100644 index b95360d234..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RadioAdapter.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// RadioAdapter.swift -// RileyLink -// -// Created by Pete Schwamb on 2/26/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct RadioAdapter { - let hardware: String - let frequency: Double? - let name: String? - let lastTuned: Date? - let firmwareVersion: String - let RSSI: Int? - let pumpRSSI: Int? - - public init(hardware: String, frequency: Double?, name: String, lastTuned: Date?, firmwareVersion: String, RSSI: Int?, pumpRSSI: Int?) { - self.hardware = hardware - self.frequency = frequency - self.name = name - self.lastTuned = lastTuned - self.firmwareVersion = firmwareVersion - self.RSSI = RSSI - self.pumpRSSI = pumpRSSI - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["hardware"] = hardware - - if let frequency = frequency { - rval["frequency"] = frequency - } - - if let name = name { - rval["name"] = name - } - - if let lastTuned = lastTuned { - rval["lastTuned"] = TimeFormat.timestampStrFromDate(lastTuned) - } - - rval["firmwareVersion"] = firmwareVersion - - if let RSSI = RSSI { - rval["RSSI"] = RSSI - } - - if let pumpRSSI = pumpRSSI { - rval["pumpRSSI"] = pumpRSSI - } - - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RileyLinkStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RileyLinkStatus.swift deleted file mode 100644 index abf32245f1..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/RileyLinkStatus.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// RileyLinkStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 8/12/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct RileyLinkStatus { - typealias RawValue = [String: Any] - - public enum State: String { - case Connected = "connected" - case Connecting = "connecting" - case Disconnected = "disconnected" - } - - let name: String - let state: State - let lastIdle: Date? - let version: String? - let rssi: Double? - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["name"] = name - rval["state"] = state.rawValue - - if let lastIdle = lastIdle { - rval["lastIdle"] = TimeFormat.timestampStrFromDate(lastIdle) - } - - if let version = version { - rval["version"] = version - } - - if let rssi = rssi { - rval["rssi"] = rssi - } - - return rval - } - - init?(rawValue: RawValue) { - guard - let name = rawValue["name"] as? String, - let stateRaw = rawValue["state"] as? State.RawValue, - let state = State(rawValue: stateRaw) - else { - return nil - } - - self.name = name - self.state = state - - version = rawValue["version"] as? String - - if let lastIdleStr = rawValue["lastIdle"] as? String, let lastIdle = TimeFormat.dateFromTimestamp(lastIdleStr) { - self.lastIdle = lastIdle - } else { - self.lastIdle = nil - } - - rssi = rawValue["rssi"] as? Double - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TempBasalAdjustment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TempBasalAdjustment.swift deleted file mode 100644 index 24b27b7407..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TempBasalAdjustment.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// TempBasalAdjustment.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 7/28/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct TempBasalAdjustment { - typealias RawValue = [String: Any] - - let rate: Double - let duration: TimeInterval - - public init(rate: Double, duration: TimeInterval) { - self.rate = rate - self.duration = duration - } - - public var dictionaryRepresentation: [String: Any] { - - var rval = [String: Any]() - - rval["rate"] = rate - rval["duration"] = duration / 60.0 - return rval - } - - init?(rawValue: RawValue) { - guard - let rate = rawValue["rate"] as? Double, - let durationMinutes = rawValue["duration"] as? Double - else { - return nil - } - - self.rate = rate - self.duration = TimeInterval(minutes: durationMinutes) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TemporaryScheduleOverride.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TemporaryScheduleOverride.swift deleted file mode 100644 index d668f420f4..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/TemporaryScheduleOverride.swift +++ /dev/null @@ -1,67 +0,0 @@ -// -// TemporaryScheduleOverride.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 2/21/22. -// Copyright © 2022 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct TemporaryScheduleOverride { - typealias RawValue = [String: Any] - - public let targetRange: ClosedRange? - public let insulinNeedsScaleFactor: Double? - public let symbol: String? - public let duration: TimeInterval - public let name: String? - - public init(duration: TimeInterval, targetRange: ClosedRange?, insulinNeedsScaleFactor: Double?, symbol: String?, name: String?) { - self.targetRange = targetRange - self.insulinNeedsScaleFactor = insulinNeedsScaleFactor - self.symbol = symbol - self.duration = duration - self.name = name - } - - public var dictionaryRepresentation: [String: Any] { - var rval: [String: Any] = [ - "duration": duration, - ] - - if let symbol = symbol { - rval["symbol"] = symbol - } - - if let targetRange = targetRange { - rval["targetRange"] = [targetRange.lowerBound, targetRange.upperBound] - } - - if let insulinNeedsScaleFactor = insulinNeedsScaleFactor { - rval["insulinNeedsScaleFactor"] = insulinNeedsScaleFactor - } - - if let name = name { - rval["name"] = name - } - - return rval - } - - init?(rawValue: RawValue) { - guard let duration = rawValue["duration"] as? TimeInterval else { - return nil - } - - if let targetRangeRaw = rawValue["targetRange"] as? [Double], targetRangeRaw.count == 2 { - targetRange = ClosedRange(uncheckedBounds: (lower: targetRangeRaw[0], upper: targetRangeRaw[1])) - } else { - targetRange = nil - } - insulinNeedsScaleFactor = rawValue["insulinNeedsScaleFactor"] as? Double - symbol = rawValue["symbol"] as? String - self.duration = duration - name = rawValue["name"] as? String - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BGCheckNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BGCheckNightscoutTreatment.swift deleted file mode 100644 index 4059516b3d..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BGCheckNightscoutTreatment.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// BGCheckNightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class BGCheckNightscoutTreatment: NightscoutTreatment { - - let glucose: Double - let glucoseType: GlucoseType - let units: Units - - public init(timestamp: Date, enteredBy: String, glucose: Double, glucoseType: GlucoseType, units: Units, notes: String? = nil) { - self.glucose = glucose - self.glucoseType = glucoseType - self.units = units - super.init(timestamp: timestamp, enteredBy: enteredBy, notes: notes, eventType: .bloodGlucoseCheck) - } - - required public init?(_ entry: [String : Any]) { - guard - let glucose = entry["glucose"] as? Double, - let glucoseTypeRaw = entry["glucoseType"] as? String, - let glucoseType = GlucoseType(rawValue: glucoseTypeRaw), - let unitsRaw = entry["units"] as? String, - let units = Units(rawValue: unitsRaw) - else { - return nil - } - - self.glucose = glucose - self.glucoseType = glucoseType - self.units = units - - super.init(entry) - } - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - rval["glucose"] = glucose - rval["glucoseType"] = glucoseType.rawValue - rval["units"] = units.rawValue - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BolusNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BolusNightscoutTreatment.swift deleted file mode 100644 index f1b101bd7a..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/BolusNightscoutTreatment.swift +++ /dev/null @@ -1,66 +0,0 @@ -// -// BolusNightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class BolusNightscoutTreatment: NightscoutTreatment { - - public enum BolusType: String { - case Normal = "normal" - case Square = "square" - case DualWave = "dual" - } - - public let bolusType: BolusType - public let amount: Double - public let programmed: Double - public let unabsorbed: Double? - public let duration: TimeInterval - public let automatic: Bool - - public init(timestamp: Date, enteredBy: String, bolusType: BolusType, amount: Double, programmed: Double, unabsorbed: Double, duration: TimeInterval, automatic: Bool, notes: String? = nil, id: String? = nil, syncIdentifier: String? = nil, insulinType: String?) { - self.bolusType = bolusType - self.amount = amount - self.programmed = programmed - self.unabsorbed = unabsorbed - self.duration = duration - self.automatic = automatic - super.init(timestamp: timestamp, enteredBy: enteredBy, notes: notes, id: id, eventType: .correctionBolus, syncIdentifier: syncIdentifier, insulinType: insulinType) - } - - required public init?(_ entry: [String : Any]) { - guard - let bolusTypeRaw = entry["type"] as? String, - let bolusType = BolusType(rawValue: bolusTypeRaw), - let amount = entry["insulin"] as? Double, - let programmed = entry["programmed"] as? Double, - let durationMinutes = entry["duration"] as? Double - else { - return nil - } - - self.bolusType = bolusType - self.amount = amount - self.programmed = programmed - self.duration = TimeInterval(minutes: durationMinutes) - self.unabsorbed = entry["unabsorbed"] as? Double - self.automatic = entry["automatic"] as? Bool ?? false - super.init(entry) - } - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - rval["type"] = bolusType.rawValue - rval["insulin"] = amount - rval["programmed"] = programmed - rval["unabsorbed"] = unabsorbed - rval["duration"] = duration.minutes - rval["automatic"] = automatic - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/CarbCorrectionNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/CarbCorrectionNightscoutTreatment.swift deleted file mode 100644 index 463bfa3abb..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/CarbCorrectionNightscoutTreatment.swift +++ /dev/null @@ -1,107 +0,0 @@ -// -// CarbCorrectionNightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class CarbCorrectionNightscoutTreatment: NightscoutTreatment { - - public let carbs: Int - let absorptionTime: TimeInterval? - let glucose: Int? - let units: Units? // of glucose entry - let glucoseType: GlucoseType? - let foodType: String? - let userEnteredAt: Date? - let userLastModifiedAt: Date? - - public init(timestamp: Date, enteredBy: String, id: String?, carbs: Int, absorptionTime: TimeInterval? = nil, glucose: Int? = nil, glucoseType: GlucoseType? = nil, units: Units? = nil, foodType: String? = nil, notes: String? = nil, syncIdentifier: String? = nil, userEnteredAt: Date? = nil, userLastModifiedAt: Date? = nil) { - self.carbs = carbs - self.absorptionTime = absorptionTime - self.glucose = glucose - self.glucoseType = glucoseType - self.units = units - self.foodType = foodType - self.userEnteredAt = userEnteredAt - self.userLastModifiedAt = userLastModifiedAt - super.init(timestamp: timestamp, enteredBy: enteredBy, notes: notes, id: id, eventType: .carbCorrection, syncIdentifier: syncIdentifier) - } - - required public init?(_ entry: [String : Any]) { - guard - let carbs = entry["carbs"] as? Int, - let absorptionTimeMinutes = entry["absorptionTime"] as? Double - else { - return nil - } - - self.carbs = carbs - self.absorptionTime = TimeInterval(minutes: absorptionTimeMinutes) - - self.glucose = entry["glucose"] as? Int - - if let rawGlucoseType = entry["glucoseType"] as? GlucoseType.RawValue, - let glucoseType = GlucoseType(rawValue: rawGlucoseType) - { - self.glucoseType = glucoseType - } else { - self.glucoseType = nil - } - - if let rawUnits = entry["units"] as? String, - let units = Units(rawValue: rawUnits) - { - self.units = units - } else { - self.units = nil - } - - self.foodType = entry["foodType"] as? String - - if let userEnteredAtRaw = entry["userEnteredAt"] as? String, - let userEnteredAt = TimeFormat.dateFromTimestamp(userEnteredAtRaw) - { - self.userEnteredAt = userEnteredAt - } else { - self.userEnteredAt = nil - } - - if let userLastModifiedAtRaw = entry["userLastModifiedAt"] as? String, - let userLastModifiedAt = TimeFormat.dateFromTimestamp(userLastModifiedAtRaw) - { - self.userLastModifiedAt = userLastModifiedAt - } else { - self.userLastModifiedAt = nil - } - - super.init(entry) - } - - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - rval["carbs"] = carbs - if let absorptionTime = absorptionTime { - rval["absorptionTime"] = absorptionTime.minutes - } - if let glucose = glucose { - rval["glucose"] = glucose - rval["glucoseType"] = glucoseType?.rawValue - rval["units"] = units?.rawValue - } - if let foodType = foodType { - rval["foodType"] = foodType - } - if let userEnteredAt = userEnteredAt { - rval["userEnteredAt"] = TimeFormat.timestampStrFromDate(userEnteredAt) - } - if let userLastModifiedAt = userLastModifiedAt { - rval["userLastModifiedAt"] = TimeFormat.timestampStrFromDate(userLastModifiedAt) - } - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/MealBolusNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/MealBolusNightscoutTreatment.swift deleted file mode 100644 index 7f7c62d661..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/MealBolusNightscoutTreatment.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// MealBolusNightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/10/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// -import Foundation - -public class MealBolusNightscoutTreatment: NightscoutTreatment { - - public let carbs: Double - public let absorptionTime: TimeInterval? - public let insulin: Double? - public let glucose: Double? - public let units: Units? // of glucose entry - public let glucoseType: GlucoseType? - public let foodType: String? - - required public init?(_ entry: [String : Any]) { - guard let carbs = entry["carbs"] as? Double else { - return nil - } - - self.carbs = carbs - if let absorptionTimeMinutes = entry["absorptionTime"] as? Double { - absorptionTime = TimeInterval(minutes: absorptionTimeMinutes) - } else { - absorptionTime = nil - } - - self.insulin = entry["insulin"] as? Double - - if let glucoseUnitsRaw = entry["units"] as? String, - let glucoseUnits = Units(rawValue: glucoseUnitsRaw), - let glucoseValue = entry["glucose"] as? Double - { - self.units = glucoseUnits - self.glucose = glucoseValue - } else { - self.units = nil - self.glucose = nil - } - - if let glucoseTypeRaw = entry["glucoseType"] as? String, let glucoseType = GlucoseType(rawValue: glucoseTypeRaw) { - self.glucoseType = glucoseType - } else { - self.glucoseType = nil - } - - self.foodType = entry["foodType"] as? String - - super.init(entry) - } - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - rval["carbs"] = carbs - if let absorptionTime = absorptionTime { - rval["absorptionTime"] = absorptionTime.minutes - } - rval["insulin"] = insulin - if let glucose = glucose { - rval["glucose"] = glucose - rval["glucoseType"] = glucoseType?.rawValue - rval["units"] = units?.rawValue - } - if let foodType = foodType { - rval["foodType"] = foodType - } - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NightscoutTreatment.swift deleted file mode 100644 index 4399e1a968..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NightscoutTreatment.swift +++ /dev/null @@ -1,134 +0,0 @@ -// -// NightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/9/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public protocol DictionaryRepresentable { - var dictionaryRepresentation: [String: Any] { - get - } -} - -public enum TreatmentType: String { - case correctionBolus = "Correction Bolus" - case carbCorrection = "Carb Correction" - case tempBasal = "Temp Basal" - case temporaryOverride = "Temporary Override" - case mealBolus = "Meal Bolus" - case bloodGlucoseCheck = "BG Check" - case suspendPump = "Suspend Pump" - case resumePump = "Resume Pump" - case note = "Note" - - public var classType: NightscoutTreatment.Type { - switch self { - case .correctionBolus: - return BolusNightscoutTreatment.self - case .carbCorrection: - return CarbCorrectionNightscoutTreatment.self - case .tempBasal: - return TempBasalNightscoutTreatment.self - case .temporaryOverride: - return OverrideTreatment.self - case .mealBolus: - return MealBolusNightscoutTreatment.self - case .bloodGlucoseCheck: - return BGCheckNightscoutTreatment.self - case .suspendPump: - return PumpSuspendTreatment.self - case .resumePump: - return PumpResumeTreatment.self - case .note: - return NoteNightscoutTreatment.self - } - } -} - -public class NightscoutTreatment: DictionaryRepresentable { - - public enum GlucoseType: String { - case Meter - case Sensor - case Finger - case Manual - } - - public enum Units: String { - case MMOLL = "mmol/L" - case MGDL = "mg/dL" - } - - public let timestamp: Date - let enteredBy: String - let notes: String? - let id: String? - let eventType: TreatmentType - let syncIdentifier: String? - let insulinType: String? - - - public init(timestamp: Date, enteredBy: String, notes: String? = nil, id: String? = nil, eventType: TreatmentType, syncIdentifier: String? = nil, insulinType: String? = nil) { - self.timestamp = timestamp - self.enteredBy = enteredBy - self.id = id - self.notes = notes - self.eventType = eventType - self.syncIdentifier = syncIdentifier - self.insulinType = insulinType - } - - required public init?(_ entry: [String: Any]) { - guard - let identifier = entry["_id"] as? String, - let eventTypeStr = entry["eventType"] as? String, - let eventType = TreatmentType(rawValue: eventTypeStr), - let timestampStr = entry["timestamp"] as? String, - let timestamp = TimeFormat.dateFromTimestamp(timestampStr), - let enteredBy = entry["enteredBy"] as? String - else { - return nil - } - - self.id = identifier - self.eventType = eventType - self.timestamp = timestamp - self.enteredBy = enteredBy - self.notes = entry["notes"] as? String - self.syncIdentifier = entry["syncIdentifier"] as? String - self.insulinType = entry["insulinType"] as? String - } - - - public var dictionaryRepresentation: [String: Any] { - var rval = [ - "created_at": TimeFormat.timestampStrFromDate(timestamp), - "timestamp": TimeFormat.timestampStrFromDate(timestamp), - "enteredBy": enteredBy, - ] - rval["_id"] = id - rval["notes"] = notes - rval["eventType"] = eventType.rawValue - rval["insulinType"] = insulinType - - // Not part of the normal NS model, but we store here to be able to match to client provided ids - rval["syncIdentifier"] = syncIdentifier - - return rval - } - - public static func fromServer(_ entry: [String: Any]) -> NightscoutTreatment? { - guard - let eventTypeStr = entry["eventType"] as? String, - let eventType = TreatmentType(rawValue: eventTypeStr) - else { - return nil - } - - return eventType.classType.init(entry) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NoteNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NoteNightscoutTreatment.swift deleted file mode 100644 index 555e13def1..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/NoteNightscoutTreatment.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// NoteNightscoutTreatment.swift -// RileyLink -// -// Copyright © 2017 Pete Schwamb. All rights reserved. -// - -import Foundation - - -public class NoteNightscoutTreatment: NightscoutTreatment { - - public init(timestamp: Date, enteredBy: String, notes: String? = nil, id: String? = nil) { - super.init(timestamp: timestamp, enteredBy: enteredBy, notes: notes, id: id, eventType: .note) - } - - required public init?(_ entry: [String : Any]) { - super.init(entry) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/OverrideTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/OverrideTreatment.swift deleted file mode 100644 index eea2da2891..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/OverrideTreatment.swift +++ /dev/null @@ -1,81 +0,0 @@ -// -// OverrideTreatment.swift -// NightscoutUploadKit -// -// Created by Pete Schwamb on 9/28/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -import Foundation - - -public class OverrideTreatment: NightscoutTreatment { - - public enum Duration { - case finite(TimeInterval) - case indefinite - } - - let correctionRange: ClosedRange? // mg/dL - let insulinNeedsScaleFactor: Double? - let duration: Duration - let reason: String - let remoteAddress: String? - - public init(startDate: Date, enteredBy: String, reason: String, duration: Duration, correctionRange: ClosedRange?, insulinNeedsScaleFactor: Double?, remoteAddress: String? = nil, id: String? = nil) { - self.reason = reason - self.duration = duration - self.correctionRange = correctionRange - self.insulinNeedsScaleFactor = insulinNeedsScaleFactor - self.remoteAddress = remoteAddress - super.init(timestamp: startDate, enteredBy: enteredBy, id: id, eventType: .temporaryOverride) - } - - required public init?(_ entry: [String : Any]) { - guard - let reason = entry["reason"] as? String - else { - return nil - } - - if let durationMinutes = entry["duration"] as? Double { - self.duration = .finite(TimeInterval(minutes: durationMinutes)) - } else if let durationType = entry["durationType"] as? String, durationType == "indefinite" { - self.duration = .indefinite - } else { - return nil - } - - self.reason = reason - if let correctionRange = entry["correctionRange"] as? [Double], correctionRange.count >= 2 { - self.correctionRange = ClosedRange(uncheckedBounds: (lower: correctionRange[0], upper: correctionRange[1])) - } else { - self.correctionRange = nil - } - - insulinNeedsScaleFactor = entry["insulinNeedsScaleFactor"] as? Double - remoteAddress = entry["remoteAddress"] as? String - - super.init(entry) - } - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - - switch duration { - case .finite(let timeInterval): - rval["duration"] = timeInterval.minutes - case .indefinite: - rval["durationType"] = "indefinite" - } - rval["reason"] = reason - rval["insulinNeedsScaleFactor"] = insulinNeedsScaleFactor - rval["remoteAddress"] = remoteAddress - - if let correctionRange = correctionRange { - rval["correctionRange"] = [correctionRange.lowerBound, correctionRange.upperBound] - } - - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpResumeTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpResumeTreatment.swift deleted file mode 100644 index a320a33860..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpResumeTreatment.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// PumpResumeTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/27/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class PumpResumeTreatment: NightscoutTreatment { - - public init(timestamp: Date, enteredBy: String, id: String? = nil, syncIdentifier: String? = nil) { - super.init(timestamp: timestamp, enteredBy: enteredBy, id: id, eventType: .resumePump, syncIdentifier: syncIdentifier) - } - - required public init?(_ entry: [String : Any]) { - super.init(entry) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpSuspendTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpSuspendTreatment.swift deleted file mode 100644 index 4fd14f2b6d..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/PumpSuspendTreatment.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// PumpSuspendTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 3/27/17. -// Copyright © 2017 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class PumpSuspendTreatment: NightscoutTreatment { - - public init(timestamp: Date, enteredBy: String, id: String? = nil, syncIdentifier: String? = nil) { - super.init(timestamp: timestamp, enteredBy: enteredBy, id: id, eventType: .suspendPump, syncIdentifier: syncIdentifier) - } - - required public init?(_ entry: [String : Any]) { - super.init(entry) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/TempBasalNightscoutTreatment.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/TempBasalNightscoutTreatment.swift deleted file mode 100644 index acea6781e1..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/Treatments/TempBasalNightscoutTreatment.swift +++ /dev/null @@ -1,68 +0,0 @@ -// -// TempBasalNightscoutTreatment.swift -// RileyLink -// -// Created by Pete Schwamb on 4/18/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public class TempBasalNightscoutTreatment: NightscoutTreatment { - - public enum RateType: String { - case Absolute = "absolute" - case Percentage = "percentage" - } - - - public let rate: Double - public let amount: Double? - public let absolute: Double? - public let temp: RateType - public let duration: TimeInterval - public let automatic: Bool - - public init(timestamp: Date, enteredBy: String, temp: RateType, rate: Double, absolute: Double?, duration: TimeInterval, amount: Double? = nil, automatic: Bool = true, id: String? = nil, syncIdentifier: String? = nil, insulinType: String?) { - self.rate = rate - self.absolute = absolute - self.temp = temp - self.duration = duration - self.amount = amount - self.automatic = automatic - - // Commenting out usage of surrogate ID until supported by Nightscout - super.init(timestamp: timestamp, enteredBy: enteredBy, id: id, eventType: .tempBasal, syncIdentifier: syncIdentifier, insulinType: insulinType) - } - - required public init?(_ entry: [String : Any]) { - guard - let rate = entry["rate"] as? Double, - let rateTypeRaw = entry["temp"] as? String, - let rateType = RateType(rawValue: rateTypeRaw), - let durationMinutes = entry["duration"] as? Double - else { - return nil - } - - self.rate = rate - self.temp = rateType - self.duration = TimeInterval(minutes: durationMinutes) - self.amount = entry["amount"] as? Double - self.absolute = entry["absolute"] as? Double - self.automatic = entry["automatic"] as? Bool ?? true - - super.init(entry) - } - - override public var dictionaryRepresentation: [String: Any] { - var rval = super.dictionaryRepresentation - rval["temp"] = temp.rawValue - rval["rate"] = rate - rval["absolute"] = absolute - rval["duration"] = duration.minutes - rval["amount"] = amount - rval["automatic"] = automatic - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/UploaderStatus.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/Models/UploaderStatus.swift deleted file mode 100644 index 88969f1028..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/Models/UploaderStatus.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// UploaderStatus.swift -// RileyLink -// -// Created by Pete Schwamb on 7/26/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct UploaderStatus { - - public let battery: Int? - public let name: String - public let timestamp: Date - - public init(name: String, timestamp: Date, battery: Float? = nil) { - let intBattery: Int? - if let battery = battery , battery >= 0 { - intBattery = Int(battery * 100) - } else { - intBattery = nil - } - - self.init(name: name, timestamp: timestamp, battery: intBattery) - } - - public init(name: String, timestamp: Date, battery: Int? = nil) { - self.name = name - self.timestamp = timestamp - self.battery = battery - } - - public var dictionaryRepresentation: [String: Any] { - var rval = [String: Any]() - - rval["name"] = name - rval["timestamp"] = TimeFormat.timestampStrFromDate(timestamp) - - if let battery = battery { - rval["battery"] = battery - } - - return rval - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploadKit.h b/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploadKit.h deleted file mode 100644 index f5a66044aa..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploadKit.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// NightscoutUploadKit.h -// NightscoutUploadKit -// -// Created by Pete Schwamb on 4/26/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -#import - -//! Project version number for NightscoutUploadKit. -FOUNDATION_EXPORT double NightscoutUploadKitVersionNumber; - -//! Project version string for NightscoutUploadKit. -FOUNDATION_EXPORT const unsigned char NightscoutUploadKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploader.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploader.swift deleted file mode 100644 index e98aeb5f3f..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/NightscoutUploader.swift +++ /dev/null @@ -1,690 +0,0 @@ -// -// NightscoutUploader.swift -// RileyLink -// -// Created by Pete Schwamb on 3/9/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -public enum UploadError: LocalizedError { - case httpError(status: Int, body: String) - case missingTimezone - case invalidResponse(reason: String) - case unauthorized - case missingConfiguration - case invalidParameters - case unexpectedResult(description: String) - - public var errorDescription: String? { - switch self { - case .httpError(let status, let body): - return String(["HTTP Error", "Status Code: \(status)" ,"body: body: \(body)"].joined( separator: "\n")) - case .missingTimezone: - return "Missing Timezone" - case .invalidResponse(let reason): - return "Invalid Response: \(reason)" - case .unauthorized: - return "Unauthorized" - case .missingConfiguration: - return "Missing Nightscout Credentials" - case .invalidParameters: - return "Invalid parameters" - case .unexpectedResult(let description): - return "Unexpected Result: \(description)" - } - } -} - -private enum Endpoint: String { - case entries = "/api/v1/entries" - case treatments = "/api/v1/treatments" - case deviceStatus = "/api/v1/devicestatus" - case authTest = "/api/v1/experiments/test" - case profile = "/api/v1/profile" - case currentProfile = "/api/v1/profile/current" - case notifications = "/api/v2/notifications/loop" -} - -public class NightscoutUploader { - - public var siteURL: URL - public var apiSecret: String - - private(set) var entries = [GlucoseEntry]() - private(set) var deviceStatuses = [[String: Any]]() - private(set) var treatmentsQueue = [NightscoutTreatment]() - - private(set) var lastMeterMessageRxTime: Date? - - public var errorHandler: ((_ error: Error, _ context: String) -> Void)? - - private var dataAccessQueue: DispatchQueue = DispatchQueue(label: "com.rileylink.NightscoutUploadKit.dataAccessQueue", qos: .utility) - - public init(siteURL: URL, APISecret: String) { - self.siteURL = siteURL - self.apiSecret = APISecret - } - - private func url(with path: String, queryItems: [URLQueryItem]? = nil) -> URL? { - var components = URLComponents() - components.scheme = siteURL.scheme - components.host = siteURL.host - components.port = siteURL.port - components.queryItems = queryItems - components.path = path - return components.url - } - - private func url(for endpoint: Endpoint, queryItems: [URLQueryItem]? = nil) -> URL? { - return url(with: endpoint.rawValue, queryItems: queryItems) - } - - /// Attempts to upload nightscout treatment objects. - /// This method will not retry if the network task failed. - /// - /// - parameter treatments: An array of nightscout treatments. - /// - parameter completionHandler: A closure to execute when the task completes. It has a single argument for any error that might have occurred during the upload. - public func upload(_ treatments: [NightscoutTreatment], completionHandler: @escaping (Result<[String],Error>) -> Void) { - guard let url = url(for: .treatments) else { - completionHandler(.failure(UploadError.missingConfiguration)) - return - } - postToNS(treatments.map { $0.dictionaryRepresentation }, url: url, completion: completionHandler) - } - - /// Attempts to modify nightscout treatments. This method will not retry if the network task failed. - /// - /// - parameter treatments: An array of nightscout treatments. The id attribute must be set, identifying the treatment to update. Treatments without id will be ignored. - /// - parameter completionHandler: A closure to execute when the task completes. It has a single argument for any error that might have occurred during the modify. - public func modifyTreatments(_ treatments:[NightscoutTreatment], completionHandler: @escaping (Error?) -> Void) { - guard let url = url(for: .treatments) else { - completionHandler(UploadError.missingConfiguration) - return - } - dataAccessQueue.async { - let modifyGroup = DispatchGroup() - var errors = [Error]() - - for treatment in treatments { - guard treatment.id != nil, treatment.id != "NA" else { - continue - } - modifyGroup.enter() - self.putToNS( treatment.dictionaryRepresentation, url: url ) { (error) in - if let error = error { - errors.append(error) - } - modifyGroup.leave() - } - } - - _ = modifyGroup.wait(timeout: DispatchTime.distantFuture) - completionHandler(errors.first) - } - - } - - /// Attempts to delete treatments from nightscout. This method will not retry if the network task failed. - /// - /// - parameter id: An array of nightscout treatment ids - /// - parameter completionHandler: A closure to execute when the task completes. It has a single argument for any error that might have occurred during the deletion. - public func deleteTreatmentsById(_ ids:[String], completionHandler: @escaping (Error?) -> Void) { - - dataAccessQueue.async { - let deleteGroup = DispatchGroup() - var errors = [Error]() - - for id in ids { - guard id != "NA" else { - continue - } - deleteGroup.enter() - self.deleteFromNS(id, endpoint: .treatments) { (error) in - if let error = error { - errors.append(error) - } - deleteGroup.leave() - } - } - - _ = deleteGroup.wait(timeout: DispatchTime.distantFuture) - completionHandler(errors.first) - } - } - - /// Attempts to delete treatments from nightscout by objectId. This method will not retry if the network task failed. - /// - /// - parameter id: An array of nightscout objectId strings - /// - parameter completionHandler: A closure to execute when the task completes. It has a single argument for any error that might have occurred during the deletion. - public func deleteTreatmentsByObjectId(_ ids:[String], completionHandler: @escaping (Error?) -> Void) { - let deleteGroup = DispatchGroup() - var errors = [Error]() - - dataAccessQueue.async { - - for id in ids { - guard id != "NA" else { - continue - } - deleteGroup.enter() - self.deleteFromNS(id, endpoint: .treatments) { (error) in - if let error = error { - errors.append(error) - } - deleteGroup.leave() - } - } - - _ = deleteGroup.wait(timeout: DispatchTime.distantFuture) - completionHandler(errors.first) - } - } - - - public func uploadDeviceStatus(_ status: DeviceStatus) { - deviceStatuses.append(status.dictionaryRepresentation) - flushAll() - } - - // MARK: - Fetching - - public func fetchCurrentProfile(completion: @escaping (Result) -> Void) { - let profileURL = url(for: .currentProfile)! - getFromNS(url: profileURL) { (result) in - switch result { - case .failure(let error): - print("Error fetching current profile: \(error)") - completion(.failure(error)) - case .success(let rawResponse): - guard let profileRaw = rawResponse as? ProfileSet.RawValue, let profileSet = ProfileSet(rawValue: profileRaw) else { - completion(.failure(UploadError.invalidResponse(reason: "Expected nightscout profile"))) - return - } - - completion(.success(profileSet)) - } - } - } - - public func fetchDeviceStatus(dateInterval: DateInterval, maxCount: Int = 50, completion: @escaping (Result<[DeviceStatus],Error>) -> Void) { - var components = URLComponents(url: url(for: .deviceStatus)!, resolvingAgainstBaseURL: false)! - components.queryItems = [ - URLQueryItem(name: "find[created_at][$gte]", value: TimeFormat.timestampStrFromDate(dateInterval.start)), - URLQueryItem(name: "find[created_at][$lte]", value: TimeFormat.timestampStrFromDate(dateInterval.end)), - URLQueryItem(name: "count", value: String(maxCount)) - ] - if let url = components.url { - getFromNS(url: url) { (result) in - switch result { - case .failure(let error): - print("Error fetching treatments: \(error)") - completion(.failure(error)) - case .success(let rawResponse): - guard let returnedEntries = rawResponse as? [DeviceStatus.RawValue] else { - completion(.failure(UploadError.invalidResponse(reason: "Expected array of treatments"))) - return - } - - let entries = returnedEntries.compactMap({ (entry: DeviceStatus.RawValue) -> DeviceStatus? in - return DeviceStatus(rawValue: entry) - }) - - completion(.success(entries)) - } - } - } else { - completion(.failure(UploadError.invalidParameters)) - } - } - - - public func fetchTreatments(dateInterval: DateInterval, maxCount: Int = 50, completion: @escaping (Result<[NightscoutTreatment],Error>) -> Void) { - var components = URLComponents(url: url(for: .treatments)!, resolvingAgainstBaseURL: false)! - components.queryItems = [ - URLQueryItem(name: "find[timestamp][$gte]", value: TimeFormat.timestampStrFromDate(dateInterval.start)), - URLQueryItem(name: "find[timestamp][$lte]", value: TimeFormat.timestampStrFromDate(dateInterval.end)), - URLQueryItem(name: "count", value: String(maxCount)) - ] - if let url = components.url { - getFromNS(url: url) { (result) in - switch result { - case .failure(let error): - print("Error fetching treatments: \(error)") - completion(.failure(error)) - case .success(let rawResponse): - guard let returnedEntries = rawResponse as? [[String: Any]] else { - completion(.failure(UploadError.invalidResponse(reason: "Expected array of treatments"))) - return - } - - let entries = returnedEntries.compactMap({ (entry: [String: Any]) -> NightscoutTreatment? in - return NightscoutTreatment.fromServer(entry) - }) - - completion(.success(entries)) - } - } - } else { - completion(.failure(UploadError.invalidParameters)) - } - } - - public func fetchGlucose(dateInterval: DateInterval, maxCount: Int = 50, completion: @escaping (Result<[GlucoseEntry],Error>) -> Void) { - var components = URLComponents(url: url(for: .entries)!, resolvingAgainstBaseURL: false)! - components.queryItems = [ - URLQueryItem(name: "find[dateString][$gte]", value: TimeFormat.timestampStrFromDate(dateInterval.start)), - URLQueryItem(name: "find[dateString][$lte]", value: TimeFormat.timestampStrFromDate(dateInterval.end)), - URLQueryItem(name: "count", value: String(maxCount)) - ] - if let url = components.url { - getFromNS(url: url) { (result) in - switch result { - case .failure(let error): - print("Error fetching glucose: \(error)") - completion(.failure(error)) - case .success(let rawResponse): - guard let returnedEntries = rawResponse as? [GlucoseEntry.RawValue] else { - completion(.failure(UploadError.invalidResponse(reason: "Expected array of glucose entries"))) - return - } - - let entries = returnedEntries.compactMap{ GlucoseEntry(rawValue: $0) } - completion(.success(entries)) - } - } - } else { - completion(.failure(UploadError.invalidParameters)) - } - } - - - // MARK: - Loop Notifications - - public func startOverride(overrideName: String, reasonDisplay: String, durationTime: TimeInterval) async throws { - - let jsonDict: [String: String] = [ - "reason": overrideName, - "reasonDisplay": reasonDisplay, - "eventType": "Temporary Override", - "duration": "\(durationTime.minutes)", - "notes": "" - ] - - try await postNotification(payload: jsonDict) - } - - public func cancelOverride() async throws { - - let jsonDict: [String: String] = [ - "eventType": "Temporary Override Cancel", - "duration": "0" - ] - - try await postNotification(payload: jsonDict) - } - - public func deliverBolus(amountInUnits: Double, otp: String) async throws { - - let jsonDict: [String: String] = [ - "eventType": "Remote Bolus Entry", - "remoteBolus": "\(amountInUnits)", - "otp": otp - ] - - try await postNotification(payload: jsonDict) - } - - public func deliverCarbs(amountInGrams: Double, absorptionTime: TimeInterval, consumedDate: Date? = nil, otp: String) async throws { - - var jsonDict: [String: String] = [ - "eventType": "Remote Carbs Entry", - "remoteCarbs": "\(amountInGrams)", - "remoteAbsorption": "\(absorptionTime.hours)", - "otp": otp - ] - - if let consumedDate { - let formatter = ISO8601DateFormatter() - formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] - jsonDict["created_at"] = formatter.string(from: consumedDate) - } - - try await postNotification(payload: jsonDict) - } - - public func postNotification(payload: [String: String]) async throws { - guard let url = url(for: .notifications) else { - throw UploadError.missingConfiguration - } - - let _ = try await postToNS(payload, url: url) - } - - // MARK: - Uploading - - public func uploadProfile(profileSet: ProfileSet, completion: @escaping (Result<[String],Error>) -> Void) { - guard let url = url(for: .profile) else { - completion(.failure(UploadError.missingConfiguration)) - return - } - - postToNS([profileSet.dictionaryRepresentation], url: url, completion: completion) - } - - public func uploadProfiles(_ profileSets: [ProfileSet], completion: @escaping (Result) -> Void) { - postToNS(profileSets.map { $0.dictionaryRepresentation }, endpoint: .profile, completion: completion) - } - - public func updateProfile(profileSet: ProfileSet, id: String, completion: @escaping (Error?) -> Void) { - guard let url = url(for: .profile) else { - completion(UploadError.missingConfiguration) - return - } - - var rep = profileSet.dictionaryRepresentation - rep["_id"] = id - putToNS(rep, url: url, completion: completion) - } - - // MARK: - Uploading - - public func flushAll() { - flushDeviceStatuses() - flushEntries() - flushTreatments() - } - - fileprivate func deleteFromNS(_ id: String, endpoint: Endpoint, completion: @escaping (Error?) -> Void) { - let resource = "\(endpoint.rawValue)/\(id)" - guard let url = url(with: resource) else { - completion(UploadError.missingConfiguration) - return - } - - callNS(nil, url: url, method: "DELETE") { (result) in - switch result { - case .success( _): - completion(nil) - case .failure(let error): - completion(error) - } - } - } - - func putToNS(_ json: Any, url:URL, completion: @escaping (Error?) -> Void) { - callNS(json, url: url, method: "PUT") { (result) in - switch result { - case .success( _): - completion(nil) - case .failure(let error): - completion(error) - } - } - } - - fileprivate func postToNS(_ json: [Any], endpoint: Endpoint, completion: @escaping (Result) -> Void) { - guard !json.isEmpty else { - completion(.success(false)) - return - } - - guard let url = url(for: endpoint) else { - completion(.failure(UploadError.missingConfiguration)) - return - } - - postToNS(json, url: url) { result in - switch result { - case .failure(let error): - completion(.failure(error)) - case .success: - completion(.success(true)) - } - } - } - - func postToNS(_ json: [Any], url:URL, completion: @escaping (Result<[String],Error>) -> Void) { - if json.count == 0 { - completion(.success([])) - return - } - - callNS(json, url: url, method: "POST") { (result) in - switch result { - case .success(let postResponse): - guard let insertedEntries = postResponse as? [[String: Any]], insertedEntries.count == json.count else { - completion(.failure(UploadError.invalidResponse(reason: "Expected array of \(json.count) objects in JSON response: \(postResponse)"))) - return - } - - let ids = insertedEntries.map({ (entry: [String: Any]) -> String in - if let id = entry["_id"] as? String { - return id - } else { - // Upload still succeeded; likely that this is an old version of NS - // Instead of failing (which would cause retries later, we just mark - // This entry has having an id of 'NA', which will let us consider it - // uploaded. - //throw UploadError.invalidResponse(reason: "Invalid/missing id in response.") - return "NA" - } - }) - completion(.success(ids)) - case .failure(let error): - completion(.failure(error)) - } - - } - } - - func getFromNS(url: URL, completion: @escaping (Result) -> Void) { - callNS(nil, url: url, method: "GET") { (result) in - completion(result) - } - } - - func callNS(_ json: Any?, url:URL, method:String, completion: @escaping (Result) -> Void) { - var request = URLRequest(url: url) - request.httpMethod = method - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.setValue("application/json", forHTTPHeaderField: "Accept") - request.setValue(apiSecret.sha1, forHTTPHeaderField: "api-secret") - - do { - if let json = json { - let sendData = try JSONSerialization.data(withJSONObject: json, options: []) - let task = URLSession.shared.uploadTask(with: request, from: sendData, completionHandler: { (data, response, error) in - if let error = error { - completion(.failure(error)) - return - } - - guard let httpResponse = response as? HTTPURLResponse else { - completion(.failure(UploadError.invalidResponse(reason: "Response is not HTTPURLResponse"))) - return - } - - if httpResponse.statusCode != 200 { - let error = UploadError.httpError(status: httpResponse.statusCode, body:String(data: data!, encoding: String.Encoding.utf8)!) - completion(.failure(error)) - return - } - - guard let data = data, !data.isEmpty else { - completion(.success([])) - return - } - - do { - let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions()) - completion(.success(json)) - } catch { - completion(.failure(error)) - return - } - }) - task.resume() - } else { - let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in - if let error = error { - completion(.failure(error)) - return - } - - guard let httpResponse = response as? HTTPURLResponse else { - completion(.failure(UploadError.invalidResponse(reason: "Response is not HTTPURLResponse"))) - return - } - - if httpResponse.statusCode != 200 { - let error = UploadError.httpError(status: httpResponse.statusCode, body:String(data: data!, encoding: String.Encoding.utf8)!) - completion(.failure(error)) - return - } - - guard let data = data else { - completion(.failure(UploadError.invalidResponse(reason: "No data in response"))) - return - } - - do { - let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions()) - completion(.success(json)) - } catch { - completion(.failure(error)) - return - } - }) - task.resume() - } - - } catch let error { - completion(.failure(error)) - } - } - - func postToNS(_ json: Any, url: URL, jsonReturnType: T.Type?) async throws -> T { - let data = try await postToNS(json, url: url) - return try JSONDecoder().decode(T.self, from: data) - } - - func postToNS(_ json: Any, url:URL) async throws -> Data { - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.setValue("application/json", forHTTPHeaderField: "Accept") - request.setValue(apiSecret.sha1, forHTTPHeaderField: "api-secret") - - let sendData = try JSONSerialization.data(withJSONObject: json, options: []) - let (data, urlResponse) = try await URLSession.shared.upload(for: request, from: sendData) - - guard let httpResponse = urlResponse as? HTTPURLResponse else { - throw UploadError.invalidResponse(reason: "Response is not HTTPURLResponse") - } - - if httpResponse.statusCode != 200 { - throw UploadError.httpError(status: httpResponse.statusCode, body:String(data: data, encoding: String.Encoding.utf8)!) - } - - return data - } - - func flushDeviceStatuses() { - guard let url = url(for: .deviceStatus) else { - return - } - - let inFlight = deviceStatuses - deviceStatuses = [] - postToNS(inFlight as [Any], url: url) { (result) in - switch result { - case .failure(let error): - self.errorHandler?(error, "Uploading device status") - // Requeue - self.deviceStatuses.append(contentsOf: inFlight) - case .success(_): - break - } - } - } - - public func uploadDeviceStatuses(_ deviceStatuses: [DeviceStatus], completion: @escaping (Result) -> Void) { - postToNS(deviceStatuses.map { $0.dictionaryRepresentation }, endpoint: .deviceStatus, completion: completion) - } - - public func flushEntries() { - guard let url = url(for: .entries) else { - return - } - - let inFlight = entries - entries = [] - postToNS(inFlight.map({$0.dictionaryRepresentation}), url: url) { (result) in - switch result { - case .failure(let error): - self.errorHandler?(error, "Uploading nightscout entries") - // Requeue - self.entries.append(contentsOf: inFlight) - case .success(_): - break - } - } - } - - public func uploadEntries(_ entries: [GlucoseEntry], completion: @escaping (Result) -> Void) { - print("Uploading \(entries)") - postToNS(entries.map { $0.dictionaryRepresentation }, endpoint: .entries, completion: completion) - } - - func flushTreatments() { - guard let url = url(for: .treatments) else { - return - } - - let inFlight = treatmentsQueue - treatmentsQueue = [] - postToNS(inFlight.map({$0.dictionaryRepresentation}), url: url) { (result) in - switch result { - case .failure(let error): - self.errorHandler?(error, "Uploading nightscout treatment records") - // Requeue - self.treatmentsQueue.append(contentsOf: inFlight) - case .success: - break - } - } - } - - public func checkAuth(_ completion: @escaping (Error?) -> Void) { - guard let testURL = url(for: .authTest) else { - completion(UploadError.missingConfiguration) - return - } - - var request = URLRequest(url: testURL) - - request.setValue("application/json", forHTTPHeaderField:"Content-Type") - request.setValue("application/json", forHTTPHeaderField:"Accept") - request.setValue(apiSecret.sha1, forHTTPHeaderField:"api-secret") - let task = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in - if let error = error { - completion(error) - return - } - - if let httpResponse = response as? HTTPURLResponse , - httpResponse.statusCode != 200 { - if httpResponse.statusCode == 401 { - completion(UploadError.unauthorized) - } else { - let error = UploadError.httpError(status: httpResponse.statusCode, body:String(data: data!, encoding: String.Encoding.utf8)!) - completion(error) - } - } else { - completion(nil) - } - }) - task.resume() - } -} - diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/String+Crypto.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/String+Crypto.swift deleted file mode 100644 index 7ab2aefdf3..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/String+Crypto.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// String+Crypto.swift -// NightscoutUploadKit -// -// Created by Bill Gestrich on 1/7/23. -// Copyright © 2023 Pete Schwamb. All rights reserved. -// - -import CommonCrypto - -extension String { - var sha1: String { - let data = Data(self.utf8) - var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH)) - data.withUnsafeBytes { - _ = CC_SHA1($0.baseAddress, CC_LONG(data.count), &digest) - } - let hexBytes = digest.map { String(format: "%02hhx", $0) } - return hexBytes.joined() - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKit/TimeFormat.swift b/Dependencies/rileylink_ios/NightscoutUploadKit/TimeFormat.swift deleted file mode 100644 index 55bd0bce92..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKit/TimeFormat.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// TimeFormat.swift -// RileyLink -// -// Created by Pete Schwamb on 3/8/16. -// Copyright © 2016 Pete Schwamb. All rights reserved. -// - -import Foundation - -class TimeFormat: NSObject { - private static var formatterISO8601 = ISO8601DateFormatter.defaultFormatter() - private static var fractionalSecondsFormatter = ISO8601DateFormatter.fractionalSecondsFormatter() - - static func timestampStrFromDate(_ date: Date) -> String { - return formatterISO8601.string(from: date) - } - - static func dateFromTimestamp(_ string: String) -> Date? { - if let result = formatterISO8601.date(from: string) { - return result - } - - //Nightscout is returning this format in some cases... needs more research - return fractionalSecondsFormatter.date(from: string) - } -} diff --git a/Dependencies/rileylink_ios/NightscoutUploadKitTests/Info.plist b/Dependencies/rileylink_ios/NightscoutUploadKitTests/Info.plist deleted file mode 100644 index f7fe54e8c9..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKitTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 3.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Dependencies/rileylink_ios/NightscoutUploadKitTests/NightscoutProfileTests.swift b/Dependencies/rileylink_ios/NightscoutUploadKitTests/NightscoutProfileTests.swift deleted file mode 100644 index 1bf0f6634d..0000000000 --- a/Dependencies/rileylink_ios/NightscoutUploadKitTests/NightscoutProfileTests.swift +++ /dev/null @@ -1,31 +0,0 @@ -// -// NightscoutProfileTests.swift -// NightscoutUploadKitTests -// -// Created by Pete Schwamb on 8/25/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -import XCTest -@testable import NightscoutUploadKit - -class NightscoutProfileTests: XCTestCase { - - func testFixedOffsetTimezoneIdentifierConversion() { - // This verifies that fixed offset timezones are encoded in a moment.js compatibile way - // I.e. GMT-0500 -> "ETC/GMT+5" - - let timeZone = TimeZone(secondsFromGMT: -5 * 60 * 60)! // GMT-0500 (fixed) - let isfSchedule = [ProfileSet.ScheduleItem(offset: .hours(0), value: 85)] - let carbRatioSchedule = [ProfileSet.ScheduleItem(offset: .hours(0), value: 12)] - let basalSchedule = [ProfileSet.ScheduleItem(offset: .hours(0), value: 1.2)] - let targetLowSchedule = [ProfileSet.ScheduleItem(offset: .hours(0), value: 100)] - let targetHighSchedule = [ProfileSet.ScheduleItem(offset: .hours(0), value: 110)] - let profile = ProfileSet.Profile(timezone: timeZone, dia: .hours(6), sensitivity: isfSchedule, carbratio: carbRatioSchedule, basal: basalSchedule, targetLow: targetLowSchedule, targetHigh: targetHighSchedule, units: "mg/dL") - - let json = profile.dictionaryRepresentation - - XCTAssertEqual("ETC/GMT+5", json["timezone"] as? String) - } - -} diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BeepType.swift b/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BeepType.swift deleted file mode 100644 index 4f14889a98..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/BeepType.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// BeepType.swift -// OmniKit -// -// Created by Joseph Moran on 5/12/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -import Foundation - -// BeepType is used for the $19 Configure Alerts and $1F Cancel Commands -// Values 1 thru 8 are exactly the same as in BeepConfigType below -// N.B. for BeepType, noBeep is 0x0, while for BeepConfigType it is 0xF -public enum BeepType: UInt8 { - case noBeep = 0x0 - case beepBeepBeepBeep = 0x1 - case bipBeepBipBeepBipBeepBipBeep = 0x2 - case bipBip = 0x3 - case beep = 0x4 - case beepBeepBeep = 0x5 - case beeeeeep = 0x6 - case bipBipBipbipBipBip = 0x7 - case beeepBeeep = 0x8 - // values greater than 0x8 for $19 and $1F commands can fault pod! -} - -// BeepConfigType is used for the $1E Beep Config Command. -// Values 1 thru 8 are exactly the same as in BeepType above -// N.B. for BeepConfigType, noBeep is 0xF, while for BeepType it is 0x0 -public enum BeepConfigType: UInt8 { - // 0 always returns an error response for Beep Config - case beepBeepBeepBeep = 0x1 - case bipBeepBipBeepBipBeepBipBeep = 0x2 - case bipBip = 0x3 - case beep = 0x4 - case beepBeepBeep = 0x5 - case beeeeeep = 0x6 - case bipBipBipbipBipBip = 0x7 - case beeepBeeep = 0x8 - // 0x9 and 0xA always return an error response for Beep Config - case beepBeep = 0xB - case beeep = 0xC - case bipBeeeeep = 0xD - case fiveSecondBeep = 0xE // can only be used if Pod is currently suspended! - case noBeep = 0xF -} diff --git a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift b/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift deleted file mode 100644 index a9f40fe18a..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/OmnipodCommon/MessageBlocks/BeepConfigCommand.swift +++ /dev/null @@ -1,68 +0,0 @@ -// -// BeepConfigCommand.swift -// OmniKit -// -// Created by Joseph Moran on 5/12/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -import Foundation - -public struct BeepConfigCommand : MessageBlock { - // OFF 1 2 3 4 5 - // 1e 04 AABBCCDD - - public let blockType: MessageBlockType = .beepConfig - public let beepConfigType: BeepConfigType - public let basalCompletionBeep: Bool - public let basalIntervalBeep: TimeInterval - public let tempBasalCompletionBeep: Bool - public let tempBasalIntervalBeep: TimeInterval - public let bolusCompletionBeep: Bool - public let bolusIntervalBeep: TimeInterval - - public init(beepConfigType: BeepConfigType, basalCompletionBeep: Bool = false, basalIntervalBeep: TimeInterval = 0, tempBasalCompletionBeep: Bool = false, tempBasalIntervalBeep: TimeInterval = 0, bolusCompletionBeep: Bool = false, bolusIntervalBeep: TimeInterval = 0) { - self.beepConfigType = beepConfigType - self.basalCompletionBeep = basalCompletionBeep - self.basalIntervalBeep = basalIntervalBeep - self.tempBasalCompletionBeep = tempBasalCompletionBeep - self.tempBasalIntervalBeep = tempBasalIntervalBeep - self.bolusCompletionBeep = bolusCompletionBeep - self.bolusIntervalBeep = bolusIntervalBeep - } - - public init(encodedData: Data) throws { - if encodedData.count < 6 { - throw MessageBlockError.notEnoughData - } - if let beepConfigType = BeepConfigType.init(rawValue: encodedData[2]) { - self.beepConfigType = beepConfigType - } else { - throw MessageBlockError.parseError - } - self.basalCompletionBeep = encodedData[3] & (1<<6) != 0 - self.basalIntervalBeep = TimeInterval(minutes: Double(encodedData[3] & 0x3f)) - self.tempBasalCompletionBeep = encodedData[4] & (1<<6) != 0 - self.tempBasalIntervalBeep = TimeInterval(minutes: Double(encodedData[4] & 0x3f)) - self.bolusCompletionBeep = encodedData[5] & (1<<6) != 0 - self.bolusIntervalBeep = TimeInterval(minutes: Double(encodedData[5] & 0x3f)) - } - - public var data: Data { - var data = Data([ - blockType.rawValue, - 4, - ]) - data.append(beepConfigType.rawValue) - data.append((basalCompletionBeep ? (1<<6) : 0) + (UInt8(basalIntervalBeep.minutes) & 0x3f)) - data.append((tempBasalCompletionBeep ? (1<<6) : 0) + (UInt8(tempBasalIntervalBeep.minutes) & 0x3f)) - data.append((bolusCompletionBeep ? (1<<6) : 0) + (UInt8(bolusIntervalBeep.minutes) & 0x3f)) - return data - } -} - -extension BeepConfigCommand: CustomDebugStringConvertible { - public var debugDescription: String { - return "BeepConfigCommand(beepConfigType:\(beepConfigType), basalIntervalBeep:\(basalIntervalBeep), tempBasalCompletionBeep:\(tempBasalCompletionBeep), tempBasalIntervalBeep:\(tempBasalIntervalBeep), bolusCompletionBeep:\(bolusCompletionBeep), , bolusIntervalBeep:\(bolusIntervalBeep))" - } -} diff --git a/Dependencies/rileylink_ios/OmniKit/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/da.lproj/Localizable.strings deleted file mode 100644 index 2111cb5d4f..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/da.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-sluk alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheder"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus i gang"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Indgiver Bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Indgiver Bolus med midlertidig basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Indfører Kanyle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sikker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktiveret"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Tomt reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tom svar fra pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fejl hændelse logget, lukker ned"; - -/* Description for expiration alert */ -"Expiration alert" = "Udløbs advarsel"; - -/* Description for finish setup */ -"Finish setup " = "Afslut indstilling"; - -/* Pod inititialized */ -"Initialized" = "Initialiseret"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Intern pod fejl %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AfbrudtBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Lavt reservoir alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Sørg for at din RileyLink er i nærheden og tændt"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ingen alarmer"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen pod parret"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Intet svar fra pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink til stede"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Blokkering opdaget"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Parret"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Venligst flyt pod’en tættere på din RileyLink og prøv igen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Venligst par med en ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod allerede parret"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod allerede klargjort"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod udløbs alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod udløbs påmindelse"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod udløbet"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fejl: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar til kanyle indførsel."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod er ikke klar til ‘klargøring’."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod er pauset"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod indstillings vindue udløbet"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Klargør"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar til basal programmering"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar til kanyle indførsel"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsæt: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Planlagt Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Afbryd forestående alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Reservoir påfyldning komplet"; - -/* Pod power to motor activated */ -"Tank power activated" = "Reservoir strøm aktiveret"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Midlertidig basal allerede i gang"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Midlertidig basal i gang"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "MidlertidigBasal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Tid til udskiftning af pod! Din pod udløber om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Usikker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Uventet svar fra pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Ukendt pod fejl %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vent indtil eksisterende bolus er færdig, eller annuller bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Vent indtil den eksisterende midlertidige basal er færdig, eller pause for at annullere"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Venter på parrings påmindelse"; diff --git a/Dependencies/rileylink_ios/OmniKit/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/de.lproj/Localizable.strings deleted file mode 100644 index a484289764..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/de.lproj/Localizable.strings +++ /dev/null @@ -1,188 +0,0 @@ -/* Description for an inactive alert modifier */ -" (inactive)" = " (inaktiv)"; - -/* Description for auto-off */ -"Auto-off" = "Auto-Off"; - -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-Off Alarm"; - -/* Pod state when basal initialized */ -"Basal initialized" = "Basal initialisiert"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Weniger als 50 Einheiten"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolusabgabe läuft "; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@IE %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusabgabe"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Abgabe mit temporärer Basalrate"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Einführen der Kanüle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sicher"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktiviert"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservoir leer"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Rückmeldung leer von Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fehlerereignis protokolliert, fahre herunter"; - -/* Description for expiration alert */ -"Expiration alert" = "Ablaufalarm"; - -/* Description for finish setup */ -"Finish setup " = "Setup beenden"; - -/* Pod inititialized */ -"Initialized" = "Initialisiert"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Interner Podfehler %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Abgebrochener Bolus: %1$@ IE (%2$@ IE geplant) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Hinweisalarm für fast leeres Reservoir"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Stellen Sie sicher, dass sich Ihr RileyLink in der Nähe befindet und eingeschaltet ist"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Keine Alarme"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Kein Pod gekoppelt"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Keine Rückmeldung von Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Kein RileyLink verfügbar"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Verstopfung erkannt"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Gekoppelt"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Bitte bringen Sie Ihren Pod näher an den RileyLink und versuchen Sie es erneut"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Bitte koppeln Sie einen neuen Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod bereits gekoppelt"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod bereits gefüllt"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Ablaufalarm des Pods"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Hinweis zum Ablaufen des Pods"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod abgelaufen"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Podfehler: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Der Pod ist nicht bereit zum Einsetzen der Kanüle."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Der Pod ist nicht bereit zum Befüllen"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod ist unterbrochen"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Das Zeitfenster für das Pod-Setup ist abgelaufen"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Befüllen"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Bereit für die Programmierung der Basalrate"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Bereit zum Einführen der Kanüle"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsetzen: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Geplante Basalrate"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarm für die bevorstehende Pod-Abschaltung"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Unterbrochen: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Unterbrochen"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Befüllen des Pods erfolgreich"; - -/* Pod power to motor activated */ -"Tank power activated" = "Energieversorgung für den Podmotor aktiviert"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Eine temporäre Basalrate läuft bereits."; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temporäre Basalrate läuft."; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/h %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Zeit, Ihren Pod zu ersetzen! Ihr Pod läuft ab in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Unsicher"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unerwartete Antwort vom Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unbekannter Podfehler %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Warten Sie, bis der aktuelle Bolus abgegeben wurde, oder brechen Sie den Bolus ab."; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Warten Sie, bis die aktuelle temporäre Basalrate beendet wurde, oder unterbrechen Sie diese."; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Warte auf die Erinnerung zum Koppeln"; - diff --git a/Dependencies/rileylink_ios/OmniKit/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/es.lproj/Localizable.strings deleted file mode 100644 index 31189b9075..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/es.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarma de apagado automático"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Menos de 50 unidades"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolo en progreso"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Poniendo bolo"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Poniendo bolo con basal temporal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cánula insertándose"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Programación acertada"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Pod desactivado"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservorio vacío"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Respuesta vacía del pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Evento de error de registro, apagándose"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerta de caducidad"; - -/* Description for finish setup */ -"Finish setup " = "Fin de la configuración"; - -/* Pod inititialized */ -"Initialized" = " iniciado"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Error pod interno %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrumpido: %1$@ U (%2$@ U planeadas) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarma de aviso de depósito bajo"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Asegúrese de que su RileyLink está cerca y encendido"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No hay alertas"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No hay pod emparejado"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Sin respuesta del pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No hay RileyLink disponible"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Oclusion detectada"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Emparejado"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Por favor, acerque su pod al RileyLink e inténtelo de nuevo"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Por favor, empareje un nuevo pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Ya hay un pod emparejado"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "El pod ya está purgado"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarma de aviso de caducidad de un pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Aviso de vencimiento de un pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod caducado"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Error de pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "El Pod no está listo para insertar la cánula"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "El Pod no está listo para purgar"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "El Pod está suspendido"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "La pantalla de configuración del pod ha caducado"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Purgando"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Listo para programar basales"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Listo para insertar la cánula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reanudar: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basal programada"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Apagar la alarma inminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendido"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Completado el llenado del depósito"; - -/* Pod power to motor activated */ -"Tank power activated" = "Depósito encendido"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basal temporal en progreso"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Basal temporal funcionando"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemporal: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Es hora de reemplazar el pod! El pod expira en %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incierto"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Respuesta inesperada del pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Fallo de pod desconocido %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Espere a que termine el bolo o cancele el bolo"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Espere a que termine la basal temporal existente o suspénda para cancelar"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Esperando el recordatorio de emperejamiento"; diff --git a/Dependencies/rileylink_ios/OmniKit/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/fi.lproj/Localizable.strings deleted file mode 100644 index 9d39921aec..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/fi.lproj/Localizable.strings +++ /dev/null @@ -1,194 +0,0 @@ -/* Description for an inactive alert modifier */ -" (inactive)" = " (ei-aktiivinen)"; - -/* The format string for minutes (1: number of minutes string) */ -"%1$@ minutes" = "%1$@ minuuttia"; - -/* The format string for Alerts: (1: the alerts string) */ -"Alerts: %1$@\n" = "Hälytykset: %1$@\n"; - -/* Description for auto-off alarm */ -"Auto-off alarm" = "Autom. pois -varoitus"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Alle 50 yksikköä"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus vireillä"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Annostellaan bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Annostellaan bolus ja tilap. basaali"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Asetetaan kanyyli"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Varma"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktivoitu"; - -/* The format string for Delivery Status: (1: delivery status string) */ -"Delivery Status: %1$@\n" = "Annostelun tila: %1$@\n"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Säiliö tyhjä"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tyhjä vastaus pumpulta"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Virhetapahtuma, suljetaan"; - -/* Description for expiration alert */ -"Expiration alert" = "Pumppu vanhenee -varoitus"; - -/* Description for finish setup */ -"Finish setup " = "Lopeta asennus"; - -/* Pod inititialized */ -"Initialized" = "Aloitettu"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Sisäinen pumpun vika %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KeskeytettyBolus: %1$@ U (%2$@ U ohjelmoitu) %3$@ %4$@ %5$@"; - -/* The format string for Last Bolus Not Delivered: (1: bolus not delivered string) */ -"Last Bolus Not Delivered: %1$@ U\n" = "Viim. bolusta ei annosteltu: %1$@ U\n"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Säiliö lähes tyhjä -tiedotehälytys"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja kytketty päälle"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ei hälytyksiä"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ei yhdistettyä pumppua"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Ei vastausta pumpusta"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ei RileyLinkiä lähistöllä"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normaali"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Tukos havaittu"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Yhdistetty"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Vie pumppu ja RileyLink lähemmäksi toisiaan ja yritä uudelleen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Yhdistä uusi pumppu"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pumppu on jo yhdistetty"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pumppu on jo alustettu"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pumppu vanhenemassa -tiedotehälytys"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pumppu vanhenemassa -ilmoitus"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pumppu vanhentunut"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pumppuvirhe: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pumppu ei ole valmis kanyylin asettamiseen."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pumppu ei ole valmis alustukseen."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pumppu on pysäytetty"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pumpun asennusaika umpeutui"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Alustetaan"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Valmis basaalin ohjelmointiin"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Valmis kanyylin asetukseen"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Jatka: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Ohjelmoitu basaali"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Mykistä hälytys"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pysäytä: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pysäytetty"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Säiliön täyttö valmis"; - -/* Pod power to motor activated */ -"Tank power activated" = "Säiliön virta aktivoitu"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tilapäinen basaali meneillään"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tilapäinen basaali käynnissä"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TilapBasaali: %1$@ U/h %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Aika vaihtaa pumppu! Pumppu vanhenee %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Epävarma"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Odottamaton vastaus pumpusta"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Tuntematon pumppuvirhe %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Odota, että meneillään oleva bolus päättyy tai kumoa bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Odota, että meneillään oleva tilapäinen basaali päättyy tai pysäytä pumppu kumotaksesi"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Odotetaan yhdistämismuistutusta"; - diff --git a/Dependencies/rileylink_ios/OmniKit/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/fr.lproj/Localizable.strings deleted file mode 100644 index 56e9b7844c..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/fr.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarme d’arrêt automatique"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "en dessous de 50 unités"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus en cours"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolus en cours"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus en cours avec basale temporaire"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Canule en cours d'insertion"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Désactivé"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Réservoir vide"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Réponse vide du pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Événement d’erreur envoyé, arrêt en cours"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerte d'expiration"; - -/* Description for finish setup */ -"Finish setup " = "Installation terminée"; - -/* Pod inititialized */ -"Initialized" = "Initialisé"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "code d'erreur du pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolus interrompu: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarme de réservoir bas"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Assurez vous que votre RileyLink est à proximité et allumé"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Pas d'alarme"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Pas de pod appairé"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Pas de réponse du pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Aucun RileyLink disponible"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion détectée"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Appairé"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Merci de rapprocher votre pod du RileyLink et d'essayer à nouveau"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Merci d'appairer un nouveau pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod déjà appairé"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod déjà amorcé"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarme d'expiration du pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notification de l'expiration du pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expiré"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Erreur du pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Le pod n’est pas dans un état prêt pour l’insertion de la canule"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Le pod n’est pas dans un état prêt pour l’amorçage"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Le pod est suspendu"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "La fenêtre de mise en place du pod a expiré"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Amorçage"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Prêt pour la programmation de la basale"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Prêt à insérer la canule"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reprise : %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmée"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarme imminente d’arrêt"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspension : %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendue"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Remplissage du réservoir terminé"; - -/* Pod power to motor activated */ -"Tank power activated" = "Charge du réservoir activée"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basale temporaire en cours"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Basale temporaire active"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Basale temporaire: %1$@ U/heure %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "C’est le moment de remplacer votre pod ! Votre pod va expirer dans %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Reponse inattendue du pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Erreur de pod inconnue %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Attendez que le bolus en cours se termine, ou annulez le bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Attendez que la basale se termine pour quitter, ou mettez en suspens pour annuler"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "En attente d'appairage"; diff --git a/Dependencies/rileylink_ios/OmniKit/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/he.lproj/Localizable.strings deleted file mode 100644 index acdec02594..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/he.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; - -/* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; - -/* Description for finish setup */ -"Finish setup " = "Finish setup "; - -/* Pod inititialized */ -"Initialized" = "Initialized"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Paired"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Priming"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; diff --git a/Dependencies/rileylink_ios/OmniKit/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/it.lproj/Localizable.strings deleted file mode 100644 index ffc8290a98..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/it.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Allarme spegnimento automatico"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Inferiore a 50 unità"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolo in corso"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Somministrazione in bolo in corso"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Somministrazione in bolo con velocità basale temporanea"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Inserimento cannula in corso"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certa"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Disattivato"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Serbatoio vuoto"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Risposta senza contenuto da Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "È stato rilevato un errore. Spegnimento in corso"; - -/* Description for expiration alert */ -"Expiration alert" = "Avviso di scadenza"; - -/* Description for finish setup */ -"Finish setup " = "Termina configurazione"; - -/* Pod inititialized */ -"Initialized" = "Inizializzato"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Errore interno Pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrotto: %1$@ U (%2$@ U previste) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Allarme di avviso livello serbatoio basso"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Assicurati che RileyLink si trovi nelle vicinanze e sia acceso"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Nessun avviso"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Nessun Pod abbinato"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nessuna risposta da Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nessun RileyLink disponibile"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normale"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusione rilevata"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Abbinato"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Avvicina Pod a RileyLink e riprova"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Abbina nuovo Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod già abbinato"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod già caricato"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Allarme di avviso scadenza Pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Avviso di scadenza Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod scaduto"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Errore Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod non è pronto per l’inserimento della cannula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod non è pronto per il caricamento"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod sospeso"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Finestra di configurazione Pod scaduta"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Caricamento in corso"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pronto per la programmazione basale"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pronto per l’inserimento della cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Riprendi: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmato"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Allarme di spegnimento imminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Sospeso: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Sospeso"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Riempimento del serbatoio completato"; - -/* Pod power to motor activated */ -"Tank power activated" = "Alimentazione del serbatoio attivata"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Velocità basale temporanea in corso"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Velocità basale temporanea in esecuzione"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "VelocitàBasaleTemporanea: %1$@ U/ora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "È ora di sostituire Pod! Pod scadrà tra %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Non certa"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Risposta inaspettata da Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Errore Pod sconosciuto %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Attendi il termine del bolo esistente oppure annulla bolo"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Attendi il termine della velocità basale temporanea esistente oppure sospendi per annullare"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "In attesa del promemoria di abbinamento"; diff --git a/Dependencies/rileylink_ios/OmniKit/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/ja.lproj/Localizable.strings deleted file mode 100644 index 0acc662740..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/ja.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "アラーム自動オフ"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "50Uより下"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "ボーラスが進行中"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"ボーラス: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "ボーラス注入中"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "一時基礎とボーラス"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "カニューレ挿入中"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "確実"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "停止されました"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "リザーバが空です"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "ポッドからの反応 - 空"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "エラーイベントを保存、終了します"; - -/* Description for expiration alert */ -"Expiration alert" = "期限切れアラート"; - -/* Description for finish setup */ -"Finish setup " = "設定終了"; - -/* Pod initialized */ -"Initialized" = "初期化完了"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "インターナルポッドエラー %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "ボーラス中断: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "リザーバ残量低下アラーム"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "RileyLink が近くにあり電源が入っているか確認"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "アラートなし"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "ポッドペアリングできません"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "ポンド反応なし"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "RileyLinkがありません"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "通常"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "閉塞があります"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "ペアリングされました"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "ポッドを RileyLink に近づけてやり直してください"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "新しいポッドをペアリングしてください"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "既にペアリングされています"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "プライミングされています"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "ポッド期限アラーム"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "ポッド期限注意"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "ポッド期限切れ"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "ポッドエラー: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "ポッドがカニューレを挿入できる状態ではありません。"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "ポッドがプライミングできる状態ではありません。"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "ポッドが一時停止"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "ポッドの設定期限切れ"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "プライミング"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "基礎レート設定できます"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "カニューレを挿入できます"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "再開: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "定期基礎"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "今から鳴るアラームを切る"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "一時停止: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "一時停止"; - -/* Pod tank fill completed */ -"Tank fill completed" = "タンクが満たされました"; - -/* Pod power to motor activated */ -"Tank power activated" = "タンクがオンになりました"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "一時基礎進行中"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "一時基礎注入中"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "一時基礎: %1$@ U/時 %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "ポッドの交換時です。 %1$@でポッドの期限が切れます。"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "不明"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "ポッドから予期せぬ反応"; -  -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "不明なポッドエラー %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "進行中のボーラスが完了するのを待つか、ボーラスをキャンセルしてください。"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "進行中の一時基礎が完了するのを待つか、一時基礎を停止してください"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "ペアリングリマインダー待機中"; diff --git a/Dependencies/rileylink_ios/OmniKit/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/nb.lproj/Localizable.strings deleted file mode 100644 index 96540c1f41..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/nb.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarm for automatisk av"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheter"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus pågår"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Gir bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Gir bolus med temp-basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Setter inn kanyle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sikker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktivert"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Tomt reservoar"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tomt svar fra pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Feil logget, avslutter"; - -/* Description for expiration alert */ -"Expiration alert" = "Utløpsalarm"; - -/* Description for finish setup */ -"Finish setup " = "Ferdigstill oppsett"; - -/* Pod inititialized */ -"Initialized" = "Klargjort"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Intern pod-feil %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Anbefalt alarm for lavt reservoar"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Pass på at din RileyLink er slått på og er i nærheten"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ingen alarmer"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen sammenkoblet pod"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Ingen svar fra pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink tilgjengelig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Tilstoppelse oppdaget"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Sammenkoblbet"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Prøv å sette pod og RileyLink nærmere hverandre og prøv så igjen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Vennligst koble til ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod er allerede sammenkoblet"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod er allerede fyllt"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Anbefalt utløpsalarm for pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Utløpsmelding for pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Utløpt pod"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod-feil: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar for å sette inn kanyle."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod er ikke klar for fylling"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod er suspendert"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Tidsvindu for oppsett av pod er utløpt"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Fyller"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar for basal-programmering"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar for å sette inn kanyle"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsett: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Planlagt basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Avslutt forestående alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tankpåfylling komplett"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank-motor aktivert"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp-basal pågår"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp-basal kjører"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Temp-basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Det er på tide å bytte pod! Pod utløper om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Usikker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Uventet svar fra pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Ukjent pod-feil %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vent til at eksisterende bolus skal bli ferdig, eller kanseler bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Venter på at eksisterende temp-basal skal bli ferdig, eller at pause skal avsluttes"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Venter på påminnelse for sammenkobling"; diff --git a/Dependencies/rileylink_ios/OmniKit/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/nl.lproj/Localizable.strings deleted file mode 100644 index 7c8466bcc5..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/nl.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-uit alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Minder dan 50 eenheden"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus bezig"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolussen"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus met tijdelijk basaal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Canule wordt geplaatst"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Zeker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Gedeactiveerd"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservoir leeg"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Lege/geen reactie van pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fout geconstateerd, sluit af"; - -/* Description for expiration alert */ -"Expiration alert" = "Alarm vervaltijd"; - -/* Description for finish setup */ -"Finish setup " = "Voltooi installatie"; - -/* Pod inititialized */ -"Initialized" = "Geinitialiseerd"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Interne pod fout %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "OnderbrokenBolus: %1$@ U (%2$@ Eenheden gepland) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Reservoir bijna leeg alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aanstaat"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Geen foutmeldingen"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Geen pod verbonden"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Geen reactie van pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Geen RileyLink aanwezig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normaal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Afsluiting gedetecteerd"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Verbonden"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Breng de pod dichter bij de RileyLink en probeer opnieuw"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Verbind een nieuwe pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod al verbonden"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod is al voorbereid"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod vervaltijd advies alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod vervaltijd aankondiging"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod verlopen"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = " Pod fout: %1S@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is niet gereed voor canule plaatsing."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is niet gereed voor het voorvullen."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is onderbroken"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Insteltijd van de Pod is verlopen"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Voorvullen"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klaar voor programmeren basaal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Gereed for canule plaatsing"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Hervat: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Gepland basaal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Sluit af wegens dreigend alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Onderbreek: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Onderbroken"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Opslag vullen compleet"; - -/* Pod power to motor activated */ -"Tank power activated" = "Opslag power geactiveerd"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tijdelijk basaal wordt uitgevoerd"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tijdelijk basaal werkend"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tijdelijk basaal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Tijd om je pod te vervangen! Vervang je pod in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Onzeker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Onverwachte reactie van pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Onbekende pod fout %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wacht op huidige bolus of maak bolus ongedaan"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wacht op huidig tijdelijk basaal of onderbreek om te annuleren"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Wacht op herinnering om te verbinden"; diff --git a/Dependencies/rileylink_ios/OmniKit/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/pl.lproj/Localizable.strings deleted file mode 100644 index 16d8cd1571..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/pl.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarm automatycznego wyłączenia"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Poniżej 50 jedn."; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus w toku"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Podawanie bolusa"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Podawanie bolusa z dawką podstawową"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Wprowadzanie kaniuli"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Pewna"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktywowany"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Pusty zbiornik"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Pusta odpowiedź POD"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Zarejestrowano zdarzenie błędu, wyłączanie"; - -/* Description for expiration alert */ -"Expiration alert" = "Alert o upływie terminu ważności"; - -/* Description for finish setup */ -"Finish setup " = "Zakończ konfigurację"; - -/* Pod inititialized */ -"Initialized" = "Zainicjalizowany"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Wewnętrzny błąd PODa %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Przerwany bolus: %1$@ jedn. (%2$@ jedn. zaplanowanych) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarm informujący o niskim poziomie w zbiorniku"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Upewnij się, że RileyLink jest w pobliżu i jest włączony"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Brak alertów"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Brak sparowanego PODa"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Brak odpowiedzi z PODa"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Brak dostępnego RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normalny"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Wykryto niedrożność"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Sparowany"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Umieść PODa bliżej RileyLink i spróbuj ponownie"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Sparuj nowego PODa"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "POD już sparowany"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "POD już napełniony"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarm informujący o upływie terminu ważności PODa"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Powiadomienie o upływie terminu ważności PODa"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Termin ważności PODa upłynął"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Usterka PODa: 1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "POD nie znajduje się w stanie gotowości do wprowadzenia kaniuli."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "POD nie znajduje się w stanie gotowości do napełniania."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "POD wstrzymany"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Upłynął termin ważności okna konfiguracji PODa"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Napełnianie"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Gotowy do zaprogramowania dawki podstawowej"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Gotowy do wprowadzenia kaniuli"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Wznów: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Zaplanowana dawka podstawowa"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarm o nadchodzącym wyłączeniu"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Wstrzymaj: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Wstrzymany"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Napełnianie zbiornika zakończone"; - -/* Pod power to motor activated */ -"Tank power activated" = "Zasilanie zbiornika włączone"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tymczasowa dawka podstawowa w toku"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tymczasowa dawka podstawowa działa"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tymczasowa dawka podstawowa: %1$@ jedn./godz. %2$@ %3$@ %4$@ jedn. %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Pora wymienić PODa! Termin ważności PODa upłynie za %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Niepewna"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Nieoczekiwana odpowiedź PODa"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Nieznany błąd PODa %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Poczekaj na zakończenie istniejącego bolusa lub anuluj bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Poczekaj na zakończenie istniejącej dawki podstawowej lub wstrzymaj, aby anulować"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Poczekaj na przypomnienie o parowaniu"; diff --git a/Dependencies/rileylink_ios/OmniKit/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/pt-BR.lproj/Localizable.strings deleted file mode 100644 index 58abd5fa13..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarme de desligamento automático"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Abaixo de 50 unidades"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus em andamento"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Entregando Bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Aplicando bolus com basal temp"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Inserindo Cânula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certo"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Desativado"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservatório vazio"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Resposta vazia do pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Evento de erro registrado, desligando"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerta de expiração"; - -/* Description for finish setup */ -"Finish setup " = "Concluir configuração"; - -/* Pod inititialized */ -"Initialized" = "Inicializado"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Falha interna do pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusInterrompido: %1$@ U (%2$@ U agendado) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarme de baixo reservatório"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Verifique se o seu RileyLink está próximo e ligado"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Sem alertas"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Nenhum pod emparelhado"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nenhuma resposta do pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nenhum RileyLink disponível"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Oclusão detectada"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Emparelhado"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Traga seu pod para mais perto do RileyLink e tente novamente"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Emparelhe um novo pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod já emparelhado"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod já preparado"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarme de expiração do pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Aviso de Expiração do Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expirado"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Falha no Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "O Pod não está pronto para a inserção da cânula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "O Pod não está em um estado pronto para preparação."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "O pod está suspenso"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "A janela de configuração do pod expirou"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Preparando"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pronto para programação basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pronto para inserir a cânula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Retomar: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basal Agendado"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarme de desligamento iminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspenço"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Enchimento do tanque concluído"; - -/* Pod power to motor activated */ -"Tank power activated" = "Alimentação do tanque ativada"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basal temporária em andamento"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Executando basal temporária"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemp: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Hora de substituir o seu pod! Seu pod expirará em %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incerto"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Resposta inesperada do pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Falha desconhecida do pod %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Aguarde a conclusão do bolus existente ou cancele-o"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Aguarde até que a basal temp existente termine ou suspenda para cancelar"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Aguardando lembrete de emparelhamento"; diff --git a/Dependencies/rileylink_ios/OmniKit/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/ro.lproj/Localizable.strings deleted file mode 100644 index ba582291f0..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/ro.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarmă Auto-off"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Sub 50 de unități"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus în derulare"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolus în derulare"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus în derulare cu bazală temporară"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Se inserează canula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Doză confirmată"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Dezactivat"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Rezervor gol"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Răspuns gol primit de la Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Eroare înregistrată în jurnal, se oprește"; - -/* Description for expiration alert */ -"Expiration alert" = "Alertă expirare"; - -/* Description for finish setup */ -"Finish setup " = "Finalizare setare"; - -/* Pod inititialized */ -"Initialized" = "Inițializat"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Defecțiune Pod internă %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusÎntrerupt: %1$@ U (%2$@ U planificat) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarmă nivel scăzut rezervor"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropriere"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Nicio alertă"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Niciun Pod asociat"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nu s-a primit răspuns de la Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nu există un RileyLink disponibil"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Ocluziune detectată"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Asociat"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Apropiați Pod-ul de RileyLink și încercați din nou"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Asociați un Pod nou"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod deja asociat"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod deja amorsat"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarmă expirare Pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notificare expirare Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expirat"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Defecțiune Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod-ul nu este pregătit pentru inserarea canulei."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod nu este pregătit pentru amorsare."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod-ul este suspendat"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Intervalul de timp în care se poate seta Pod-ul a expirat"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Se amorsează"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pregătit pentru programarea bazalelor"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pregătit pentru inserarea canulei"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reluare: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Bazală planificată"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarmă de oprire iminentă"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspendare: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendat"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Umplere rezervor completă"; - -/* Pod power to motor activated */ -"Tank power activated" = "Putere motor rezervor activată"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Bazală temporară în curs de rulare"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Bazala temporară este în curs de rulare"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalăTemporară: %1$@ U/oră %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "E timpul să înlocuiți Pod-ul! Acesta va expira în %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Doză neconfirmată"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Răspuns neașteptat de la Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Defecțiune Pod neidentificată %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Așteptați finalizarea bolusului curent sau opriți bolusul"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Așteptați finalizarea bazalei temporare curente sau suspendați pentru oprirea ei"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Se așteaptă reamintirea de asociere"; diff --git a/Dependencies/rileylink_ios/OmniKit/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/ru.lproj/Localizable.strings deleted file mode 100644 index 5030de5880..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/ru.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Авто отключение сигнала"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Менее 50 единиц"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Подача болюса"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Болюс: %1$@ед %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Подается болюс"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Подача болюса при врем базале"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Установка катетера"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Определенно"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Не активен"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Картридж пуст"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Пустой ответ от пода"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Ошибка внесена, отключение"; - -/* Description for expiration alert */ -"Expiration alert" = "Оповещение об истечении срока"; - -/* Description for finish setup */ -"Finish setup " = "Завершение настройки"; - -/* Pod inititialized */ -"Initialized" = "Активирован"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Внутренняя ошибка пода %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Болюс прерван%1$@ ед (%2$@ ед намечено) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Оповещение о малом запасе инсулина в картридже"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink поблизости и включен"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Активных оповещений нет"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Нет сопряжения с подом"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Нет ответа от пода"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Нет доступного RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Норма"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Обнаружена закупорка"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Омнипод"; - -/* Pod status after pairing */ -"Paired" = "Сопряжен"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Поднесите Omnipod ближе к RileyLink и попробуйте снова"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Начните сопряжение с новым Omnipod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Omnipod уже сопряжен"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Omnipod уже заполнен"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Оповещение об окончании гарантийного срока Omnipod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Сообщение об окончании гарантийного срока Omnipod "; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Срок гарантии Omnipod истек"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Отказ Omnipod %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Omnipod не готов к установке катетера"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Omnipod не готов к первичному заполнению"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Omnipod остановлен"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Время для окна настроек Omnipod истекло"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Заполнение"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Готов к программированию базала"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Готов к установке катетера"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Возобновление: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Основной базал"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Оповещение о неизбежном выключении"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Приостановка: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Остановлено"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Заполнение танка Omnipod завершено"; - -/* Pod power to motor activated */ -"Tank power activated" = "Питание танка активировано"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Работает временный базал"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Подается временный базал"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Врем базал: %1$@ ед/ч %2$@ %3$@ %4$@ ед %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Пора заменить Pod - Срок годности истекает через %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Не подтверждено"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Неожиданный отклик Omnipod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Неизвестная неполадка Omnipod"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Дождитесь окончания подачи болюса или отмените его"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Дождитесь окончания текущего врем базала или отмените"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Напоминание об ожидании сопряжения"; diff --git a/Dependencies/rileylink_ios/OmniKit/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/sv.lproj/Localizable.strings deleted file mode 100644 index b6b7363bbc..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/sv.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-av larm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheter"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus pågår"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Ger bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Ger bolus med temporär basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Kanyl förs in"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Säker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Inaktiverad"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Podfel, tom reservoarl"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Inget svar från pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Felhändelse loggad, stänger ned"; - -/* Description for expiration alert */ -"Expiration alert" = "Larm om utgångsdatum"; - -/* Description for finish setup */ -"Finish setup " = "Inställning färdig"; - -/* Pod inititialized */ -"Initialized" = "Pod initialiserad"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internt podfel %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AvbrutenBolus: %1$@ E (%2$@ E schemalagd) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Larm vid låg reservoarvolym"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära och påslagen"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Inga larm"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen parkopplad"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Inget svar från pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink tillgänglig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Ocklusion upptäckt"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Parkopplad"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "För din pod närmare din RileyLink och försök igen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Var god parkoppla ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod redan parkopplad"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod redan fylld"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Larm för utgångsdatum för pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notis om utgångsdatum för pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod har utgått"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Podfel: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod är inte klar för att föra in kanyl"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod är inte klar för att fyllas"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod är pausad"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Tid för podinställning är överskriden"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Pod fylls på"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar för programmering av basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar att föra in kanyl"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Återuppta: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Schemalagd basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Larm för omedelbar avstängning"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pausa: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pausad"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Pod har fyllts klart"; - -/* Pod power to motor activated */ -"Tank power activated" = "Ström till motor för behållare aktiverad"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal pågår redan"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal pågår"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ E/timme %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Byt din pod! Din pod går ut om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Osäker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Oväntat svar från din pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Okänt podfel %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vänta på att pågående bolus är färdig, eller avbryt bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Vänta på nuvarande temporära basal, eller pausa för att avbryta"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Väntar på påminnelse för parkoppling"; diff --git a/Dependencies/rileylink_ios/OmniKit/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/tr.lproj/Localizable.strings deleted file mode 100644 index acdec02594..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/tr.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; - -/* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; - -/* Description for finish setup */ -"Finish setup " = "Finish setup "; - -/* Pod inititialized */ -"Initialized" = "Initialized"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Paired"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Priming"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; diff --git a/Dependencies/rileylink_ios/OmniKit/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/vi.lproj/Localizable.strings deleted file mode 100644 index 3fe7113b3b..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/vi.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Dưới 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Liều Bolus đang được thực hiện"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Đang tiến hành bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Đang thực hiện liều basal tạm thời"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Đang gắn Cannula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Chắc chắn"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Đã hủy kích hoạt"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Ngăn chứa insulin rỗng"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Không có phản hồi từ pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Lỗi đăng nhập, đang tắt"; - -/* Description for expiration alert */ -"Expiration alert" = "Thông báo hết hạn"; - -/* Description for finish setup */ -"Finish setup " = "Hoàn tất cấu hình"; - -/* Pod inititialized */ -"Initialized" = "Đã được khởi tạo"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Lỗi bên trong pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Báo động ngăn chứa insulin thấp"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Không có cảnh báo nào"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Không có pod nào được kết nối"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Không có tín hiệu phản hồi từ pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Không tìm thấy RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Bình thường"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Đã được ghép đôi"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Đề nghị để pod gần với Rileylink và thử lại lần nữa"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Đề nghị ghép đôi pod mới"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod đã được ghép đôi"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod đã được mồi"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Cảnh báo pod hết hạn"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Thông báo pod hết hạn"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod đã hết hạn"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod lỗi: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod không sẵn sàng để gắn cannula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod không sẵn sàng để mồi."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod bị tạm ngưng"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Cửa sổ cấu hình pod hết hạn"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Đang mồi"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Sẵn sàng cho việc tính toán liều basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Sẵn sàng cho việc gắn cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Tái lập: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Tắt báo động sắp xảy ra"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Tạm ngưng: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Đã tạm ngưng"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Hoàn tất nạp"; - -/* Pod power to motor activated */ -"Tank power activated" = "Pod được kích hoạt"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Liều basal tạm thời đang tiến hành"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Liều basal tạm thời đang thực hiện"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/giờ %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Thời gian thay pod của bạn! Pod của bạn sẽ hết hạn trong %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Không chắc chắn"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Phản hồi bất thường từ pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Lỗi không xác định của pod %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Chờ đợi liệu bolus hiện tại hoàn tất hoặc hủy liều bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Chờ đợi liều basal tạm thời hoàn tất hoặc chọn ngưng để hủy"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Đang chờ đợi câu thông báo ghép đôi"; diff --git a/Dependencies/rileylink_ios/OmniKit/zh-Hans.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKit/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 93875ca233..0000000000 --- a/Dependencies/rileylink_ios/OmniKit/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "自动关闭提醒"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "胰岛素已低于50U"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "大剂量输注中"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "大剂量: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "注射中"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "正在运行临时基础并输注大剂量"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "植入管路"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "已解除"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "胰岛素储量为零"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Pod无响应"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Pod错误已记录"; - -/* Description for expiration alert */ -"Expiration alert" = "到期提醒"; - -/* Description for finish setup */ -"Finish setup " = "完成设置"; - -/* Pod inititialized */ -"Initialized" = "初始化"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Pod内部错误%1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "大剂量输注终端: %1$@ U (%2$@ U 已输注) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "储药量低"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "确保Rileylink与Pod保持比较近的距离"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "运行正常"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "未配对Pod"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Pod无响应"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "没有发现Rileylink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "正常"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "堵管"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "已配对"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "请确保Rileylink与Pod保持近距离并重试"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "请配对一个新的Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod已配对"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod充盈已完成"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod到期提醒"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod到期通知"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod已到期"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod错误: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod无法植入"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod无法充盈"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod已暂停"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod设置超时"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "充盈中"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "基础率同步已就绪"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pod可以进行植入操作"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "恢复输注: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "预设基础率"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "关闭提醒"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "暂停输注: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "已暂停"; - -/* Pod tank fill completed */ -"Tank fill completed" = "已向Pod注入胰岛素"; - -/* Pod power to motor activated */ -"Tank power activated" = "Pod已开启"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "正在设置临时基础率"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "临时基础率正在运行"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "临时基础率: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Pod将在%1$@后到期,请准备更换Pod"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "未知"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Pod未知响应"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Pod未知错误"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "请等待大剂量输注完成,或取消大剂量输注"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "请等待临时基础率结束,或暂停以取消临时基础率"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "等待配对提醒"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/da.lproj/Localizable.strings deleted file mode 100644 index 2111cb5d4f..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/da.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-sluk alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheder"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus i gang"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Indgiver Bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Indgiver Bolus med midlertidig basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Indfører Kanyle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sikker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktiveret"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Tomt reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tom svar fra pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fejl hændelse logget, lukker ned"; - -/* Description for expiration alert */ -"Expiration alert" = "Udløbs advarsel"; - -/* Description for finish setup */ -"Finish setup " = "Afslut indstilling"; - -/* Pod inititialized */ -"Initialized" = "Initialiseret"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Intern pod fejl %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AfbrudtBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Lavt reservoir alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Sørg for at din RileyLink er i nærheden og tændt"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ingen alarmer"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen pod parret"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Intet svar fra pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink til stede"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Blokkering opdaget"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Parret"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Venligst flyt pod’en tættere på din RileyLink og prøv igen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Venligst par med en ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod allerede parret"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod allerede klargjort"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod udløbs alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod udløbs påmindelse"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod udløbet"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fejl: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar til kanyle indførsel."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod er ikke klar til ‘klargøring’."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod er pauset"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod indstillings vindue udløbet"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Klargør"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar til basal programmering"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar til kanyle indførsel"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsæt: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Planlagt Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Afbryd forestående alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Reservoir påfyldning komplet"; - -/* Pod power to motor activated */ -"Tank power activated" = "Reservoir strøm aktiveret"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Midlertidig basal allerede i gang"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Midlertidig basal i gang"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "MidlertidigBasal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Tid til udskiftning af pod! Din pod udløber om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Usikker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Uventet svar fra pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Ukendt pod fejl %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vent indtil eksisterende bolus er færdig, eller annuller bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Vent indtil den eksisterende midlertidige basal er færdig, eller pause for at annullere"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Venter på parrings påmindelse"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/de.lproj/Localizable.strings deleted file mode 100644 index 960995c165..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/de.lproj/Localizable.strings +++ /dev/null @@ -1,257 +0,0 @@ -/* Description for an inactive alert modifier */ -" (inactive)" = " (inaktiv)"; - -/* Pod state when activation not completed in the time allowed */ -"Activation time exceeded" = "Aktivierungszeit überschritten"; - -/* Description for auto-off */ -"Auto-off" = "Auto-Off"; - -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-Off Alarm"; - -/* Pod state when basal initialized */ -"Basal initialized" = "Basal initialisiert"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Weniger als 50 Einheiten"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolusabgabe läuft "; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@IE %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusabgabe"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Abgabe mit temporärer Basalrate"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Einsetzen der Kanüle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sicher"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktiviert"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservoir leer"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Leere Antwort vom Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fehlerereignis protokolliert, fahre herunter"; - -/* Description for expiration advisory */ -"Expiration advisory" = "Ablaufhinweis"; - -/* Description for expiration alert */ -"Expiration alert" = "Ablaufalarm"; - -/* Pod state when fault event has occurred */ -"Fault event occurred" = "Fehlerereignis aufgetreten"; - -/* Description for finish setup */ -"Finish setup " = "Einrichtung abgeschlossen"; - -/* Description for finish setup reminder */ -"Finish setup reminder" = "Einrichtungserinnerung abgeschlossen"; - -/* Pod inititialized */ -"Initialized" = "Initialisiert"; - -/* Pod state when inserting cannula */ -"Inserting cannula" = "Führe Kanüle ein"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Interner Podfehler %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Abgebrochener Bolus: %1$@ IE (%2$@ IE geplant) %3$@ %4$@ %5$@"; - -/* Description for MessageError invalidSequence */ -"Invalid address: (%1$@)" = "Ungültige Adresse: (%1$@)"; - -/* Description for MessageError invalidCrc */ -"Invalid CRC" = "Ungültige Checksumme"; - -/* Pod state when running with fifty or less units */ -"Low reservoir" = "Niedriges Reservoir"; - -/* Format string for description for low reservoir advisory (1: reminder units) */ -"Low reservoir advisory (%1$gU)" = "Niedriges Reservoir Hinweis (%1$gIE)"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Hinweisalarm für fast leeres Reservoir"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Stellen Sie sicher, dass sich Ihr RileyLink in der Nähe befindet und eingeschaltet ist"; - -/* Pod memory initialized */ -"Memory initialized" = "Speicher initialisiert"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Keine Alarme"; - -/* Description for Fault Event Code .noFaults */ -"No faults" = "Keine Fehler"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Kein Pod gekoppelt"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Keine Rückmeldung von Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Kein RileyLink verfügbar"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for MessageError notEnoughData */ -"Not enough data" = "Nicht genug Daten"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Verstopfung erkannt"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Gekoppelt"; - -/* Pod status when pairing completed */ -"Pairing completed" = "Kopplung abgeschlossen"; - -/* Description for MessageError parsingError */ -"Parsing Error: " = "Parsing-Fehler:"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Bitte bringe Deinen Pod näher an den RileyLink und versuche es erneut"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Bitte koppel einen neuen Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod bereits gekoppelt"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod bereits gefüllt"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Ablaufalarm des Pods"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Hinweis zum Ablaufen des Pods"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod abgelaufen"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Podfehler: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Der Pod ist nicht bereit zum Einführen der Kanüle."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Der Pod ist nicht bereit zum Befüllen"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod ist angehalten"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Das Zeitfenster für die Pod-Einrichtung ist abgelaufen"; - -/* Description for pod suspended reminder */ -"Pod suspended reminder" = "Pod angehalten Erinnerung"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Befüllen"; - -/* Pod state when priming completed */ -"Priming completed" = "Befüllen abgeschlossen"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Bereit für die Programmierung der Basalrate"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Bereit zum Einführen der Kanüle"; - -/* Pod pairing reminder initialized */ -"Reminder initialized" = "Erinnerung initialisiert"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsetzen: %1$@ %2$@"; - -/* Delivery status when scheduled basal is running */ -"Scheduled basal" = "Geplante Basalrate"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Geplante Basalrate"; - -/* Description for shutdown imminent */ -"Shutdown imminent" = "Pod-Abschaltung steht bevor"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarm für die bevorstehende Pod-Abschaltung"; - -/* Description for suspend time expired */ -"Suspend time expired" = "Unterbrechungszeit abgelaufen"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Unterbrochen: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Unterbrochen"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Befüllen des Pods erfolgreich"; - -/* Pod power to motor activated */ -"Tank power activated" = "Energieversorgung für den Podmotor aktiviert"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temporäre Basalrate läuft bereits."; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temporäre Basalrate läuft."; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ IE/h %2$@ %3$@ %4$@ IE %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Es ist Zeit Deinen Pod zu ersetzen! Dein Pod läuft ab in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Unsicher"; - -/* Description for MessageError invalidSequence */ -"Unexpected message sequence number" = "Unerwartete Nachrichtensequenznummer"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unerwartete Antwort vom Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unbekannter Podfehler %1$03d"; - -/* Format string for description of MessageError unknownValue. (1: value) (2: Type) */ -"Unknown Value (%1$@) for type %2$@" = "Unbekannter Wert (%1$@) für den Typ %2$@"; - -/* Format string for description of MessageError validationFailed. (1: description of validation failure) */ -"Validation failed: %1$@" = "Überprüfung fehlgeschlagen: %1$@"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Warte, bis der aktuelle Bolus abgegeben wurde, oder unterbreche diesen."; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Warte, bis die aktuelle temporäre Basalrate beendet wurde, oder unterbreche diese."; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Warten auf Kopplungserinnerung"; - diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/en.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/en.lproj/Localizable.strings deleted file mode 100644 index acdec02594..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/en.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; - -/* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; - -/* Description for finish setup */ -"Finish setup " = "Finish setup "; - -/* Pod inititialized */ -"Initialized" = "Initialized"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Paired"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Priming"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/es.lproj/Localizable.strings deleted file mode 100644 index 31189b9075..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/es.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarma de apagado automático"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Menos de 50 unidades"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolo en progreso"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Poniendo bolo"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Poniendo bolo con basal temporal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cánula insertándose"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Programación acertada"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Pod desactivado"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservorio vacío"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Respuesta vacía del pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Evento de error de registro, apagándose"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerta de caducidad"; - -/* Description for finish setup */ -"Finish setup " = "Fin de la configuración"; - -/* Pod inititialized */ -"Initialized" = " iniciado"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Error pod interno %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrumpido: %1$@ U (%2$@ U planeadas) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarma de aviso de depósito bajo"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Asegúrese de que su RileyLink está cerca y encendido"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No hay alertas"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No hay pod emparejado"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Sin respuesta del pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No hay RileyLink disponible"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Oclusion detectada"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Emparejado"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Por favor, acerque su pod al RileyLink e inténtelo de nuevo"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Por favor, empareje un nuevo pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Ya hay un pod emparejado"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "El pod ya está purgado"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarma de aviso de caducidad de un pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Aviso de vencimiento de un pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod caducado"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Error de pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "El Pod no está listo para insertar la cánula"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "El Pod no está listo para purgar"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "El Pod está suspendido"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "La pantalla de configuración del pod ha caducado"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Purgando"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Listo para programar basales"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Listo para insertar la cánula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reanudar: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basal programada"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Apagar la alarma inminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendido"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Completado el llenado del depósito"; - -/* Pod power to motor activated */ -"Tank power activated" = "Depósito encendido"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basal temporal en progreso"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Basal temporal funcionando"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemporal: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Es hora de reemplazar el pod! El pod expira en %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incierto"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Respuesta inesperada del pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Fallo de pod desconocido %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Espere a que termine el bolo o cancele el bolo"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Espere a que termine la basal temporal existente o suspénda para cancelar"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Esperando el recordatorio de emperejamiento"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/fi.lproj/Localizable.strings deleted file mode 100644 index 9d39921aec..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/fi.lproj/Localizable.strings +++ /dev/null @@ -1,194 +0,0 @@ -/* Description for an inactive alert modifier */ -" (inactive)" = " (ei-aktiivinen)"; - -/* The format string for minutes (1: number of minutes string) */ -"%1$@ minutes" = "%1$@ minuuttia"; - -/* The format string for Alerts: (1: the alerts string) */ -"Alerts: %1$@\n" = "Hälytykset: %1$@\n"; - -/* Description for auto-off alarm */ -"Auto-off alarm" = "Autom. pois -varoitus"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Alle 50 yksikköä"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus vireillä"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Annostellaan bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Annostellaan bolus ja tilap. basaali"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Asetetaan kanyyli"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Varma"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktivoitu"; - -/* The format string for Delivery Status: (1: delivery status string) */ -"Delivery Status: %1$@\n" = "Annostelun tila: %1$@\n"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Säiliö tyhjä"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tyhjä vastaus pumpulta"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Virhetapahtuma, suljetaan"; - -/* Description for expiration alert */ -"Expiration alert" = "Pumppu vanhenee -varoitus"; - -/* Description for finish setup */ -"Finish setup " = "Lopeta asennus"; - -/* Pod inititialized */ -"Initialized" = "Aloitettu"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Sisäinen pumpun vika %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "KeskeytettyBolus: %1$@ U (%2$@ U ohjelmoitu) %3$@ %4$@ %5$@"; - -/* The format string for Last Bolus Not Delivered: (1: bolus not delivered string) */ -"Last Bolus Not Delivered: %1$@ U\n" = "Viim. bolusta ei annosteltu: %1$@ U\n"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Säiliö lähes tyhjä -tiedotehälytys"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Varmista, että RileyLink on riittävän lähellä ja kytketty päälle"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ei hälytyksiä"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ei yhdistettyä pumppua"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Ei vastausta pumpusta"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ei RileyLinkiä lähistöllä"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normaali"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Tukos havaittu"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Yhdistetty"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Vie pumppu ja RileyLink lähemmäksi toisiaan ja yritä uudelleen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Yhdistä uusi pumppu"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pumppu on jo yhdistetty"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pumppu on jo alustettu"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pumppu vanhenemassa -tiedotehälytys"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pumppu vanhenemassa -ilmoitus"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pumppu vanhentunut"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pumppuvirhe: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pumppu ei ole valmis kanyylin asettamiseen."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pumppu ei ole valmis alustukseen."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pumppu on pysäytetty"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pumpun asennusaika umpeutui"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Alustetaan"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Valmis basaalin ohjelmointiin"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Valmis kanyylin asetukseen"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Jatka: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Ohjelmoitu basaali"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Mykistä hälytys"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pysäytä: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pysäytetty"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Säiliön täyttö valmis"; - -/* Pod power to motor activated */ -"Tank power activated" = "Säiliön virta aktivoitu"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tilapäinen basaali meneillään"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tilapäinen basaali käynnissä"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TilapBasaali: %1$@ U/h %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Aika vaihtaa pumppu! Pumppu vanhenee %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Epävarma"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Odottamaton vastaus pumpusta"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Tuntematon pumppuvirhe %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Odota, että meneillään oleva bolus päättyy tai kumoa bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Odota, että meneillään oleva tilapäinen basaali päättyy tai pysäytä pumppu kumotaksesi"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Odotetaan yhdistämismuistutusta"; - diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/fr.lproj/Localizable.strings deleted file mode 100644 index 56e9b7844c..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/fr.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarme d’arrêt automatique"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "en dessous de 50 unités"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus en cours"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolus en cours"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus en cours avec basale temporaire"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Canule en cours d'insertion"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Désactivé"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Réservoir vide"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Réponse vide du pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Événement d’erreur envoyé, arrêt en cours"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerte d'expiration"; - -/* Description for finish setup */ -"Finish setup " = "Installation terminée"; - -/* Pod inititialized */ -"Initialized" = "Initialisé"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "code d'erreur du pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Bolus interrompu: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarme de réservoir bas"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Assurez vous que votre RileyLink est à proximité et allumé"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Pas d'alarme"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Pas de pod appairé"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Pas de réponse du pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Aucun RileyLink disponible"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion détectée"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Appairé"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Merci de rapprocher votre pod du RileyLink et d'essayer à nouveau"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Merci d'appairer un nouveau pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod déjà appairé"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod déjà amorcé"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarme d'expiration du pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notification de l'expiration du pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expiré"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Erreur du pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Le pod n’est pas dans un état prêt pour l’insertion de la canule"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Le pod n’est pas dans un état prêt pour l’amorçage"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Le pod est suspendu"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "La fenêtre de mise en place du pod a expiré"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Amorçage"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Prêt pour la programmation de la basale"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Prêt à insérer la canule"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reprise : %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmée"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarme imminente d’arrêt"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspension : %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendue"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Remplissage du réservoir terminé"; - -/* Pod power to motor activated */ -"Tank power activated" = "Charge du réservoir activée"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basale temporaire en cours"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Basale temporaire active"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Basale temporaire: %1$@ U/heure %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "C’est le moment de remplacer votre pod ! Votre pod va expirer dans %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Reponse inattendue du pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Erreur de pod inconnue %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Attendez que le bolus en cours se termine, ou annulez le bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Attendez que la basale se termine pour quitter, ou mettez en suspens pour annuler"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "En attente d'appairage"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/he.lproj/Localizable.strings deleted file mode 100644 index acdec02594..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/he.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; - -/* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; - -/* Description for finish setup */ -"Finish setup " = "Finish setup "; - -/* Pod inititialized */ -"Initialized" = "Initialized"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Paired"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Priming"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/it.lproj/Localizable.strings deleted file mode 100644 index ffc8290a98..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/it.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Allarme spegnimento automatico"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Inferiore a 50 unità"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolo in corso"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolo: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Somministrazione in bolo in corso"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Somministrazione in bolo con velocità basale temporanea"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Inserimento cannula in corso"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certa"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Disattivato"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Serbatoio vuoto"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Risposta senza contenuto da Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "È stato rilevato un errore. Spegnimento in corso"; - -/* Description for expiration alert */ -"Expiration alert" = "Avviso di scadenza"; - -/* Description for finish setup */ -"Finish setup " = "Termina configurazione"; - -/* Pod inititialized */ -"Initialized" = "Inizializzato"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Errore interno Pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BoloInterrotto: %1$@ U (%2$@ U previste) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Allarme di avviso livello serbatoio basso"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Assicurati che RileyLink si trovi nelle vicinanze e sia acceso"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Nessun avviso"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Nessun Pod abbinato"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nessuna risposta da Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nessun RileyLink disponibile"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normale"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusione rilevata"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Abbinato"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Avvicina Pod a RileyLink e riprova"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Abbina nuovo Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod già abbinato"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod già caricato"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Allarme di avviso scadenza Pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Avviso di scadenza Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod scaduto"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Errore Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod non è pronto per l’inserimento della cannula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod non è pronto per il caricamento"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod sospeso"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Finestra di configurazione Pod scaduta"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Caricamento in corso"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pronto per la programmazione basale"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pronto per l’inserimento della cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Riprendi: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basale programmato"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Allarme di spegnimento imminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Sospeso: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Sospeso"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Riempimento del serbatoio completato"; - -/* Pod power to motor activated */ -"Tank power activated" = "Alimentazione del serbatoio attivata"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Velocità basale temporanea in corso"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Velocità basale temporanea in esecuzione"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "VelocitàBasaleTemporanea: %1$@ U/ora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "È ora di sostituire Pod! Pod scadrà tra %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Non certa"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Risposta inaspettata da Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Errore Pod sconosciuto %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Attendi il termine del bolo esistente oppure annulla bolo"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Attendi il termine della velocità basale temporanea esistente oppure sospendi per annullare"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "In attesa del promemoria di abbinamento"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/ja.lproj/Localizable.strings deleted file mode 100644 index 0acc662740..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/ja.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "アラーム自動オフ"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "50Uより下"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "ボーラスが進行中"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"ボーラス: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "ボーラス注入中"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "一時基礎とボーラス"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "カニューレ挿入中"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "確実"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "停止されました"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "リザーバが空です"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "ポッドからの反応 - 空"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "エラーイベントを保存、終了します"; - -/* Description for expiration alert */ -"Expiration alert" = "期限切れアラート"; - -/* Description for finish setup */ -"Finish setup " = "設定終了"; - -/* Pod initialized */ -"Initialized" = "初期化完了"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "インターナルポッドエラー %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "ボーラス中断: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "リザーバ残量低下アラーム"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "RileyLink が近くにあり電源が入っているか確認"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "アラートなし"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "ポッドペアリングできません"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "ポンド反応なし"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "RileyLinkがありません"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "通常"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "閉塞があります"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "ペアリングされました"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "ポッドを RileyLink に近づけてやり直してください"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "新しいポッドをペアリングしてください"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "既にペアリングされています"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "プライミングされています"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "ポッド期限アラーム"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "ポッド期限注意"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "ポッド期限切れ"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "ポッドエラー: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "ポッドがカニューレを挿入できる状態ではありません。"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "ポッドがプライミングできる状態ではありません。"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "ポッドが一時停止"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "ポッドの設定期限切れ"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "プライミング"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "基礎レート設定できます"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "カニューレを挿入できます"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "再開: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "定期基礎"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "今から鳴るアラームを切る"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "一時停止: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "一時停止"; - -/* Pod tank fill completed */ -"Tank fill completed" = "タンクが満たされました"; - -/* Pod power to motor activated */ -"Tank power activated" = "タンクがオンになりました"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "一時基礎進行中"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "一時基礎注入中"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "一時基礎: %1$@ U/時 %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "ポッドの交換時です。 %1$@でポッドの期限が切れます。"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "不明"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "ポッドから予期せぬ反応"; -  -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "不明なポッドエラー %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "進行中のボーラスが完了するのを待つか、ボーラスをキャンセルしてください。"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "進行中の一時基礎が完了するのを待つか、一時基礎を停止してください"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "ペアリングリマインダー待機中"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/nb.lproj/Localizable.strings deleted file mode 100644 index 96540c1f41..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/nb.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarm for automatisk av"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheter"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus pågår"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Gir bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Gir bolus med temp-basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Setter inn kanyle"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Sikker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktivert"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Tomt reservoar"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Tomt svar fra pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Feil logget, avslutter"; - -/* Description for expiration alert */ -"Expiration alert" = "Utløpsalarm"; - -/* Description for finish setup */ -"Finish setup " = "Ferdigstill oppsett"; - -/* Pod inititialized */ -"Initialized" = "Klargjort"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Intern pod-feil %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ E (%2$@ E planlagt) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Anbefalt alarm for lavt reservoar"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Pass på at din RileyLink er slått på og er i nærheten"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Ingen alarmer"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen sammenkoblet pod"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Ingen svar fra pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink tilgjengelig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Tilstoppelse oppdaget"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Sammenkoblbet"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Prøv å sette pod og RileyLink nærmere hverandre og prøv så igjen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Vennligst koble til ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod er allerede sammenkoblet"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod er allerede fyllt"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Anbefalt utløpsalarm for pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Utløpsmelding for pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Utløpt pod"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod-feil: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod er ikke klar for å sette inn kanyle."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod er ikke klar for fylling"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod er suspendert"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Tidsvindu for oppsett av pod er utløpt"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Fyller"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar for basal-programmering"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar for å sette inn kanyle"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Fortsett: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Planlagt basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Avslutt forestående alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pause: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pauset"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tankpåfylling komplett"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank-motor aktivert"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp-basal pågår"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp-basal kjører"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Temp-basal: %1$@ E/time %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Det er på tide å bytte pod! Pod utløper om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Usikker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Uventet svar fra pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Ukjent pod-feil %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vent til at eksisterende bolus skal bli ferdig, eller kanseler bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Venter på at eksisterende temp-basal skal bli ferdig, eller at pause skal avsluttes"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Venter på påminnelse for sammenkobling"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/nl.lproj/Localizable.strings deleted file mode 100644 index 7c8466bcc5..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/nl.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-uit alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Minder dan 50 eenheden"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus bezig"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolussen"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus met tijdelijk basaal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Canule wordt geplaatst"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Zeker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Gedeactiveerd"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservoir leeg"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Lege/geen reactie van pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Fout geconstateerd, sluit af"; - -/* Description for expiration alert */ -"Expiration alert" = "Alarm vervaltijd"; - -/* Description for finish setup */ -"Finish setup " = "Voltooi installatie"; - -/* Pod inititialized */ -"Initialized" = "Geinitialiseerd"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Interne pod fout %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "OnderbrokenBolus: %1$@ U (%2$@ Eenheden gepland) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Reservoir bijna leeg alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Zorg ervoor dat je RileyLink dichtbij is en aanstaat"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Geen foutmeldingen"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Geen pod verbonden"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Geen reactie van pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Geen RileyLink aanwezig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normaal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Afsluiting gedetecteerd"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Verbonden"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Breng de pod dichter bij de RileyLink en probeer opnieuw"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Verbind een nieuwe pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod al verbonden"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod is al voorbereid"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod vervaltijd advies alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod vervaltijd aankondiging"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod verlopen"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = " Pod fout: %1S@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is niet gereed voor canule plaatsing."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is niet gereed voor het voorvullen."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is onderbroken"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Insteltijd van de Pod is verlopen"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Voorvullen"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klaar voor programmeren basaal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Gereed for canule plaatsing"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Hervat: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Gepland basaal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Sluit af wegens dreigend alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Onderbreek: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Onderbroken"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Opslag vullen compleet"; - -/* Pod power to motor activated */ -"Tank power activated" = "Opslag power geactiveerd"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tijdelijk basaal wordt uitgevoerd"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tijdelijk basaal werkend"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tijdelijk basaal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Tijd om je pod te vervangen! Vervang je pod in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Onzeker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Onverwachte reactie van pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Onbekende pod fout %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wacht op huidige bolus of maak bolus ongedaan"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wacht op huidig tijdelijk basaal of onderbreek om te annuleren"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Wacht op herinnering om te verbinden"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/pl.lproj/Localizable.strings deleted file mode 100644 index 16d8cd1571..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/pl.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarm automatycznego wyłączenia"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Poniżej 50 jedn."; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus w toku"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Podawanie bolusa"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Podawanie bolusa z dawką podstawową"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Wprowadzanie kaniuli"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Pewna"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deaktywowany"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Pusty zbiornik"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Pusta odpowiedź POD"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Zarejestrowano zdarzenie błędu, wyłączanie"; - -/* Description for expiration alert */ -"Expiration alert" = "Alert o upływie terminu ważności"; - -/* Description for finish setup */ -"Finish setup " = "Zakończ konfigurację"; - -/* Pod inititialized */ -"Initialized" = "Zainicjalizowany"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Wewnętrzny błąd PODa %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Przerwany bolus: %1$@ jedn. (%2$@ jedn. zaplanowanych) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarm informujący o niskim poziomie w zbiorniku"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Upewnij się, że RileyLink jest w pobliżu i jest włączony"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Brak alertów"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Brak sparowanego PODa"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Brak odpowiedzi z PODa"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Brak dostępnego RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normalny"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Wykryto niedrożność"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Sparowany"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Umieść PODa bliżej RileyLink i spróbuj ponownie"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Sparuj nowego PODa"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "POD już sparowany"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "POD już napełniony"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarm informujący o upływie terminu ważności PODa"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Powiadomienie o upływie terminu ważności PODa"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Termin ważności PODa upłynął"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Usterka PODa: 1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "POD nie znajduje się w stanie gotowości do wprowadzenia kaniuli."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "POD nie znajduje się w stanie gotowości do napełniania."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "POD wstrzymany"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Upłynął termin ważności okna konfiguracji PODa"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Napełnianie"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Gotowy do zaprogramowania dawki podstawowej"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Gotowy do wprowadzenia kaniuli"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Wznów: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Zaplanowana dawka podstawowa"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarm o nadchodzącym wyłączeniu"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Wstrzymaj: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Wstrzymany"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Napełnianie zbiornika zakończone"; - -/* Pod power to motor activated */ -"Tank power activated" = "Zasilanie zbiornika włączone"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Tymczasowa dawka podstawowa w toku"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Tymczasowa dawka podstawowa działa"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Tymczasowa dawka podstawowa: %1$@ jedn./godz. %2$@ %3$@ %4$@ jedn. %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Pora wymienić PODa! Termin ważności PODa upłynie za %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Niepewna"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Nieoczekiwana odpowiedź PODa"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Nieznany błąd PODa %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Poczekaj na zakończenie istniejącego bolusa lub anuluj bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Poczekaj na zakończenie istniejącej dawki podstawowej lub wstrzymaj, aby anulować"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Poczekaj na przypomnienie o parowaniu"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/pt-BR.lproj/Localizable.strings deleted file mode 100644 index 58abd5fa13..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/pt-BR.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarme de desligamento automático"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Abaixo de 50 unidades"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus em andamento"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Entregando Bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Aplicando bolus com basal temp"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Inserindo Cânula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certo"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Desativado"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Reservatório vazio"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Resposta vazia do pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Evento de erro registrado, desligando"; - -/* Description for expiration alert */ -"Expiration alert" = "Alerta de expiração"; - -/* Description for finish setup */ -"Finish setup " = "Concluir configuração"; - -/* Pod inititialized */ -"Initialized" = "Inicializado"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Falha interna do pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusInterrompido: %1$@ U (%2$@ U agendado) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarme de baixo reservatório"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Verifique se o seu RileyLink está próximo e ligado"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Sem alertas"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Nenhum pod emparelhado"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nenhuma resposta do pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nenhum RileyLink disponível"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Oclusão detectada"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Emparelhado"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Traga seu pod para mais perto do RileyLink e tente novamente"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Emparelhe um novo pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod já emparelhado"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod já preparado"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarme de expiração do pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Aviso de Expiração do Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expirado"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Falha no Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "O Pod não está pronto para a inserção da cânula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "O Pod não está em um estado pronto para preparação."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "O pod está suspenso"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "A janela de configuração do pod expirou"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Preparando"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pronto para programação basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pronto para inserir a cânula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Retomar: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Basal Agendado"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarme de desligamento iminente"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspender: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspenço"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Enchimento do tanque concluído"; - -/* Pod power to motor activated */ -"Tank power activated" = "Alimentação do tanque ativada"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Basal temporária em andamento"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Executando basal temporária"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalTemp: %1$@ U/hora %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Hora de substituir o seu pod! Seu pod expirará em %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Incerto"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Resposta inesperada do pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Falha desconhecida do pod %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Aguarde a conclusão do bolus existente ou cancele-o"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Aguarde até que a basal temp existente termine ou suspenda para cancelar"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Aguardando lembrete de emparelhamento"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/ro.lproj/Localizable.strings deleted file mode 100644 index a531965e7a..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/ro.lproj/Localizable.strings +++ /dev/null @@ -1,179 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Alarmă Auto-off"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Sub 50 de unități"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus în derulare"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolus în derulare"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolus în derulare cu bazală temporară"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Se inserează canula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Doză confirmată"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Dezactivat"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Rezervor gol"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Răspuns gol primit de la Pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Eroare înregistrată în jurnal, se oprește"; - -/* Description for expiration alert */ -"Expiration alert" = "Alertă expirare"; - -/* Description for finish setup */ -"Finish setup " = "Finalizare setare"; - -/* Pod inititialized */ -"Initialized" = "Inițializat"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Defecțiune Pod internă %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "BolusÎntrerupt: %1$@ U (%2$@ U planificat) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Alarmă nivel scăzut rezervor"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Asigurați-vă că RileyLink este pornit și situat în apropriere"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Nicio alertă"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Niciun Pod asociat"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Nu s-a primit răspuns de la Pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Nu există un RileyLink disponibil"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Ocluziune detectată"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Asociat"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Apropiați Pod-ul de RileyLink și încercați din nou"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Asociați un Pod nou"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod deja asociat"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod deja amorsat"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Alarmă expirare Pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notificare expirare Pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expirat"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Defecțiune Pod: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod-ul nu este pregătit pentru inserarea canulei."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod nu este pregătit pentru amorsare."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod-ul este suspendat"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Intervalul de timp în care se poate seta Pod-ul a expirat"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Se amorsează"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Pregătit pentru programarea bazalelor"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pregătit pentru inserarea canulei"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Reluare: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Bazală planificată"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Alarmă de oprire iminentă"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspendare: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspendat"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Umplere rezervor completă"; - -/* Pod power to motor activated */ -"Tank power activated" = "Putere motor rezervor activată"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Bazală temporară în curs de rulare"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Bazala temporară este în curs de rulare"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "BasalăTemporară: %1$@ U/oră %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "E timpul să înlocuiți Pod-ul! Acesta va expira în %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Doză neconfirmată"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Răspuns neașteptat de la Pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Defecțiune Pod neidentificată %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Așteptați finalizarea bolusului curent sau opriți bolusul"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Așteptați finalizarea bazalei temporare curente sau suspendați pentru oprirea ei"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Se așteaptă reamintirea de asociere"; - diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/ru.lproj/Localizable.strings deleted file mode 100644 index 5030de5880..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/ru.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Авто отключение сигнала"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Менее 50 единиц"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Подача болюса"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Болюс: %1$@ед %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Подается болюс"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Подача болюса при врем базале"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Установка катетера"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Определенно"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Не активен"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Картридж пуст"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Пустой ответ от пода"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Ошибка внесена, отключение"; - -/* Description for expiration alert */ -"Expiration alert" = "Оповещение об истечении срока"; - -/* Description for finish setup */ -"Finish setup " = "Завершение настройки"; - -/* Pod inititialized */ -"Initialized" = "Активирован"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Внутренняя ошибка пода %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "Болюс прерван%1$@ ед (%2$@ ед намечено) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Оповещение о малом запасе инсулина в картридже"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Убедитесь, что RileyLink поблизости и включен"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Активных оповещений нет"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Нет сопряжения с подом"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Нет ответа от пода"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Нет доступного RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Норма"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Обнаружена закупорка"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Омнипод"; - -/* Pod status after pairing */ -"Paired" = "Сопряжен"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Поднесите Omnipod ближе к RileyLink и попробуйте снова"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Начните сопряжение с новым Omnipod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Omnipod уже сопряжен"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Omnipod уже заполнен"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Оповещение об окончании гарантийного срока Omnipod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Сообщение об окончании гарантийного срока Omnipod "; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Срок гарантии Omnipod истек"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Отказ Omnipod %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Omnipod не готов к установке катетера"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Omnipod не готов к первичному заполнению"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Omnipod остановлен"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Время для окна настроек Omnipod истекло"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Заполнение"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Готов к программированию базала"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Готов к установке катетера"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Возобновление: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Основной базал"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Оповещение о неизбежном выключении"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Приостановка: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Остановлено"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Заполнение танка Omnipod завершено"; - -/* Pod power to motor activated */ -"Tank power activated" = "Питание танка активировано"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Работает временный базал"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Подается временный базал"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "Врем базал: %1$@ ед/ч %2$@ %3$@ %4$@ ед %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Пора заменить Pod - Срок годности истекает через %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Не подтверждено"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Неожиданный отклик Omnipod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Неизвестная неполадка Omnipod"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Дождитесь окончания подачи болюса или отмените его"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Дождитесь окончания текущего врем базала или отмените"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Напоминание об ожидании сопряжения"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/sv.lproj/Localizable.strings deleted file mode 100644 index b6b7363bbc..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/sv.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-av larm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Under 50 enheter"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus pågår"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@E %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Ger bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Ger bolus med temporär basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Kanyl förs in"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Säker"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Inaktiverad"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Podfel, tom reservoarl"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Inget svar från pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Felhändelse loggad, stänger ned"; - -/* Description for expiration alert */ -"Expiration alert" = "Larm om utgångsdatum"; - -/* Description for finish setup */ -"Finish setup " = "Inställning färdig"; - -/* Pod inititialized */ -"Initialized" = "Pod initialiserad"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internt podfel %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "AvbrutenBolus: %1$@ E (%2$@ E schemalagd) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Larm vid låg reservoarvolym"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Säkerställ att din RileyLink är nära och påslagen"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Inga larm"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Ingen parkopplad"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Inget svar från pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Ingen RileyLink tillgänglig"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Ocklusion upptäckt"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Parkopplad"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "För din pod närmare din RileyLink och försök igen"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Var god parkoppla ny pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod redan parkopplad"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod redan fylld"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Larm för utgångsdatum för pod"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Notis om utgångsdatum för pod"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod har utgått"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Podfel: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod är inte klar för att föra in kanyl"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod är inte klar för att fyllas"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod är pausad"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Tid för podinställning är överskriden"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Pod fylls på"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Klar för programmering av basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Klar att föra in kanyl"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Återuppta: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Schemalagd basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Larm för omedelbar avstängning"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Pausa: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Pausad"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Pod har fyllts klart"; - -/* Pod power to motor activated */ -"Tank power activated" = "Ström till motor för behållare aktiverad"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal pågår redan"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal pågår"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ E/timme %2$@ %3$@ %4$@ E %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Byt din pod! Din pod går ut om %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Osäker"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Oväntat svar från din pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Okänt podfel %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Vänta på att pågående bolus är färdig, eller avbryt bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Vänta på nuvarande temporära basal, eller pausa för att avbryta"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Väntar på påminnelse för parkoppling"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/tr.lproj/Localizable.strings deleted file mode 100644 index acdec02594..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/tr.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Below 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Bolus in progress"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Bolusing"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Bolusing with temp basal"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Cannula inserting"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Deactivated"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Empty reservoir"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Empty response from pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Error event logged, shutting down"; - -/* Description for expiration alert */ -"Expiration alert" = "Expiration alert"; - -/* Description for finish setup */ -"Finish setup " = "Finish setup "; - -/* Pod inititialized */ -"Initialized" = "Initialized"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Internal pod fault %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Low reservoir advisory alarm"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Make sure your RileyLink is nearby and powered on"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "No alerts"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "No pod paired"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "No response from pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "No RileyLink available"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Normal"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Paired"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Please bring your pod closer to the RileyLink and try again"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Please pair a new pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod already paired"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod already primed"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod expiration advisory alarm"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod Expiration Notice"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod expired"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod Fault: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod is not in a state ready for cannula insertion."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod is not in a state ready for priming."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod is suspended"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod setup window expired"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Priming"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Ready for basal programming"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Ready to insert cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Resume: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Scheduled Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Shutdown imminent alarm"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Suspend: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Suspended"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Tank fill completed"; - -/* Pod power to motor activated */ -"Tank power activated" = "Tank power activated"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Temp basal in progress"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Temp basal running"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Time to replace your pod! Your pod will expire in %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Uncertain"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Unexpected response from pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Unknown pod fault %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Wait for existing bolus to finish, or cancel bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Wait for existing temp basal to finish, or suspend to cancel"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Waiting for pairing reminder"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/vi.lproj/Localizable.strings deleted file mode 100644 index 3fe7113b3b..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/vi.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "Auto-off alarm"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "Dưới 50 units"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "Liều Bolus đang được thực hiện"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "Bolus: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "Đang tiến hành bolus"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "Đang thực hiện liều basal tạm thời"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "Đang gắn Cannula"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Chắc chắn"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "Đã hủy kích hoạt"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "Ngăn chứa insulin rỗng"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Không có phản hồi từ pod"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Lỗi đăng nhập, đang tắt"; - -/* Description for expiration alert */ -"Expiration alert" = "Thông báo hết hạn"; - -/* Description for finish setup */ -"Finish setup " = "Hoàn tất cấu hình"; - -/* Pod inititialized */ -"Initialized" = "Đã được khởi tạo"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Lỗi bên trong pod %1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "Báo động ngăn chứa insulin thấp"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "Không có cảnh báo nào"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "Không có pod nào được kết nối"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Không có tín hiệu phản hồi từ pod"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "Không tìm thấy RileyLink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "Bình thường"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "Occlusion detected"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "Đã được ghép đôi"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "Đề nghị để pod gần với Rileylink và thử lại lần nữa"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "Đề nghị ghép đôi pod mới"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod đã được ghép đôi"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod đã được mồi"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Cảnh báo pod hết hạn"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Thông báo pod hết hạn"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod đã hết hạn"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod lỗi: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod không sẵn sàng để gắn cannula."; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod không sẵn sàng để mồi."; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod bị tạm ngưng"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Cửa sổ cấu hình pod hết hạn"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "Đang mồi"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "Sẵn sàng cho việc tính toán liều basal"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Sẵn sàng cho việc gắn cannula"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "Tái lập: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "Đã lên chương trình cho liều Basal"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "Tắt báo động sắp xảy ra"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "Tạm ngưng: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "Đã tạm ngưng"; - -/* Pod tank fill completed */ -"Tank fill completed" = "Hoàn tất nạp"; - -/* Pod power to motor activated */ -"Tank power activated" = "Pod được kích hoạt"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "Liều basal tạm thời đang tiến hành"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "Liều basal tạm thời đang thực hiện"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "TempBasal: %1$@ U/giờ %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Thời gian thay pod của bạn! Pod của bạn sẽ hết hạn trong %1$@"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "Không chắc chắn"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Phản hồi bất thường từ pod"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Lỗi không xác định của pod %1$03d"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "Chờ đợi liệu bolus hiện tại hoàn tất hoặc hủy liều bolus"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "Chờ đợi liều basal tạm thời hoàn tất hoặc chọn ngưng để hủy"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "Đang chờ đợi câu thông báo ghép đôi"; diff --git a/Dependencies/rileylink_ios/OmniKitPacketParser/zh-Hans.lproj/Localizable.strings b/Dependencies/rileylink_ios/OmniKitPacketParser/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 93875ca233..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPacketParser/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,178 +0,0 @@ -/* Description for auto-off alarm */ -"Auto-off alarm" = "自动关闭提醒"; - -/* Pod state when running below fifty units */ -"Below 50 units" = "胰岛素已低于50U"; - -/* Error message shown when operation could not be completed due to existing bolus in progress */ -"Bolus in progress" = "大剂量输注中"; - -/* The format string describing a bolus. (1: The amount delivered)(2: Start time of the dose)(3: duration)(4: scheduled certainty) */ -"Bolus: %1$@U %2$@ %3$@ %4$@" = "大剂量: %1$@U %2$@ %3$@ %4$@"; - -/* Delivery status when bolusing */ -"Bolusing" = "注射中"; - -/* Delivery status when bolusing and temp basal is running */ -"Bolusing with temp basal" = "正在运行临时基础并输注大剂量"; - -/* Pod state when inserting cannula */ -"Cannula inserting" = "植入管路"; - -/* String describing a dose that was certainly scheduled */ -"Certain" = "Certain"; - -/* Pod state when pod has been deactivated */ -"Deactivated" = "已解除"; - -/* Description for Empty reservoir pod fault */ -"Empty reservoir" = "胰岛素储量为零"; - -/* Error message shown when empty response from pod was received */ -"Empty response from pod" = "Pod无响应"; - -/* Pod state error event logged shutting down */ -"Error event logged, shutting down" = "Pod错误已记录"; - -/* Description for expiration alert */ -"Expiration alert" = "到期提醒"; - -/* Description for finish setup */ -"Finish setup " = "完成设置"; - -/* Pod inititialized */ -"Initialized" = "初始化"; - -/* The format string for Internal pod fault (1: The fault code value) */ -"Internal pod fault %1$03d" = "Pod内部错误%1$03d"; - -/* The format string describing a bolus that was interrupted. (1: The amount delivered)(2: The amount scheduled)(3: Start time of the dose)(4: duration)(5: scheduled certainty) */ -"InterruptedBolus: %1$@ U (%2$@ U scheduled) %3$@ %4$@ %5$@" = "大剂量输注终端: %1$@ U (%2$@ U 已输注) %3$@ %4$@ %5$@"; - -/* Description for low reservoir alarm */ -"Low reservoir advisory alarm" = "储药量低"; - -/* Recovery suggestion when no RileyLink is available */ -"Make sure your RileyLink is nearby and powered on" = "确保Rileylink与Pod保持比较近的距离"; - -/* Pod alert state when no alerts are active */ -"No alerts" = "运行正常"; - -/* Error message shown when no pod is paired */ -"No pod paired" = "未配对Pod"; - -/* Error message shown when no response from pod was received */ -"No response from pod" = "Pod无响应"; - -/* Error message shown when no response from pod was received */ -"No RileyLink available" = "没有发现Rileylink"; - -/* Delivery status when basal is running - Pod state when running above fifty units */ -"Normal" = "正常"; - -/* Description for Occlusion detected pod fault */ -"Occlusion detected" = "堵管"; - -/* Generic title of the omnipod pump manager */ -"Omnipod" = "Omnipod"; - -/* Pod status after pairing */ -"Paired" = "已配对"; - -/* Recovery suggestion when no response is received from pod */ -"Please bring your pod closer to the RileyLink and try again" = "请确保Rileylink与Pod保持近距离并重试"; - -/* Recover suggestion shown when no pod is paired */ -"Please pair a new pod" = "请配对一个新的Pod"; - -/* Error message shown when user cannot pair because pod is already paired */ -"Pod already paired" = "Pod已配对"; - -/* Error message shown when prime is attempted, but pod is already primed */ -"Pod already primed" = "Pod充盈已完成"; - -/* Description for expiration advisory alarm */ -"Pod expiration advisory alarm" = "Pod到期提醒"; - -/* The title for pod expiration notification */ -"Pod Expiration Notice" = "Pod到期通知"; - -/* Description for Pod expired pod fault */ -"Pod expired" = "Pod已到期"; - -/* Format string for pod fault code */ -"Pod Fault: %1$@" = "Pod错误: %1$@"; - -/* Error message when cannula insertion fails because the pod is in an unexpected state */ -"Pod is not in a state ready for cannula insertion." = "Pod无法植入"; - -/* Error message when prime fails because the pod is in an unexpected state */ -"Pod is not in a state ready for priming." = "Pod无法充盈"; - -/* Error message action could not be performed because pod is suspended */ -"Pod is suspended" = "Pod已暂停"; - -/* Pod state when prime or cannula insertion has not completed in the time allotted */ -"Pod setup window expired" = "Pod设置超时"; - -/* Delivery status when pod is priming - Pod status when priming */ -"Priming" = "充盈中"; - -/* Pod state when ready for basal programming */ -"Ready for basal programming" = "基础率同步已就绪"; - -/* Pod state when ready for cannula insertion */ -"Ready to insert cannula" = "Pod可以进行植入操作"; - -/* The format string describing a resume. (1: Time)(2: Scheduled certainty */ -"Resume: %1$@ %2$@" = "恢复输注: %1$@ %2$@"; - -/* Delivery status when basal is running */ -"Scheduled Basal" = "预设基础率"; - -/* Description for shutdown imminent alarm */ -"Shutdown imminent alarm" = "关闭提醒"; - -/* The format string describing a suspend. (1: Time)(2: Scheduled certainty */ -"Suspend: %1$@ %2$@" = "暂停输注: %1$@ %2$@"; - -/* Delivery status when insulin delivery is suspended */ -"Suspended" = "已暂停"; - -/* Pod tank fill completed */ -"Tank fill completed" = "已向Pod注入胰岛素"; - -/* Pod power to motor activated */ -"Tank power activated" = "Pod已开启"; - -/* Error message shown when temp basal could not be set due to existing temp basal in progress */ -"Temp basal in progress" = "正在设置临时基础率"; - -/* Delivery status when temp basal is running */ -"Temp basal running" = "临时基础率正在运行"; - -/* The format string describing a temp basal. (1: The rate)(2: Start time)(3: duration)(4: volume)(5: scheduled certainty */ -"TempBasal: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@" = "临时基础率: %1$@ U/hour %2$@ %3$@ %4$@ U %5$@"; - -/* The format string for pod expiration notification body (1: time until expiration) */ -"Time to replace your pod! Your pod will expire in %1$@" = "Pod将在%1$@后到期,请准备更换Pod"; - -/* String describing a dose that was possibly scheduled */ -"Uncertain" = "未知"; - -/* Error message shown when empty response from pod was received */ -"Unexpected response from pod" = "Pod未知响应"; - -/* The format string for Unknown pod fault (1: The fault code value) */ -"Unknown pod fault %1$03d" = "Pod未知错误"; - -/* Recovery suggestion when operation could not be completed due to existing bolus in progress */ -"Wait for existing bolus to finish, or cancel bolus" = "请等待大剂量输注完成,或取消大剂量输注"; - -/* Recovery suggestion when operation could not be completed due to existing temp basal in progress */ -"Wait for existing temp basal to finish, or suspend to cancel" = "请等待临时基础率结束,或暂停以取消临时基础率"; - -/* Description waiting for pairing reminder */ -"Waiting for pairing reminder" = "等待配对提醒"; diff --git a/Dependencies/rileylink_ios/OmniKitPlugin/OmniKitPlugin.h b/Dependencies/rileylink_ios/OmniKitPlugin/OmniKitPlugin.h deleted file mode 100644 index 3f908879cb..0000000000 --- a/Dependencies/rileylink_ios/OmniKitPlugin/OmniKitPlugin.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// OmniKitPlugin.h -// OmniKitPlugin -// -// Created by Pete Schwamb on 8/24/19. -// Copyright © 2019 Pete Schwamb. All rights reserved. -// - -#import - -//! Project version number for OmniKitPlugin. -FOUNDATION_EXPORT double OmniKitPluginVersionNumber; - -//! Project version string for OmniKitPlugin. -FOUNDATION_EXPORT const unsigned char OmniKitPluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Dependencies/rileylink_ios/OmniKitTests/BasalScheduleTests.swift b/Dependencies/rileylink_ios/OmniKitTests/BasalScheduleTests.swift deleted file mode 100644 index 5acf0cbbaf..0000000000 --- a/Dependencies/rileylink_ios/OmniKitTests/BasalScheduleTests.swift +++ /dev/null @@ -1,527 +0,0 @@ -// -// BasalScheduleTests.swift -// OmniKitTests -// -// Created by Pete Schwamb on 4/4/18. -// Copyright © 2018 Pete Schwamb. All rights reserved. -// - -import XCTest -@testable import OmniKit - -class BasalScheduleTests: XCTestCase { - - func testInsulinTableEntry() { - let entry = InsulinTableEntry(segments: 2, pulses: 300, alternateSegmentPulse: false) - // $01 $2c $01 $2c = 1 + 44 + 1 + 44 = 90 = $5a - XCTAssertEqual(0x5a, entry.checksum()) - - let entry2 = InsulinTableEntry(segments: 2, pulses: 260, alternateSegmentPulse: true) - // $01 $04 $01 $04 = 1 + 4 + 1 + 5 = 1 = $0b - XCTAssertEqual(0x0b, entry2.checksum()) - } - - func testSetBasalScheduleCommand() { - do { - // Decode 1a 12 77a05551 00 0062 2b 1708 0000 f800 f800 f800 - let cmd = try SetInsulinScheduleCommand(encodedData: Data(hexadecimalString: "1a1277a055510000622b17080000f800f800f800")!) - - XCTAssertEqual(0x77a05551, cmd.nonce) - if case SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(let currentSegment, let secondsRemaining, let pulsesRemaining, let table) = cmd.deliverySchedule { - XCTAssertEqual(0x2b, currentSegment) - XCTAssertEqual(737, secondsRemaining) - XCTAssertEqual(0, pulsesRemaining) - XCTAssertEqual(3, table.entries.count) - } else { - XCTFail("Expected ScheduleEntry.basalSchedule type") - } - } catch (let error) { - XCTFail("message decoding threw error: \(error)") - } - - // Encode - let scheduleEntry = InsulinTableEntry(segments: 16, pulses: 0, alternateSegmentPulse: true) - let table = BasalDeliveryTable(entries: [scheduleEntry, scheduleEntry, scheduleEntry]) - let deliverySchedule = SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(currentSegment: 0x2b, secondsRemaining: 737, pulsesRemaining: 0, table: table) - let cmd = SetInsulinScheduleCommand(nonce: 0x77a05551, deliverySchedule: deliverySchedule) - XCTAssertEqual("1a1277a055510000622b17080000f800f800f800", cmd.data.hexadecimalString) - } - - func testBasalScheduleCommandFromSchedule() { - // Encode from schedule - let entry = BasalScheduleEntry(rate: 0.05, startTime: 0) - let schedule = BasalSchedule(entries: [entry]) - - let cmd = SetInsulinScheduleCommand(nonce: 0x01020304, basalSchedule: schedule, scheduleOffset: .hours(8.25)) - - XCTAssertEqual(0x01020304, cmd.nonce) - if case SetInsulinScheduleCommand.DeliverySchedule.basalSchedule(let currentSegment, let secondsRemaining, let pulsesRemaining, let table) = cmd.deliverySchedule { - XCTAssertEqual(16, currentSegment) - XCTAssertEqual(UInt16(TimeInterval(minutes: 15)), secondsRemaining) - XCTAssertEqual(0, pulsesRemaining) - XCTAssertEqual(3, table.entries.count) - let tableEntry = table.entries[0] - XCTAssertEqual(true, tableEntry.alternateSegmentPulse) - XCTAssertEqual(0, tableEntry.pulses) - XCTAssertEqual(16, tableEntry.segments) - } else { - XCTFail("Expected ScheduleEntry.basalSchedule type") - } - // 1a LL NNNNNNNN 00 CCCC HH SSSS PPPP napp napp napp napp - // 1a 12 01020304 00 0065 10 1c20 0001 f800 f800 f800 - XCTAssertEqual("1a1201020304000064101c200000f800f800f800", cmd.data.hexadecimalString) - } - - - func testBasalScheduleExtraCommand() { - do { - // Decode 130e40 00 1aea 001e8480 3840005b8d80 - - let cmd = try BasalScheduleExtraCommand(encodedData: Data(hexadecimalString: "130e40001aea001e84803840005b8d80")!) - - XCTAssertEqual(false, cmd.acknowledgementBeep) - XCTAssertEqual(true, cmd.completionBeep) - XCTAssertEqual(0, cmd.programReminderInterval) - XCTAssertEqual(0, cmd.currentEntryIndex) - XCTAssertEqual(689, cmd.remainingPulses) - XCTAssertEqual(TimeInterval(seconds: 20), cmd.delayUntilNextTenthOfPulse) - XCTAssertEqual(1, cmd.rateEntries.count) - let entry = cmd.rateEntries[0] - XCTAssertEqual(TimeInterval(seconds: 60), entry.delayBetweenPulses) - XCTAssertEqual(1440, entry.totalPulses) - XCTAssertEqual(3.0, entry.rate) - XCTAssertEqual(TimeInterval(hours: 24), entry.duration) - } catch (let error) { - XCTFail("message decoding threw error: \(error)") - } - - // Encode - let rateEntries = RateEntry.makeEntries(rate: 3.0, duration: TimeInterval(hours: 24)) - let cmd = BasalScheduleExtraCommand(currentEntryIndex: 0, remainingPulses: 689, delayUntilNextTenthOfPulse: TimeInterval(seconds: 20), rateEntries: rateEntries, acknowledgementBeep: false, completionBeep: true, programReminderInterval: 0) - - - XCTAssertEqual("130e40001aea01312d003840005b8d80", cmd.data.hexadecimalString) - } - - func testBasalScheduleExtraCommandFromSchedule() { - // Encode from schedule - let entry = BasalScheduleEntry(rate: 0.05, startTime: 0) - let schedule = BasalSchedule(entries: [entry]) - - let cmd = BasalScheduleExtraCommand(schedule: schedule, scheduleOffset: .hours(8.25), acknowledgementBeep: false, completionBeep: true, programReminderInterval: 60) - - XCTAssertEqual(false, cmd.acknowledgementBeep) - XCTAssertEqual(true, cmd.completionBeep) - XCTAssertEqual(60, cmd.programReminderInterval) - XCTAssertEqual(0, cmd.currentEntryIndex) - XCTAssertEqual(15.8, cmd.remainingPulses, accuracy: 0.01) - XCTAssertEqual(TimeInterval(minutes: 3), cmd.delayUntilNextTenthOfPulse) - XCTAssertEqual(1, cmd.rateEntries.count) - let rateEntry = cmd.rateEntries[0] - XCTAssertEqual(TimeInterval(minutes: 60), rateEntry.delayBetweenPulses) - XCTAssertEqual(24, rateEntry.totalPulses, accuracy: 0.001) - XCTAssertEqual(0.05, rateEntry.rate) - XCTAssertEqual(TimeInterval(hours: 24), rateEntry.duration, accuracy: 0.001) - } - - func testBasalExtraEncoding() { - // Encode - - let schedule = BasalSchedule(entries: [ - BasalScheduleEntry(rate: 1.05, startTime: 0), - BasalScheduleEntry(rate: 0.9, startTime: .hours(10.5)), - BasalScheduleEntry(rate: 1, startTime: .hours(18.5)) - ]) - - let hh = 0x2e - let ssss = 0x1be8 - let offset = TimeInterval(minutes: Double((hh + 1) * 30)) - TimeInterval(seconds: Double(ssss / 8)) - - // 1a LL NNNNNNNN 00 CCCC HH SSSS PPPP napp napp napp napp - // 1a 14 0d6612db 00 0310 2e 1be8 0005 f80a 480a f009 a00a - - let cmd1 = SetInsulinScheduleCommand(nonce: 0x0d6612db, basalSchedule: schedule, scheduleOffset: offset) - XCTAssertEqual("1a140d6612db0003102e1be80005f80a480af009a00a", cmd1.data.hexadecimalString) - - // 13 LL RR MM NNNN XXXXXXXX YYYY ZZZZZZZZ YYYY ZZZZZZZZ YYYY ZZZZZZZZ - // 13 1a 40 02 0096 00a7d8c0 089d 01059449 05a0 01312d00 044c 0112a880 - let cmd2 = BasalScheduleExtraCommand(schedule: schedule, scheduleOffset: offset, acknowledgementBeep: false, completionBeep: true, programReminderInterval: 0) - XCTAssertEqual("131a4002009600a7d8c0089d0105944905a001312d00044c0112a880", cmd2.data.hexadecimalString) // PDM - } - - func checkBasalScheduleExtraCommandDataWithLessPrecision(_ expected: Data, _ data: Data, line: UInt = #line) { - // The XXXXXXXX field is in thousands of a millisecond. Since we use TimeIntervals (floating point) for - // recreating the offset, we can have small errors in reproducing the the encoded output, which we really - // don't care about. - - func extractXXXXXXXX(_ data: Data) -> TimeInterval { - return TimeInterval(Double(data[6...].toBigEndian(UInt32.self)) / 1000000.0) - } - - let xxxxxxxx1 = extractXXXXXXXX(expected) - let xxxxxxxx2 = extractXXXXXXXX(data) - XCTAssertEqual(xxxxxxxx1, xxxxxxxx2, accuracy: 0.01, line: line) - - func blurXXXXXXXX(_ inStr: String) -> String { - let start = inStr.index(inStr.startIndex, offsetBy:12) - let end = inStr.index(start, offsetBy:8) - return inStr.replacingCharacters(in: start.. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/RileyLink.xcscheme b/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/RileyLink.xcscheme deleted file mode 100644 index cf93cf4f95..0000000000 --- a/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/RileyLink.xcscheme +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme b/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme deleted file mode 100644 index 22fe66f648..0000000000 --- a/Dependencies/rileylink_ios/RileyLink.xcodeproj/xcshareddata/xcschemes/Shared.xcscheme +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dependencies/rileylink_ios/RileyLink/DeviceDataManager.swift b/Dependencies/rileylink_ios/RileyLink/DeviceDataManager.swift index 362ad33a92..d388f6d6c3 100644 --- a/Dependencies/rileylink_ios/RileyLink/DeviceDataManager.swift +++ b/Dependencies/rileylink_ios/RileyLink/DeviceDataManager.swift @@ -12,7 +12,7 @@ import RileyLinkKitUI import RileyLinkBLEKit import MinimedKit import MinimedKitUI -import NightscoutUploadKit +import NightscoutKit import LoopKit import LoopKitUI import UserNotifications diff --git a/Dependencies/rileylink_ios/RileyLink/Extensions/BatteryIndicator.swift b/Dependencies/rileylink_ios/RileyLink/Extensions/BatteryIndicator.swift index 5bc2b38fc1..39723023bb 100644 --- a/Dependencies/rileylink_ios/RileyLink/Extensions/BatteryIndicator.swift +++ b/Dependencies/rileylink_ios/RileyLink/Extensions/BatteryIndicator.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Pete Schwamb. All rights reserved. // -import NightscoutUploadKit +import NightscoutKit import MinimedKit public extension BatteryIndicator { diff --git a/Dependencies/rileylink_ios/RileyLink/Models/NightscoutService.swift b/Dependencies/rileylink_ios/RileyLink/Models/NightscoutService.swift index cebfbb0a7b..c6730f3062 100644 --- a/Dependencies/rileylink_ios/RileyLink/Models/NightscoutService.swift +++ b/Dependencies/rileylink_ios/RileyLink/Models/NightscoutService.swift @@ -7,7 +7,7 @@ // import Foundation -import NightscoutUploadKit +import NightscoutKit // Encapsulates a Nightscout site and its authentication @@ -38,7 +38,7 @@ struct NightscoutService: ServiceAuthentication { } // The uploader instance, if credentials are present - private(set) var uploader: NightscoutUploader? { + private(set) var uploader: NightscoutClient? { didSet { uploader?.errorHandler = { (error: Error, context: String) -> Void in print("Error \(error), while \(context)") @@ -66,7 +66,7 @@ struct NightscoutService: ServiceAuthentication { completion(false, nil) return } - self.uploader = NightscoutUploader(siteURL: siteURL, APISecret: APISecret) + self.uploader = NightscoutClient(siteURL: siteURL, apiSecret: APISecret) self.uploader?.checkAuth({ (error) in if let error = error { diff --git a/Dependencies/rileylink_ios/RileyLink/RemoteDataManager.swift b/Dependencies/rileylink_ios/RileyLink/RemoteDataManager.swift index b3159bbbbd..5458990b43 100644 --- a/Dependencies/rileylink_ios/RileyLink/RemoteDataManager.swift +++ b/Dependencies/rileylink_ios/RileyLink/RemoteDataManager.swift @@ -7,12 +7,12 @@ // import Foundation -import NightscoutUploadKit +import NightscoutKit class RemoteDataManager { - var nightscoutUploader: NightscoutUploader? { + var NightscoutClient: NightscoutClient? { return nightscoutService.uploader } diff --git a/Dependencies/rileylink_ios/RileyLink/ar.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/ar.lproj/Localizable.strings new file mode 100644 index 0000000000..e2b3b2b4f5 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ar.lproj/Localizable.strings @@ -0,0 +1,18 @@ +/* The title of the nightscout API secret credential */ +"API Secret" = "API Secret"; + +/* The title of the configuration section in settings */ +"Configuration" = "المعطيات"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; + +/* The title of the Nightscout service */ +"Nightscout" = "نايتسكاوت"; + +/* The title text for the pump ID config value */ +"Pump ID" = "Pump ID"; + +/* The title of the nightscout site URL credential */ +"Site URL" = "رابط الموقع"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ar.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/ar.lproj/LoopKit.strings new file mode 100644 index 0000000000..ea1deea9cc --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ar.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "موافق"; + diff --git a/Dependencies/rileylink_ios/RileyLink/cs.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..afd4d461f1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/cs.lproj/Localizable.strings @@ -0,0 +1,60 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + +/* The title of the about section */ +"About" = "Podrobnosti"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Přidat účet"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Přidat pumpu Minimed"; + +/* The title of the nightscout API secret credential */ +"API Secret" = "API Secret"; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigurace"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Smazat účet"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Zadejte 6místné ID pumpy"; + +/* The title text for the pull cgm Data cell */ +"Fetch CGM" = "Načíst CGM"; + +/* The placeholder text for the nightscout site URL credential */ +"http://mysite.herokuapp.com" = "http://mojestranka.herokuapp.com"; + +/* The title of the Nightscout service */ +"Nightscout" = "Nightscout"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pumpy"; + +/* Title text for section listing configured pumps */ +"Pumps" = "Pumpy"; + +/* The default placeholder string for a credential */ +"Required" = "Povinné"; + +/* Title for RileyLink Testing main view controller */ +"RileyLink Testing" = "Testování RileyLinku"; + +/* Title text for button to set up omnipod */ +"Setup Omnipod" = "Nastavit Omnipod"; + +/* The title of the nightscout site URL credential */ +"Site URL" = "URL adresa webu"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Klepnutím nastavit"; + +/* The title text for the nightscout upload enabled switch cell */ +"Upload To Nightscout" = "Nahrát do Nightscout"; + diff --git a/Dependencies/rileylink_ios/RileyLink/cs.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/cs.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/cs.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/cs.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/cs.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..8f88cab421 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/cs.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Prázdné"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/da.lproj/Localizable.strings index 45608cae56..d82d7a1232 100644 --- a/Dependencies/rileylink_ios/RileyLink/da.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/da.lproj/Localizable.strings @@ -1,17 +1,26 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ -"About" = "About"; +"About" = "Om"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; +"Add Account" = "Tilføj konto"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Tilføj MiniMed pumpe"; /* The title of the nightscout API secret credential */ -"API Secret" = "API Secret"; +"API Secret" = "API kodeord"; /* The title of the configuration section in settings */ "Configuration" = "Konfiguration"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Slet Konto"; +"Delete Account" = "Slet konto"; /* The placeholder text instructing users how to enter a pump ID */ "Enter the 6-digit pump ID" = "Indtast det 6-cifrede pumpe ID"; @@ -38,10 +47,10 @@ "RileyLink Testing" = "RileyLink Testing"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Omnipod Setup"; /* The title of the nightscout site URL credential */ -"Site URL" = "Site URL"; +"Site URL" = "Side-URL"; /* The empty-state text for a configuration value */ "Tap to set" = "Tryk for at gemme"; diff --git a/Dependencies/rileylink_ios/RileyLink/da.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/da.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/da.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/da.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/da.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..ab582a289d --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/da.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Tom"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/de.lproj/Localizable.strings index 116e6a6ee6..5539eb7c9c 100644 --- a/Dependencies/rileylink_ios/RileyLink/de.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/de.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Über"; @@ -47,7 +53,7 @@ "Site URL" = "Website URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Tippen, um festzulegen"; +"Tap to set" = "Klicken zum setzten"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Upload zu NightScout"; diff --git a/Dependencies/rileylink_ios/RileyLink/de.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/de.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/de.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/de.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/de.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..cc5150f887 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/de.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Leer"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/es.lproj/Localizable.strings index a7469b24aa..eddcf7b127 100644 --- a/Dependencies/rileylink_ios/RileyLink/es.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/es.lproj/Localizable.strings @@ -1,11 +1,20 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Respecto a"; /* The title of the button to add the credentials for a service */ "Add Account" = "Agregar Cuenta"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Añadir la bomba Minimed"; + /* The title of the nightscout API secret credential */ -"API Secret" = "Secreto API"; +"API Secret" = "Clave secreta API"; /* The title of the configuration section in settings */ "Configuration" = "Configuración"; @@ -26,7 +35,7 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "ID de Microinfusora"; +"Pump ID" = "ID de Bomba"; /* Title text for section listing configured pumps */ "Pumps" = "Microinfusoras"; @@ -41,10 +50,11 @@ "Setup Omnipod" = "Setup Omnipod"; /* The title of the nightscout site URL credential */ -"Site URL" = "URL de sitio"; +"Site URL" = "URL de Sitio"; /* The empty-state text for a configuration value */ "Tap to set" = "Toca para definir"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Subir a Nightscout"; + diff --git a/Dependencies/rileylink_ios/RileyLink/es.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/es.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/es.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/es.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/es.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..f2dd0c99ff --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/es.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Rileylink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Vacio"; + +/* Bundle name */ +"CFBundleName" = "Rileylink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/fi.lproj/Localizable.strings index b5a5970eda..9dda886d86 100644 --- a/Dependencies/rileylink_ios/RileyLink/fi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/fi.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Tietoja"; diff --git a/Dependencies/rileylink_ios/RileyLink/fi.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/fi.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/fi.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/fr.lproj/Localizable.strings index 1d000a2fa1..a182d7c28f 100644 --- a/Dependencies/rileylink_ios/RileyLink/fr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/fr.lproj/Localizable.strings @@ -1,17 +1,26 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "À propos"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Ajouter Compte"; +"Add Account" = "Ajouter un compte"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Ajouter une pompe Minimed"; /* The title of the nightscout API secret credential */ -"API Secret" = "API Secret"; +"API Secret" = "Secret API"; /* The title of the configuration section in settings */ "Configuration" = "Configuration"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Effacer Compte"; +"Delete Account" = "Supprimer le compte"; /* The placeholder text instructing users how to enter a pump ID */ "Enter the 6-digit pump ID" = "Entrée l’ID de pompe de 6 chiffres"; @@ -26,22 +35,22 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "ID de la Pompe"; +"Pump ID" = "ID de la pompe"; /* Title text for section listing configured pumps */ "Pumps" = "Pompes"; /* The default placeholder string for a credential */ -"Required" = "Requis"; +"Required" = "Obligatoire"; /* Title for RileyLink Testing main view controller */ -"RileyLink Testing" = "RileyLink Testing"; +"RileyLink Testing" = "Test Rileylink"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Configuration Omnipod"; /* The title of the nightscout site URL credential */ -"Site URL" = "URL du Site"; +"Site URL" = "URL du site"; /* The empty-state text for a configuration value */ "Tap to set" = "Appuyez pour définir"; @@ -49,4 +58,3 @@ /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Télécharger vers Nightscout"; - diff --git a/Dependencies/rileylink_ios/RileyLink/fr.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/fr.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/fr.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/fr.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/fr.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..7a8523f1e0 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/fr.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Rileylink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Vide"; + +/* Bundle name */ +"CFBundleName" = "Rileylink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/he.lproj/Localizable.strings index 7b8ff1d7f2..5d50b95c2c 100644 --- a/Dependencies/rileylink_ios/RileyLink/he.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/he.lproj/Localizable.strings @@ -1,9 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ -"About" = "About"; +"About" = "אודות"; /* The title of the button to add the credentials for a service */ "Add Account" = "Add Account"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "הוסף משאבת מינימד"; + /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; @@ -14,7 +23,7 @@ "Delete Account" = "Delete Account"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; +"Enter the 6-digit pump ID" = "הזן את מספר זיהוי המשאבה בן 6 הספרות"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "Fetch CGM"; @@ -23,29 +32,29 @@ "http://mysite.herokuapp.com" = "http://mysite.herokuapp.com"; /* The title of the Nightscout service */ -"Nightscout" = "Nightscout"; +"Nightscout" = "נייטסקאוט"; /* The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; +"Pump ID" = "מספר זיהוי המשאבה"; /* Title text for section listing configured pumps */ -"Pumps" = "Pumps"; +"Pumps" = "משאבות"; /* The default placeholder string for a credential */ "Required" = "Required"; /* Title for RileyLink Testing main view controller */ -"RileyLink Testing" = "RileyLink Testing"; +"RileyLink Testing" = "בדיקת ריילילינק"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "הגדרת אומניפוד"; /* The title of the nightscout site URL credential */ -"Site URL" = "Site URL"; +"Site URL" = "כתובת האתר"; /* The empty-state text for a configuration value */ "Tap to set" = "Tap to set"; /* The title text for the nightscout upload enabled switch cell */ -"Upload To Nightscout" = "Upload To Nightscout"; +"Upload To Nightscout" = "העלה לנייטסקאוט"; diff --git a/Dependencies/rileylink_ios/RileyLink/he.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/he.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/he.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/he.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/he.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..883c1d8cb2 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/he.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,6 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "ריילילינק"; + +/* Bundle name */ +"CFBundleName" = "ריילילינק"; + diff --git a/Dependencies/rileylink_ios/RileyLink/hi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..5563df5838 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/hi.lproj/Localizable.strings @@ -0,0 +1,3 @@ +/* The title of the nightscout API secret credential */ +"API Secret" = "एपीआई पास्वर्ड"; + diff --git a/Dependencies/rileylink_ios/RileyLink/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/it.lproj/Localizable.strings index 33d2bd852b..fd91b39e34 100644 --- a/Dependencies/rileylink_ios/RileyLink/it.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/it.lproj/Localizable.strings @@ -1,11 +1,20 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + /* The title of the about section */ "About" = "Informazioni"; /* The title of the button to add the credentials for a service */ "Add Account" = "Aggiungi Account"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Agg. Microinfusore Minimed"; + /* The title of the nightscout API secret credential */ -"API Secret" = "API Secret"; +"API Secret" = "Chiave personale API"; /* The title of the configuration section in settings */ "Configuration" = "Configurazione"; @@ -14,10 +23,10 @@ "Delete Account" = "Cancella Account"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Inserire 6-numeri ID microinfusore"; +"Enter the 6-digit pump ID" = "Inserire 6-cifre ID micro"; /* The title text for the pull cgm Data cell */ -"Fetch CGM" = "Sincronizza Sensore"; +"Fetch CGM" = "Sincronizza CGM"; /* The placeholder text for the nightscout site URL credential */ "http://mysite.herokuapp.com" = "http://mysite.herokuapp.com"; @@ -26,7 +35,7 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "ID Microinfusore"; +"Pump ID" = "ID microinfusore"; /* Title text for section listing configured pumps */ "Pumps" = "Microinfusore"; @@ -35,16 +44,17 @@ "Required" = "Necessario"; /* Title for RileyLink Testing main view controller */ -"RileyLink Testing" = "RileyLink Testing"; +"RileyLink Testing" = "Collaudo RileyLink"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Configura OmniPod"; /* The title of the nightscout site URL credential */ "Site URL" = "Sito URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Premi per impostare"; +"Tap to set" = "Imposta"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Carica su Nightscout"; + diff --git a/Dependencies/rileylink_ios/RileyLink/it.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/it.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/it.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/it.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/it.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..20b164d67a --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/it.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "Rileylink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Vuoto"; + +/* Bundle name */ +"CFBundleName" = "Rileylink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/ja.lproj/Localizable.strings index ebe23e8d3e..0e2d1428d4 100644 --- a/Dependencies/rileylink_ios/RileyLink/ja.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/ja.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "情報"; diff --git a/Dependencies/rileylink_ios/RileyLink/ja.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/ja.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ja.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/nb.lproj/Localizable.strings index 0b17a94bec..9f8ce6c130 100644 --- a/Dependencies/rileylink_ios/RileyLink/nb.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/nb.lproj/Localizable.strings @@ -1,11 +1,20 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Om"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Legg til konto"; +"Add Account" = "Legg Til Konto"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Legg til Minimed Pumpe"; /* The title of the nightscout API secret credential */ -"API Secret" = "API Secret"; +"API Secret" = "API Hemmelighet"; /* The title of the configuration section in settings */ "Configuration" = "Konfigurasjon"; @@ -14,7 +23,7 @@ "Delete Account" = "Slett Konto"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Skriv 6-sifret pumpe-ID"; +"Enter the 6-digit pump ID" = "Skriv 6-siffret pumpe-ID"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "Hent CGM"; @@ -26,7 +35,7 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "Pumpe-ID"; +"Pump ID" = "Pumpe ID"; /* Title text for section listing configured pumps */ "Pumps" = "Pumper"; @@ -44,7 +53,7 @@ "Site URL" = "Nettstedslenke (URL)"; /* The empty-state text for a configuration value */ -"Tap to set" = "Trykk for å bekrefte innstilling"; +"Tap to set" = "Trykk for å angi"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Last opp til Nightscout"; diff --git a/Dependencies/rileylink_ios/RileyLink/nb.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/nb.lproj/LoopKit.strings new file mode 100644 index 0000000000..bbf0a776f6 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/nb.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; + diff --git a/Dependencies/rileylink_ios/RileyLink/nb.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/nb.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..ab582a289d --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/nb.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Tom"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/nl.lproj/Localizable.strings index a5fc295ba5..8b49503f0e 100644 --- a/Dependencies/rileylink_ios/RileyLink/nl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/nl.lproj/Localizable.strings @@ -1,9 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Over"; /* The title of the button to add the credentials for a service */ "Add Account" = "Voeg account toe"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Voeg Minimed-pomp toe"; + /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; @@ -11,10 +20,10 @@ "Configuration" = "Configuratie"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Verwijder account"; +"Delete Account" = "Verwijder Account"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Voer het 6-cijferige ID van de pomp in"; +"Enter the 6-digit pump ID" = "Voer het 6-cijferige pompserienummer in"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "Haal CGM op"; @@ -26,10 +35,10 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "Pomp ID"; +"Pump ID" = "Pompserienummer"; /* Title text for section listing configured pumps */ -"Pumps" = "Pumps"; +"Pumps" = "Pompen"; /* The default placeholder string for a credential */ "Required" = "Vereist"; @@ -38,10 +47,10 @@ "RileyLink Testing" = "RileyLink Testing"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Omnipod Instellen"; /* The title of the nightscout site URL credential */ -"Site URL" = "Webpagina URL"; +"Site URL" = "Site URL"; /* The empty-state text for a configuration value */ "Tap to set" = "Instellen…"; diff --git a/Dependencies/rileylink_ios/RileyLink/nl.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/nl.lproj/LoopKit.strings new file mode 100644 index 0000000000..bbf0a776f6 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/nl.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Ok"; + diff --git a/Dependencies/rileylink_ios/RileyLink/nl.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/nl.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..be8b33fce7 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/nl.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Leeg"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/pl.lproj/Localizable.strings index d3a31d1f33..a5d085aa4b 100644 --- a/Dependencies/rileylink_ios/RileyLink/pl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/pl.lproj/Localizable.strings @@ -1,9 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "O aplikacji"; /* The title of the button to add the credentials for a service */ "Add Account" = "Dodaj konto"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Dodaj pompę Minimed"; + /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; @@ -14,7 +23,7 @@ "Delete Account" = "Usuń konto"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Wprowadź 6-cyfrowe ID pompy"; +"Enter the 6-digit pump ID" = "Wprowadź 6-cyfrowy numer pompy"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "Pobierz dane z CGM"; @@ -32,7 +41,7 @@ "Pumps" = "Pumps"; /* The default placeholder string for a credential */ -"Required" = "Wymagany"; +"Required" = "Wymagane"; /* Title for RileyLink Testing main view controller */ "RileyLink Testing" = "RileyLink Testing"; @@ -41,10 +50,11 @@ "Setup Omnipod" = "Setup Omnipod"; /* The title of the nightscout site URL credential */ -"Site URL" = "URL strony"; +"Site URL" = "Strona URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Dotknij, aby ustawić"; +"Tap to set" = "Kliknij, aby ustawić"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Wysyłaj do Nightscout"; + diff --git a/Dependencies/rileylink_ios/RileyLink/pl.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/pl.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..f5ee1c8bfa --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/pl.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Pusty"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/Localizable.strings index fa8be64932..da89ba7500 100644 --- a/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Sobre"; @@ -44,7 +47,7 @@ "Site URL" = "Site URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Toque para definir"; +"Tap to set" = "Toque para Definir"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Enviar para Nightscout"; diff --git a/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/pt-BR.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/ro.lproj/Localizable.strings index 834a01dd3d..7720129092 100644 --- a/Dependencies/rileylink_ios/RileyLink/ro.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/ro.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Despre"; @@ -8,10 +14,10 @@ "Add Minimed Pump" = "Adaugă pompă Minimed"; /* The title of the nightscout API secret credential */ -"API Secret" = "Secret API"; +"API Secret" = "Secretul API"; /* The title of the configuration section in settings */ -"Configuration" = "Configurație"; +"Configuration" = "Configurare"; /* The title of the button to remove the credentials for a service */ "Delete Account" = "Șterge cont"; @@ -23,7 +29,7 @@ "Fetch CGM" = "Transferă din CGM"; /* The placeholder text for the nightscout site URL credential */ -"http://mysite.herokuapp.com" = "http://mysite.herokuapp.com"; +"http://mysite.herokuapp.com" = "http://siteulmeu.herokuapp.com"; /* The title of the Nightscout service */ "Nightscout" = "Nightscout"; @@ -52,4 +58,3 @@ /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Încărcare în Nightscout"; - diff --git a/Dependencies/rileylink_ios/RileyLink/ro.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/ro.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ro.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ro.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/ro.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..9327bc799a --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ro.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Gol"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/ru.lproj/Localizable.strings index 6dd77cfc61..3643bfc5f8 100644 --- a/Dependencies/rileylink_ios/RileyLink/ru.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/ru.lproj/Localizable.strings @@ -1,20 +1,29 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Про"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Добавить учетную запись"; +"Add Account" = "Добавить пользователя"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Добавить помпу Minimed"; /* The title of the nightscout API secret credential */ -"API Secret" = "API secret"; +"API Secret" = "API Секрет"; /* The title of the configuration section in settings */ "Configuration" = "Конфигурация"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Удалить учетную запись"; +"Delete Account" = "Удалить аккаунт"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Ввести 6-значный инд № помпы"; +"Enter the 6-digit pump ID" = "Ввести 6-значный ID помпы"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "Получить данные мониторинга"; @@ -26,19 +35,19 @@ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "Инд № помпы"; +"Pump ID" = "Идентификатор ID помпы"; /* Title text for section listing configured pumps */ -"Pumps" = "Pumps"; +"Pumps" = "Помпы"; /* The default placeholder string for a credential */ -"Required" = "Обязательное значение"; +"Required" = "обязательный"; /* Title for RileyLink Testing main view controller */ -"RileyLink Testing" = "RileyLink Testing"; +"RileyLink Testing" = "Тестирование RileyLink"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Настроить Omnipod"; /* The title of the nightscout site URL credential */ "Site URL" = "URL сайта"; @@ -47,6 +56,5 @@ "Tap to set" = "Щелкнуть для ввода"; /* The title text for the nightscout upload enabled switch cell */ -"Upload To Nightscout" = "Передать в Nightscout"; - +"Upload To Nightscout" = "Загружать в Nightscout"; diff --git a/Dependencies/rileylink_ios/RileyLink/ru.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/ru.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ru.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/ru.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/ru.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..57f4bd9869 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/ru.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Пусто"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/sk.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..6db7ee2753 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/sk.lproj/Localizable.strings @@ -0,0 +1,60 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + +/* The title of the about section */ +"About" = "O sekcii"; + +/* The title of the button to add the credentials for a service */ +"Add Account" = "Pridať účet"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Pridať pumpu Minimed"; + +/* The title of the nightscout API secret credential */ +"API Secret" = "API Secret"; + +/* The title of the configuration section in settings */ +"Configuration" = "Konfigurácia"; + +/* The title of the button to remove the credentials for a service */ +"Delete Account" = "Odstrániť účet"; + +/* The placeholder text instructing users how to enter a pump ID */ +"Enter the 6-digit pump ID" = "Zadajte 6-miestne ID pumpy"; + +/* The title text for the pull cgm Data cell */ +"Fetch CGM" = "Načítať CGM"; + +/* The placeholder text for the nightscout site URL credential */ +"http://mysite.herokuapp.com" = "http://mysite.herokuapp.com"; + +/* The title of the Nightscout service */ +"Nightscout" = "Nightscout"; + +/* The title text for the pump ID config value */ +"Pump ID" = "ID pumpy"; + +/* Title text for section listing configured pumps */ +"Pumps" = "Pumpy"; + +/* The default placeholder string for a credential */ +"Required" = "Povinné"; + +/* Title for RileyLink Testing main view controller */ +"RileyLink Testing" = "Rileylink testovanie"; + +/* Title text for button to set up omnipod */ +"Setup Omnipod" = "Nastaviť Omnipod"; + +/* The title of the nightscout site URL credential */ +"Site URL" = "URL adresa webu"; + +/* The empty-state text for a configuration value */ +"Tap to set" = "Ťuknutím nastavte"; + +/* The title text for the nightscout upload enabled switch cell */ +"Upload To Nightscout" = "Nahrať do Nightscoutu"; + diff --git a/Dependencies/rileylink_ios/RileyLink/sk.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/sk.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/sk.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/sk.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/sk.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..e935e91cb4 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/sk.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Prázdne"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/sv.lproj/Localizable.strings index be21edff5c..4d906297a2 100644 --- a/Dependencies/rileylink_ios/RileyLink/sv.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/sv.lproj/Localizable.strings @@ -1,9 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "Om"; /* The title of the button to add the credentials for a service */ "Add Account" = "Lägg till konto"; +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Lägg till Minimed-pump"; + /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; @@ -44,7 +53,7 @@ "Site URL" = "Nightscout-URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Tryck för att ange"; +"Tap to set" = "Klicka för att ange"; /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "Nightscout-uppladdning"; diff --git a/Dependencies/rileylink_ios/RileyLink/sv.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/sv.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/sv.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/tr.lproj/Localizable.strings index 7b8ff1d7f2..50375ffe99 100644 --- a/Dependencies/rileylink_ios/RileyLink/tr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/tr.lproj/Localizable.strings @@ -1,51 +1,60 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ -"About" = "About"; +"About" = "Hakkında"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Add Account"; +"Add Account" = "Hesap Ekle"; + +/* Title text for button to set up a new minimed pump */ +"Add Minimed Pump" = "Minimed Pompa Ekle"; /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; /* The title of the configuration section in settings */ -"Configuration" = "Configuration"; +"Configuration" = "Konfigürasyon"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Delete Account"; +"Delete Account" = "Hesabı sil"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "Enter the 6-digit pump ID"; +"Enter the 6-digit pump ID" = "6 haneli pompa kimliğini girin"; /* The title text for the pull cgm Data cell */ -"Fetch CGM" = "Fetch CGM"; +"Fetch CGM" = "CGM verilerini getir"; /* The placeholder text for the nightscout site URL credential */ -"http://mysite.herokuapp.com" = "http://mysite.herokuapp.com"; +"http://mysite.herokuapp.com" = "http://site_adresim.herokuapp.com"; /* The title of the Nightscout service */ "Nightscout" = "Nightscout"; /* The title text for the pump ID config value */ -"Pump ID" = "Pump ID"; +"Pump ID" = "Pompa Kimliği"; /* Title text for section listing configured pumps */ -"Pumps" = "Pumps"; +"Pumps" = "Pompalar"; /* The default placeholder string for a credential */ -"Required" = "Required"; +"Required" = "Gerekli"; /* Title for RileyLink Testing main view controller */ -"RileyLink Testing" = "RileyLink Testing"; +"RileyLink Testing" = "RileyLink Testi"; /* Title text for button to set up omnipod */ -"Setup Omnipod" = "Setup Omnipod"; +"Setup Omnipod" = "Omnipod Kurulumu"; /* The title of the nightscout site URL credential */ -"Site URL" = "Site URL"; +"Site URL" = "Nightscout URL"; /* The empty-state text for a configuration value */ -"Tap to set" = "Tap to set"; +"Tap to set" = "Ayarlamak için dokunun"; /* The title text for the nightscout upload enabled switch cell */ -"Upload To Nightscout" = "Upload To Nightscout"; +"Upload To Nightscout" = "Nightscout'a Yükle"; diff --git a/Dependencies/rileylink_ios/RileyLink/tr.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/tr.lproj/LoopKit.strings new file mode 100644 index 0000000000..661f382387 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/tr.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "Tamam"; + diff --git a/Dependencies/rileylink_ios/RileyLink/tr.lproj/RileyLink-InfoPlist.strings b/Dependencies/rileylink_ios/RileyLink/tr.lproj/RileyLink-InfoPlist.strings new file mode 100644 index 0000000000..fd742976b0 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/tr.lproj/RileyLink-InfoPlist.strings @@ -0,0 +1,9 @@ +/* Bundle display name */ +"CFBundleDisplayName" = "RileyLink"; + +/* Get Info string */ +"CFBundleGetInfoString" = "Boş"; + +/* Bundle name */ +"CFBundleName" = "RileyLink"; + diff --git a/Dependencies/rileylink_ios/RileyLink/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/vi.lproj/Localizable.strings index 7daee5d472..52ccfd2515 100644 --- a/Dependencies/rileylink_ios/RileyLink/vi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/vi.lproj/Localizable.strings @@ -1,8 +1,11 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the about section */ "About" = "About"; /* The title of the button to add the credentials for a service */ -"Add Account" = "Thêm tài khoản"; +"Add Account" = "Thêm Tài khoản"; /* The title of the nightscout API secret credential */ "API Secret" = "API Secret"; @@ -11,7 +14,7 @@ "Configuration" = "Cấu hình"; /* The title of the button to remove the credentials for a service */ -"Delete Account" = "Xóa bỏ tài khoản"; +"Delete Account" = "Xóa Tài khoản"; /* The placeholder text instructing users how to enter a pump ID */ "Enter the 6-digit pump ID" = "Nhập 6 số ID của bơm"; @@ -32,7 +35,7 @@ "Pumps" = "Pumps"; /* The default placeholder string for a credential */ -"Required" = "Bắc buộc"; +"Required" = "Bắt buộc"; /* Title for RileyLink Testing main view controller */ "RileyLink Testing" = "RileyLink Testing"; diff --git a/Dependencies/rileylink_ios/RileyLink/vi.lproj/LoopKit.strings b/Dependencies/rileylink_ios/RileyLink/vi.lproj/LoopKit.strings new file mode 100644 index 0000000000..bc1fda9fb1 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLink/vi.lproj/LoopKit.strings @@ -0,0 +1,3 @@ +/* The title of the action used to dismiss an error alert */ +"com.loudnate.LoopKit.errorAlertActionTitle" = "OK"; + diff --git a/Dependencies/rileylink_ios/RileyLink/zh-Hans.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLink/zh-Hans.lproj/Localizable.strings index f421a55745..7c95e631d4 100644 --- a/Dependencies/rileylink_ios/RileyLink/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLink/zh-Hans.lproj/Localizable.strings @@ -14,7 +14,7 @@ "Delete Account" = "删除账户"; /* The placeholder text instructing users how to enter a pump ID */ -"Enter the 6-digit pump ID" = "请输入6位数字胰岛素泵序列号"; +"Enter the 6-digit pump ID" = "输入六位数字的泵ID"; /* The title text for the pull cgm Data cell */ "Fetch CGM" = "获取动态血糖数据"; @@ -48,3 +48,4 @@ /* The title text for the nightscout upload enabled switch cell */ "Upload To Nightscout" = "上传到Nightscout"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/cs.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..12dfc72dbb --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/cs.lproj/Localizable.strings @@ -0,0 +1,15 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Udávající hodnota byla prázdná"; + +/* Write size limit exceeded error description (1: size limit) */ +"Data exceeded maximum size of %@ bytes" = "Data překročila maximální velikost %@ bajtů"; + +/* Invalid input error description (1: input) */ +"Input %@ is invalid" = "Vstup %@ je neplatný"; + +/* Recovery suggestion for unknown peripheral characteristic */ +"Make sure the device is nearby, and the issue should resolve automatically" = "Ujistěte se, že je zařízení poblíž, problém by se měl vyřešit automaticky."; + +/* Timeout error description */ +"Peripheral did not respond in time" = "Periferní zařízení nereagovalo včas"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/da.lproj/Localizable.strings index 6ef8f4daa2..c9d81be8a8 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/da.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/da.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Karakteristisk værdi var tom"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "Data overskred den maksimale størrelse på %@ bytes"; @@ -5,13 +8,13 @@ "Input %@ is invalid" = "Input %@ er ugyldigt"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Sørg for at det eksterne apparat (eks. Rileylink) er tæt på, så bør problemet blive løst automatisk"; +"Make sure the device is nearby, and the issue should resolve automatically" = "Sørg for at enheden er tæt på, så bør problemet blive løst automatisk"; /* Timeout error description */ -"Peripheral did not respond in time" = "Eksternt apparat (eks. Rileylink) svarede ikke i tide"; +"Peripheral did not respond in time" = "Ekstern enhed svarede ikke i tide"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Eksternt apparat (eks. Rileylink) er ikke forbundet"; +"Peripheral isnʼt connected" = "Ekstern enhed er ikke forbundet"; /* Response timeout error description */ "Pump did not respond in time" = "Pumpe svarede ikke i tide"; @@ -19,11 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Svaret %@ er ugyldigt"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "RileyLink svarer ikke"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink svarede ikke i tide"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "RileyLink firmware understøtter ikke %@ kommandoen"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink er optaget"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink er ikke tilsluttet"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "Der er måske behov for at slukke og tænde for RileyLink"; + /* Failure reason: unknown peripheral characteristic */ -"The RileyLink was temporarily disconnected" = "RileyLinket var midlertidigt afbrudt"; +"The RileyLink was temporarily disconnected" = "RileyLink blev midlertidigt afbrudt"; /* Error description */ -"Unknown characteristic" = "Ukendt karakteristika"; +"Unknown characteristic" = "Ukendt karakteristik"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Ukendt karakteristik: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Ukendt service: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/es.lproj/Localizable.strings index 3da4f37457..c411e92af1 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/es.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/es.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Valor característico estaba vacío"; + +/* Write size limit exceeded error description (1: size limit) */ +"Data exceeded maximum size of %@ bytes" = "El Dato excede el tamaño de %@ bytes"; + /* Invalid input error description (1: input) */ "Input %@ is invalid" = "El dato %@ es inválido"; @@ -16,12 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Le respuesta %@ es inválida"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "El comando de RileyLink no respondió"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink no respondió a tiempo"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "RileyLink firmware no soporta el comando %@"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink está ocupado"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink no está conectado"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "Es posible que sea necesario apagar y volver a encender RileyLink"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "RileyLink fue temporalmente desconectado"; /* Error description */ "Unknown characteristic" = "Característica desconocida"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "La característica desconocida: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Servicio Desconocido: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/fi.lproj/Localizable.strings index 09cd1668df..022e85c15b 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/fi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/fi.lproj/Localizable.strings @@ -19,13 +19,13 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Vastaus %@ on virheellinen"; -/* Timeout error description */ +/* PeripheralManagerError.timeout error description */ "RileyLink did not respond in time" = "RileyLink ei vastannut ajoissa"; /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "RileyLink-laiteohelmisto ei tue %@ komentoa"; -/* Not ready error description */ +/* PeripheralManagerError.notReady error description */ "RileyLink is not connected" = "RileyLink ei ole yhdistetty"; /* Failure reason: unknown peripheral characteristic */ diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/fr.lproj/Localizable.strings index c1f62a3c0c..1f7fb9f3d3 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/fr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/fr.lproj/Localizable.strings @@ -1,8 +1,14 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "La valeur de la caractéristique est vide"; + +/* Write size limit exceeded error description (1: size limit) */ +"Data exceeded maximum size of %@ bytes" = "Les données ont dépasséla taille maximale de %@ bytes"; + /* Invalid input error description (1: input) */ "Input %@ is invalid" = "L’entrée %@ n’est pas valide"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Assurez-vous que le périphérique est à proximité et que le problème doit être résolu automatiquement"; +"Make sure the device is nearby, and the issue should resolve automatically" = "Assurez-vous que le périphérique est à proximité et le problème devrait se résoudre automatiquement"; /* Timeout error description */ "Peripheral did not respond in time" = "Le périphérique n’a pas répondu à temps"; @@ -14,10 +20,25 @@ "Pump did not respond in time" = "La pompe n’a pas répondu à temps"; /* Invalid response error description (1: response) */ -"Response %@ is invalid" = "Réponse %@ n’est pas valide"; +"Response %@ is invalid" = "La réponse %@ n’est pas valide"; + +/* commandsBlocked error description */ +"RileyLink command did not respond" = "La commande RileyLink n'a pas répondu"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "Le RileyLink n'a pas répondu à temps"; /* Unsupported command error description */ -"RileyLink firmware does not support the %@ command" = "Le firmware de RileyLink ne prend pas en charge la commande %@"; +"RileyLink firmware does not support the %@ command" = "Le firmware du RileyLink ne reconnait pas la commande %@"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "Le RileyLink est occupé"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "Le RileyLink n'est pas connecté"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "Le RileyLink pourrait avoir besoin d'être éteint et rallumé"; /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "Le RileyLink a été temporairement déconnecté"; @@ -25,3 +46,9 @@ /* Error description */ "Unknown characteristic" = "Caractéristique inconnue"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Caractéristique inconnue: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Service inconnu: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/he.lproj/Localizable.strings index b8344eccca..421a427fa5 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/he.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/he.lproj/Localizable.strings @@ -2,10 +2,10 @@ "Data exceeded maximum size of %@ bytes" = "Data exceeded maximum size of %@ bytes"; /* Invalid input error description (1: input) */ -"Input %@ is invalid" = "Input %@ is invalid"; +"Input %@ is invalid" = "קלט %@ אינו חוקי"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Make sure the device is nearby, and the issue should resolve automatically"; +"Make sure the device is nearby, and the issue should resolve automatically" = "ודא שהמכשיר נמצא בקרבת מקום, והבעיה אמורה להיפתר אוטומטית"; /* Timeout error description */ "Peripheral did not respond in time" = "Peripheral did not respond in time"; @@ -14,17 +14,38 @@ "Peripheral isnʼt connected" = "Peripheral isnʼt connected"; /* Response timeout error description */ -"Pump did not respond in time" = "Pump did not respond in time"; +"Pump did not respond in time" = "המשאבה לא הגיבה בזמן"; /* Invalid response error description (1: response) */ -"Response %@ is invalid" = "Response %@ is invalid"; +"Response %@ is invalid" = "התגובה %@ אינה חוקית"; + +/* commandsBlocked error description */ +"RileyLink command did not respond" = "פקודת ריילילינק לא הגיבה"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "ריילילינק לא הגיב בזמן"; /* Unsupported command error description */ -"RileyLink firmware does not support the %@ command" = "RileyLink firmware does not support the %@ command"; +"RileyLink firmware does not support the %@ command" = "קושחת הריילילינק אינה תומכת בפקודה %@"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "ריילילינק עסוק"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "ריילילינק לא מחובר"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "ייתכן שיש צורך לכבות את הריילילינק ולהפעיל אותו מחדש"; /* Failure reason: unknown peripheral characteristic */ -"The RileyLink was temporarily disconnected" = "The RileyLink was temporarily disconnected"; +"The RileyLink was temporarily disconnected" = "הריילילינק נותק זמנית"; /* Error description */ -"Unknown characteristic" = "Unknown characteristic"; +"Unknown characteristic" = "מאפיין לא ידוע"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "מאפיין לא ידוע: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "שירות לא ידוע: %@"; diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/it.lproj/Localizable.strings index 9d7d608812..3367aeb146 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/it.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/it.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Il valore caratteristico era vuoto"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "I dati superano la dimensione massima di %@ bytes"; @@ -19,12 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "La risposta %@ non e' valida"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "Rileylink non ha risposto al comando"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "Il Rileylink non ha risposto in tempo"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "Il firmware del RileyLink non supporta il comando %@"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink è occupato"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "Il Rileylink non è connesso"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "Potrebbe essere necessario spegnere e riaccendere RileyLink"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "Il RileyLink e' stato temporaneamente disconnesso"; /* Error description */ -"Unknown characteristic" = "Caratteristiche sconosciute"; +"Unknown characteristic" = "Caratteristica sconosciuta"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Caratteristica sconosciuta: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Servizio sconosciuto: %@"; diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/ja.lproj/Localizable.strings index bf0fa59d1e..5a2eee93b3 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/ja.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/ja.lproj/Localizable.strings @@ -27,3 +27,4 @@ /* Error description */ "Unknown characteristic" = "エラー不明"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/nb.lproj/Localizable.strings index 9f34065a1f..6f22d1d6d5 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/nb.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/nb.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Karakteristisk verdi var tom"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "Data overskrider maks størrelse på %@ bytes"; @@ -5,7 +8,7 @@ "Input %@ is invalid" = "Inndata %@ er ikke gyldig"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Forsikre deg at enheten er i nærheten, så skal problemet løse seg selv automatisk."; +"Make sure the device is nearby, and the issue should resolve automatically" = "Forsikre deg at enheten er i nærheten, så skal problemet automatisk løse seg selv."; /* Timeout error description */ "Peripheral did not respond in time" = "Tilbehøret svarte ikke i tide"; @@ -19,12 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Responsen %@ er ikke gyldig"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "RileyLink-kommandoen svarte ikke"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink svarte ikke i tide"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "RileyLink firmware støtter ikke %@ kommandoen"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink er opptatt"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink er ikke tilkoblet"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink må kanskje slås av og på igjen"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "RileyLink ble midlertidig frakoblet"; /* Error description */ "Unknown characteristic" = "Ukjent karakteristikk"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Ukjent karakteristikk: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Ukjent tjeneste: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/nl.lproj/Localizable.strings index ea234d6ef8..2347cca763 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/nl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/nl.lproj/Localizable.strings @@ -1,11 +1,14 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Karakteristieke waarde was leeg"; + /* Write size limit exceeded error description (1: size limit) */ -"Data exceeded maximum size of %@ bytes" = "Data overschrijdt maximale grootte van %@ bytes"; +"Data exceeded maximum size of %@ bytes" = "Gegevens overschrijden maximale grootte van %@ bytes"; /* Invalid input error description (1: input) */ "Input %@ is invalid" = "Invoer %@ is ongeldig"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Zorg ervoor dat het apparaat in de buurt is en het probleem zal automatisch worden opgelost."; +"Make sure the device is nearby, and the issue should resolve automatically" = "Zorg ervoor dat het apparaat in de buurt is, wat het probleem automatisch zou moeten oplossen."; /* Timeout error description */ "Peripheral did not respond in time" = "Apparaat reageerde niet op tijd"; @@ -17,10 +20,25 @@ "Pump did not respond in time" = "Pomp reageerde niet op tijd"; /* Invalid response error description (1: response) */ -"Response %@ is invalid" = "Antwoord %@ is ongeldig"; +"Response %@ is invalid" = "Reactie %@ is ongeldig"; + +/* commandsBlocked error description */ +"RileyLink command did not respond" = "Er was geen reactie van het RileyLink commando"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink reageerde niet op tijd"; /* Unsupported command error description */ -"RileyLink firmware does not support the %@ command" = "De RileyLink firmware ondersteund niet het %@ commando"; +"RileyLink firmware does not support the %@ command" = "De RileyLink firmware ondersteunt het %@ commando niet"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink is bezig"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink is niet verbonden"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink moet mogelijk uit- en weer ingeschakeld worden"; /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "The RileyLink was tijdelijk niet verbonden"; @@ -28,3 +46,9 @@ /* Error description */ "Unknown characteristic" = "Onbekende eigenschap"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Onbekende eigenschap: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Onbekende service: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/pl.lproj/Localizable.strings index c0399c5fce..f9d6535815 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/pl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/pl.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Wartość charakterystyczna była pusta"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "Dane przekraczają maksymalną pojemność %@ bajtów"; @@ -19,12 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Odpowiedź %@ jest nieprawidłowa"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "Komenda RileyLink nie odpowiedziała"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink nie odpowiedział na czas"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "Oprogramowanie RileyLink nie obsługuje polecenia %@"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink jest zajęty"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink nie jest podłączony"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink może wymagać wyłączenia i ponownego włączenia"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "RileyLink został tymczasowo rozłączony"; /* Error description */ "Unknown characteristic" = "Nieznany błąd"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Nieznane powiadomienie: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Nieznana usługa: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/pt-BR.lproj/Localizable.strings index ecfb957640..b70832a2d5 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/pt-BR.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/pt-BR.lproj/Localizable.strings @@ -27,3 +27,4 @@ /* Error description */ "Unknown characteristic" = "Característica Desconhecida"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/ro.lproj/Localizable.strings index 069dfd9e6c..46d1d2e202 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/ro.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/ro.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Valoarea caracteristică era goală"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "Datele depășesc cantitatea maximă de %@ bytes"; @@ -5,7 +8,7 @@ "Input %@ is invalid" = "Introducerea %@ este invalidă"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Plasarea dispozitivul în apropiere, ar trebui să rezolve problema"; +"Make sure the device is nearby, and the issue should resolve automatically" = "Asigurați-vă că dispozitivul este în apropiere, iar problema ar trebui să se rezolve automat"; /* Timeout error description */ "Peripheral did not respond in time" = "Dispozitivul periferic nu a răspuns în timp util"; @@ -19,11 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Răspunsul %@ este invalid"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "Comanda RileyLink nu a răspuns"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink nu a răspuns în timp util"; + /* Unsupported command error description */ -"RileyLink firmware does not support the %@ command" = "Firmware-ul RileyLink nu sprijină %@ comanda"; +"RileyLink firmware does not support the %@ command" = "Firmware-ul RileyLink nu poate efectua %@ comanda"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink-ul este ocupat"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink nu este conectat"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "Poate fi necesar ca RileyLink să fie oprit și repornit"; /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "RileyLink a fost temporar deconectat"; /* Error description */ "Unknown characteristic" = "Caracteristică necunoscută"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Caracteristică necunoscută: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Serviciu necunoscut: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/ru.lproj/Localizable.strings index 50b9996cbf..f7a324138a 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/ru.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/ru.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Значение характеристики было пустым"; + /* Write size limit exceeded error description (1: size limit) */ "Data exceeded maximum size of %@ bytes" = "Данные превышают максимальный объем %@ байт"; @@ -19,12 +22,33 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Отклик %@ неверен"; +/* commandsBlocked error description */ +"RileyLink command did not respond" = "RileyLink не получил ответ на команду"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink не отвечает (завис)"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "Прошивка RileyLink не поддерживает команду %@"; +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "Rileylink занят"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink не подключен"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink необходимо перезагрузить (выключить и включить)"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "Связь с RileyLink была временно потеряна"; /* Error description */ "Unknown characteristic" = "Неизвестная характеристика"; +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Неизвестная характеристика: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Неизвестный сервис: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/sk.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/sk.lproj/Localizable.strings new file mode 100644 index 0000000000..52f9578456 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/sk.lproj/Localizable.strings @@ -0,0 +1,54 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Charakteristická hodnota bola prázdna"; + +/* Write size limit exceeded error description (1: size limit) */ +"Data exceeded maximum size of %@ bytes" = "Dáta prekročili maximálnu veľkosť %@ bajtov"; + +/* Invalid input error description (1: input) */ +"Input %@ is invalid" = "Vstup %@ je neplatný"; + +/* Recovery suggestion for unknown peripheral characteristic */ +"Make sure the device is nearby, and the issue should resolve automatically" = "Uistite sa, že je zariadenie v blízkosti a problém by sa mal vyriešiť automaticky"; + +/* Timeout error description */ +"Peripheral did not respond in time" = "Periférne zariadenie nereagovalo načas"; + +/* Not ready error description */ +"Peripheral isnʼt connected" = "Periférne zariadenie nie je pripojené"; + +/* Response timeout error description */ +"Pump did not respond in time" = "Pumpa neodpovedala načas"; + +/* Invalid response error description (1: response) */ +"Response %@ is invalid" = "Odpoveď %@ je neplatná"; + +/* commandsBlocked error description */ +"RileyLink command did not respond" = "RileyLink príkaz neodpovedal"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink neodpovedal včas"; + +/* Unsupported command error description */ +"RileyLink firmware does not support the %@ command" = "Firmvér RileyLink nepodporuje príkaz %@"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink je zaneprázdnený"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink nie je pripojený"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink môže byť potrebné vypnúť a znova zapnúť"; + +/* Failure reason: unknown peripheral characteristic */ +"The RileyLink was temporarily disconnected" = "RileyLink bol dočasne odpojený"; + +/* Error description */ +"Unknown characteristic" = "Neznáma charakteristika"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Neznáma charakteristika: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Neznáma služba: %@"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/sv.lproj/Localizable.strings index c497247c73..7dee1f2450 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/sv.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/sv.lproj/Localizable.strings @@ -19,11 +19,18 @@ /* Invalid response error description (1: response) */ "Response %@ is invalid" = "Respons %@ ogiltig"; +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "Din RileyLink svarade inte i tid"; + /* Unsupported command error description */ "RileyLink firmware does not support the %@ command" = "RileyLink-enhetens firmware stöder inte kommandot %@"; +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink är inte ansluten"; + /* Failure reason: unknown peripheral characteristic */ "The RileyLink was temporarily disconnected" = "RileyLink-enheten har blivit frånkopplad temporärt"; /* Error description */ "Unknown characteristic" = "Okänd data"; + diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/tr.lproj/Localizable.strings index b8344eccca..bcc89bf716 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/tr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/tr.lproj/Localizable.strings @@ -1,30 +1,54 @@ +/* PeripheralManagerError.emptyValue error description */ +"Characteristic value was empty" = "Karakteristik değer boştu"; + /* Write size limit exceeded error description (1: size limit) */ -"Data exceeded maximum size of %@ bytes" = "Data exceeded maximum size of %@ bytes"; +"Data exceeded maximum size of %@ bytes" = "Veri maksimum %@ bayt boyutunu aştı"; /* Invalid input error description (1: input) */ -"Input %@ is invalid" = "Input %@ is invalid"; +"Input %@ is invalid" = "%@ girişi geçersiz"; /* Recovery suggestion for unknown peripheral characteristic */ -"Make sure the device is nearby, and the issue should resolve automatically" = "Make sure the device is nearby, and the issue should resolve automatically"; +"Make sure the device is nearby, and the issue should resolve automatically" = "Cihazın yakında olduğundan emin olun ve sorun otomatik olarak çözülecektir."; /* Timeout error description */ -"Peripheral did not respond in time" = "Peripheral did not respond in time"; +"Peripheral did not respond in time" = "Çevre birimi zamanında yanıt vermedi"; /* Not ready error description */ -"Peripheral isnʼt connected" = "Peripheral isnʼt connected"; +"Peripheral isnʼt connected" = "Çevre birimi bağlı değil"; /* Response timeout error description */ -"Pump did not respond in time" = "Pump did not respond in time"; +"Pump did not respond in time" = "Pompa zamanında yanıt vermedi"; /* Invalid response error description (1: response) */ -"Response %@ is invalid" = "Response %@ is invalid"; +"Response %@ is invalid" = "Yanıt %@ geçersiz"; + +/* commandsBlocked error description */ +"RileyLink command did not respond" = "RileyLink komutu yanıt vermedi"; + +/* PeripheralManagerError.timeout error description */ +"RileyLink did not respond in time" = "RileyLink zamanında yanıt vermedi"; /* Unsupported command error description */ -"RileyLink firmware does not support the %@ command" = "RileyLink firmware does not support the %@ command"; +"RileyLink firmware does not support the %@ command" = "RileyLink aygıt yazılımı %@ komutunu desteklemiyor"; + +/* PeripheralManagerError.busy error description */ +"RileyLink is busy" = "RileyLink meşgul"; + +/* PeripheralManagerError.notReady error description */ +"RileyLink is not connected" = "RileyLink bağlı değil"; + +/* commandsBlocked recovery suggestion */ +"RileyLink may need to be turned off and back on" = "RileyLink'in kapatılıp tekrar açılması gerekebilir"; /* Failure reason: unknown peripheral characteristic */ -"The RileyLink was temporarily disconnected" = "The RileyLink was temporarily disconnected"; +"The RileyLink was temporarily disconnected" = "RileyLink'in bağlantısı geçici olarak kesildi"; /* Error description */ -"Unknown characteristic" = "Unknown characteristic"; +"Unknown characteristic" = "Bilinmeyen karakteristik"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown characteristic: %@" = "Bilinmeyen karakteristik: %@"; + +/* PeripheralManagerError.unknownCharacteristic error description */ +"Unknown service: %@" = "Bilinmeyen hizmet: %@"; diff --git a/Dependencies/rileylink_ios/RileyLinkBLEKit/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkBLEKit/vi.lproj/Localizable.strings index 01a288af9e..0b24466540 100644 --- a/Dependencies/rileylink_ios/RileyLinkBLEKit/vi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkBLEKit/vi.lproj/Localizable.strings @@ -27,3 +27,4 @@ /* Error description */ "Unknown characteristic" = "Đặc điểm không xác định"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/ar.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/ar.lproj/Localizable.strings index 4f1beecdc7..446026f519 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/ar.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/ar.lproj/Localizable.strings @@ -1,41 +1,6 @@ -/* The title of the section describing commands */ -"Commands" = "Commands"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Find Device"; -/* The connected state */ -"Connected" = "Connected"; +/* Text indicating LED Mode is on */ +"On" = "On"; -/* The in-progress connecting state */ -"Connecting" = "Connecting"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; - -/* The disconnected state */ -"Disconnected" = "Disconnected"; - -/* The in-progress disconnecting state */ -"Disconnecting" = "Disconnecting"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing current rileylink frequency */ -"Frequency" = "Frequency"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink allows for communication with the pump over Bluetooth Low Energy."; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/ca.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/ca.lproj/Localizable.strings deleted file mode 100644 index 4f1beecdc7..0000000000 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/ca.lproj/Localizable.strings +++ /dev/null @@ -1,41 +0,0 @@ -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The connected state */ -"Connected" = "Connected"; - -/* The in-progress connecting state */ -"Connecting" = "Connecting"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; - -/* The disconnected state */ -"Disconnected" = "Disconnected"; - -/* The in-progress disconnecting state */ -"Disconnecting" = "Disconnecting"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing current rileylink frequency */ -"Frequency" = "Frequency"; - -/* The title of the cell showing device name */ -"Name" = "Name"; - -/* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink allows for communication with the pump over Bluetooth Low Energy."; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/cs.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/cs.lproj/Localizable.strings new file mode 100644 index 0000000000..764c32371d --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/cs.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + +/* The connected state */ +"Connected" = "Připojeno"; + +/* The in-progress connecting state */ +"Connecting" = "Připojuji"; + +/* The title of the cell showing firmware version */ +"Firmware" = "Firmware"; + +/* The title of the cell showing current rileylink frequency */ +"Frequency" = "Frekvence"; + +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Získat statistiky RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Získávám statistiky…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Rozsvícení červené LED diody"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Rozsvícení žluté LED diody"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Upozornění na vybitou baterii"; + +/* The title of the cell showing device name */ +"Name" = "Název"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Vypnuto"; + +/* Text indicating LED Mode is on */ +"On" = "Zapnuto"; + +/* RileyLink setup description */ +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink umožňuje komunikaci s pumpou přes Bluetooth Low Energy."; + +/* The title of the cell showing BLE signal strength (RSSI) */ +"Signal Strength" = "Síla signálu"; + +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Testovací příkazy"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Vibrační test"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Přepínání diagnostických LED"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Aktualizace režimu diagnostických LED"; + +/* The title of the cell showing uptime */ +"Uptime" = "Doba provozu"; + +/* The title of the cell showing ORL */ +"Voltage" = "Napětí"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/da.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/da.lproj/Localizable.strings index 47e7fa409b..90694a3c0d 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/da.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/da.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Advarsel"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Batteriniveau"; + /* The title of the section describing commands */ "Commands" = "Kommandoer"; @@ -7,14 +22,23 @@ /* The in-progress connecting state */ "Connecting" = "Tilslutter"; +/* The title of the cell for connection LED */ +"Connection LED" = "Forbindelse-LED"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Forbindelsesovervågning"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Tilslutningstilstand"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Vibration ved forbindelse"; + /* The title of the section describing the device */ "Device" = "Enhed"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; +"Devices" = "Enheder"; /* The disconnected state */ "Disconnected" = "Frakoblet"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Frakobler"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Find enhed"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frekvens"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Hent RileyLink statistik..."; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Hent statistik..."; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Tænd rød LED"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Tænd gul LED"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Advarsel for lavt batteri"; + /* The title of the cell showing device name */ -"Name" = "Name"; +"Name" = "Navn"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Slukket"; + +/* Text indicating LED Mode is on */ +"On" = "Tændt"; /* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink tillader kommunikation med pumpen vha Bluetooth Lav Energi."; +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink tillader kommunikation med pumpen via Bluetooth Lav Energi (BLE)"; /* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Styrke"; +"Signal Strength" = "Signalstyrke"; + +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Test-kommandoer"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Test vibration"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Skift diagnostiserings-LED'er"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Opdaterer diagnoserings-LED’er"; /* The title of the cell showing uptime */ "Uptime" = "Oppetid"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltage"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/de.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/de.lproj/Localizable.strings index bca1fa7856..e0a906345e 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/de.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/de.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alarm"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Batteriefüllung"; + /* The title of the section describing commands */ "Commands" = "Befehle"; @@ -7,9 +22,18 @@ /* The in-progress connecting state */ "Connecting" = "Verbinden"; +/* The title of the cell for connection LED */ +"Connection LED" = "Verbindungs LED"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Verbindungsüberwachung"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Verbindungsstatus"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Verbindungsvibration"; + /* The title of the section describing the device */ "Device" = "Gerät"; @@ -20,7 +44,10 @@ "Disconnected" = "Getrennt"; /* The in-progress disconnecting state */ -"Disconnecting" = "Trennen"; +"Disconnecting" = "trennen"; + +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Gerät finden"; /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; @@ -28,14 +55,53 @@ /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequenz"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Lade RileyLink Statistiken"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Lade Statistiken…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "rote LED leuchtet"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "gelbe LED leuchtet"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Niedrige Batterie-Warnung"; + /* The title of the cell showing device name */ "Name" = "Name"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Aus"; + +/* Text indicating LED Mode is on */ +"On" = "An"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink ermöglicht Kommunikation zur Pumpe über Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Signalstärke"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Test Befehle"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Vibrationstest"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Diagnose LED umschalten"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Ändere Diagnostik LED Modus"; + /* The title of the cell showing uptime */ "Uptime" = "Betriebszeit"; + +/* The title of the cell showing ORL */ +"Voltage" = "Spannung"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/es.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/es.lproj/Localizable.strings index 7d05e95196..25345b1623 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/es.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/es.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alerta"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Automático"; + +/* The title of the cell showing battery level */ +"Battery level" = "Nivel de bateria"; + /* The title of the section describing commands */ "Commands" = "Comandos"; @@ -7,9 +22,18 @@ /* The in-progress connecting state */ "Connecting" = "Conectando"; +/* The title of the cell for connection LED */ +"Connection LED" = "LED Conexión"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Supervisión De conexiones"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Estado de Conexión"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Conexión Vibración"; + /* The title of the section describing the device */ "Device" = "Dispositivo"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Desconectando"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Encontrar Dispositivo"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequencia"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Obtener Estadísticas de RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Obtener Estadísticas…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Aclarar el LED rojo"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Aclarar LED amarillo"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Alerta de Batería Baja"; + /* The title of the cell showing device name */ "Name" = "Nombre"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Apagado"; + +/* Text indicating LED Mode is on */ +"On" = "Encendido"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink permite la comunicación con la microinfusora a través del uso de Bluetooth de baja energía."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Intensidad de señal"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Prueba de Comandos"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Prueba de Vibración"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Pasar diagnóstico LEDs"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Actualización del modo LED de diagnóstico"; + /* The title of the cell showing uptime */ "Uptime" = "Uptime"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltaje"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/fi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/fi.lproj/Localizable.strings index 333ac9950b..26bb829ecb 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/fi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/fi.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the section describing commands */ "Commands" = "Komennot"; @@ -14,7 +20,7 @@ "Device" = "Laite"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; +"Devices" = "Laitteet"; /* The disconnected state */ "Disconnected" = "Ei yhteydessä"; @@ -22,14 +28,27 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Katkaistaan"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Etsi laite"; + /* The title of the cell showing firmware version */ "Firmware" = "Laiteohjelmisto"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Taajuus"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "Hae tilastotiedot…"; + /* The title of the cell showing device name */ -"Name" = "Name"; +"Name" = "Nimi"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Pois päältä"; + +/* Text indicating LED Mode is on */ +"On" = "Päällä"; /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink mahdollistaa tiedonsiirron pumpun kanssa Bluetooth Low Energy -yhteyden kautta."; @@ -39,3 +58,4 @@ /* The title of the cell showing uptime */ "Uptime" = "Päällä"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/fr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/fr.lproj/Localizable.strings index ba530d9d7e..485ac87baa 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/fr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/fr.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alerte"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Niveau de la batterie"; + /* The title of the section describing commands */ "Commands" = "Commandes"; @@ -5,37 +20,88 @@ "Connected" = "Connecté"; /* The in-progress connecting state */ -"Connecting" = "De liaison"; +"Connecting" = "Connexion en cours"; + +/* The title of the cell for connection LED */ +"Connection LED" = "DEL de connexion"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Surveillance de la connexion"; /* The title of the cell showing BLE connection state */ -"Connection State" = "Etat de connexion"; +"Connection State" = "État de connexion"; + +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Vibration lors de la connexion"; /* The title of the section describing the device */ "Device" = "Dispositif"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Appareils"; +"Devices" = "Dispositifs"; /* The disconnected state */ -"Disconnected" = "Débranché"; +"Disconnected" = "Déconnecté"; /* The in-progress disconnecting state */ -"Disconnecting" = "Se déconnecter"; +"Disconnecting" = "Déconnexion en cours"; + +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Découvrir dispositif"; /* The title of the cell showing firmware version */ -"Firmware" = "Microprogramme"; +"Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Fréquence"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Obtenir les statistiques du RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Obtenir les statistiques…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Réduire l'intensité de la DEL rouge"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Réduire l'intensité de la DEL jaune"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Alerte bas niveau de batterie"; + /* The title of the cell showing device name */ "Name" = "Nom"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Désactivé"; + +/* Text indicating LED Mode is on */ +"On" = "Activé"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink permet la communication avec la pompe via Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Force du signal"; +"Signal Strength" = "Intensité du signal"; + +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Tester les commandes"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Tester la vibration"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Basculer DEL diagnostique"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Mise à jour du mode de DEL diagnostique"; /* The title of the cell showing uptime */ -"Uptime" = "Temps de fonctionnement"; +"Uptime" = "Temps fonctionnement"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltage"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/he.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/he.lproj/Localizable.strings index 4f1beecdc7..5325cd3429 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/he.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/he.lproj/Localizable.strings @@ -1,14 +1,35 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "התראה"; + +/* Text indicating LED Mode is auto */ +"Auto" = "אוטומטי"; + +/* The title of the cell showing battery level */ +"Battery level" = "מצב הסוללה"; + /* The title of the section describing commands */ -"Commands" = "Commands"; +"Commands" = "פקודות"; /* The connected state */ -"Connected" = "Connected"; +"Connected" = "מחובר"; /* The in-progress connecting state */ -"Connecting" = "Connecting"; +"Connecting" = "מתחבר"; + +/* The title of the cell for connection LED */ +"Connection LED" = "נורית חיבור"; /* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; +"Connection State" = "מצב החיבור"; + +/* The title of the cell for connection vibration */ +"Connection Vibration" = "רטט חיבור"; /* The title of the section describing the device */ "Device" = "Device"; @@ -17,25 +38,58 @@ "Devices" = "Devices"; /* The disconnected state */ -"Disconnected" = "Disconnected"; +"Disconnected" = "מנותק"; /* The in-progress disconnecting state */ -"Disconnecting" = "Disconnecting"; +"Disconnecting" = "מתנתק"; + +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Find Device"; /* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; +"Firmware" = "קושחה"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequency"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "Get Statistics…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "הבהב נורית אדומה"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "הבהב נורית צהובה"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "התראת סוללה נמוכה"; + /* The title of the cell showing device name */ "Name" = "Name"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "כבוי"; + +/* Text indicating LED Mode is on */ +"On" = "דולק"; + /* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink allows for communication with the pump over Bluetooth Low Energy."; +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "ריילי לינק מאפשר תקשורת עם המשאבה באמצעות בלוטוס' באנרגיה נמוכה (BLE)."; /* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; +"Signal Strength" = "עוצמת אות"; + +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "בדוק פקודות"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "בדוק רטט"; /* The title of the cell showing uptime */ "Uptime" = "Uptime"; + +/* The title of the cell showing ORL */ +"Voltage" = "מתח"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/hi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/hi.lproj/Localizable.strings new file mode 100644 index 0000000000..da0563a0b2 --- /dev/null +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/hi.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* The connected state */ +"Connected" = "कनेक्ट हो गया"; + +/* The in-progress connecting state */ +"Connecting" = "कनेक्ट हो रहा है"; + +/* The title of the cell showing device name */ +"Name" = "नाम"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/it.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/it.lproj/Localizable.strings index ccd719b4d7..7810ffbb74 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/it.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/it.lproj/Localizable.strings @@ -1,15 +1,39 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + +/* The title of the section for alerts */ +"Alert" = "Avviso"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Livello Batteria"; + /* The title of the section describing commands */ "Commands" = "Comandi"; /* The connected state */ -"Connected" = "Collegato"; +"Connected" = "Connesso"; /* The in-progress connecting state */ -"Connecting" = "In collegamento"; +"Connecting" = "In fase di Connessione"; + +/* The title of the cell for connection LED */ +"Connection LED" = "Led di connessione"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Monitoraggio della connessione"; /* The title of the cell showing BLE connection state */ "Connection State" = "Stato Connessione"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Vibrazioni di connessione"; + /* The title of the section describing the device */ "Device" = "Dispositivo"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Disconnessione"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Trova Dispositivo"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequenza"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Ottieni Statistiche RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Ottieni Statistiche..."; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Accensione LED Rosso"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Accensione LED Giallo"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Avviso Livello Batteria Basso"; + /* The title of the cell showing device name */ "Name" = "Nome"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Spento"; + +/* Text indicating LED Mode is on */ +"On" = "Acceso"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink consente la comunicazione con il microinfusore tramite Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Potenza Segnale"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Prova Comandi"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Vibrazione di prova"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Attiva/disattiva LED diagnostici"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Aggiornamento modalità LED diagnostici"; + /* The title of the cell showing uptime */ -"Uptime" = "Tempo d'attività"; +"Uptime" = "Tempo Attività"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltaggio"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/ja.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/ja.lproj/Localizable.strings index 015ca15a0f..1b0a572a4a 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/ja.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/ja.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the section describing commands */ "Commands" = "コマンド"; @@ -22,14 +25,23 @@ /* The in-progress disconnecting state */ "Disconnecting" = "接続を切っています"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "デバイスを探す"; + /* The title of the cell showing firmware version */ "Firmware" = "ファームウェア"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequency"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "統計を取得…"; + /* The title of the cell showing device name */ -"Name" = "機器名"; +"Name" = "プリセット名"; + +/* Text indicating LED Mode is on */ +"On" = "オン"; /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink は Bluetooth Low Energy を通してポンプと通信します。"; @@ -39,3 +51,4 @@ /* The title of the cell showing uptime */ "Uptime" = "アップタイム"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/nb.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/nb.lproj/Localizable.strings index 9811531509..fbfc31e1ae 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/nb.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/nb.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Varsel"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Batterinivå"; + /* The title of the section describing commands */ "Commands" = "Kommandoer"; @@ -7,9 +22,18 @@ /* The in-progress connecting state */ "Connecting" = "Kobler til"; +/* The title of the cell for connection LED */ +"Connection LED" = "Lysdiode for tilkobling"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Overvåking av tilkobling"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Tilkoblingsstatus"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Tilkoblingsvibrasjon"; + /* The title of the section describing the device */ "Device" = "Enhet"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Kobler fra"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Finn enhet"; + /* The title of the cell showing firmware version */ "Firmware" = "Fastvare"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frekvens"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Vis Rileylink statistikk"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Henter statistikk…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Øke rødt LED"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Øke gult LED"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Varsel om lavt batterinivå"; + /* The title of the cell showing device name */ "Name" = "Navn"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Av"; + +/* Text indicating LED Mode is on */ +"On" = "På"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink tillater kommunikasjon med pumpen over Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Signalstyrke"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Testkommandoer"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Test Vibrering"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Slå av/på diagnoselysdioder"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Oppdaterer innstillinger for diagnoselysdioder"; + /* The title of the cell showing uptime */ "Uptime" = "Oppetid"; + +/* The title of the cell showing ORL */ +"Voltage" = "Spenning (V)"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/nl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/nl.lproj/Localizable.strings index 1847185673..c69f4b1307 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/nl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/nl.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alarm"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Automatisch"; + +/* The title of the cell showing battery level */ +"Battery level" = "Batterijniveau"; + /* The title of the section describing commands */ "Commands" = "Commando's"; @@ -5,11 +20,20 @@ "Connected" = "Verbonden"; /* The in-progress connecting state */ -"Connecting" = "Verbinden"; +"Connecting" = "Bezig met verbinden"; + +/* The title of the cell for connection LED */ +"Connection LED" = "Verbindings-LED"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Verbindingsbewaking"; /* The title of the cell showing BLE connection state */ "Connection State" = "Verbindingsstatus"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Verbinding Trilling"; + /* The title of the section describing the device */ "Device" = "Apparaat"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Ontkoppelen"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Zoek Apparaat"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequentie"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "RileyLink Statistieken Ophalen"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Statistieken Ophalen..."; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Rode LED Verlichten"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Gele LED Verlichten"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Batterij Bijna Leeg Alarm"; + /* The title of the cell showing device name */ "Name" = "Naam"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Uit"; + +/* Text indicating LED Mode is on */ +"On" = "Aan"; + /* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink staat verbinding met de pomp toe via Bluetooth Low Energy (BLE of Bluetooth Smart)."; +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink staat verbinding met de pomp toe via Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Signaalsterkte"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Commando's Testen"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Test Trillingen"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Tokkel de Diagnostische LED's"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Diagnostische LED-modus aan het bijstellen"; + /* The title of the cell showing uptime */ -"Uptime" = "Tijd actief"; +"Uptime" = "Uptime"; + +/* The title of the cell showing ORL */ +"Voltage" = "Spanning"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/pl.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/pl.lproj/Localizable.strings index 0981a6bc9f..f0307f10c1 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/pl.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/pl.lproj/Localizable.strings @@ -1,20 +1,44 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alarm"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Automatyczny"; + +/* The title of the cell showing battery level */ +"Battery level" = "Poziom naładowania baterii"; + /* The title of the section describing commands */ "Commands" = "Komendy"; /* The connected state */ -"Connected" = "Połączony"; +"Connected" = "Połączono"; /* The in-progress connecting state */ "Connecting" = "Łączenie"; +/* The title of the cell for connection LED */ +"Connection LED" = "Włącz LED, gdy połączono"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Monitorowanie połączenia"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Status połączenia"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Wibruj, gdy połączono"; + /* The title of the section describing the device */ "Device" = "Urządzenie"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; +"Devices" = "Urządzenia"; /* The disconnected state */ "Disconnected" = "Rozłączony"; @@ -22,14 +46,39 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Rozłączanie"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Znajdź urządzenie"; + /* The title of the cell showing firmware version */ "Firmware" = "Oprogramowanie"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequency"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Statystyki RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Pobieranie statystyk…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Włącz czerwoną diodę LED"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Włącz żółtą diodę LED"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Ostrzeżenie o niskim stanie baterii"; + /* The title of the cell showing device name */ -"Name" = "Name"; +"Name" = "Nazwa"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Wyłącz"; + +/* Text indicating LED Mode is on */ +"On" = "Włącz"; /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink będzie łączył się z pompą poprzez Bluetooth Low Energy."; @@ -37,5 +86,22 @@ /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Siła sygnału"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Polecenia testowe"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Testuj wibracje"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Przełącz diagnostyczne diody LED"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Aktualizacja trybu diod diagnostycznych"; + /* The title of the cell showing uptime */ "Uptime" = "Uptime"; + +/* The title of the cell showing ORL */ +"Voltage" = "Napięcie"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/pt-BR.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/pt-BR.lproj/Localizable.strings index 4641221ae9..4946b96077 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/pt-BR.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/pt-BR.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the section describing commands */ "Commands" = "Comandos"; @@ -22,15 +25,24 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Desconectando"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Localizar Dispositivo"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frequência"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "Extrair Estatísticas…"; + /* The title of the cell showing device name */ "Name" = "Nome"; +/* Text indicating LED Mode is on */ +"On" = "Ligado"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "O RileyLink permite a comunicação com a bomba por Bluetooth de Baixa Energia."; @@ -39,3 +51,4 @@ /* The title of the cell showing uptime */ "Uptime" = "Tempo de Atividade"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/pt-PT.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/pt-PT.lproj/Localizable.strings deleted file mode 100644 index f47ff45cfc..0000000000 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/pt-PT.lproj/Localizable.strings +++ /dev/null @@ -1,41 +0,0 @@ -/* The title of the section describing commands */ -"Commands" = "Commands"; - -/* The connected state */ -"Connected" = "Connected"; - -/* The in-progress connecting state */ -"Connecting" = "Connecting"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Connection State"; - -/* The title of the section describing the device */ -"Device" = "Device"; - -/* The title of the devices table section in RileyLink settings */ -"Devices" = "Dispositivos"; - -/* The disconnected state */ -"Disconnected" = "Disconnected"; - -/* The in-progress disconnecting state */ -"Disconnecting" = "Disconnecting"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; - -/* The title of the cell showing current rileylink frequency */ -"Frequency" = "Frequency"; - -/* The title of the cell showing device name */ -"Name" = "Nome"; - -/* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink allows for communication with the pump over Bluetooth Low Energy."; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Signal Strength"; - -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/ro.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/ro.lproj/Localizable.strings index 786303fb68..ceee958544 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/ro.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/ro.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Alertă"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Automat"; + +/* The title of the cell showing battery level */ +"Battery level" = "Nivelul bateriei"; + /* The title of the section describing commands */ "Commands" = "Comenzi"; @@ -5,11 +20,20 @@ "Connected" = "Conectat"; /* The in-progress connecting state */ -"Connecting" = "Se conectează"; +"Connecting" = "Conectare"; + +/* The title of the cell for connection LED */ +"Connection LED" = "LED de conectare"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Monitorizarea conexiunii"; /* The title of the cell showing BLE connection state */ "Connection State" = "Stare conexiune"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Vibrare la conexiune"; + /* The title of the section describing the device */ "Device" = "Dispozitiv"; @@ -22,21 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Se deconectează"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Caută dispozitivul"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frecvență"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Obțineți statisticile despre RileyLink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Obțineți statistici..."; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Aprindeți LED-ul roșu"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Aprindeți LED-ul galben"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Alertă baterie scăzută"; + /* The title of the cell showing device name */ "Name" = "Nume"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Oprit"; + +/* Text indicating LED Mode is on */ +"On" = "Pornit"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink facilitează conexiunea cu pompa prin intermediul Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Putere semnal"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Testați comenzile"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Testați vibrația"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Comutarea LED-urilor de diagnosticare"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Actualizarea modului de diagnostic al LED-urilor"; + /* The title of the cell showing uptime */ -"Uptime" = "Durată de la pornire"; +"Uptime" = "Durată de funcționare"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltaj"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/ru.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/ru.lproj/Localizable.strings index bc1cd638e9..f687594a57 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/ru.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/ru.lproj/Localizable.strings @@ -1,17 +1,41 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ дБ"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Оповещение"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Авто"; + +/* The title of the cell showing battery level */ +"Battery level" = "Уровень заряда"; + /* The title of the section describing commands */ "Commands" = "Команды"; /* The connected state */ -"Connected" = "Соединение установлено"; +"Connected" = "Подключено"; /* The in-progress connecting state */ -"Connecting" = "Соединяется"; +"Connecting" = "Подключение"; + +/* The title of the cell for connection LED */ +"Connection LED" = "Индикатор соединения"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Мониторинг соединения"; /* The title of the cell showing BLE connection state */ "Connection State" = "Состояние соединения"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Вибрация при разъединении"; + /* The title of the section describing the device */ -"Device" = "устройство"; +"Device" = "Устройство"; /* The title of the devices table section in RileyLink settings */ "Devices" = "Устройства"; @@ -22,14 +46,39 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Разъединяется"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Найти устройство"; + /* The title of the cell showing firmware version */ "Firmware" = "Прошивка"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Частота"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Получить статистику Rileylink"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Получить статистику…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Lighten Red LED"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Lighten Yellow LED"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Низкий заряд"; + /* The title of the cell showing device name */ -"Name" = "Название"; +"Name" = "Имя"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Выключено"; + +/* Text indicating LED Mode is on */ +"On" = "Включено"; /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink позволяет вести коммуникацию с помпой через Bluetooth Low Energy."; @@ -37,5 +86,22 @@ /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Уровень сигнала"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Команды для проверки"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Проверить вибрацию"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Переключить режим светодиодов"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Изменить режим светодиодов"; + /* The title of the cell showing uptime */ -"Uptime" = "Время непрерывной работы"; +"Uptime" = "Uptime"; + +/* The title of the cell showing ORL */ +"Voltage" = "Напряжение"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/sk.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/sk.lproj/Localizable.strings index 65205f4d17..d8836fd373 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/sk.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/sk.lproj/Localizable.strings @@ -1,20 +1,44 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@ %%"; + +/* The title of the section for alerts */ +"Alert" = "Upozornenie"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Auto"; + +/* The title of the cell showing battery level */ +"Battery level" = "Stav batérie"; + /* The title of the section describing commands */ "Commands" = "Príkazy"; /* The connected state */ -"Connected" = "Pripojený"; +"Connected" = "Pripojené"; /* The in-progress connecting state */ "Connecting" = "Pripája sa"; +/* The title of the cell for connection LED */ +"Connection LED" = "Pripojenie LED"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Monitorovanie pripojenia"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Stav pripojenia"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Vibrácie pripojenia"; + /* The title of the section describing the device */ "Device" = "Zariadenie"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Devices"; +"Devices" = "Zariadenia"; /* The disconnected state */ "Disconnected" = "Odpojené"; @@ -22,20 +46,59 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Odpája sa"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Nájsť zariadenie"; + /* The title of the cell showing firmware version */ -"Firmware" = "Firmware"; +"Firmware" = "Firmvér"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frekvencia"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "Získať štatistiky RileyLinku"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "Získať štatistiky…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Rozsvietiť červené LED "; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Rozsvietiť žlté LED"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Slabá batéria"; + /* The title of the cell showing device name */ -"Name" = "Name"; +"Name" = "Názov"; + +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Vypnuté"; + +/* Text indicating LED Mode is on */ +"On" = "Zapnuté"; /* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink allows for communication with the pump over Bluetooth Low Energy."; +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink umožňuje komunikáciu s pumpou cez Bluetooth Low Energy."; /* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Sila Signálu"; +"Signal Strength" = "Sila signálu"; + +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Testovať príkazy"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Testovať vibrácie"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Prepnutie diagnostických LED diód"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Aktualizuje sa režim diagnostických LED diód"; + +/* The title of the cell showing ORL */ +"Voltage" = "Napätie"; -/* The title of the cell showing uptime */ -"Uptime" = "Uptime"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/sv.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/sv.lproj/Localizable.strings index 810e04a679..38902ae8dd 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/sv.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/sv.lproj/Localizable.strings @@ -1,3 +1,9 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the section describing commands */ "Commands" = "Kommandon"; @@ -22,15 +28,28 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Kopplar från"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Hitta enhet"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frekvens"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "Hämtar statistik…"; + /* The title of the cell showing device name */ "Name" = "Namn"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Av"; + +/* Text indicating LED Mode is on */ +"On" = "På"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink kommunicerar med pumpen via Bluetooth lågenergianslutning."; @@ -39,3 +58,4 @@ /* The title of the cell showing uptime */ "Uptime" = "Körs sedan"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/tr.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/tr.lproj/Localizable.strings index 859a8f9174..7eaa98e94d 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/tr.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/tr.lproj/Localizable.strings @@ -1,3 +1,18 @@ +/* Unit format string for an RSSI value in decibles */ +"%@ dB" = "%@ dB"; + +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + +/* The title of the section for alerts */ +"Alert" = "Uyarı"; + +/* Text indicating LED Mode is auto */ +"Auto" = "Otomatik"; + +/* The title of the cell showing battery level */ +"Battery level" = "Pil seviyesi"; + /* The title of the section describing commands */ "Commands" = "Komutlar"; @@ -7,14 +22,23 @@ /* The in-progress connecting state */ "Connecting" = "Bağlanıyor"; +/* The title of the cell for connection LED */ +"Connection LED" = "Bağlantı LED'i"; + +/* The title of the section for connection monitoring */ +"Connection Monitoring" = "Bağlantı İzleme"; + /* The title of the cell showing BLE connection state */ "Connection State" = "Bağlantı Durumu"; +/* The title of the cell for connection vibration */ +"Connection Vibration" = "Bağlantı Titreşimi"; + /* The title of the section describing the device */ "Device" = "Cihaz"; /* The title of the devices table section in RileyLink settings */ -"Devices" = "Aygıtlar"; +"Devices" = "Cihazlar"; /* The disconnected state */ "Disconnected" = "Bağlantı kesildi"; @@ -22,20 +46,62 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Bağlantı kesiliyor"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Cihaz Bul"; + /* The title of the cell showing firmware version */ -"Firmware" = "Aygıt Yazılımı"; +"Firmware" = "Donanım yazılımı"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Frekans"; +/* The title of the command to fetch RileyLink statistics */ +"Get RileyLink Statistics" = "RileyLink İstatistiklerini Alın"; + +/* Progress message for getting statistics. */ +"Get Statistics…" = "İstatistik Alınıyor…"; + +/* The title of the cell showing Lighten Red LED */ +"Lighten Red LED" = "Kırmızı LED'i Yak"; + +/* The title of the cell showing Lighten Yellow LED */ +"Lighten Yellow LED" = "Sarı LED'i Yak"; + +/* The title of the cell showing battery level */ +"Low Battery Alert" = "Düşük Pil Uyarısı"; + /* The title of the cell showing device name */ "Name" = "İsim"; +/* Detail text when battery alert disabled. + Text indicating LED Mode is off */ +"Off" = "Kapalı"; + +/* Text indicating LED Mode is on */ +"On" = "Açık"; + /* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink, Bluetooth Low Energy üzerinden pompa ile iletişime izin verir."; +"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink, Bluetooth Düşük Enerji üzerinden pompa ile iletişim kurulmasını sağlar."; /* The title of the cell showing BLE signal strength (RSSI) */ "Signal Strength" = "Sinyal Gücü"; +/* The title of the section for orangelink commands + The title of the section for rileylink commands */ +"Test Commands" = "Komutları Test Et"; + +/* The title of the cell showing Test Vibration */ +"Test Vibration" = "Titreşim Testi"; + +/* The title of the command to update diagnostic LEDs */ +"Toggle Diagnostic LEDs" = "Teşhis LED'lerini Değiştirme"; + +/* Progress message for changing diagnostic LED mode */ +"Updating diagnostic LEDs mode" = "Teşhis LED'leri modunu güncelleme"; + /* The title of the cell showing uptime */ "Uptime" = "Çalışma süresi"; + +/* The title of the cell showing ORL */ +"Voltage" = "Voltaj"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/uk.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/uk.lproj/Localizable.strings deleted file mode 100644 index d59993937d..0000000000 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/uk.lproj/Localizable.strings +++ /dev/null @@ -1,41 +0,0 @@ -/* The title of the section describing commands */ -"Commands" = "Команди"; - -/* The connected state */ -"Connected" = "Під'єднаний"; - -/* The in-progress connecting state */ -"Connecting" = "Під'єднання"; - -/* The title of the cell showing BLE connection state */ -"Connection State" = "Стан з'єднання"; - -/* The title of the section describing the device */ -"Device" = "Пристрій"; - -/* The title of the devices table section in RileyLink settings */ -"Devices" = "Пристрої"; - -/* The disconnected state */ -"Disconnected" = "Від’єднано"; - -/* The in-progress disconnecting state */ -"Disconnecting" = "Від'єднання"; - -/* The title of the cell showing firmware version */ -"Firmware" = "Прошивка"; - -/* The title of the cell showing current rileylink frequency */ -"Frequency" = "Частота"; - -/* The title of the cell showing device name */ -"Name" = "Ім’я"; - -/* RileyLink setup description */ -"RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink дозволяє спілкуватися з помпою через BluetoothLow Energy."; - -/* The title of the cell showing BLE signal strength (RSSI) */ -"Signal Strength" = "Рівень сигналу"; - -/* The title of the cell showing uptime */ -"Uptime" = "Час роботи"; diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/vi.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/vi.lproj/Localizable.strings index cdeaed7b91..6b23c8795c 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/vi.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/vi.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Unit format string for an value in percent */ +"%@%%" = "%@%%"; + /* The title of the section describing commands */ "Commands" = "Commands"; @@ -22,15 +25,24 @@ /* The in-progress disconnecting state */ "Disconnecting" = "Đang ngắt kết nối"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "Tìm kiếm thiết bị"; + /* The title of the cell showing firmware version */ "Firmware" = "Firmware"; /* The title of the cell showing current rileylink frequency */ "Frequency" = "Tần số"; +/* Progress message for getting statistics. */ +"Get Statistics…" = "Lấy các thống kê…"; + /* The title of the cell showing device name */ "Name" = "Tên"; +/* Text indicating LED Mode is on */ +"On" = "On"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "RileyLink cho phép giao tiếp với bơm thông qua chuẩn kết nối bluetooth năng lượng thấp."; @@ -39,3 +51,4 @@ /* The title of the cell showing uptime */ "Uptime" = "Thời gian hoạt động"; + diff --git a/Dependencies/rileylink_ios/RileyLinkKitUI/zh-Hans.lproj/Localizable.strings b/Dependencies/rileylink_ios/RileyLinkKitUI/zh-Hans.lproj/Localizable.strings index 0b216b504f..e3a814009f 100644 --- a/Dependencies/rileylink_ios/RileyLinkKitUI/zh-Hans.lproj/Localizable.strings +++ b/Dependencies/rileylink_ios/RileyLinkKitUI/zh-Hans.lproj/Localizable.strings @@ -22,15 +22,21 @@ /* The in-progress disconnecting state */ "Disconnecting" = "断开"; +/* The title of the cell for sounding device finding piezo */ +"Find Device" = "发现设备"; + /* The title of the cell showing firmware version */ "Firmware" = "固件"; /* The title of the cell showing current rileylink frequency */ -"Frequency" = "频段"; +"Frequency" = "Frequency"; /* The title of the cell showing device name */ "Name" = "设备名称"; +/* Text indicating LED Mode is on */ +"On" = "开"; + /* RileyLink setup description */ "RileyLink allows for communication with the pump over Bluetooth Low Energy." = "允许RileyLink通过低功耗蓝牙与泵连接通信"; @@ -39,3 +45,4 @@ /* The title of the cell showing uptime */ "Uptime" = "Uptime"; + diff --git a/FreeAPS.xcodeproj/project.pbxproj b/FreeAPS.xcodeproj/project.pbxproj index dd273bd47c..c3d8b9e835 100644 --- a/FreeAPS.xcodeproj/project.pbxproj +++ b/FreeAPS.xcodeproj/project.pbxproj @@ -14,6 +14,10 @@ 0F7A65FBD2CD8D6477ED4539 /* NotificationsConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = E625985B47742D498CB1681A /* NotificationsConfigProvider.swift */; }; 17A9D0899046B45E87834820 /* CREditorProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C8D5F457B5AFF763F8CF3DF /* CREditorProvider.swift */; }; 19012CDC291D2CB900FB8210 /* LoopStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19012CDB291D2CB900FB8210 /* LoopStats.swift */; }; + 190EBCC429FF136900BA767D /* StatConfigDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 190EBCC329FF136900BA767D /* StatConfigDataFlow.swift */; }; + 190EBCC629FF138000BA767D /* StatConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 190EBCC529FF138000BA767D /* StatConfigProvider.swift */; }; + 190EBCC829FF13AA00BA767D /* StatConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 190EBCC729FF13AA00BA767D /* StatConfigStateModel.swift */; }; + 190EBCCB29FF13CB00BA767D /* StatConfigRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 190EBCCA29FF13CB00BA767D /* StatConfigRootView.swift */; }; 1927C8E62744606D00347C69 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1927C8E82744606D00347C69 /* InfoPlist.strings */; }; 1935364028496F7D001E0B16 /* Oref2_variables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1935363F28496F7D001E0B16 /* Oref2_variables.swift */; }; 1967DFBE29D052C200759F30 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFBD29D052C200759F30 /* Icons.swift */; }; @@ -21,13 +25,13 @@ 1967DFC229D053D300759F30 /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFC129D053D300759F30 /* IconImage.swift */; }; 19795118275953E50044850D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; }; 198377D2266BFFF6004DE65E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; }; - 19854F492961C3E500941627 /* DurationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19854F482961C3E500941627 /* DurationButton.swift */; }; 199561C1275E61A50077B976 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 199561C0275E61A50077B976 /* HealthKit.framework */; }; 19B0EF2128F6D66200069496 /* Statistics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B0EF2028F6D66200069496 /* Statistics.swift */; }; 19D466A329AA2B80004D5F33 /* FPUConfigDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A229AA2B80004D5F33 /* FPUConfigDataFlow.swift */; }; 19D466A529AA2BD4004D5F33 /* FPUConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A429AA2BD4004D5F33 /* FPUConfigProvider.swift */; }; 19D466A729AA2C22004D5F33 /* FPUConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A629AA2C22004D5F33 /* FPUConfigStateModel.swift */; }; 19D466AA29AA3099004D5F33 /* FPUConfigRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A929AA3099004D5F33 /* FPUConfigRootView.swift */; }; + 19D4E4EB29FC6A9F00351451 /* TIRforChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D4E4EA29FC6A9F00351451 /* TIRforChart.swift */; }; 19DA48E829CD339B00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; }; 19DA48E929CD339C00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; }; 19DA48EA29CD339C00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; }; @@ -39,6 +43,10 @@ 19E1F7EA29D082ED005C8D20 /* IconConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7E929D082ED005C8D20 /* IconConfigProvider.swift */; }; 19E1F7EC29D082FE005C8D20 /* IconConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7EB29D082FE005C8D20 /* IconConfigStateModel.swift */; }; 19E1F7EF29D08EBA005C8D20 /* IconConfigRootWiew.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7EE29D08EBA005C8D20 /* IconConfigRootWiew.swift */; }; + 19F95FF329F10FBC00314DDC /* StatDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F95FF229F10FBC00314DDC /* StatDataFlow.swift */; }; + 19F95FF529F10FCF00314DDC /* StatProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F95FF429F10FCF00314DDC /* StatProvider.swift */; }; + 19F95FF729F10FEE00314DDC /* StatStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F95FF629F10FEE00314DDC /* StatStateModel.swift */; }; + 19F95FFA29F1102A00314DDC /* StatRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19F95FF929F1102A00314DDC /* StatRootView.swift */; }; 1BBB001DAD60F3B8CEA4B1C7 /* ISFEditorStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505E09DC17A0C3D0AF4B66FE /* ISFEditorStateModel.swift */; }; 1D845DF2E3324130E1D95E67 /* DataTableProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60744C3E9BB3652895C908CC /* DataTableProvider.swift */; }; 23888883D4EA091C88480FF2 /* BolusProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19984D62EFC0035A9E9644D /* BolusProvider.swift */; }; @@ -95,14 +103,6 @@ 3818AA5D274C26A300843DB3 /* MockKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA4E274C26A300843DB3 /* MockKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3818AA5E274C26A300843DB3 /* MockKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA4F274C26A300843DB3 /* MockKitUI.framework */; }; 3818AA5F274C26A300843DB3 /* MockKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA4F274C26A300843DB3 /* MockKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3818AA62274C26A400843DB3 /* MinimedKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA51274C26A300843DB3 /* MinimedKit.framework */; }; - 3818AA63274C26A400843DB3 /* MinimedKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA51274C26A300843DB3 /* MinimedKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3818AA64274C26A400843DB3 /* MinimedKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA52274C26A300843DB3 /* MinimedKitUI.framework */; }; - 3818AA65274C26A400843DB3 /* MinimedKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA52274C26A300843DB3 /* MinimedKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3818AA66274C26A400843DB3 /* OmniKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA53274C26A300843DB3 /* OmniKit.framework */; }; - 3818AA67274C26A400843DB3 /* OmniKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA53274C26A300843DB3 /* OmniKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3818AA68274C26A400843DB3 /* OmniKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA54274C26A300843DB3 /* OmniKitUI.framework */; }; - 3818AA69274C26A400843DB3 /* OmniKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA54274C26A300843DB3 /* OmniKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3818AA6A274C26A500843DB3 /* RileyLinkBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA55274C26A300843DB3 /* RileyLinkBLEKit.framework */; }; 3818AA6B274C26A500843DB3 /* RileyLinkBLEKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA55274C26A300843DB3 /* RileyLinkBLEKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3818AA6C274C26A500843DB3 /* RileyLinkKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3818AA56274C26A300843DB3 /* RileyLinkKit.framework */; }; @@ -307,6 +307,8 @@ CE398D1B297D69A900DF218F /* ShareClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE398D1A297D69A900DF218F /* ShareClient.framework */; }; CE48C86428CA69D5007C0598 /* OmniBLEPumpManagerExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE48C86328CA69D5007C0598 /* OmniBLEPumpManagerExtensions.swift */; }; CE48C86628CA6B48007C0598 /* OmniPodManagerExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE48C86528CA6B48007C0598 /* OmniPodManagerExtensions.swift */; }; + CE51DD1C2A01970900F163F7 /* ConnectIQ 2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE51DD1B2A01970800F163F7 /* ConnectIQ 2.xcframework */; }; + CE51DD1D2A01970900F163F7 /* ConnectIQ 2.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE51DD1B2A01970800F163F7 /* ConnectIQ 2.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; CE6B025728F350FF000C5502 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6B025628F350FF000C5502 /* HealthKit.framework */; }; CE7950242997D81700FA576E /* CGMSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7950232997D81700FA576E /* CGMSettingsView.swift */; }; CE7950262998056D00FA576E /* CGMSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7950252998056D00FA576E /* CGMSetupView.swift */; }; @@ -316,8 +318,23 @@ CE79502C29980CB500FA576E /* G7SensorKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE79502929980C9F00FA576E /* G7SensorKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; CE79502E29980E4D00FA576E /* ShareClientUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE79502D29980E4D00FA576E /* ShareClientUI.framework */; }; CE79502F29980E5800FA576E /* ShareClientUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE79502D29980E4D00FA576E /* ShareClientUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CE7CA34E2A064973004BE681 /* AppShortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3432A064973004BE681 /* AppShortcuts.swift */; }; + CE7CA34F2A064973004BE681 /* BaseIntentsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3442A064973004BE681 /* BaseIntentsRequest.swift */; }; + CE7CA3502A064973004BE681 /* CancelTempPresetIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3462A064973004BE681 /* CancelTempPresetIntent.swift */; }; + CE7CA3512A064973004BE681 /* ApplyTempPresetIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3472A064973004BE681 /* ApplyTempPresetIntent.swift */; }; + CE7CA3522A064973004BE681 /* ListTempPresetsIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3482A064973004BE681 /* ListTempPresetsIntent.swift */; }; + CE7CA3532A064973004BE681 /* tempPresetIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3492A064973004BE681 /* tempPresetIntent.swift */; }; + CE7CA3542A064973004BE681 /* TempPresetsIntentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA34A2A064973004BE681 /* TempPresetsIntentRequest.swift */; }; + CE7CA3552A064973004BE681 /* ListStateIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA34C2A064973004BE681 /* ListStateIntent.swift */; }; + CE7CA3562A064973004BE681 /* StateIntentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA34D2A064973004BE681 /* StateIntentRequest.swift */; }; + CE7CA3582A064E2F004BE681 /* ListStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CA3572A064E2F004BE681 /* ListStateView.swift */; }; CE82E02528E867BA00473A9C /* AlertStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE82E02428E867BA00473A9C /* AlertStorage.swift */; }; CE82E02728E869DF00473A9C /* AlertEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE82E02628E869DF00473A9C /* AlertEntry.swift */; }; + CE94597E29E9E1EE0047C9C6 /* GarminManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE94597D29E9E1EE0047C9C6 /* GarminManager.swift */; }; + CE94598029E9E3BD0047C9C6 /* WatchConfigDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE94597F29E9E3BD0047C9C6 /* WatchConfigDataFlow.swift */; }; + CE94598229E9E3D30047C9C6 /* WatchConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE94598129E9E3D30047C9C6 /* WatchConfigProvider.swift */; }; + CE94598429E9E3E60047C9C6 /* WatchConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE94598329E9E3E60047C9C6 /* WatchConfigStateModel.swift */; }; + CE94598729E9E4110047C9C6 /* WatchConfigRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE94598629E9E4110047C9C6 /* WatchConfigRootView.swift */; }; CEA4F62329BE10F70011ADF7 /* SavitzkyGolayFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA4F62229BE10F70011ADF7 /* SavitzkyGolayFilter.swift */; }; CEB434DC28B8F5B900B70274 /* MKRingProgressView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEB434DB28B8F5B900B70274 /* MKRingProgressView.framework */; }; CEB434DD28B8F5B900B70274 /* MKRingProgressView.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEB434DB28B8F5B900B70274 /* MKRingProgressView.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -328,6 +345,14 @@ CEB434E728B9053300B70274 /* LoopUIColorPalette+Default.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEB434E628B9053300B70274 /* LoopUIColorPalette+Default.swift */; }; CEB434FD28B90B7C00B70274 /* SwiftCharts in Frameworks */ = {isa = PBXBuildFile; productRef = CEB434FC28B90B7C00B70274 /* SwiftCharts */; }; CEB434FE28B90B8C00B70274 /* SwiftCharts in Embed Frameworks */ = {isa = PBXBuildFile; productRef = CEB434FC28B90B7C00B70274 /* SwiftCharts */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + CEC751D229D88257006E9D24 /* OmniKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D129D88257006E9D24 /* OmniKit.framework */; }; + CEC751D429D88257006E9D24 /* OmniKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D329D88257006E9D24 /* OmniKitUI.framework */; }; + CEC751D629D88262006E9D24 /* MinimedKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D529D88262006E9D24 /* MinimedKit.framework */; }; + CEC751D829D88262006E9D24 /* MinimedKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D729D88262006E9D24 /* MinimedKitUI.framework */; }; + CEC751D929D8827A006E9D24 /* OmniKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D129D88257006E9D24 /* OmniKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CEC751DA29D8827A006E9D24 /* OmniKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D329D88257006E9D24 /* OmniKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CEC751DB29D88280006E9D24 /* MinimedKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D529D88262006E9D24 /* MinimedKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CEC751DC29D88280006E9D24 /* MinimedKitUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEC751D729D88262006E9D24 /* MinimedKitUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; CECA4775298DA8310095139F /* DexcomSourceG5.swift in Sources */ = {isa = PBXBuildFile; fileRef = CECA4774298DA8310095139F /* DexcomSourceG5.swift */; }; D2165E9D78EFF692C1DED1C6 /* AddTempTargetDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B8A42073A2D03A278914448 /* AddTempTargetDataFlow.swift */; }; D6D02515BBFBE64FEBE89856 /* DataTableRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 881E04BA5E0A003DE8E0A9C6 /* DataTableRootView.swift */; }; @@ -401,23 +426,24 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + CEC751DB29D88280006E9D24 /* MinimedKit.framework in Embed Frameworks */, + CEC751DC29D88280006E9D24 /* MinimedKitUI.framework in Embed Frameworks */, + CEC751D929D8827A006E9D24 /* OmniKit.framework in Embed Frameworks */, + CEC751DA29D8827A006E9D24 /* OmniKitUI.framework in Embed Frameworks */, CE79502F29980E5800FA576E /* ShareClientUI.framework in Embed Frameworks */, CE79502C29980CB500FA576E /* G7SensorKitUI.framework in Embed Frameworks */, + CE51DD1D2A01970900F163F7 /* ConnectIQ 2.xcframework in Embed Frameworks */, CE79502B29980CAF00FA576E /* CGMBLEKitUI.framework in Embed Frameworks */, CE2FAD38297D69E1001A872C /* ShareClient.framework in Embed Frameworks */, CE398D19297C9EFD00DF218F /* G7SensorKit.framework in Embed Frameworks */, 3818AA6F274C26A500843DB3 /* RileyLinkKitUI.framework in Embed Frameworks */, 3818AA4B274C267100843DB3 /* CGMBLEKit.framework in Embed Frameworks */, - 3818AA67274C26A400843DB3 /* OmniKit.framework in Embed Frameworks */, CEB434E028B8F5C400B70274 /* OmniBLE.framework in Embed Frameworks */, - 3818AA63274C26A400843DB3 /* MinimedKit.framework in Embed Frameworks */, CEB434DD28B8F5B900B70274 /* MKRingProgressView.framework in Embed Frameworks */, CEB434FE28B90B8C00B70274 /* SwiftCharts in Embed Frameworks */, 3818AA6B274C26A500843DB3 /* RileyLinkBLEKit.framework in Embed Frameworks */, 3818AA59274C26A300843DB3 /* LoopKit.framework in Embed Frameworks */, - 3818AA65274C26A400843DB3 /* MinimedKitUI.framework in Embed Frameworks */, 3818AA5B274C26A300843DB3 /* LoopKitUI.framework in Embed Frameworks */, - 3818AA69274C26A400843DB3 /* OmniKitUI.framework in Embed Frameworks */, 3818AA72274C278200843DB3 /* LoopTestingKit.framework in Embed Frameworks */, 3818AA6D274C26A500843DB3 /* RileyLinkKit.framework in Embed Frameworks */, 3818AA5D274C26A300843DB3 /* MockKit.framework in Embed Frameworks */, @@ -456,6 +482,10 @@ 10A0C32B0DAB52726EF9B6D9 /* BolusRootView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BolusRootView.swift; sourceTree = ""; }; 12204445D7632AF09264A979 /* PreferencesEditorDataFlow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PreferencesEditorDataFlow.swift; sourceTree = ""; }; 19012CDB291D2CB900FB8210 /* LoopStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopStats.swift; sourceTree = ""; }; + 190EBCC329FF136900BA767D /* StatConfigDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatConfigDataFlow.swift; sourceTree = ""; }; + 190EBCC529FF138000BA767D /* StatConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatConfigProvider.swift; sourceTree = ""; }; + 190EBCC729FF13AA00BA767D /* StatConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatConfigStateModel.swift; sourceTree = ""; }; + 190EBCCA29FF13CB00BA767D /* StatConfigRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatConfigRootView.swift; sourceTree = ""; }; 1918333A26ADA46800F45722 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; 1927C8E92744611700347C69 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; }; 1927C8EA2744611800347C69 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -499,7 +529,6 @@ 198377E2266C0AC8004DE65E /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; 198377E3266C0ADC004DE65E /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = ""; }; 198377E4266C13D2004DE65E /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 19854F482961C3E500941627 /* DurationButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DurationButton.swift; sourceTree = ""; }; 199561C0275E61A50077B976 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS8.0.sdk/System/Library/Frameworks/HealthKit.framework; sourceTree = DEVELOPER_DIR; }; 199732B4271B72DD00129A3F /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; 199732B5271B9EE900129A3F /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; @@ -510,6 +539,7 @@ 19D466A429AA2BD4004D5F33 /* FPUConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigProvider.swift; sourceTree = ""; }; 19D466A629AA2C22004D5F33 /* FPUConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigStateModel.swift; sourceTree = ""; }; 19D466A929AA3099004D5F33 /* FPUConfigRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigRootView.swift; sourceTree = ""; }; + 19D4E4EA29FC6A9F00351451 /* TIRforChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TIRforChart.swift; sourceTree = ""; }; 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 19DC677E29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesDataFlow.swift; sourceTree = ""; }; 19DC678029CA676A00FD9EC4 /* OverrideProfilesProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesProvider.swift; sourceTree = ""; }; @@ -519,6 +549,10 @@ 19E1F7E929D082ED005C8D20 /* IconConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigProvider.swift; sourceTree = ""; }; 19E1F7EB29D082FE005C8D20 /* IconConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigStateModel.swift; sourceTree = ""; }; 19E1F7EE29D08EBA005C8D20 /* IconConfigRootWiew.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigRootWiew.swift; sourceTree = ""; }; + 19F95FF229F10FBC00314DDC /* StatDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatDataFlow.swift; sourceTree = ""; }; + 19F95FF429F10FCF00314DDC /* StatProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatProvider.swift; sourceTree = ""; }; + 19F95FF629F10FEE00314DDC /* StatStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatStateModel.swift; sourceTree = ""; }; + 19F95FF929F1102A00314DDC /* StatRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatRootView.swift; sourceTree = ""; }; 1CAE81192B118804DCD23034 /* SnoozeProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SnoozeProvider.swift; sourceTree = ""; }; 212E8BFE6D66EE65AA26A114 /* CalibrationsProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CalibrationsProvider.swift; sourceTree = ""; }; 223EC0494F55A91E3EA69EF4 /* BolusStateModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BolusStateModel.swift; sourceTree = ""; }; @@ -781,20 +815,41 @@ CE398D1A297D69A900DF218F /* ShareClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE48C86328CA69D5007C0598 /* OmniBLEPumpManagerExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmniBLEPumpManagerExtensions.swift; sourceTree = ""; }; CE48C86528CA6B48007C0598 /* OmniPodManagerExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmniPodManagerExtensions.swift; sourceTree = ""; }; + CE51DD1B2A01970800F163F7 /* ConnectIQ 2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "ConnectIQ 2.xcframework"; path = "Dependencies/ConnectIQ 2.xcframework"; sourceTree = ""; }; CE6B025628F350FF000C5502 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS9.1.sdk/System/Library/Frameworks/HealthKit.framework; sourceTree = DEVELOPER_DIR; }; CE7950232997D81700FA576E /* CGMSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGMSettingsView.swift; sourceTree = ""; }; CE7950252998056D00FA576E /* CGMSetupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGMSetupView.swift; sourceTree = ""; }; CE79502729980C9600FA576E /* CGMBLEKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CGMBLEKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE79502929980C9F00FA576E /* G7SensorKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = G7SensorKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE79502D29980E4D00FA576E /* ShareClientUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareClientUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CE7CA3432A064973004BE681 /* AppShortcuts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppShortcuts.swift; sourceTree = ""; }; + CE7CA3442A064973004BE681 /* BaseIntentsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseIntentsRequest.swift; sourceTree = ""; }; + CE7CA3462A064973004BE681 /* CancelTempPresetIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CancelTempPresetIntent.swift; sourceTree = ""; }; + CE7CA3472A064973004BE681 /* ApplyTempPresetIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplyTempPresetIntent.swift; sourceTree = ""; }; + CE7CA3482A064973004BE681 /* ListTempPresetsIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListTempPresetsIntent.swift; sourceTree = ""; }; + CE7CA3492A064973004BE681 /* tempPresetIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = tempPresetIntent.swift; sourceTree = ""; }; + CE7CA34A2A064973004BE681 /* TempPresetsIntentRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TempPresetsIntentRequest.swift; sourceTree = ""; }; + CE7CA34C2A064973004BE681 /* ListStateIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListStateIntent.swift; sourceTree = ""; }; + CE7CA34D2A064973004BE681 /* StateIntentRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StateIntentRequest.swift; sourceTree = ""; }; + CE7CA3572A064E2F004BE681 /* ListStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListStateView.swift; sourceTree = ""; }; CE82E02428E867BA00473A9C /* AlertStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertStorage.swift; sourceTree = ""; }; CE82E02628E869DF00473A9C /* AlertEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertEntry.swift; sourceTree = ""; }; + CE94597929E9DF7B0047C9C6 /* ConnectIQ.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ConnectIQ.framework; path = "Dependencies/ios-armv7_arm64/ConnectIQ.framework"; sourceTree = ""; }; + CE94597D29E9E1EE0047C9C6 /* GarminManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GarminManager.swift; sourceTree = ""; }; + CE94597F29E9E3BD0047C9C6 /* WatchConfigDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConfigDataFlow.swift; sourceTree = ""; }; + CE94598129E9E3D30047C9C6 /* WatchConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConfigProvider.swift; sourceTree = ""; }; + CE94598329E9E3E60047C9C6 /* WatchConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConfigStateModel.swift; sourceTree = ""; }; + CE94598629E9E4110047C9C6 /* WatchConfigRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConfigRootView.swift; sourceTree = ""; }; CEA4F62229BE10F70011ADF7 /* SavitzkyGolayFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SavitzkyGolayFilter.swift; sourceTree = ""; }; CEB434DB28B8F5B900B70274 /* MKRingProgressView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MKRingProgressView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CEB434DE28B8F5C400B70274 /* OmniBLE.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OmniBLE.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CEB434E228B8F9DB00B70274 /* BluetoothStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothStateManager.swift; sourceTree = ""; }; CEB434E428B8FF5D00B70274 /* UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; CEB434E628B9053300B70274 /* LoopUIColorPalette+Default.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LoopUIColorPalette+Default.swift"; sourceTree = ""; }; + CEC751D129D88257006E9D24 /* OmniKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OmniKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC751D329D88257006E9D24 /* OmniKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OmniKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC751D529D88262006E9D24 /* MinimedKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MinimedKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC751D729D88262006E9D24 /* MinimedKitUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MinimedKitUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CECA4774298DA8310095139F /* DexcomSourceG5.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DexcomSourceG5.swift; sourceTree = ""; }; CFCFE0781F9074C2917890E8 /* ManualTempBasalStateModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ManualTempBasalStateModel.swift; sourceTree = ""; }; D0BDC6993C1087310EDFC428 /* CREditorRootView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CREditorRootView.swift; sourceTree = ""; }; @@ -838,6 +893,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CEC751D829D88262006E9D24 /* MinimedKitUI.framework in Frameworks */, + CEC751D629D88262006E9D24 /* MinimedKit.framework in Frameworks */, + CEC751D429D88257006E9D24 /* OmniKitUI.framework in Frameworks */, + CEC751D229D88257006E9D24 /* OmniKit.framework in Frameworks */, CE79502E29980E4D00FA576E /* ShareClientUI.framework in Frameworks */, CE79502A29980C9F00FA576E /* G7SensorKitUI.framework in Frameworks */, CE79502829980C9600FA576E /* CGMBLEKitUI.framework in Frameworks */, @@ -848,13 +907,11 @@ 3818AA71274C278200843DB3 /* LoopTestingKit.framework in Frameworks */, 3818AA47274C255A00843DB3 /* LibreTransmitter in Frameworks */, 3818AA4A274C267000843DB3 /* CGMBLEKit.framework in Frameworks */, + CE51DD1C2A01970900F163F7 /* ConnectIQ 2.xcframework in Frameworks */, 3811DE1025C9D37700A708ED /* Swinject in Frameworks */, 3818AA5C274C26A300843DB3 /* MockKit.framework in Frameworks */, 3818AA6A274C26A500843DB3 /* RileyLinkBLEKit.framework in Frameworks */, - 3818AA64274C26A400843DB3 /* MinimedKitUI.framework in Frameworks */, - 3818AA66274C26A400843DB3 /* OmniKit.framework in Frameworks */, 3818AA6C274C26A500843DB3 /* RileyLinkKit.framework in Frameworks */, - 3818AA68274C26A400843DB3 /* OmniKitUI.framework in Frameworks */, 3818AA5E274C26A300843DB3 /* MockKitUI.framework in Frameworks */, CE398D18297C9EE800DF218F /* G7SensorKit.framework in Frameworks */, 3818AA5A274C26A300843DB3 /* LoopKitUI.framework in Frameworks */, @@ -865,7 +922,6 @@ CEB434FD28B90B7C00B70274 /* SwiftCharts in Frameworks */, 38DF1789276FC8C400B3528F /* SwiftMessages in Frameworks */, E0CC2C5C275B9F0F00A7BC71 /* HealthKit.framework in Frameworks */, - 3818AA62274C26A400843DB3 /* MinimedKit.framework in Frameworks */, 3818AA6E274C26A500843DB3 /* RileyLinkKitUI.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -935,6 +991,25 @@ path = View; sourceTree = ""; }; + 190EBCC229FF134900BA767D /* StatConfig */ = { + isa = PBXGroup; + children = ( + 190EBCC329FF136900BA767D /* StatConfigDataFlow.swift */, + 190EBCC529FF138000BA767D /* StatConfigProvider.swift */, + 190EBCC729FF13AA00BA767D /* StatConfigStateModel.swift */, + 190EBCC929FF13AF00BA767D /* View */, + ); + path = StatConfig; + sourceTree = ""; + }; + 190EBCC929FF13AF00BA767D /* View */ = { + isa = PBXGroup; + children = ( + 190EBCCA29FF13CB00BA767D /* StatConfigRootView.swift */, + ); + path = View; + sourceTree = ""; + }; 192F0FF5276AC36D0085BE4D /* Recovered References */ = { isa = PBXGroup; children = ( @@ -1018,6 +1093,25 @@ path = View; sourceTree = ""; }; + 19F95FF129F10F9C00314DDC /* Stat */ = { + isa = PBXGroup; + children = ( + 19F95FF229F10FBC00314DDC /* StatDataFlow.swift */, + 19F95FF429F10FCF00314DDC /* StatProvider.swift */, + 19F95FF629F10FEE00314DDC /* StatStateModel.swift */, + 19F95FF829F10FF600314DDC /* View */, + ); + path = Stat; + sourceTree = ""; + }; + 19F95FF829F10FF600314DDC /* View */ = { + isa = PBXGroup; + children = ( + 19F95FF929F1102A00314DDC /* StatRootView.swift */, + ); + path = View; + sourceTree = ""; + }; 29B478DF61BF8D270F7D8954 /* Snooze */ = { isa = PBXGroup; children = ( @@ -1040,6 +1134,9 @@ 3811DE0325C9D31700A708ED /* Modules */ = { isa = PBXGroup; children = ( + 190EBCC229FF134900BA767D /* StatConfig */, + CE94597C29E9E1CD0047C9C6 /* WatchConfig */, + 19F95FF129F10F9C00314DDC /* Stat */, 19E1F7E629D0828B005C8D20 /* IconConfig */, 19D466A129AA2B0A004D5F33 /* FPUConfig */, F90692CD274B99850037068D /* HealthKit */, @@ -1085,6 +1182,7 @@ 3811DE1325C9D39E00A708ED /* Sources */ = { isa = PBXGroup; children = ( + CE7CA3422A064973004BE681 /* Shortcuts */, 3811DEDE25C9E2DD00A708ED /* Application */, 3811DF0A25CAAAA500A708ED /* APS */, E00EEBFC27368630002FF094 /* Assemblies */, @@ -1136,7 +1234,6 @@ 3811DE2A25C9D49500A708ED /* HomeDataFlow.swift */, 3811DE2925C9D49500A708ED /* HomeProvider.swift */, 3811DE2825C9D49500A708ED /* HomeStateModel.swift */, - 19854F482961C3E500941627 /* DurationButton.swift */, 3811DE2C25C9D49500A708ED /* View */, ); path = Home; @@ -1309,6 +1406,12 @@ 3818AA48274C267000843DB3 /* Frameworks */ = { isa = PBXGroup; children = ( + CE51DD1B2A01970800F163F7 /* ConnectIQ 2.xcframework */, + CE94597929E9DF7B0047C9C6 /* ConnectIQ.framework */, + CEC751D529D88262006E9D24 /* MinimedKit.framework */, + CEC751D729D88262006E9D24 /* MinimedKitUI.framework */, + CEC751D129D88257006E9D24 /* OmniKit.framework */, + CEC751D329D88257006E9D24 /* OmniKitUI.framework */, CE79502D29980E4D00FA576E /* ShareClientUI.framework */, CE79502929980C9F00FA576E /* G7SensorKitUI.framework */, CE79502729980C9600FA576E /* CGMBLEKitUI.framework */, @@ -1487,6 +1590,7 @@ FE41E4D329463C660047FD55 /* NightscoutStatistics.swift */, FE41E4D529463EE20047FD55 /* NightscoutPreferences.swift */, 1967DFBD29D052C200759F30 /* Icons.swift */, + 19D4E4EA29FC6A9F00351451 /* TIRforChart.swift */, ); path = Models; sourceTree = ""; @@ -1665,6 +1769,7 @@ isa = PBXGroup; children = ( 38E8754E275556FA00975559 /* WatchManager.swift */, + CE94597D29E9E1EE0047C9C6 /* GarminManager.swift */, ); path = WatchManager; sourceTree = ""; @@ -1935,6 +2040,58 @@ path = Bolus; sourceTree = ""; }; + CE7CA3422A064973004BE681 /* Shortcuts */ = { + isa = PBXGroup; + children = ( + CE7CA3432A064973004BE681 /* AppShortcuts.swift */, + CE7CA3442A064973004BE681 /* BaseIntentsRequest.swift */, + CE7CA3452A064973004BE681 /* TempPresets */, + CE7CA34B2A064973004BE681 /* State */, + ); + path = Shortcuts; + sourceTree = ""; + }; + CE7CA3452A064973004BE681 /* TempPresets */ = { + isa = PBXGroup; + children = ( + CE7CA3462A064973004BE681 /* CancelTempPresetIntent.swift */, + CE7CA3472A064973004BE681 /* ApplyTempPresetIntent.swift */, + CE7CA3482A064973004BE681 /* ListTempPresetsIntent.swift */, + CE7CA3492A064973004BE681 /* tempPresetIntent.swift */, + CE7CA34A2A064973004BE681 /* TempPresetsIntentRequest.swift */, + ); + path = TempPresets; + sourceTree = ""; + }; + CE7CA34B2A064973004BE681 /* State */ = { + isa = PBXGroup; + children = ( + CE7CA34C2A064973004BE681 /* ListStateIntent.swift */, + CE7CA34D2A064973004BE681 /* StateIntentRequest.swift */, + CE7CA3572A064E2F004BE681 /* ListStateView.swift */, + ); + path = State; + sourceTree = ""; + }; + CE94597C29E9E1CD0047C9C6 /* WatchConfig */ = { + isa = PBXGroup; + children = ( + CE94598529E9E3FE0047C9C6 /* View */, + CE94597F29E9E3BD0047C9C6 /* WatchConfigDataFlow.swift */, + CE94598129E9E3D30047C9C6 /* WatchConfigProvider.swift */, + CE94598329E9E3E60047C9C6 /* WatchConfigStateModel.swift */, + ); + path = WatchConfig; + sourceTree = ""; + }; + CE94598529E9E3FE0047C9C6 /* View */ = { + isa = PBXGroup; + children = ( + CE94598629E9E4110047C9C6 /* WatchConfigRootView.swift */, + ); + path = View; + sourceTree = ""; + }; CEB434E128B8F9BC00B70274 /* Bluetooth */ = { isa = PBXGroup; children = ( @@ -2334,10 +2491,10 @@ 385CEAC425F2F154002D6D5B /* AnnouncementsStorage.swift in Sources */, 38AEE73D25F0200C0013F05B /* FreeAPSSettings.swift in Sources */, 38FCF3FD25E997A80078B0D1 /* PumpHistoryStorage.swift in Sources */, - 19854F492961C3E500941627 /* DurationButton.swift in Sources */, 38D0B3B625EBE24900CB6E88 /* Battery.swift in Sources */, 38C4D33725E9A1A300D30B77 /* DispatchQueue+Extensions.swift in Sources */, F90692CF274B999A0037068D /* HealthKitDataFlow.swift in Sources */, + CE7CA3552A064973004BE681 /* ListStateIntent.swift in Sources */, 3862CC2E2743F9F700BF832C /* CalendarManager.swift in Sources */, CEA4F62329BE10F70011ADF7 /* SavitzkyGolayFilter.swift in Sources */, 38B4F3C325E2A20B00E76A18 /* PumpSetupView.swift in Sources */, @@ -2352,11 +2509,13 @@ 3894873A2614928B004DF424 /* DispatchTimer.swift in Sources */, 3895E4C625B9E00D00214B37 /* Preferences.swift in Sources */, 386A124F271707F000DDC61C /* DexcomSourceG6.swift in Sources */, + CE94598429E9E3E60047C9C6 /* WatchConfigStateModel.swift in Sources */, 38DF1786276A73D400B3528F /* TagCloudView.swift in Sources */, 38B4F3CD25E5031100E76A18 /* Broadcaster.swift in Sources */, 383420D925FFEB3F002D46C1 /* Popup.swift in Sources */, 3811DE3025C9D49500A708ED /* HomeStateModel.swift in Sources */, 38BF021725E7CBBC00579895 /* PumpManagerExtensions.swift in Sources */, + 19F95FF529F10FCF00314DDC /* StatProvider.swift in Sources */, 38F3B2EF25ED8E2A005C48AA /* TempTargetsStorage.swift in Sources */, 19B0EF2128F6D66200069496 /* Statistics.swift in Sources */, 3811DF1025CAAAE200A708ED /* APSManager.swift in Sources */, @@ -2364,9 +2523,11 @@ 38A0364225ED069400FCBB52 /* TempBasal.swift in Sources */, 3811DE1725C9D40400A708ED /* Screen.swift in Sources */, 383948DA25CD64D500E91849 /* Glucose.swift in Sources */, + CE94598029E9E3BD0047C9C6 /* WatchConfigDataFlow.swift in Sources */, 388E596C25AD95110019842D /* OpenAPS.swift in Sources */, E00EEC0527368630002FF094 /* StorageAssembly.swift in Sources */, 384E803825C388640086DB71 /* Script.swift in Sources */, + CE94597E29E9E1EE0047C9C6 /* GarminManager.swift in Sources */, 3883583425EEB38000E024B2 /* PumpSettings.swift in Sources */, 38DAB280260CBB7F00F74C1A /* PumpView.swift in Sources */, 3811DEB125C9D88300A708ED /* Keychain.swift in Sources */, @@ -2382,6 +2543,7 @@ CEB434E328B8F9DB00B70274 /* BluetoothStateManager.swift in Sources */, 3811DE4225C9D4A100A708ED /* SettingsDataFlow.swift in Sources */, 3811DE2525C9D48300A708ED /* MainRootView.swift in Sources */, + CE94598229E9E3D30047C9C6 /* WatchConfigProvider.swift in Sources */, 38E44535274E411700EC9A94 /* Disk+Data.swift in Sources */, 3811DE3125C9D49500A708ED /* HomeProvider.swift in Sources */, FE41E4D629463EE20047FD55 /* NightscoutPreferences.swift in Sources */, @@ -2400,6 +2562,7 @@ 3811DE1825C9D40400A708ED /* Router.swift in Sources */, CE7950262998056D00FA576E /* CGMSetupView.swift in Sources */, 38A0363B25ECF07E00FCBB52 /* GlucoseStorage.swift in Sources */, + 190EBCC629FF138000BA767D /* StatConfigProvider.swift in Sources */, 38E98A2725F52C9300C0CED0 /* CollectionIssueReporter.swift in Sources */, E00EEC0427368630002FF094 /* SecurityAssembly.swift in Sources */, 3811DEE825CA063400A708ED /* Injected.swift in Sources */, @@ -2420,6 +2583,7 @@ CE48C86628CA6B48007C0598 /* OmniPodManagerExtensions.swift in Sources */, CEB434E728B9053300B70274 /* LoopUIColorPalette+Default.swift in Sources */, CECA4775298DA8310095139F /* DexcomSourceG5.swift in Sources */, + 19F95FF329F10FBC00314DDC /* StatDataFlow.swift in Sources */, 3811DE2225C9D48300A708ED /* MainProvider.swift in Sources */, 3811DE0C25C9D32F00A708ED /* BaseProvider.swift in Sources */, 3811DE5C25C9D4D500A708ED /* Formatters.swift in Sources */, @@ -2430,6 +2594,7 @@ 3811DE6125C9D4D500A708ED /* ViewModifiers.swift in Sources */, 3811DEAC25C9D88300A708ED /* NightscoutManager.swift in Sources */, CEB434E528B8FF5D00B70274 /* UIColor.swift in Sources */, + 190EBCCB29FF13CB00BA767D /* StatConfigRootView.swift in Sources */, 3811DEA925C9D88300A708ED /* AppearanceManager.swift in Sources */, CE7950242997D81700FA576E /* CGMSettingsView.swift in Sources */, 38D0B3D925EC07C400CB6E88 /* CarbsEntry.swift in Sources */, @@ -2445,6 +2610,7 @@ 38BF021B25E7D06400579895 /* PumpSettingsView.swift in Sources */, 3862CC05273D152B00BF832C /* CalibrationService.swift in Sources */, 3811DEEA25CA063400A708ED /* SyncAccess.swift in Sources */, + 190EBCC829FF13AA00BA767D /* StatConfigStateModel.swift in Sources */, 38BF021F25E7F0DE00579895 /* DeviceDataManager.swift in Sources */, 38A504A425DD9C4000C5B9E8 /* UserDefaultsExtensions.swift in Sources */, 38FE826A25CC82DB001FF17A /* NetworkService.swift in Sources */, @@ -2453,13 +2619,16 @@ 38DAB28A260D349500F74C1A /* FetchGlucoseManager.swift in Sources */, 38F37828261260DC009DB701 /* Color+Extensions.swift in Sources */, 3811DE3F25C9D4A100A708ED /* SettingsStateModel.swift in Sources */, + CE7CA3582A064E2F004BE681 /* ListStateView.swift in Sources */, 38B4F3CB25E502E200E76A18 /* WeakObjectSet.swift in Sources */, 38E989DD25F5021400C0CED0 /* PumpStatus.swift in Sources */, 38E98A2525F52C9300C0CED0 /* IssueReporter.swift in Sources */, + 190EBCC429FF136900BA767D /* StatConfigDataFlow.swift in Sources */, 3811DEB025C9D88300A708ED /* BaseKeychain.swift in Sources */, 3811DE4325C9D4A100A708ED /* SettingsProvider.swift in Sources */, 45252C95D220E796FDB3B022 /* ConfigEditorDataFlow.swift in Sources */, 3871F38725ED661C0013ECB5 /* Suggestion.swift in Sources */, + CE7CA34E2A064973004BE681 /* AppShortcuts.swift in Sources */, 38C4D33A25E9A1ED00D30B77 /* NSObject+AssociatedValues.swift in Sources */, 38DF179027733EAD00B3528F /* SnowScene.swift in Sources */, 38AAF8712600C1B0004AF583 /* MainChartView.swift in Sources */, @@ -2470,6 +2639,7 @@ 72F1BD388F42FCA6C52E4500 /* ConfigEditorProvider.swift in Sources */, E39E418C56A5A46B61D960EE /* ConfigEditorStateModel.swift in Sources */, 45717281F743594AA9D87191 /* ConfigEditorRootView.swift in Sources */, + CE7CA3532A064973004BE681 /* tempPresetIntent.swift in Sources */, D6DEC113821A7F1056C4AA1E /* NightscoutConfigDataFlow.swift in Sources */, 38E98A3025F52FF700C0CED0 /* Config.swift in Sources */, BD2B464E0745FBE7B79913F4 /* NightscoutConfigProvider.swift in Sources */, @@ -2481,6 +2651,7 @@ 5D16287A969E64D18CE40E44 /* PumpConfigStateModel.swift in Sources */, 19D466AA29AA3099004D5F33 /* FPUConfigRootView.swift in Sources */, E974172296125A5AE99E634C /* PumpConfigRootView.swift in Sources */, + CE7CA3522A064973004BE681 /* ListTempPresetsIntent.swift in Sources */, 448B6FCB252BD4796E2960C0 /* PumpSettingsEditorDataFlow.swift in Sources */, 38E44536274E411700EC9A94 /* Disk.swift in Sources */, 2BE9A6FA20875F6F4F9CD461 /* PumpSettingsEditorProvider.swift in Sources */, @@ -2493,9 +2664,11 @@ 38FEF3FE2738083E00574A46 /* CGMProvider.swift in Sources */, 38E98A3725F5509500C0CED0 /* String+Extensions.swift in Sources */, F90692D1274B99B60037068D /* HealthKitProvider.swift in Sources */, + 19F95FF729F10FEE00314DDC /* StatStateModel.swift in Sources */, 385CEAC125F2EA52002D6D5B /* Announcement.swift in Sources */, 8B759CFCF47B392BB365C251 /* BasalProfileEditorDataFlow.swift in Sources */, 389442CB25F65F7100FA1F27 /* NightscoutTreatment.swift in Sources */, + CE7CA3512A064973004BE681 /* ApplyTempPresetIntent.swift in Sources */, FA630397F76B582C8D8681A7 /* BasalProfileEditorProvider.swift in Sources */, 63E890B4D951EAA91C071D5C /* BasalProfileEditorStateModel.swift in Sources */, CE398D16297C9D1D00DF218F /* dexcomSourceG7.swift in Sources */, @@ -2524,6 +2697,7 @@ 98641AF4F92123DA668AB931 /* CREditorRootView.swift in Sources */, 38E4453D274E411700EC9A94 /* Disk+Errors.swift in Sources */, 38E98A2325F52C9300C0CED0 /* Signpost.swift in Sources */, + CE7CA3542A064973004BE681 /* TempPresetsIntentRequest.swift in Sources */, F5F7E6C1B7F098F59EB67EC5 /* TargetsEditorDataFlow.swift in Sources */, 5075C1608E6249A51495C422 /* TargetsEditorProvider.swift in Sources */, E13B7DAB2A435F57066AF02E /* TargetsEditorStateModel.swift in Sources */, @@ -2533,6 +2707,7 @@ 38E8754F275556FA00975559 /* WatchManager.swift in Sources */, A228DF96647338139F152B15 /* PreferencesEditorDataFlow.swift in Sources */, 389ECE052601144100D86C4F /* ConcurrentMap.swift in Sources */, + CE7CA3562A064973004BE681 /* StateIntentRequest.swift in Sources */, E4984C5262A90469788754BB /* PreferencesEditorProvider.swift in Sources */, DD399FB31EACB9343C944C4C /* PreferencesEditorStateModel.swift in Sources */, 19E1F7EA29D082ED005C8D20 /* IconConfigProvider.swift in Sources */, @@ -2541,6 +2716,7 @@ CE48C86428CA69D5007C0598 /* OmniBLEPumpManagerExtensions.swift in Sources */, 38E8755427561E9800975559 /* DataFlow.swift in Sources */, 38E44522274E3DDC00EC9A94 /* NetworkReachabilityManager.swift in Sources */, + CE7CA34F2A064973004BE681 /* BaseIntentsRequest.swift in Sources */, A6F097A14CAAE0CE0D11BE1B /* AddCarbsProvider.swift in Sources */, 33E198D3039045D98C3DC5D4 /* AddCarbsStateModel.swift in Sources */, 28089E07169488CF6DCC2A31 /* AddCarbsRootView.swift in Sources */, @@ -2560,6 +2736,7 @@ 69A31254F2451C20361D172F /* BolusStateModel.swift in Sources */, 0CEA2EA070AB041AF3E3745B /* BolusRootView.swift in Sources */, 1967DFC029D053AC00759F30 /* IconSelection.swift in Sources */, + 19D4E4EB29FC6A9F00351451 /* TIRforChart.swift in Sources */, FEFFA7A22929FE49007B8193 /* UIDevice+Extensions.swift in Sources */, F90692D3274B9A130037068D /* AppleHealthKitRootView.swift in Sources */, 3862CC1F273FDC9200BF832C /* CalibrationsChart.swift in Sources */, @@ -2579,6 +2756,7 @@ A05235B9112E677ED03B6E8E /* AutotuneConfigRootView.swift in Sources */, 7F7B756BE8543965D9FDF1A2 /* DataTableDataFlow.swift in Sources */, 1D845DF2E3324130E1D95E67 /* DataTableProvider.swift in Sources */, + 19F95FFA29F1102A00314DDC /* StatRootView.swift in Sources */, 0D9A5E34A899219C5C4CDFAF /* DataTableStateModel.swift in Sources */, D6D02515BBFBE64FEBE89856 /* DataTableRootView.swift in Sources */, 38569349270B5DFB0002C50D /* AppGroupSource.swift in Sources */, @@ -2586,6 +2764,7 @@ BA00D96F7B2FF169A06FB530 /* CGMStateModel.swift in Sources */, 61962FCAF8A2D222553AC5A3 /* LibreConfigDataFlow.swift in Sources */, 6EADD581738D64431902AC0A /* LibreConfigProvider.swift in Sources */, + CE94598729E9E4110047C9C6 /* WatchConfigRootView.swift in Sources */, 903D18976088B09110BCBE29 /* LibreConfigStateModel.swift in Sources */, 9050F378F0063C064D7FFC86 /* LibreConfigRootView.swift in Sources */, B7C465E9472624D8A2BE2A6A /* CalibrationsDataFlow.swift in Sources */, @@ -2597,6 +2776,7 @@ 0F7A65FBD2CD8D6477ED4539 /* NotificationsConfigProvider.swift in Sources */, 3171D2818C7C72CD1584BB5E /* NotificationsConfigStateModel.swift in Sources */, CD78BB94E43B249D60CC1A1B /* NotificationsConfigRootView.swift in Sources */, + CE7CA3502A064973004BE681 /* CancelTempPresetIntent.swift in Sources */, 6B1F539F9FF75646D1606066 /* SnoozeDataFlow.swift in Sources */, 6FFAE524D1D9C262F2407CAE /* SnoozeProvider.swift in Sources */, 8194B80890CDD6A3C13B0FEE /* SnoozeStateModel.swift in Sources */, @@ -2769,7 +2949,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MARKETING_VERSION = "$(APP_VERSION)"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -2828,7 +3008,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MARKETING_VERSION = "$(APP_VERSION)"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -2854,8 +3034,12 @@ DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)"; ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Dependencies/ios-armv7_arm64", + ); INFOPLIST_FILE = FreeAPS/Resources/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2868,6 +3052,7 @@ OTHER_LDFLAGS = ( "-weak_framework", CoreNFC, + "-ObjC", ); PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2891,8 +3076,12 @@ DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)"; ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Dependencies/ios-armv7_arm64", + ); INFOPLIST_FILE = FreeAPS/Resources/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2905,6 +3094,7 @@ OTHER_LDFLAGS = ( "-weak_framework", CoreNFC, + "-ObjC", ); PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/FreeAPS.xcworkspace/contents.xcworkspacedata b/FreeAPS.xcworkspace/contents.xcworkspacedata index 154d9120b7..6e90aa59ce 100644 --- a/FreeAPS.xcworkspace/contents.xcworkspacedata +++ b/FreeAPS.xcworkspace/contents.xcworkspacedata @@ -25,4 +25,10 @@ + + + + diff --git a/FreeAPS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/FreeAPS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000..08de0be8d3 --- /dev/null +++ b/FreeAPS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + diff --git a/FreeAPS/Resources/Info.plist b/FreeAPS/Resources/Info.plist index ee4b1457ea..9135d331c7 100644 --- a/FreeAPS/Resources/Info.plist +++ b/FreeAPS/Resources/Info.plist @@ -10,6 +10,8 @@ BuildBranch + CBBundleDisplayName + $(APP_DISPLAY_NAME) CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -30,7 +32,9 @@ CFBundleTypeRole - Editor + None + CFBundleURLName + com.artificial-pancreas-iaps CFBundleURLSchemes freeaps-x @@ -43,6 +47,7 @@ LSApplicationQueriesSchemes + gcm-ciq dexcomg7 xdripswift dexcomg6 @@ -104,8 +109,6 @@ UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown - CBBundleDisplayName - $(APP_DISPLAY_NAME) UISupportedInterfaceOrientations~ipad UIInterfaceOrientationPortrait diff --git a/FreeAPS/Resources/javascript/bundle/determine-basal.js b/FreeAPS/Resources/javascript/bundle/determine-basal.js index 071417d2de..88cf516e01 100644 --- a/FreeAPS/Resources/javascript/bundle/determine-basal.js +++ b/FreeAPS/Resources/javascript/bundle/determine-basal.js @@ -1 +1,2 @@ -var freeaps_determineBasal;(()=>{var e={5546:(e,t,a)=>{var r=a(6880);function o(e,t){t||(t=0);var a=Math.pow(10,t);return Math.round(e*a)/a}function n(e,t){return"mmol/L"===t.out_units?o(.0555*e,1):Math.round(e)}e.exports=function(e,t,a,i,s,l,m,u,d,c,g,h,p,f){var v=i.min_bg,B=0,b="",M="",_="",y="",x="",D=0,w=0,S=0,T=0,C=0,U=0;const G=f.weightedAverage;var O=1,R=i.sens,A=i.carb_ratio;f.useOverride&&(R/=O=f.overridePercentage/100,A/=O);const I=i.weightPercentage,j=f.average_total_data;function F(e,t){var a=e.getTime();return new Date(a+36e5*t)}function P(e){var t=i.bolus_increment;.025!=t&&(t=.05);var a=e/t;return a>=1?o(Math.floor(a)*t,5):0}function E(e){function t(e){return e<10&&(e="0"+e),e}return t(e.getHours())+":"+t(e.getMinutes())+":00"}function q(e,t){var a=new Date("1/1/1999 "+e),r=new Date("1/1/1999 "+t);return(a.getTime()-r.getTime())/36e5}function W(e,t){var a=0,r=t,o=(e-t)/36e5,n=0,i=o,s=0;do{if(o>0){var l=E(r),m=p[0].rate;for(let e=0;e=(s=q(p[e+1].start,p[e].start))?n=s:o=(s=24-q(p[e].start,t))?n=s:ou)if(e+1=(s=q(d,l))?n=s:o=(s=q("23:59:59",l))?n=s:o0&&o21)C=W(k,(z=24-B,N=k.getTime(),new Date(N-36e5*z))),y="24 hours of data is required for an accurate tdd calculation. Currently only "+B.toPrecision(3)+" hours of pump history data are available. Using your pump scheduled basals to fill in the missing hours. Scheduled basals added: "+C.toPrecision(5)+" U. ";else B<21?(ae=!1,enableDynamicCR=!1):y=""}else console.log("Pumphistory is empty!"),ae=!1,enableDynamicCR=!1;var z,N;for(let e=0;e0){D=e,U=g[e].rate;var H=g[e-1]["duration (min)"]/60,Z=H,$=new Date(g[e-1].timestamp),J=$,K=0;do{if(e--,0==e){J=new Date;break}if("TempBasal"==g[e]._type||"PumpSuspend"==g[e]._type){J=new Date(g[e].timestamp);break}var Q=e-2;if(Q>=0&&"Rewind"==g[Q]._type){let e=g[Q].timestamp;for(;Q-1>=0&&"Prime"==g[Q-=1]._type;)K=(g[Q].timestamp-e)/36e5;K>=H&&(J=e,K=0)}}while(e>0);var V=(J-$)/36e5;V0&&(--r,"TempBasal"==g[r]._type)){a=new Date(g[r].timestamp);break}}while(r>0);(a-t)/36e5>0&&(C+=W(a,t))}for(let e=g.length-1;e>0;e--)if("TempBasalDuration"==g[e]._type){let t=g[e]["duration (min)"]/60,a=new Date(g[e].timestamp);var X=a;let r=e;do{if(--r,r>=0&&("TempBasal"==g[r]._type||"PumpSuspend"==g[r]._type)){X=new Date(g[r].timestamp);break}}while(r>0);if(0==e&&"TempBasalDuration"==g[0]._type&&(X=new Date,t=g[e]["duration (min)"]/60),(X-a)/36e5-t>0){C+=W(X,F(a,t))}}var Y,ee={TDD:o(w=T+S+C,5),bolus:o(T,5),temp_basal:o(S,5),scheduled_basal:o(C,5)};B>21?(M=". Bolus insulin: "+T.toPrecision(5)+" U",_=". Temporary basal insulin: "+S.toPrecision(5)+" U",b=". Insulin with scheduled basal rate: "+C.toPrecision(5)+" U",x=y+(" TDD past 24h is: "+w.toPrecision(5)+" U")+M+_+b,tddReason=", Total insulin: "+o(w,2)+" U, "+o(T/w*100,0)+"% Bolus "+o((S+C)/w*100,0)+"% Basal"):tddReason=", TDD: Not enough pumpData (< 21h)";const te=e.glucose;var ae=h.useNewFormula;const re=h.enableDynamicCR,oe=Math.min(i.autosens_min,i.autosens_max),ne=Math.max(i.autosens_min,i.autosens_max),ie=h.adjustmentFactor,se=i.min_bg;var le=!1,me="",ue=1,de="";j>0&&(ue=G/j),de=ue>1?"Basal adjustment with a 24 hour to total average (up to 14 days of data) TDD ratio (limited by Autosens max setting). Basal Ratio: "+(ue=o(ue=Math.min(ue,i.autosens_max),2))+". Upper limit = Autosens max ("+i.autosens_max+")":ue<1?"Basal adjustment with a 24 hour to to total average (up to 14 days of data) TDD ratio (limited by Autosens min setting). Basal Ratio: "+(ue=o(ue=Math.max(ue,i.autosens_min),2))+". Lower limit = Autosens min ("+i.autosens_min+")":"Basal adjusted with a 24 hour to total average (up to 14 days of data) TDD ratio: "+ue,de=", Basal ratio: "+ue,(i.high_temptarget_raises_sensitivity||i.exercise_mode||f.isEnabled)&&(le=!0),se>=118&&le&&(ae=!1,me="Dynamic ISF temporarily off due to a high temp target/exercising. Current min target: "+se);var ce=", Dynamic ratios log: ",ge=", AF: "+ie,he="BG: "+te+" mg/dl ("+(.0555*te).toPrecision(2)+" mmol/l)",pe="",fe="";const ve=h.curve,Be=h.insulinPeakTime,be=h.useCustomPeakTime;var Me=55,_e=65;switch(ve){case"rapid-acting":_e=65;break;case"ultra-rapid":_e=50}be?(Me=120-Be,console.log("Custom insulinpeakTime set to :"+Be+", insulinFactor: "+Me)):(Me=120-_e,console.log("insulinFactor set to : "+Me)),Y=w,I<1&&G>0&&(w=G,console.log("Using weighted TDD average: "+o(w,2)+" U, instead of past 24 h ("+o(Y,2)+" U), weight: "+I),fe=", Weighted TDD: "+o(w,2)+" U");const ye=h.sigmoid;var xe="";if(ae){var De=R*ie*w*Math.log(te/Me+1)/1800;pe=", Logarithmic formula"}if(ae&&ye){const e=oe,t=ne-e,a=.0555*(te-i.min_bg);var we=ue;const r=ne-1,o=Math.log10(1/r-e/r)/Math.log10(Math.E),n=a*ie*we+o;De=t/(1+Math.exp(-n))+e,pe=", Sigmoid function"}var Se=A;const Te=o(A,1);var Ce="",Ue="";if(ae&&w>0){if(Ce=", Dynamic ISF/CR: On/",De>ne?(me=", Dynamic ISF limited by autosens_max setting: "+ne+" ("+o(De,2)+"), ",Ue=", Autosens/Dynamic Limit: "+ne+" ("+o(De,2)+")",De=ne):De1&&(Ge=(De-1)/2+1);var Oe=" CR: "+(Se=o(Se/Ge,2))+" g/U";A=Se}else Oe=" CR: "+Se+" g/U",Ce+="Off";const e=R/De;xe=". Using Sigmoid function, the autosens ratio has been adjusted with sigmoid factor to: "+o(s.ratio,2)+". New ISF = "+o(e,2)+" mg/dl ("+o(.0555*e,2)+" (mmol/l). CR adjusted from "+o(Te,2)+" to "+o(Se,2)+" ("+o(.0555*A,2)+" mmol/l).",me+=ye?xe:", Dynamic autosens.ratio set to "+o(De,2)+" with ISF: "+e.toPrecision(3)+" mg/dl/U ("+(.0555*e).toPrecision(3)+" mmol/l/U)",s.ratio=De,x+=ce+he+ge+pe+me+Ce+Oe+fe}else x+=ce+"Dynamic Settings disabled";console.log(x),ae||re?ae&&i.tddAdjBasal?tddReason+=Ce+pe+Ue+ge+de:ae&&!i.tddAdjBasal&&(tddReason+=Ce+pe+Ue+ge):tddReason+="";var Re={},Ae=new Date;if(c&&(Ae=c),void 0===i||void 0===i.current_basal)return Re.error="Error: could not get current basal rate",Re;var Ie=r(i.current_basal,i)*O,je=Ie;f.useOverride&&(0==f.duration?console.log("Profile Override is active. Override "+o(100*O,0)+"%. Override Duration: Enabled indefinitely"):console.log("Profile Override is active. Override "+o(100*O,0)+"%. Override Expires in: "+f.duration+" min."));var Fe=new Date;c&&(Fe=c);var Pe,Ee=new Date(e.date),qe=o((Fe-Ee)/60/1e3,1),We=e.glucose,ke=e.noise;Pe=e.delta>-.5?"+"+o(e.delta,0):o(e.delta,0);var Le=Math.min(e.delta,e.short_avgdelta),ze=Math.min(e.short_avgdelta,e.long_avgdelta),Ne=Math.max(e.delta,e.short_avgdelta,e.long_avgdelta);(We<=10||38===We||ke>=3)&&(Re.reason="CGM is calibrating, in ??? state, or noise is high");if(We>60&&0==e.delta&&e.short_avgdelta>-1&&e.short_avgdelta<1&&e.long_avgdelta>-1&&e.long_avgdelta<1&&("fakecgm"==e.device?(console.error("CGM data is unchanged ("+n(We,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,2)+" mg/dL ~45m change"),console.error("Simulator mode detected ("+e.device+"): continuing anyway")):!0),qe>12||qe<-5?Re.reason="If current system time "+Fe+" is correct, then BG data is too old. The last BG data was read "+qe+"m ago at "+Ee:0===e.short_avgdelta&&0===e.long_avgdelta&&(e.last_cal&&e.last_cal<3?Re.reason="CGM was just calibrated":Re.reason="CGM data is unchanged ("+n(We,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,i)+" mg/dL ~45m change"),We<=10||38===We||ke>=3||qe>12||qe<-5||0===e.short_avgdelta&&0===e.long_avgdelta)return t.rate>=je?(Re.reason+=". Canceling high temp basal of "+t.rate,Re.deliverAt=Ae,Re.temp="absolute",Re.duration=0,Re.rate=0,Re):0===t.rate&&t.duration>30?(Re.reason+=". Shortening "+t.duration+"m long zero temp to 30m. ",Re.deliverAt=Ae,Re.temp="absolute",Re.duration=30,Re.rate=0,Re):(Re.reason+=". Temp "+t.rate+" <= current basal "+je+"U/hr; doing nothing. ",Re);var He,Ze,$e,Je,Ke=i.max_iob;if(void 0!==i.min_bg&&(Ze=i.min_bg),void 0!==i.max_bg&&($e=i.max_bg),void 0!==i.enableSMB_high_bg_target&&(Je=i.enableSMB_high_bg_target),void 0===i.min_bg||void 0===i.max_bg)return Re.error="Error: could not determine target_bg. ",Re;He=(i.min_bg+i.max_bg)/2;var Qe=i.exercise_mode||i.high_temptarget_raises_sensitivity||f.isEnabled,Ve=100,Xe=160;if(Xe=i.half_basal_exercise_target,f.isEnabled){const e=f.hbt;console.log("Half Basal Target used: "+n(e,i)+" "+i.out_units),Xe=e}else console.log("Default Half Basal Target used: "+n(Xe,i)+" "+i.out_units);if(Qe&&i.temptargetSet&&He>Ve||i.low_temptarget_lowers_sensitivity&&i.temptargetSet&&He=He&&sensitivityRatio0&&(process.stderr.write("TDD-adjustment of basals activated, using tdd24h_14d_Ratio "+o(ue,2)+", TDD 24h = "+o(Y,2)+"U, Weighted average TDD = "+o(G,2)+"U, (Weight percentage = "+I+"), Total data of TDDs (up to 14 days) average = "+o(j,2)+"U. "),je!==Ie*O?process.stderr.write("Adjusting basal from "+Ie*O+" U/h to "+je+" U/h; "):process.stderr.write("Basal unchanged: "+je+" U/h; "))),i.temptargetSet);else if(void 0!==s&&s&&(i.sensitivity_raises_target&&s.ratio<1||i.resistance_lowers_target&&s.ratio>1)){Ze=o((Ze-60)/s.ratio)+60,$e=o(($e-60)/s.ratio)+60;var et=o((He-60)/s.ratio)+60;He===(et=Math.max(80,et))?process.stderr.write("target_bg unchanged: "+et+"; "):process.stderr.write("target_bg from "+He+" to "+et+"; "),He=et}var tt=200,at=200,rt=200;if(e.noise>=2){var ot=Math.max(1.1,i.noisyCGMTargetMultiplier);Math.min(250,i.maxRaw);tt=o(Math.min(200,Ze*ot)),at=o(Math.min(200,He*ot)),rt=o(Math.min(200,$e*ot)),process.stderr.write("Raising target_bg for noisy / raw CGM data, from "+He+" to "+at+"; "),Ze=tt,He=at,$e=rt}var nt=Ze-.5*(Ze-40),it=i.threshold_setting;it>nt&&it<=120&&it>=65?(console.error("Threshold changed in settings from "+n(nt,i)+" to "+n(it,i)+". "),nt=it):console.error("Current threshold: "+n(nt,i));var st="",lt=(o(R,1),R);if(void 0!==s&&s&&((lt=o(lt=R/sensitivityRatio,1))!==R?process.stderr.write("ISF from "+n(R,i)+" to "+n(lt,i)):process.stderr.write("ISF unchanged: "+n(lt,i)),st+="Autosens ratio: "+o(sensitivityRatio,2)+", ISF: "+n(R,i)+"→"+n(lt,i)),console.error("CR:"+A),void 0===a)return Re.error="Error: iob_data undefined. ",Re;var mt,ut=a;if(a.length,a.length>1&&(a=ut[0]),void 0===a.activity||void 0===a.iob)return Re.error="Error: iob_data missing some property. ",Re;var dt=((mt=void 0!==a.lastTemp?o((new Date(Fe).getTime()-a.lastTemp.date)/6e4):0)+t.duration)%30;if(console.error("currenttemp:"+t.rate+" lastTempAge:"+mt+"m, tempModulus:"+dt+"m"),Re.temp="absolute",Re.deliverAt=Ae,u&&t&&a.lastTemp&&t.rate!==a.lastTemp.rate&&mt>10&&t.duration)return Re.reason="Warning: currenttemp rate "+t.rate+" != lastTemp rate "+a.lastTemp.rate+" from pumphistory; canceling temp",m.setTempBasal(0,0,i,Re,t);if(t&&a.lastTemp&&t.duration>0){var ct=mt-a.lastTemp.duration;if(ct>5&&mt>10)return Re.reason="Warning: currenttemp running but lastTemp from pumphistory ended "+ct+"m ago; canceling temp",m.setTempBasal(0,0,i,Re,t)}var gt=o(-a.activity*lt*5,2),ht=o(6*(Le-gt));ht<0&&(ht=o(6*(ze-gt)))<0&&(ht=o(6*(e.long_avgdelta-gt)));var pt=We,ft=(pt=a.iob>0?o(We-a.iob*lt):o(We-a.iob*Math.min(lt,R)))+ht;if(void 0===ft||isNaN(ft))return Re.error="Error: could not calculate eventualBG. Sensitivity: "+lt+" Deviation: "+ht,Re;var vt=function(e,t,a){return o(a+(e-t)/24,1)}(He,ft,gt);Re={temp:"absolute",bg:We,tick:Pe,eventualBG:ft,insulinReq:0,reservoir:d,deliverAt:Ae,sensitivityRatio,TDD:Y,insulin:ee,current_target:He};var Bt=[],bt=[],Mt=[],_t=[];Bt.push(We),bt.push(We),_t.push(We),Mt.push(We);var yt=function(e,t,a,r,o,i){return t?!e.allowSMB_with_high_temptarget&&e.temptargetSet&&o>100?(console.error("SMB disabled due to high temptarget of "+o),!1):!0===a.bwFound&&!1===e.A52_risk_enable?(console.error("SMB disabled due to Bolus Wizard activity in the last 6 hours."),!1):!0===e.enableSMB_always?(a.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled due to enableSMB_always"),!0):!0===e.enableSMB_with_COB&&a.mealCOB?(a.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for COB of "+a.mealCOB),!0):!0===e.enableSMB_after_carbs&&a.carbs?(a.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for 6h after carb entry"),!0):!0===e.enableSMB_with_temptarget&&e.temptargetSet&&o<100?(a.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for temptarget of "+n(o,e)),!0):!0===e.enableSMB_high_bg&&null!==i&&r>=i?(console.error("Checking BG to see if High for SMB enablement."),console.error("Current BG",r," | High BG ",i),a.bwFound?console.error("Warning: High BG SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("High BG detected. Enabling SMB."),!0):(console.error("SMB disabled (no enableSMB preferences active or no condition satisfied)"),!1):(console.error("SMB disabled (!microBolusAllowed)"),!1)}(i,u,l,We,He,Je),xt=i.enableUAM,Dt=0,wt=0;Dt=o(Le-gt,1);var St=o(Le-gt,1);csf=lt/A,console.error("profile.sens:"+n(R,i)+", sens:"+n(lt,i)+", CSF:"+o(csf,1));var Tt=o(30*csf*5/60,1);Dt>Tt&&(console.error("Limiting carb impact from "+Dt+" to "+Tt+"mg/dL/5m (30g/h)"),Dt=Tt);var Ct=3;sensitivityRatio&&(Ct/=sensitivityRatio);var Ut=Ct;if(l.carbs){Ct=Math.max(Ct,l.mealCOB/20);var Gt=o((new Date(Fe).getTime()-l.lastCarbTime)/6e4),Ot=(l.carbs-l.mealCOB)/l.carbs;Ut=o(Ut=Ct+1.5*Gt/60,1),console.error("Last carbs "+Gt+" minutes ago; remainingCATime:"+Ut+"hours; "+o(100*Ot,1)+"% carbs absorbed")}var Rt=Math.max(0,Dt/5*60*Ut/2)/csf,At=90,It=1;i.remainingCarbsCap&&(At=Math.min(90,i.remainingCarbsCap)),i.remainingCarbsFraction&&(It=Math.min(1,i.remainingCarbsFraction));var jt=1-It,Ft=Math.max(0,l.mealCOB-Rt-l.carbs*jt),Pt=(Ft=Math.min(At,Ft))*csf*5/60/(Ut/2),Et=o(l.slopeFromMaxDeviation,2),qt=o(l.slopeFromMinDeviation,2),Wt=Math.min(Et,-qt/3);wt=0===Dt?0:Math.min(60*Ut/5/2,Math.max(0,l.mealCOB*csf/Dt)),console.error("Carb Impact:"+Dt+"mg/dL per 5m; CI Duration:"+o(5*wt/60*2,1)+"hours; remaining CI ("+Ut/2+"h peak):"+o(Pt,1)+"mg/dL per 5m");var kt,Lt,zt,Nt,Ht,Zt=999,$t=999,Jt=999,Kt=We,Qt=999,Vt=999,Xt=999,Yt=999,ea=ft,ta=We,aa=We,ra=0,oa=[],na=[];try{ut.forEach((function(e){var t=o(-e.activity*lt*5,2),a=o(-e.iobWithZeroTemp.activity*lt*5,2),r=pt,n=Dt*(1-Math.min(1,bt.length/12));if(!0===(ae&&!ye))ea=bt[bt.length-1]+o(-e.activity*(1800/(w*ie*Math.log(Math.max(bt[bt.length-1],39)/Me+1)))*5,2)+n,r=_t[_t.length-1]+o(-e.iobWithZeroTemp.activity*(1800/(w*ie*Math.log(Math.max(_t[_t.length-1],39)/Me+1)))*5,2),console.log("Dynamic ISF (Logarithmic Formula) )adjusted predictions for IOB and ZT: IOBpredBG: "+o(ea,2)+" , ZTpredBG: "+o(r,2));else ea=bt[bt.length-1]+t+n,r=_t[_t.length-1]+a;var i=Math.max(0,Math.max(0,Dt)*(1-Bt.length/Math.max(2*wt,1))),s=Math.min(Bt.length,12*Ut-Bt.length),l=Math.max(0,s/(Ut/2*12)*Pt);i+l,oa.push(o(l,0)),na.push(o(i,0)),COBpredBG=Bt[Bt.length-1]+t+Math.min(0,n)+i+l;var m=Math.max(0,St+Mt.length*Wt),u=Math.max(0,St*(1-Mt.length/Math.max(36,1))),d=Math.min(m,u);if(d>0&&(ra=o(5*(Mt.length+1)/60,1)),!0===(ae&&!ye))UAMpredBG=Mt[Mt.length-1]+o(-e.activity*(1800/(w*ie*Math.log(Math.max(Mt[Mt.length-1],39)/Me+1)))*5,2)+Math.min(0,n)+d,console.log("Dynamic ISF (Logarithmic Formula) adjusted prediction for UAM: UAMpredBG: "+o(UAMpredBG,2));else UAMpredBG=Mt[Mt.length-1]+t+Math.min(0,n)+d;bt.length<48&&bt.push(ea),Bt.length<48&&Bt.push(COBpredBG),Mt.length<48&&Mt.push(UAMpredBG),_t.length<48&&_t.push(r),COBpredBG18&&eata&&(ta=ea),(wt||Pt>0)&&Bt.length>18&&COBpredBG<$t&&($t=o(COBpredBG)),(wt||Pt>0)&&COBpredBG>ta&&(aa=COBpredBG),xt&&Mt.length>12&&UAMpredBGta&&UAMpredBG}))}catch(e){console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled")}l.mealCOB&&(console.error("predCIs (mg/dL/5m):"+na.join(" ")),console.error("remainingCIs: "+oa.join(" "))),Re.predBGs={},bt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))}));for(var ia=bt.length-1;ia>12&&bt[ia-1]===bt[ia];ia--)bt.pop();for(Re.predBGs.IOB=bt,zt=o(bt[bt.length-1]),_t.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),ia=_t.length-1;ia>6&&!(_t[ia-1]>=_t[ia]||_t[ia]<=He);ia--)_t.pop();if(Re.predBGs.ZT=_t,o(_t[_t.length-1]),l.mealCOB>0&&(Dt>0||Pt>0)){for(Bt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),ia=Bt.length-1;ia>12&&Bt[ia-1]===Bt[ia];ia--)Bt.pop();Re.predBGs.COB=Bt,Nt=o(Bt[Bt.length-1]),ft=Math.max(ft,o(Bt[Bt.length-1]))}if(Dt>0||Pt>0){if(xt){for(Mt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),ia=Mt.length-1;ia>12&&Mt[ia-1]===Mt[ia];ia--)Mt.pop();Re.predBGs.UAM=Mt,Ht=o(Mt[Mt.length-1]),Mt[Mt.length-1]&&(ft=Math.max(ft,o(Mt[Mt.length-1])))}Re.eventualBG=ft}console.error("UAM Impact:"+St+"mg/dL per 5m; UAM Duration:"+ra+"hours"),Zt=Math.max(39,Zt),$t=Math.max(39,$t),Jt=Math.max(39,Jt),kt=o(Zt);var sa=l.mealCOB/l.carbs;Lt=o(Jt<999&&$t<999?(1-sa)*UAMpredBG+sa*COBpredBG:$t<999?(ea+COBpredBG)/2:Jt<999?(ea+UAMpredBG)/2:ea),Yt>Lt&&(Lt=Yt),Kt=o(Kt=wt||Pt>0?xt?sa*Qt+(1-sa)*Vt:Qt:xt?Vt:Xt);var la=Jt;if(YtJt&&(la=(Jt+Yt)/2);if(la=o(la),l.carbs)if(!xt&&$t<999)kt=o(Math.max(Zt,$t));else if($t<999){var ua=sa*$t+(1-sa)*la;kt=o(Math.max(Zt,$t,ua))}else kt=xt?la:Kt;else xt&&(kt=o(Math.max(Zt,la)));kt=Math.min(kt,Lt),process.stderr.write("minPredBG: "+kt+" minIOBPredBG: "+Zt+" minZTGuardBG: "+Yt),$t<999&&process.stderr.write(" minCOBPredBG: "+$t),Jt<999&&process.stderr.write(" minUAMPredBG: "+Jt),console.error(" avgPredBG:"+Lt+" COB/Carbs:"+l.mealCOB+"/"+l.carbs),aa>We&&(kt=Math.min(kt,aa)),Re.COB=l.mealCOB,Re.IOB=a.iob,Re.BGI=n(gt,i),Re.deviation=n(ht,i),Re.ISF=n(lt,i),Re.CR=o(A,1),Re.target_bg=n(He,i),Re.TDD=o(Y,2),Re.current_target=o(He,0);var da=Re.CR;Te!=Re.CR&&(da=Te+"→"+Re.CR);var ca=Re.target_bg;He!=v&&(ca=n(v,i)+"→"+Re.target_bg),Re.reason=st+", COB: "+Re.COB+", Dev: "+Re.deviation+", BGI: "+Re.BGI+", CR: "+da+", Target: "+ca+", minPredBG "+n(kt,i)+", minGuardBG "+n(Kt,i)+", IOBpredBG "+n(zt,i),Nt>0&&(Re.reason+=", COBpredBG "+n(Nt,i)),Ht>0&&(Re.reason+=", UAMpredBG "+n(Ht,i)),Re.reason+=tddReason,Re.reason+="; ";var ga=pt;ga<40&&(ga=Math.min(Kt,ga));var ha,pa=nt-ga,fa=240,va=240;if(l.mealCOB>0&&(Dt>0||Pt>0)){for(ia=0;iaha*We&&(console.error("maxDelta "+n(Ne,i)+" > "+100*ha+"% of BG "+n(We,i)+" - disabling SMB"),Re.reason+="maxDelta "+n(Ne,i)+" > "+100*ha+"% of BG "+n(We,i)+" - SMB disabled!, ",yt=!1),console.error("BG projected to remain above "+n(Ze,i)+" for "+fa+"minutes"),(va<240||fa<60)&&console.error("BG projected to remain above "+n(nt,i)+" for "+va+"minutes");var Ba=va,ba=i.current_basal*O*lt*Ba/60,Ma=Math.max(0,l.mealCOB-.25*l.carbs),_a=(pa-ba)/csf-Ma;ba=o(ba),_a=o(_a),console.error("naive_eventualBG:",pt,"bgUndershoot:",pa,"zeroTempDuration:",Ba,"zeroTempEffect:",ba,"carbsReq:",_a),"Could not parse clock data"==l.reason?console.error("carbsReq unknown: Could not parse clock data"):_a>=i.carbsReqThreshold&&va<=45&&(Re.carbsReq=_a,Re.reason+=_a+" add'l carbs req w/in "+va+"m; ");var ya=0;if(We0&&Le>vt)Re.reason+="IOB "+a.iob+" < "+o(-i.current_basal*O*20/60,2),Re.reason+=" and minDelta "+n(Le,i)+" > expectedDelta "+n(vt,i)+"; ";else if(We=55)return Re.reason+="; Canceling temp at "+Re.deliverAt.getMinutes()+"m past the hour. ",m.setTempBasal(0,0,i,Re,t);var xa=0,Da=je;if(ftvt&&Le>0&&!_a)return pt<40?(Re.reason+=", naive_eventualBG < 40. ",m.setTempBasal(0,30,i,Re,t)):(e.delta>Le?Re.reason+=", but Delta "+n(Pe,i)+" > expectedDelta "+n(vt,i):Re.reason+=", but Min. Delta "+Le.toFixed(2)+" > Exp. Delta "+n(vt,i),t.duration>15&&r(je,i)===r(t.rate,i)?(Re.reason+=", temp "+t.rate+" ~ req "+je+"U/hr. ",Re):(Re.reason+="; setting current basal of "+je+" as temp. ",m.setTempBasal(je,30,i,Re,t)));xa=o(xa=2*Math.min(0,(ft-He)/lt),2);var wa=Math.min(0,(pt-He)/lt);if(wa=o(wa,2),Le<0&&Le>vt)xa=o(xa*(Le/vt),2);if(Da=r(Da=je+2*xa,i),t.duration*(t.rate-je)/605&&Da>=.8*t.rate)return Re.reason+=", temp "+t.rate+" ~< req "+Da+"U/hr. ",Re;if(Da<=0){if((ya=o(60*((pa=He-pt)/lt)/i.current_basal*O))<0?ya=0:(ya=30*o(ya/30),ya=Math.min(120,Math.max(0,ya))),ya>0)return Re.reason+=", setting "+ya+"m zero temp. ",m.setTempBasal(Da,ya,i,Re,t)}else Re.reason+=", setting "+Da+"U/hr. ";return m.setTempBasal(Da,30,i,Re,t)}if(Le "+n(Ze,i)+" but Delta "+n(Pe,i)+" < Exp. Delta "+n(vt,i):Re.reason+="Eventual BG "+n(ft,i)+" > "+n(Ze,i)+" but Min. Delta "+Le.toFixed(2)+" < Exp. Delta "+n(vt,i),t.duration>15&&r(je,i)===r(t.rate,i)?(Re.reason+=", temp "+t.rate+" ~ req "+je+"U/hr. ",Re):(Re.reason+="; setting current basal of "+je+" as temp. ",m.setTempBasal(je,30,i,Re,t));if(Math.min(ft,kt)<$e&&(!u||!yt))return Re.reason+=n(ft,i)+"-"+n(kt,i)+" in range: no temp required",t.duration>15&&r(je,i)===r(t.rate,i)?(Re.reason+=", temp "+t.rate+" ~ req "+je+"U/hr. ",Re):(Re.reason+="; setting current basal of "+je+" as temp. ",m.setTempBasal(je,30,i,Re,t));if(ft>=$e&&(Re.reason+="Eventual BG "+n(ft,i)+" >= "+n($e,i)+", "),a.iob>Ke)return Re.reason+="IOB "+o(a.iob,2)+" > max_iob "+Ke,t.duration>15&&r(je,i)===r(t.rate,i)?(Re.reason+=", temp "+t.rate+" ~ req "+je+"U/hr. ",Re):(Re.reason+="; setting current basal of "+je+" as temp. ",m.setTempBasal(je,30,i,Re,t));(xa=o((Math.min(kt,ft)-He)/lt,2))>Ke-a.iob?(console.error("SMB limited by maxIOB: "+Ke-a.iob+" (. insulinReq: "+xa+" U)"),Re.reason+="max_iob "+Ke+", ",xa=Ke-a.iob):console.error("SMB not limited by maxIOB ( insulinReq: "+xa+" U)."),Da=r(Da=je+2*xa,i),xa=o(xa,3),Re.insulinReq=xa;var Sa=o((new Date(Fe).getTime()-a.lastBolusTime)/6e4,1);if(u&&yt&&We>nt){var Ta=o(l.mealCOB/A,3),Ca=0;void 0===i.maxSMBBasalMinutes?(Ca=o(i.current_basal*O*30/60,1),console.error("profile.maxSMBBasalMinutes undefined: defaulting to 30m"),xa>Ca&&console.error("SMB limited by maxBolus: "+Ca+" ( "+xa+" U)")):a.iob>Ta&&a.iob>0?(console.error("IOB"+a.iob+"> COB"+l.mealCOB+"; mealInsulinReq ="+Ta),i.maxUAMSMBBasalMinutes?(console.error("profile.maxUAMSMBBasalMinutes: "+i.maxUAMSMBBasalMinutes+", profile.current_basal: "+i.current_basal*O),Ca=o(i.current_basal*O*i.maxUAMSMBBasalMinutes/60,1)):(console.error("profile.maxUAMSMBBasalMinutes undefined: defaulting to 30m"),Ca=o(i.current_basal*O*30/60,1)),xa>Ca?console.error("SMB limited by maxUAMSMBBasalMinutes [ "+i.maxUAMSMBBasalMinutes+"m ]: "+Ca+"U ( "+xa+"U )"):console.error("SMB is not limited by maxUAMSMBBasalMinutes. ( insulinReq: "+xa+"U )")):(console.error("profile.maxSMBBasalMinutes: "+i.maxSMBBasalMinutes+", profile.current_basal: "+i.current_basal*O),xa>(Ca=o(i.current_basal*i.maxSMBBasalMinutes/60,1))?console.error("SMB limited by maxSMBBasalMinutes: "+i.maxSMBBasalMinutes+"m ]: "+Ca+"U ( insulinReq: "+xa+"U )"):console.error("SMB is not limited by maxSMBBasalMinutes. ( insulinReq: "+xa+"U )"));var Ua=i.bolus_increment,Ga=1/Ua,Oa=i.smb_delivery_ratio;Oa>.5&&console.error("SMB Delivery Ratio increased from default 0.5 to "+o(Oa,2));var Ra=Math.min(xa*Oa,Ca);Ra=Math.floor(Ra*Ga)/Ga,ya=o(60*((He-(pt+Zt)/2)/lt)/i.current_basal*O),xa>0&&Ra=30?(ya=30*o(ya/30),ya=Math.min(60,Math.max(0,ya))):(Aa=o(je*ya/30,2),ya=30),Re.reason+=" insulinReq "+xa,Ra>=Ca&&(Re.reason+="; maxBolus "+Ca),ya>0&&(Re.reason+="; setting "+ya+"m low temp of "+Aa+"U/h"),Re.reason+=". ";var Ia=3;i.SMBInterval&&(Ia=Math.min(10,Math.max(1,i.SMBInterval)));var ja=o(Ia-Sa,0),Fa=o(60*(Ia-Sa),0)%60;if(console.error("naive_eventualBG "+pt+","+ya+"m "+Aa+"U/h temp needed; last bolus "+Sa+"m ago; maxBolus: "+Ca),Sa>Ia?Ra>0&&(Re.units=Ra,Re.reason+="Microbolusing "+Ra+"U. "):Re.reason+="Waiting "+ja+"m "+Fa+"s to microbolus again. ",ya>0)return Re.rate=Aa,Re.duration=ya,Re}var Pa=m.getMaxSafeBasal(i);return Da>Pa&&(Re.reason+="adj. req. rate: "+Da+" to maxSafeBasal: "+o(Pa,2)+", ",Da=r(Pa,i)),t.duration*(t.rate-je)/60>=2*xa?(Re.reason+=t.duration+"m@"+t.rate.toFixed(2)+" > 2 * insulinReq. Setting temp basal of "+Da+"U/hr. ",m.setTempBasal(Da,30,i,Re,t)):void 0===t.duration||0===t.duration?(Re.reason+="no temp, setting "+Da+"U/hr. ",m.setTempBasal(Da,30,i,Re,t)):t.duration>5&&r(Da,i)<=r(t.rate,i)?(Re.reason+="temp "+t.rate+" >~ req "+Da+"U/hr. ",Re):(Re.reason+="temp "+t.rate+"<"+Da+"U/hr. ",m.setTempBasal(Da,30,i,Re,t))}},6880:(e,t,a)=>{var r=a(6654);e.exports=function(e,t){var a=20;void 0!==t&&"string"==typeof t.model&&(r(t.model,"54")||r(t.model,"23"))&&(a=40);return e<1?Math.round(e*a)/a:e<10?Math.round(20*e)/20:Math.round(10*e)/10}},2705:(e,t,a)=>{var r=a(5639).Symbol;e.exports=r},9932:e=>{e.exports=function(e,t){for(var a=-1,r=null==e?0:e.length,o=Array(r);++a{e.exports=function(e,t,a){return e==e&&(void 0!==a&&(e=e<=a?e:a),void 0!==t&&(e=e>=t?e:t)),e}},4239:(e,t,a)=>{var r=a(2705),o=a(9607),n=a(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):n(e)}},531:(e,t,a)=>{var r=a(2705),o=a(9932),n=a(1469),i=a(3448),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(n(t))return o(t,e)+"";if(i(t))return l?l.call(t):"";var a=t+"";return"0"==a&&1/t==-Infinity?"-0":a}},7561:(e,t,a)=>{var r=a(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},1957:(e,t,a)=>{var r="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g;e.exports=r},9607:(e,t,a)=>{var r=a(2705),o=Object.prototype,n=o.hasOwnProperty,i=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=n.call(e,s),a=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=i.call(e);return r&&(t?e[s]=a:delete e[s]),o}},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5639:(e,t,a)=>{var r=a(1957),o="object"==typeof self&&self&&self.Object===Object&&self,n=r||o||Function("return this")();e.exports=n},7990:e=>{var t=/\s/;e.exports=function(e){for(var a=e.length;a--&&t.test(e.charAt(a)););return a}},6654:(e,t,a)=>{var r=a(9750),o=a(531),n=a(554),i=a(9833);e.exports=function(e,t,a){e=i(e),t=o(t);var s=e.length,l=a=void 0===a?s:r(n(a),0,s);return(a-=t.length)>=0&&e.slice(a,l)==t}},1469:e=>{var t=Array.isArray;e.exports=t},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},3448:(e,t,a)=>{var r=a(4239),o=a(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},8601:(e,t,a)=>{var r=a(4841),o=1/0;e.exports=function(e){return e?(e=r(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,a)=>{var r=a(8601);e.exports=function(e){var t=r(e),a=t%1;return t==t?a?t-a:t:0}},4841:(e,t,a)=>{var r=a(7561),o=a(3218),n=a(3448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,m=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(n(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var a=s.test(e);return a||l.test(e)?m(e.slice(2),a?2:8):i.test(e)?NaN:+e}},9833:(e,t,a)=>{var r=a(531);e.exports=function(e){return null==e?"":r(e)}}},t={};function a(r){var o=t[r];if(void 0!==o)return o.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,a),n.exports}a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var r=a(5546);freeaps_determineBasal=r})(); + +var freeaps_determineBasal;(()=>{var e={5546:(e,t,a)=>{var r=a(6880);function o(e,t){t||(t=0);var a=Math.pow(10,t);return Math.round(e*a)/a}function n(e,t){return"mmol/L"===t.out_units?o(.0555*e,1):Math.round(e)}e.exports=function(e,t,a,i,s,l,m,u,d,c,g,h,p,f){var v=i.min_bg,B=f.overrideTarget,b=0,M="",_="",y="",x="",D="",S=0,w=0,T=0,C=0,U=0,G=0;const O=f.weightedAverage;var R=1,A=i.sens,I=i.carb_ratio;f.useOverride&&(A/=R=f.overridePercentage/100,I/=R);const j=i.weightPercentage,F=f.average_total_data;function P(e,t){var a=e.getTime();return new Date(a+36e5*t)}function E(e){var t=i.bolus_increment;.025!=t&&(t=.05);var a=e/t;return a>=1?o(Math.floor(a)*t,5):0}function q(e){function t(e){return e<10&&(e="0"+e),e}return t(e.getHours())+":"+t(e.getMinutes())+":00"}function W(e,t){var a=new Date("1/1/1999 "+e),r=new Date("1/1/1999 "+t);return(a.getTime()-r.getTime())/36e5}function k(e,t){var a=0,r=t,o=(e-t)/36e5,n=0,i=o,s=0;do{if(o>0){var l=q(r),m=p[0].rate;for(let e=0;e=(s=W(p[e+1].start,p[e].start))?n=s:o=(s=24-W(p[e].start,t))?n=s:ou)if(e+1=(s=W(d,l))?n=s:o=(s=W("23:59:59",l))?n=s:o0&&o21)U=k(L,(N=24-b,H=L.getTime(),new Date(H-36e5*N))),x="24 hours of data is required for an accurate tdd calculation. Currently only "+b.toPrecision(3)+" hours of pump history data are available. Using your pump scheduled basals to fill in the missing hours. Scheduled basals added: "+U.toPrecision(5)+" U. ";else b<21?(re=!1,enableDynamicCR=!1):x=""}else console.log("Pumphistory is empty!"),re=!1,enableDynamicCR=!1;var N,H;for(let e=0;e0){S=e,G=g[e].rate;var Z=g[e-1]["duration (min)"]/60,$=Z,J=new Date(g[e-1].timestamp),K=J,Q=0;do{if(e--,0==e){K=new Date;break}if("TempBasal"==g[e]._type||"PumpSuspend"==g[e]._type){K=new Date(g[e].timestamp);break}var V=e-2;if(V>=0&&"Rewind"==g[V]._type){let e=g[V].timestamp;for(;V-1>=0&&"Prime"==g[V-=1]._type;)Q=(g[V].timestamp-e)/36e5;Q>=Z&&(K=e,Q=0)}}while(e>0);var X=(K-J)/36e5;X<$&&(Z=X),T+=E(G*(Z-Q)),e=S}for(let e=0;e0&&(--r,"TempBasal"==g[r]._type)){a=new Date(g[r].timestamp);break}}while(r>0);(a-t)/36e5>0&&(U+=k(a,t))}for(let e=g.length-1;e>0;e--)if("TempBasalDuration"==g[e]._type){let t=g[e]["duration (min)"]/60,a=new Date(g[e].timestamp);var Y=a;let r=e;do{if(--r,r>=0&&("TempBasal"==g[r]._type||"PumpSuspend"==g[r]._type)){Y=new Date(g[r].timestamp);break}}while(r>0);if(0==e&&"TempBasalDuration"==g[0]._type&&(Y=new Date,t=g[e]["duration (min)"]/60),(Y-a)/36e5-t>0){U+=k(Y,P(a,t))}}var ee,te={TDD:o(w=C+T+U,5),bolus:o(C,5),temp_basal:o(T,5),scheduled_basal:o(U,5)};b>21?(_=". Bolus insulin: "+C.toPrecision(5)+" U",y=". Temporary basal insulin: "+T.toPrecision(5)+" U",M=". Insulin with scheduled basal rate: "+U.toPrecision(5)+" U",D=x+(" TDD past 24h is: "+w.toPrecision(5)+" U")+_+y+M,tddReason=", Total insulin: "+o(w,2)+" U, "+o(C/w*100,0)+"% Bolus "+o((T+U)/w*100,0)+"% Basal"):tddReason=", TDD: Not enough pumpData (< 21h)";const ae=e.glucose;var re=h.useNewFormula;const oe=h.enableDynamicCR,ne=Math.min(i.autosens_min,i.autosens_max),ie=Math.max(i.autosens_min,i.autosens_max),se=h.adjustmentFactor,le=i.min_bg;var me=!1,ue="",de=1,ce="";F>0&&(de=O/F),ce=de>1?"Basal adjustment with a 24 hour to total average (up to 14 days of data) TDD ratio (limited by Autosens max setting). Basal Ratio: "+(de=o(de=Math.min(de,i.autosens_max),2))+". Upper limit = Autosens max ("+i.autosens_max+")":de<1?"Basal adjustment with a 24 hour to to total average (up to 14 days of data) TDD ratio (limited by Autosens min setting). Basal Ratio: "+(de=o(de=Math.max(de,i.autosens_min),2))+". Lower limit = Autosens min ("+i.autosens_min+")":"Basal adjusted with a 24 hour to total average (up to 14 days of data) TDD ratio: "+de,ce=", Basal ratio: "+de,(i.high_temptarget_raises_sensitivity||i.exercise_mode||f.isEnabled)&&(me=!0),le>=118&&me&&(re=!1,ue="Dynamic ISF temporarily off due to a high temp target/exercising. Current min target: "+le);var ge=", Dynamic ratios log: ",he=", AF: "+se,pe="BG: "+ae+" mg/dl ("+(.0555*ae).toPrecision(2)+" mmol/l)",fe="",ve="";const Be=h.curve,be=h.insulinPeakTime,Me=h.useCustomPeakTime;var _e=55,ye=65;switch(Be){case"rapid-acting":ye=65;break;case"ultra-rapid":ye=50}Me?(_e=120-be,console.log("Custom insulinpeakTime set to :"+be+", insulinFactor: "+_e)):(_e=120-ye,console.log("insulinFactor set to : "+_e)),ee=w,j<1&&O>0&&(w=O,console.log("Using weighted TDD average: "+o(w,2)+" U, instead of past 24 h ("+o(ee,2)+" U), weight: "+j),ve=", Weighted TDD: "+o(w,2)+" U");const xe=h.sigmoid;var De="";if(re){var Se=A*se*w*Math.log(ae/_e+1)/1800;fe=", Logarithmic formula"}if(re&&xe){const e=ne,t=ie-e,a=.0555*(ae-i.min_bg);var we=de;const r=ie-1,o=Math.log10(1/r-e/r)/Math.log10(Math.E),n=a*se*we+o;Se=t/(1+Math.exp(-n))+e,fe=", Sigmoid function"}var Te=I;const Ce=o(I,1);var Ue="",Ge="";if(re&&w>0){if(Ue=", Dynamic ISF/CR: On/",Se>ie?(ue=", Dynamic ISF limited by autosens_max setting: "+ie+" ("+o(Se,2)+"), ",Ge=", Autosens/Dynamic Limit: "+ie+" ("+o(Se,2)+")",Se=ie):Se1&&(Oe=(Se-1)/2+1);var Re=" CR: "+(Te=o(Te/Oe,2))+" g/U";I=Te}else Re=" CR: "+Te+" g/U",Ue+="Off";const e=A/Se;De=". Using Sigmoid function, the autosens ratio has been adjusted with sigmoid factor to: "+o(s.ratio,2)+". New ISF = "+o(e,2)+" mg/dl ("+o(.0555*e,2)+" (mmol/l). CR adjusted from "+o(Ce,2)+" to "+o(Te,2)+" ("+o(.0555*I,2)+" mmol/l).",ue+=xe?De:", Dynamic autosens.ratio set to "+o(Se,2)+" with ISF: "+e.toPrecision(3)+" mg/dl/U ("+(.0555*e).toPrecision(3)+" mmol/l/U)",s.ratio=Se,D+=ge+pe+he+fe+ue+Ue+Re+ve}else D+=ge+"Dynamic Settings disabled";console.log(D),re||oe?re&&i.tddAdjBasal?tddReason+=Ue+fe+Ge+he+ce:re&&!i.tddAdjBasal&&(tddReason+=Ue+fe+Ge+he):tddReason+="";var Ae={},Ie=new Date;if(c&&(Ie=c),void 0===i||void 0===i.current_basal)return Ae.error="Error: could not get current basal rate",Ae;var je=r(i.current_basal,i)*R,Fe=je;f.useOverride&&(0==f.duration?console.log("Profile Override is active. Override "+o(100*R,0)+"%. Override Duration: Enabled indefinitely"):console.log("Profile Override is active. Override "+o(100*R,0)+"%. Override Expires in: "+f.duration+" min."));var Pe=new Date;c&&(Pe=c);var Ee,qe=new Date(e.date),We=o((Pe-qe)/60/1e3,1),ke=e.glucose,Le=e.noise;Ee=e.delta>-.5?"+"+o(e.delta,0):o(e.delta,0);var ze=Math.min(e.delta,e.short_avgdelta),Ne=Math.min(e.short_avgdelta,e.long_avgdelta),He=Math.max(e.delta,e.short_avgdelta,e.long_avgdelta);(ke<=10||38===ke||Le>=3)&&(Ae.reason="CGM is calibrating, in ??? state, or noise is high");if(ke>60&&0==e.delta&&e.short_avgdelta>-1&&e.short_avgdelta<1&&e.long_avgdelta>-1&&e.long_avgdelta<1&&("fakecgm"==e.device?(console.error("CGM data is unchanged ("+n(ke,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,2)+" mg/dL ~45m change"),console.error("Simulator mode detected ("+e.device+"): continuing anyway")):!0),We>12||We<-5?Ae.reason="If current system time "+Pe+" is correct, then BG data is too old. The last BG data was read "+We+"m ago at "+qe:0===e.short_avgdelta&&0===e.long_avgdelta&&(e.last_cal&&e.last_cal<3?Ae.reason="CGM was just calibrated":Ae.reason="CGM data is unchanged ("+n(ke,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,i)+" mg/dL ~45m change"),ke<=10||38===ke||Le>=3||We>12||We<-5||0===e.short_avgdelta&&0===e.long_avgdelta)return t.rate>=Fe?(Ae.reason+=". Canceling high temp basal of "+t.rate,Ae.deliverAt=Ie,Ae.temp="absolute",Ae.duration=0,Ae.rate=0,Ae):0===t.rate&&t.duration>30?(Ae.reason+=". Shortening "+t.duration+"m long zero temp to 30m. ",Ae.deliverAt=Ie,Ae.temp="absolute",Ae.duration=30,Ae.rate=0,Ae):(Ae.reason+=". Temp "+t.rate+" <= current basal "+Fe+"U/hr; doing nothing. ",Ae);var Ze,$e,Je,Ke,Qe=i.max_iob;if(void 0!==i.min_bg&&($e=i.min_bg),void 0!==i.max_bg&&(Je=i.max_bg),void 0!==i.enableSMB_high_bg_target&&(Ke=i.enableSMB_high_bg_target),void 0===i.min_bg||void 0===i.max_bg)return Ae.error="Error: could not determine target_bg. ",Ae;Ze=(i.min_bg+i.max_bg)/2;var Ve=i.exercise_mode||i.high_temptarget_raises_sensitivity||f.isEnabled,Xe=100,Ye=160;if(Ye=i.half_basal_exercise_target,f.isEnabled){const e=f.hbt;console.log("Half Basal Target used: "+n(e,i)+" "+i.out_units),Ye=e}else console.log("Default Half Basal Target used: "+n(Ye,i)+" "+i.out_units);if(Ve&&i.temptargetSet&&Ze>Xe||i.low_temptarget_lowers_sensitivity&&i.temptargetSet&&Ze=Ze&&sensitivityRatio0&&(process.stderr.write("TDD-adjustment of basals activated, using tdd24h_14d_Ratio "+o(de,2)+", TDD 24h = "+o(ee,2)+"U, Weighted average TDD = "+o(O,2)+"U, (Weight percentage = "+j+"), Total data of TDDs (up to 14 days) average = "+o(F,2)+"U. "),Fe!==je*R?process.stderr.write("Adjusting basal from "+je*R+" U/h to "+Fe+" U/h; "):process.stderr.write("Basal unchanged: "+Fe+" U/h; "))),i.temptargetSet);else if(void 0!==s&&s&&(i.sensitivity_raises_target&&s.ratio<1||i.resistance_lowers_target&&s.ratio>1)){$e=o(($e-60)/s.ratio)+60,Je=o((Je-60)/s.ratio)+60;var tt=o((Ze-60)/s.ratio)+60;Ze===(tt=Math.max(80,tt))?process.stderr.write("target_bg unchanged: "+n(tt,i)+"; "):process.stderr.write("target_bg from "+n(tt,i)+" to "+n(tt,i)+"; "),Ze=tt}var at=n(Ze,i);Ze!=v&&(at=0!==B&&B!==Ze?n(v,i)+"→"+n(B,i)+"→"+n(Ze,i):n(v,i)+"→"+n(Ze,i));var rt=200,ot=200,nt=200;if(e.noise>=2){var it=Math.max(1.1,i.noisyCGMTargetMultiplier);Math.min(250,i.maxRaw);rt=o(Math.min(200,$e*it)),ot=o(Math.min(200,Ze*it)),nt=o(Math.min(200,Je*it)),process.stderr.write("Raising target_bg for noisy / raw CGM data, from "+n(tt,i)+" to "+n(ot,i)+"; "),$e=rt,Ze=ot,Je=nt}var st=$e-.5*($e-40),lt=i.threshold_setting;lt>st&<<=120&<>=65?(console.error("Threshold changed in settings from "+n(st,i)+" to "+n(lt,i)+". "),st=lt):console.error("Current threshold: "+n(st,i));var mt="",ut=(o(A,1),A);if(void 0!==s&&s&&((ut=o(ut=A/sensitivityRatio,1))!==A?process.stderr.write("ISF from "+n(A,i)+" to "+n(ut,i)):process.stderr.write("ISF unchanged: "+n(ut,i)),mt+="Autosens ratio: "+o(sensitivityRatio,2)+", ISF: "+n(A,i)+"→"+n(ut,i)),console.error("CR:"+I),void 0===a)return Ae.error="Error: iob_data undefined. ",Ae;var dt,ct=a;if(a.length,a.length>1&&(a=ct[0]),void 0===a.activity||void 0===a.iob)return Ae.error="Error: iob_data missing some property. ",Ae;var gt=((dt=void 0!==a.lastTemp?o((new Date(Pe).getTime()-a.lastTemp.date)/6e4):0)+t.duration)%30;if(console.error("currenttemp:"+t.rate+" lastTempAge:"+dt+"m, tempModulus:"+gt+"m"),Ae.temp="absolute",Ae.deliverAt=Ie,u&&t&&a.lastTemp&&t.rate!==a.lastTemp.rate&&dt>10&&t.duration)return Ae.reason="Warning: currenttemp rate "+t.rate+" != lastTemp rate "+a.lastTemp.rate+" from pumphistory; canceling temp",m.setTempBasal(0,0,i,Ae,t);if(t&&a.lastTemp&&t.duration>0){var ht=dt-a.lastTemp.duration;if(ht>5&&dt>10)return Ae.reason="Warning: currenttemp running but lastTemp from pumphistory ended "+ht+"m ago; canceling temp",m.setTempBasal(0,0,i,Ae,t)}var pt=o(-a.activity*ut*5,2),ft=o(6*(ze-pt));ft<0&&(ft=o(6*(Ne-pt)))<0&&(ft=o(6*(e.long_avgdelta-pt)));var vt=ke,Bt=(vt=a.iob>0?o(ke-a.iob*ut):o(ke-a.iob*Math.min(ut,A)))+ft;if(void 0===Bt||isNaN(Bt))return Ae.error="Error: could not calculate eventualBG. Sensitivity: "+ut+" Deviation: "+ft,Ae;var bt=function(e,t,a){return o(a+(e-t)/24,1)}(Ze,Bt,pt);Ae={temp:"absolute",bg:ke,tick:Ee,eventualBG:Bt,insulinReq:0,reservoir:d,deliverAt:Ie,sensitivityRatio,TDD:ee,insulin:te,current_target:Ze};var Mt=[],_t=[],yt=[],xt=[];Mt.push(ke),_t.push(ke),xt.push(ke),yt.push(ke);var Dt=function(e,t,a,r,o,i){return t?!e.allowSMB_with_high_temptarget&&e.temptargetSet&&o>100?(console.error("SMB disabled due to high temptarget of "+o),!1):!0===a.bwFound&&!1===e.A52_risk_enable?(console.error("SMB disabled due to Bolus Wizard activity in the last 6 hours."),!1):!0===e.enableSMB_always?(a.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled due to enableSMB_always"),!0):!0===e.enableSMB_with_COB&&a.mealCOB?(a.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for COB of "+a.mealCOB),!0):!0===e.enableSMB_after_carbs&&a.carbs?(a.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for 6h after carb entry"),!0):!0===e.enableSMB_with_temptarget&&e.temptargetSet&&o<100?(a.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for temptarget of "+n(o,e)),!0):!0===e.enableSMB_high_bg&&null!==i&&r>=i?(console.error("Checking BG to see if High for SMB enablement."),console.error("Current BG",r," | High BG ",i),a.bwFound?console.error("Warning: High BG SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("High BG detected. Enabling SMB."),!0):(console.error("SMB disabled (no enableSMB preferences active or no condition satisfied)"),!1):(console.error("SMB disabled (!microBolusAllowed)"),!1)}(i,u,l,ke,Ze,Ke),St=i.enableUAM,wt=0,Tt=0;wt=o(ze-pt,1);var Ct=o(ze-pt,1);csf=ut/I,console.error("profile.sens:"+n(A,i)+", sens:"+n(ut,i)+", CSF:"+o(csf,1));var Ut=o(30*csf*5/60,1);wt>Ut&&(console.error("Limiting carb impact from "+wt+" to "+Ut+"mg/dL/5m (30g/h)"),wt=Ut);var Gt=3;sensitivityRatio&&(Gt/=sensitivityRatio);var Ot=Gt;if(l.carbs){Gt=Math.max(Gt,l.mealCOB/20);var Rt=o((new Date(Pe).getTime()-l.lastCarbTime)/6e4),At=(l.carbs-l.mealCOB)/l.carbs;Ot=o(Ot=Gt+1.5*Rt/60,1),console.error("Last carbs "+Rt+" minutes ago; remainingCATime:"+Ot+"hours; "+o(100*At,1)+"% carbs absorbed")}var It=Math.max(0,wt/5*60*Ot/2)/csf,jt=90,Ft=1;i.remainingCarbsCap&&(jt=Math.min(90,i.remainingCarbsCap)),i.remainingCarbsFraction&&(Ft=Math.min(1,i.remainingCarbsFraction));var Pt=1-Ft,Et=Math.max(0,l.mealCOB-It-l.carbs*Pt),qt=(Et=Math.min(jt,Et))*csf*5/60/(Ot/2),Wt=o(l.slopeFromMaxDeviation,2),kt=o(l.slopeFromMinDeviation,2),Lt=Math.min(Wt,-kt/3);Tt=0===wt?0:Math.min(60*Ot/5/2,Math.max(0,l.mealCOB*csf/wt)),console.error("Carb Impact:"+wt+"mg/dL per 5m; CI Duration:"+o(5*Tt/60*2,1)+"hours; remaining CI ("+Ot/2+"h peak):"+o(qt,1)+"mg/dL per 5m");var zt,Nt,Ht,Zt,$t,Jt=999,Kt=999,Qt=999,Vt=ke,Xt=999,Yt=999,ea=999,ta=999,aa=Bt,ra=ke,oa=ke,na=0,ia=[],sa=[];try{ct.forEach((function(e){var t=o(-e.activity*ut*5,2),a=o(-e.iobWithZeroTemp.activity*ut*5,2),r=vt,n=wt*(1-Math.min(1,_t.length/12));if(!0===(re&&!xe))aa=_t[_t.length-1]+o(-e.activity*(1800/(w*se*Math.log(Math.max(_t[_t.length-1],39)/_e+1)))*5,2)+n,r=xt[xt.length-1]+o(-e.iobWithZeroTemp.activity*(1800/(w*se*Math.log(Math.max(xt[xt.length-1],39)/_e+1)))*5,2),console.log("Dynamic ISF (Logarithmic Formula) )adjusted predictions for IOB and ZT: IOBpredBG: "+o(aa,2)+" , ZTpredBG: "+o(r,2));else aa=_t[_t.length-1]+t+n,r=xt[xt.length-1]+a;var i=Math.max(0,Math.max(0,wt)*(1-Mt.length/Math.max(2*Tt,1))),s=Math.min(Mt.length,12*Ot-Mt.length),l=Math.max(0,s/(Ot/2*12)*qt);i+l,ia.push(o(l,0)),sa.push(o(i,0)),COBpredBG=Mt[Mt.length-1]+t+Math.min(0,n)+i+l;var m=Math.max(0,Ct+yt.length*Lt),u=Math.max(0,Ct*(1-yt.length/Math.max(36,1))),d=Math.min(m,u);if(d>0&&(na=o(5*(yt.length+1)/60,1)),!0===(re&&!xe))UAMpredBG=yt[yt.length-1]+o(-e.activity*(1800/(w*se*Math.log(Math.max(yt[yt.length-1],39)/_e+1)))*5,2)+Math.min(0,n)+d,console.log("Dynamic ISF (Logarithmic Formula) adjusted prediction for UAM: UAMpredBG: "+o(UAMpredBG,2));else UAMpredBG=yt[yt.length-1]+t+Math.min(0,n)+d;_t.length<48&&_t.push(aa),Mt.length<48&&Mt.push(COBpredBG),yt.length<48&&yt.push(UAMpredBG),xt.length<48&&xt.push(r),COBpredBG18&&aara&&(ra=aa),(Tt||qt>0)&&Mt.length>18&&COBpredBG0)&&COBpredBG>ra&&(oa=COBpredBG),St&&yt.length>12&&UAMpredBGra&&UAMpredBG}))}catch(e){console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled")}l.mealCOB&&(console.error("predCIs (mg/dL/5m):"+sa.join(" ")),console.error("remainingCIs: "+ia.join(" "))),Ae.predBGs={},_t.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))}));for(var la=_t.length-1;la>12&&_t[la-1]===_t[la];la--)_t.pop();for(Ae.predBGs.IOB=_t,Ht=o(_t[_t.length-1]),xt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),la=xt.length-1;la>6&&!(xt[la-1]>=xt[la]||xt[la]<=Ze);la--)xt.pop();if(Ae.predBGs.ZT=xt,o(xt[xt.length-1]),l.mealCOB>0&&(wt>0||qt>0)){for(Mt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),la=Mt.length-1;la>12&&Mt[la-1]===Mt[la];la--)Mt.pop();Ae.predBGs.COB=Mt,Zt=o(Mt[Mt.length-1]),Bt=Math.max(Bt,o(Mt[Mt.length-1]))}if(wt>0||qt>0){if(St){for(yt.forEach((function(e,t,a){a[t]=o(Math.min(401,Math.max(39,e)))})),la=yt.length-1;la>12&&yt[la-1]===yt[la];la--)yt.pop();Ae.predBGs.UAM=yt,$t=o(yt[yt.length-1]),yt[yt.length-1]&&(Bt=Math.max(Bt,o(yt[yt.length-1])))}Ae.eventualBG=Bt}console.error("UAM Impact:"+Ct+"mg/dL per 5m; UAM Duration:"+na+"hours"),Jt=Math.max(39,Jt),Kt=Math.max(39,Kt),Qt=Math.max(39,Qt),zt=o(Jt);var ma=l.mealCOB/l.carbs;Nt=o(Qt<999&&Kt<999?(1-ma)*UAMpredBG+ma*COBpredBG:Kt<999?(aa+COBpredBG)/2:Qt<999?(aa+UAMpredBG)/2:aa),ta>Nt&&(Nt=ta),Vt=o(Vt=Tt||qt>0?St?ma*Xt+(1-ma)*Yt:Xt:St?Yt:ea);var ua=Qt;if(taQt&&(ua=(Qt+ta)/2);if(ua=o(ua),l.carbs)if(!St&&Kt<999)zt=o(Math.max(Jt,Kt));else if(Kt<999){var ca=ma*Kt+(1-ma)*ua;zt=o(Math.max(Jt,Kt,ca))}else zt=St?ua:Vt;else St&&(zt=o(Math.max(Jt,ua)));zt=Math.min(zt,Nt),process.stderr.write("minPredBG: "+zt+" minIOBPredBG: "+Jt+" minZTGuardBG: "+ta),Kt<999&&process.stderr.write(" minCOBPredBG: "+Kt),Qt<999&&process.stderr.write(" minUAMPredBG: "+Qt),console.error(" avgPredBG:"+Nt+" COB/Carbs:"+l.mealCOB+"/"+l.carbs),oa>ke&&(zt=Math.min(zt,oa)),Ae.COB=l.mealCOB,Ae.IOB=a.iob,Ae.BGI=n(pt,i),Ae.deviation=n(ft,i),Ae.ISF=n(ut,i),Ae.CR=o(I,1),Ae.target_bg=n(Ze,i),Ae.TDD=o(ee,2),Ae.current_target=o(Ze,0);var ga=Ae.CR;Ce!=Ae.CR&&(ga=Ce+"→"+Ae.CR),Ae.reason=mt+", COB: "+Ae.COB+", Dev: "+Ae.deviation+", BGI: "+Ae.BGI+", CR: "+ga+", Target: "+at+", minPredBG "+n(zt,i)+", minGuardBG "+n(Vt,i)+", IOBpredBG "+n(Ht,i),Zt>0&&(Ae.reason+=", COBpredBG "+n(Zt,i)),$t>0&&(Ae.reason+=", UAMpredBG "+n($t,i)),Ae.reason+=tddReason,Ae.reason+="; ";var ha=vt;ha<40&&(ha=Math.min(Vt,ha));var pa,fa=st-ha,va=240,Ba=240;if(l.mealCOB>0&&(wt>0||qt>0)){for(la=0;lapa*ke&&(console.error("maxDelta "+n(He,i)+" > "+100*pa+"% of BG "+n(ke,i)+" - disabling SMB"),Ae.reason+="maxDelta "+n(He,i)+" > "+100*pa+"% of BG "+n(ke,i)+" - SMB disabled!, ",Dt=!1),console.error("BG projected to remain above "+n($e,i)+" for "+va+"minutes"),(Ba<240||va<60)&&console.error("BG projected to remain above "+n(st,i)+" for "+Ba+"minutes");var ba=Ba,Ma=i.current_basal*R*ut*ba/60,_a=Math.max(0,l.mealCOB-.25*l.carbs),ya=(fa-Ma)/csf-_a;Ma=o(Ma),ya=o(ya),console.error("naive_eventualBG:",vt,"bgUndershoot:",fa,"zeroTempDuration:",ba,"zeroTempEffect:",Ma,"carbsReq:",ya),"Could not parse clock data"==l.reason?console.error("carbsReq unknown: Could not parse clock data"):ya>=i.carbsReqThreshold&&Ba<=45&&(Ae.carbsReq=ya,Ae.reason+=ya+" add'l carbs req w/in "+Ba+"m; ");var xa=0;if(ke0&&ze>bt)Ae.reason+="IOB "+a.iob+" < "+o(-i.current_basal*R*20/60,2),Ae.reason+=" and minDelta "+n(ze,i)+" > expectedDelta "+n(bt,i)+"; ";else if(ke=55)return Ae.reason+="; Canceling temp at "+Ae.deliverAt.getMinutes()+"m past the hour. ",m.setTempBasal(0,0,i,Ae,t);var Da=0,Sa=Fe;if(Bt<$e){if(Ae.reason+="Eventual BG "+n(Bt,i)+" < "+n($e,i),ze>bt&&ze>0&&!ya)return vt<40?(Ae.reason+=", naive_eventualBG < 40. ",m.setTempBasal(0,30,i,Ae,t)):(e.delta>ze?Ae.reason+=", but Delta "+n(Ee,i)+" > expectedDelta "+n(bt,i):Ae.reason+=", but Min. Delta "+ze.toFixed(2)+" > Exp. Delta "+n(bt,i),t.duration>15&&r(Fe,i)===r(t.rate,i)?(Ae.reason+=", temp "+t.rate+" ~ req "+Fe+"U/hr. ",Ae):(Ae.reason+="; setting current basal of "+Fe+" as temp. ",m.setTempBasal(Fe,30,i,Ae,t)));Da=o(Da=2*Math.min(0,(Bt-Ze)/ut),2);var wa=Math.min(0,(vt-Ze)/ut);if(wa=o(wa,2),ze<0&&ze>bt)Da=o(Da*(ze/bt),2);if(Sa=r(Sa=Fe+2*Da,i),t.duration*(t.rate-Fe)/605&&Sa>=.8*t.rate)return Ae.reason+=", temp "+t.rate+" ~< req "+Sa+"U/hr. ",Ae;if(Sa<=0){if((xa=o(60*((fa=Ze-vt)/ut)/i.current_basal*R))<0?xa=0:(xa=30*o(xa/30),xa=Math.min(120,Math.max(0,xa))),xa>0)return Ae.reason+=", setting "+xa+"m zero temp. ",m.setTempBasal(Sa,xa,i,Ae,t)}else Ae.reason+=", setting "+Sa+"U/hr. ";return m.setTempBasal(Sa,30,i,Ae,t)}if(ze "+n($e,i)+" but Delta "+n(Ee,i)+" < Exp. Delta "+n(bt,i):Ae.reason+="Eventual BG "+n(Bt,i)+" > "+n($e,i)+" but Min. Delta "+ze.toFixed(2)+" < Exp. Delta "+n(bt,i),t.duration>15&&r(Fe,i)===r(t.rate,i)?(Ae.reason+=", temp "+t.rate+" ~ req "+Fe+"U/hr. ",Ae):(Ae.reason+="; setting current basal of "+Fe+" as temp. ",m.setTempBasal(Fe,30,i,Ae,t));if(Math.min(Bt,zt)15&&r(Fe,i)===r(t.rate,i)?(Ae.reason+=", temp "+t.rate+" ~ req "+Fe+"U/hr. ",Ae):(Ae.reason+="; setting current basal of "+Fe+" as temp. ",m.setTempBasal(Fe,30,i,Ae,t));if(Bt>=Je&&(Ae.reason+="Eventual BG "+n(Bt,i)+" >= "+n(Je,i)+", "),a.iob>Qe)return Ae.reason+="IOB "+o(a.iob,2)+" > max_iob "+Qe,t.duration>15&&r(Fe,i)===r(t.rate,i)?(Ae.reason+=", temp "+t.rate+" ~ req "+Fe+"U/hr. ",Ae):(Ae.reason+="; setting current basal of "+Fe+" as temp. ",m.setTempBasal(Fe,30,i,Ae,t));(Da=o((Math.min(zt,Bt)-Ze)/ut,2))>Qe-a.iob?(console.error("SMB limited by maxIOB: "+Qe-a.iob+" (. insulinReq: "+Da+" U)"),Ae.reason+="max_iob "+Qe+", ",Da=Qe-a.iob):console.error("SMB not limited by maxIOB ( insulinReq: "+Da+" U)."),Sa=r(Sa=Fe+2*Da,i),Da=o(Da,3),Ae.insulinReq=Da;var Ta=o((new Date(Pe).getTime()-a.lastBolusTime)/6e4,1);if(u&&Dt&&ke>st){var Ca=o(l.mealCOB/I,3),Ua=0;void 0===i.maxSMBBasalMinutes?(Ua=o(i.current_basal*R*30/60,1),console.error("profile.maxSMBBasalMinutes undefined: defaulting to 30m"),Da>Ua&&console.error("SMB limited by maxBolus: "+Ua+" ( "+Da+" U)")):a.iob>Ca&&a.iob>0?(console.error("IOB"+a.iob+"> COB"+l.mealCOB+"; mealInsulinReq ="+Ca),i.maxUAMSMBBasalMinutes?(console.error("profile.maxUAMSMBBasalMinutes: "+i.maxUAMSMBBasalMinutes+", profile.current_basal: "+i.current_basal*R),Ua=o(i.current_basal*R*i.maxUAMSMBBasalMinutes/60,1)):(console.error("profile.maxUAMSMBBasalMinutes undefined: defaulting to 30m"),Ua=o(i.current_basal*R*30/60,1)),Da>Ua?console.error("SMB limited by maxUAMSMBBasalMinutes [ "+i.maxUAMSMBBasalMinutes+"m ]: "+Ua+"U ( "+Da+"U )"):console.error("SMB is not limited by maxUAMSMBBasalMinutes. ( insulinReq: "+Da+"U )")):(console.error("profile.maxSMBBasalMinutes: "+i.maxSMBBasalMinutes+", profile.current_basal: "+i.current_basal*R),Da>(Ua=o(i.current_basal*i.maxSMBBasalMinutes/60,1))?console.error("SMB limited by maxSMBBasalMinutes: "+i.maxSMBBasalMinutes+"m ]: "+Ua+"U ( insulinReq: "+Da+"U )"):console.error("SMB is not limited by maxSMBBasalMinutes. ( insulinReq: "+Da+"U )"));var Ga=i.bolus_increment,Oa=1/Ga,Ra=i.smb_delivery_ratio;Ra>.5&&console.error("SMB Delivery Ratio increased from default 0.5 to "+o(Ra,2));var Aa=Math.min(Da*Ra,Ua);Aa=Math.floor(Aa*Oa)/Oa,xa=o(60*((Ze-(vt+Jt)/2)/ut)/i.current_basal*R),Da>0&&Aa=30?(xa=30*o(xa/30),xa=Math.min(60,Math.max(0,xa))):(Ia=o(Fe*xa/30,2),xa=30),Ae.reason+=" insulinReq "+Da,Aa>=Ua&&(Ae.reason+="; maxBolus "+Ua),xa>0&&(Ae.reason+="; setting "+xa+"m low temp of "+Ia+"U/h"),Ae.reason+=". ";var ja=3;i.SMBInterval&&(ja=Math.min(10,Math.max(1,i.SMBInterval)));var Fa=o(ja-Ta,0),Pa=o(60*(ja-Ta),0)%60;if(console.error("naive_eventualBG "+vt+","+xa+"m "+Ia+"U/h temp needed; last bolus "+Ta+"m ago; maxBolus: "+Ua),Ta>ja?Aa>0&&(Ae.units=Aa,Ae.reason+="Microbolusing "+Aa+"U. "):Ae.reason+="Waiting "+Fa+"m "+Pa+"s to microbolus again. ",xa>0)return Ae.rate=Ia,Ae.duration=xa,Ae}var Ea=m.getMaxSafeBasal(i);return Sa>Ea&&(Ae.reason+="adj. req. rate: "+Sa+" to maxSafeBasal: "+o(Ea,2)+", ",Sa=r(Ea,i)),t.duration*(t.rate-Fe)/60>=2*Da?(Ae.reason+=t.duration+"m@"+t.rate.toFixed(2)+" > 2 * insulinReq. Setting temp basal of "+Sa+"U/hr. ",m.setTempBasal(Sa,30,i,Ae,t)):void 0===t.duration||0===t.duration?(Ae.reason+="no temp, setting "+Sa+"U/hr. ",m.setTempBasal(Sa,30,i,Ae,t)):t.duration>5&&r(Sa,i)<=r(t.rate,i)?(Ae.reason+="temp "+t.rate+" >~ req "+Sa+"U/hr. ",Ae):(Ae.reason+="temp "+t.rate+"<"+Sa+"U/hr. ",m.setTempBasal(Sa,30,i,Ae,t))}},6880:(e,t,a)=>{var r=a(6654);e.exports=function(e,t){var a=20;void 0!==t&&"string"==typeof t.model&&(r(t.model,"54")||r(t.model,"23"))&&(a=40);return e<1?Math.round(e*a)/a:e<10?Math.round(20*e)/20:Math.round(10*e)/10}},2705:(e,t,a)=>{var r=a(5639).Symbol;e.exports=r},9932:e=>{e.exports=function(e,t){for(var a=-1,r=null==e?0:e.length,o=Array(r);++a{e.exports=function(e,t,a){return e==e&&(void 0!==a&&(e=e<=a?e:a),void 0!==t&&(e=e>=t?e:t)),e}},4239:(e,t,a)=>{var r=a(2705),o=a(9607),n=a(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):n(e)}},531:(e,t,a)=>{var r=a(2705),o=a(9932),n=a(1469),i=a(3448),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(n(t))return o(t,e)+"";if(i(t))return l?l.call(t):"";var a=t+"";return"0"==a&&1/t==-Infinity?"-0":a}},7561:(e,t,a)=>{var r=a(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},1957:(e,t,a)=>{var r="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g;e.exports=r},9607:(e,t,a)=>{var r=a(2705),o=Object.prototype,n=o.hasOwnProperty,i=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=n.call(e,s),a=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=i.call(e);return r&&(t?e[s]=a:delete e[s]),o}},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5639:(e,t,a)=>{var r=a(1957),o="object"==typeof self&&self&&self.Object===Object&&self,n=r||o||Function("return this")();e.exports=n},7990:e=>{var t=/\s/;e.exports=function(e){for(var a=e.length;a--&&t.test(e.charAt(a)););return a}},6654:(e,t,a)=>{var r=a(9750),o=a(531),n=a(554),i=a(9833);e.exports=function(e,t,a){e=i(e),t=o(t);var s=e.length,l=a=void 0===a?s:r(n(a),0,s);return(a-=t.length)>=0&&e.slice(a,l)==t}},1469:e=>{var t=Array.isArray;e.exports=t},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},3448:(e,t,a)=>{var r=a(4239),o=a(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},8601:(e,t,a)=>{var r=a(4841),o=1/0;e.exports=function(e){return e?(e=r(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,a)=>{var r=a(8601);e.exports=function(e){var t=r(e),a=t%1;return t==t?a?t-a:t:0}},4841:(e,t,a)=>{var r=a(7561),o=a(3218),n=a(3448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,m=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(n(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var a=s.test(e);return a||l.test(e)?m(e.slice(2),a?2:8):i.test(e)?NaN:+e}},9833:(e,t,a)=>{var r=a(531);e.exports=function(e){return null==e?"":r(e)}}},t={};function a(r){var o=t[r];if(void 0!==o)return o.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,a),n.exports}a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var r=a(5546);freeaps_determineBasal=r})(); diff --git a/FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json b/FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json index db7c5d8842..2416d38bc6 100644 --- a/FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json +++ b/FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json @@ -1,30 +1,41 @@ { - "units": "mmol/L", - "closedLoop": false, - "allowAnnouncements": false, - "useAutotune": false, - "isUploadEnabled": false, - "useLocalGlucoseSource": false, - "localGlucosePort": 8080, - "debugOptions": false, - "insulinReqPercentage": 70, - "skipBolusScreenAfterCarbs": false, - "displayHR": false, - "cgm": "nightscout", - "uploadGlucose": false, - "glucoseBadge": false, - "glucoseNotificationsAlways": false, - "useAlarmSound": false, - "addSourceInfoToGlucoseNotifications": false, - "lowGlucose": 72, - "highGlucose": 270, - "carbsRequiredThreshold": 10, - "useAppleHealth": false, - "animatedBackground": false, - "displayStatistics": false, - "useFPUconversion": true - "individualAdjustmentFactor": 0.5, - "timeCap": 8, - "minuteInterval": 30, - "delay": 60 + "useAlarmSound" : false, + "uploadStats" : false, + "useCalendar" : false, + "rulerMarks" : false, + "individualAdjustmentFactor" : 0.5, + "low" : 70, + "displayHR" : true, + "localGlucosePort" : 8080, + "uploadGlucose" : true, + "allowAnnouncements" : false, + "debugOptions" : false, + "useAppleHealth" : false, + "high" : 170, + "yGridLines" : true, + "useLocalGlucoseSource" : false, + "closedLoop" : false, + "units" : "mmol/L", + "xGridLines" : true, + "lowGlucose" : 70, + "oneDimensionalGraph" : false, + "glucoseNotificationsAlways" : false, + "addSourceInfoToGlucoseNotifications" : false, + "cgm" : "nightscout", + "glucoseBadge" : true, + "overrideHbA1cUnit" : false, + "delay" : 80, + "smoothGlucose" : false, + "skipBolusScreenAfterCarbs" : false, + "highGlucose" : 220, + "timeCap" : 8, + "minuteInterval" : 20, + "isUploadEnabled" : true, + "useAutotune" : false, + "hours" : 6, + "carbsRequiredThreshold" : 50, + "insulinReqPercentage" : 80, + "useFPUconversion" : false, + "displayOnWatch" : "HR", + "animatedBackground" : false } diff --git a/FreeAPS/Sources/APS/APSManager.swift b/FreeAPS/Sources/APS/APSManager.swift index 81ee2df8e1..bc46b37058 100644 --- a/FreeAPS/Sources/APS/APSManager.swift +++ b/FreeAPS/Sources/APS/APSManager.swift @@ -731,636 +731,626 @@ final class BaseAPSManager: APSManager, Injectable { // Add to statistics.JSON private func statistics() { - let statisticsStartedAt = Date() - var testFile: [Statistics] = [] - var testIfEmpty = 0 - storage.transaction { storage in - testFile = storage.retrieve(OpenAPS.Monitor.statistics, as: [Statistics].self) ?? [] - testIfEmpty = testFile.count - } - let updateThisOften = Int(settingsManager.preferences.updateInterval) - // Only run every 30 minutes or according to setting. - if testIfEmpty != 0 { - guard testFile[0].created_at.addingTimeInterval(updateThisOften.minutes.timeInterval) < Date() - else { + let now = Date() + if settingsManager.settings.uploadStats { + let hour = Calendar.current.component(.hour, from: now) + guard hour > 20 else { return } - } - - let units = settingsManager.settings.units - let preferences = settingsManager.preferences + coredataContext.performAndWait { [self] in + var stats = [StatsData]() + let requestStats = StatsData.fetchRequest() as NSFetchRequest + let sortStats = NSSortDescriptor(key: "lastrun", ascending: false) + requestStats.sortDescriptors = [sortStats] + requestStats.fetchLimit = 1 + try? stats = coredataContext.fetch(requestStats) + // Only save and upload once per day + guard (-1 * (stats.first?.lastrun ?? now).timeIntervalSinceNow.hours) > 22 else { return } - // MARK: Fetch Carbs from CoreData + let units = self.settingsManager.settings.units + let preferences = settingsManager.preferences - var carbs = [Carbohydrates]() - var carbTotal: Decimal = 0 + // MARK: Fetch Carbs from CoreData - coredataContext.performAndWait { - let requestCarbs = Carbohydrates.fetchRequest() as NSFetchRequest + var carbs = [Carbohydrates]() + var carbTotal: Decimal = 0 - let daysAgo = Date().addingTimeInterval(-1.days.timeInterval) - requestCarbs.predicate = NSPredicate(format: "carbs > 0 AND date > %@", daysAgo as NSDate) + let requestCarbs = Carbohydrates.fetchRequest() as NSFetchRequest - let sortCarbs = NSSortDescriptor(key: "date", ascending: true) - requestCarbs.sortDescriptors = [sortCarbs] + let daysAgo = Date().addingTimeInterval(-1.days.timeInterval) + requestCarbs.predicate = NSPredicate(format: "carbs > 0 AND date > %@", daysAgo as NSDate) - try? carbs = coredataContext.fetch(requestCarbs) + let sortCarbs = NSSortDescriptor(key: "date", ascending: true) + requestCarbs.sortDescriptors = [sortCarbs] - carbTotal = carbs.map({ carbs in carbs.carbs as? Decimal ?? 0 }).reduce(0, +) - } - - // MARK: Fetch TDD from CoreData + try? carbs = coredataContext.fetch(requestCarbs) - var tdds = [TDD]() - var currentTDD: Decimal = 0 + carbTotal = carbs.map({ carbs in carbs.carbs as? Decimal ?? 0 }).reduce(0, +) - coredataContext.performAndWait { - let requestTDD = TDD.fetchRequest() as NSFetchRequest - let sort = NSSortDescriptor(key: "timestamp", ascending: false) - requestTDD.sortDescriptors = [sort] - requestTDD.fetchLimit = 1 + // MARK: Fetch TDD from CoreData - try? tdds = coredataContext.fetch(requestTDD) + var tdds = [TDD]() + var currentTDD: Decimal = 0 - if !tdds.isEmpty { - currentTDD = tdds[0].tdd?.decimalValue ?? 0 - } - } + let requestTDD = TDD.fetchRequest() as NSFetchRequest + let sort = NSSortDescriptor(key: "timestamp", ascending: false) + requestTDD.sortDescriptors = [sort] + requestTDD.fetchLimit = 1 - var algo_ = "Oref0" + try? tdds = coredataContext.fetch(requestTDD) - if preferences.sigmoid, preferences.enableDynamicCR { - algo_ = "Dynamic ISF + CR: Sigmoid" - } else if preferences.sigmoid, !preferences.enableDynamicCR { - algo_ = "Dynamic ISF: Sigmoid" - } else if preferences.useNewFormula, preferences.enableDynamicCR { - algo_ = "Dynamic ISF + CR: Logarithmic" - } else if preferences.useNewFormula, !preferences.sigmoid,!preferences.enableDynamicCR { - algo_ = "Dynamic ISF: Logarithmic" - } + if !tdds.isEmpty { + currentTDD = tdds[0].tdd?.decimalValue ?? 0 + } - let af = preferences.adjustmentFactor - let insulin_type = preferences.curve - let buildDate = Bundle.main.buildDate - let version = Bundle.main.releaseVersionNumber - let build = Bundle.main.buildVersionNumber - let branch = Bundle.main.infoDictionary?["BuildBranch"] as? String ?? "" - let copyrightNotice_ = Bundle.main.infoDictionary?["NSHumanReadableCopyright"] as? String ?? "" - let pump_ = pumpManager?.localizedTitle ?? "" - let cgm = settingsManager.settings.cgm - let file = OpenAPS.Monitor.statistics - var iPa: Decimal = 75 - if preferences.useCustomPeakTime { - iPa = preferences.insulinPeakTime - } else if preferences.curve.rawValue == "rapid-acting" { - iPa = 65 - } else if preferences.curve.rawValue == "ultra-rapid" { - iPa = 50 - } + var algo_ = "Oref0" - // MARK: Fetch LoopStatRecords from CoreData - - var lsr = [LoopStatRecord]() - var successRate: Double? - var successNR = 0 - var errorNR = 0 - var minimumInt = 999.0 - var maximumInt = 0.0 - var minimumLoopTime = 9999.0 - var maximumLoopTime = 0.0 - var timeIntervalLoops = 0.0 - var previousTimeLoop = Date() - var timeForOneLoop = 0.0 - var averageLoopTime = 0.0 - var timeForOneLoopArray: [Double] = [] - var medianLoopTime = 0.0 - var timeIntervalLoopArray: [Double] = [] - var medianInterval = 0.0 - var averageIntervalLoops = 0.0 - var averageLoopDuration = 0.0 - - coredataContext.performAndWait { - let requestLSR = LoopStatRecord.fetchRequest() as NSFetchRequest - requestLSR.predicate = NSPredicate(format: "start > %@", Date().addingTimeInterval(-24.hours.timeInterval) as NSDate) - let sortLSR = NSSortDescriptor(key: "start", ascending: false) - requestLSR.sortDescriptors = [sortLSR] - - try? lsr = coredataContext.fetch(requestLSR) - - if lsr.isNotEmpty { - var i = 0.0 - if let loopEnd = lsr[0].end { - previousTimeLoop = loopEnd + if preferences.sigmoid, preferences.enableDynamicCR { + algo_ = "Dynamic ISF + CR: Sigmoid" + } else if preferences.sigmoid, !preferences.enableDynamicCR { + algo_ = "Dynamic ISF: Sigmoid" + } else if preferences.useNewFormula, preferences.enableDynamicCR { + algo_ = "Dynamic ISF + CR: Logarithmic" + } else if preferences.useNewFormula, !preferences.sigmoid,!preferences.enableDynamicCR { + algo_ = "Dynamic ISF: Logarithmic" } - for each in lsr { - if let loopEnd = each.end { - let loopDuration = each.duration - if each.loopStatus!.contains("Success") { - successNR += 1 - } else { - errorNR += 1 - } + let af = preferences.adjustmentFactor + let insulin_type = preferences.curve + let buildDate = Bundle.main.buildDate + let version = Bundle.main.releaseVersionNumber + let build = Bundle.main.buildVersionNumber + let branch = Bundle.main.infoDictionary?["BuildBranch"] as? String ?? "" + let copyrightNotice_ = Bundle.main.infoDictionary?["NSHumanReadableCopyright"] as? String ?? "" + let pump_ = pumpManager?.localizedTitle ?? "" + let cgm = settingsManager.settings.cgm + let file = OpenAPS.Monitor.statistics + var iPa: Decimal = 75 + if preferences.useCustomPeakTime { + iPa = preferences.insulinPeakTime + } else if preferences.curve.rawValue == "rapid-acting" { + iPa = 65 + } else if preferences.curve.rawValue == "ultra-rapid" { + iPa = 50 + } - i += 1 - timeIntervalLoops = (previousTimeLoop - (each.start ?? previousTimeLoop)).timeInterval / 60 + // MARK: Fetch LoopStatRecords from CoreData + + var lsr = [LoopStatRecord]() + var successRate: Double? + var successNR = 0 + var errorNR = 0 + var minimumInt = 999.0 + var maximumInt = 0.0 + var minimumLoopTime = 9999.0 + var maximumLoopTime = 0.0 + var timeIntervalLoops = 0.0 + var previousTimeLoop = Date() + var timeForOneLoop = 0.0 + var averageLoopTime = 0.0 + var timeForOneLoopArray: [Double] = [] + var medianLoopTime = 0.0 + var timeIntervalLoopArray: [Double] = [] + var medianInterval = 0.0 + var averageIntervalLoops = 0.0 + var averageLoopDuration = 0.0 + + let requestLSR = LoopStatRecord.fetchRequest() as NSFetchRequest + requestLSR.predicate = NSPredicate( + format: "start > %@", + Date().addingTimeInterval(-24.hours.timeInterval) as NSDate + ) + let sortLSR = NSSortDescriptor(key: "start", ascending: false) + requestLSR.sortDescriptors = [sortLSR] - if timeIntervalLoops > 0.0, i != 1 { - timeIntervalLoopArray.append(timeIntervalLoops) - } - if timeIntervalLoops > maximumInt { - maximumInt = timeIntervalLoops - } - if timeIntervalLoops < minimumInt, i != 1 { - minimumInt = timeIntervalLoops - } - timeForOneLoop = loopDuration - timeForOneLoopArray.append(timeForOneLoop) + try? lsr = coredataContext.fetch(requestLSR) - if timeForOneLoop >= maximumLoopTime, timeForOneLoop != 0.0 { - maximumLoopTime = timeForOneLoop - } - if timeForOneLoop <= minimumLoopTime, timeForOneLoop != 0.0 { - minimumLoopTime = timeForOneLoop - } + if lsr.isNotEmpty { + var i = 0.0 + if let loopEnd = lsr[0].end { previousTimeLoop = loopEnd } - } - successRate = (Double(successNR) / Double(i)) * 100 - - // Average Loop Interval in minutes - let timeOfFirstIndex = lsr[0].start ?? Date() - let lastIndexWithTimestamp = lsr.count - 1 - let timeOfLastIndex = lsr[lastIndexWithTimestamp].end ?? Date() - averageLoopTime = (timeOfFirstIndex - timeOfLastIndex).timeInterval / 60 / Double(errorNR + successNR) - - // Median values - medianLoopTime = medianCalculation(array: timeForOneLoopArray) - medianInterval = medianCalculation(array: timeIntervalLoopArray) - // Average time interval between loops - averageIntervalLoops = timeIntervalLoopArray.reduce(0, +) / Double(timeIntervalLoopArray.count) - // Average loop duration - averageLoopDuration = timeForOneLoopArray.reduce(0, +) / Double(timeForOneLoopArray.count) - } - } - - if minimumInt == 999.0 { - minimumInt = 0.0 - } - if minimumLoopTime == 9999.0 { - minimumLoopTime = 0.0 - } - - var glucose = [Readings]() - - var firstElementTime = Date() - var lastElementTime = Date() - var currentIndexTime = Date() - - var bg: Decimal = 0 - - var bgArray: [Double] = [] - var bgArray_1_: [Double] = [] - var bgArray_7_: [Double] = [] - var bgArray_30_: [Double] = [] - var bgArray_90_: [Double] = [] - - var bgArrayForTIR: [(bg_: Double, date_: Date)] = [] - var bgArray_1: [(bg_: Double, date_: Date)] = [] - var bgArray_7: [(bg_: Double, date_: Date)] = [] - var bgArray_30: [(bg_: Double, date_: Date)] = [] - var bgArray_90: [(bg_: Double, date_: Date)] = [] - - var medianBG = 0.0 - var nr_bgs: Decimal = 0 - var bg_1: Decimal = 0 - var bg_7: Decimal = 0 - var bg_30: Decimal = 0 - var bg_90: Decimal = 0 - var bg_total: Decimal = 0 - var j = -1 - var conversionFactor: Decimal = 1 - if units == .mmolL { - conversionFactor = 0.0555 - } - - var numberOfDays: Double = 0 - var nr1: Decimal = 0 - - coredataContext.performAndWait { - let requestGFS = Readings.fetchRequest() as NSFetchRequest - let sortGlucose = NSSortDescriptor(key: "date", ascending: false) - requestGFS.sortDescriptors = [sortGlucose] - - try? glucose = coredataContext.fetch(requestGFS) - - // Time In Range (%) and Average Glucose. This will be refactored later after some testing. - let endIndex = glucose.count - 1 - - firstElementTime = glucose[0].date ?? Date() - lastElementTime = glucose[endIndex].date ?? Date() - - currentIndexTime = firstElementTime - - numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4 - - // Make arrays for median calculations and calculate averages - if endIndex >= 0 { - repeat { - j += 1 - if glucose[j].glucose > 0 { - currentIndexTime = glucose[j].date ?? firstElementTime - bg += Decimal(glucose[j].glucose) * conversionFactor - bgArray.append(Double(glucose[j].glucose) * Double(conversionFactor)) - bgArrayForTIR.append((Double(glucose[j].glucose), glucose[j].date!)) - nr_bgs += 1 - if (firstElementTime - currentIndexTime).timeInterval <= 8.64E4 { // 1 day - bg_1 = bg / nr_bgs - bgArray_1 = bgArrayForTIR - bgArray_1_ = bgArray - nr1 = nr_bgs - } - if (firstElementTime - currentIndexTime).timeInterval <= 6.048E5 { // 7 days - bg_7 = bg / nr_bgs - bgArray_7 = bgArrayForTIR - bgArray_7_ = bgArray - } - if (firstElementTime - currentIndexTime).timeInterval <= 2.592E6 { // 30 days - bg_30 = bg / nr_bgs - bgArray_30 = bgArrayForTIR - bgArray_30_ = bgArray - } - if (firstElementTime - currentIndexTime).timeInterval <= 7.776E7 { // 30 days - bg_90 = bg / nr_bgs - bgArray_90 = bgArrayForTIR - bgArray_90_ = bgArray + for each in lsr { + if let loopEnd = each.end { + let loopDuration = each.duration + + if each.loopStatus!.contains("Success") { + successNR += 1 + } else { + errorNR += 1 + } + + i += 1 + timeIntervalLoops = (previousTimeLoop - (each.start ?? previousTimeLoop)).timeInterval / 60 + + if timeIntervalLoops > 0.0, i != 1 { + timeIntervalLoopArray.append(timeIntervalLoops) + } + if timeIntervalLoops > maximumInt { + maximumInt = timeIntervalLoops + } + if timeIntervalLoops < minimumInt, i != 1 { + minimumInt = timeIntervalLoops + } + timeForOneLoop = loopDuration + timeForOneLoopArray.append(timeForOneLoop) + + if timeForOneLoop >= maximumLoopTime, timeForOneLoop != 0.0 { + maximumLoopTime = timeForOneLoop + } + if timeForOneLoop <= minimumLoopTime, timeForOneLoop != 0.0 { + minimumLoopTime = timeForOneLoop + } + previousTimeLoop = loopEnd } } - } while j != glucose.count - 1 - } - } - - if nr_bgs > 0 { - // Up to 91 days - bg_total = bg / nr_bgs - } + successRate = (Double(successNR) / Double(i)) * 100 + + // Average Loop Interval in minutes + let timeOfFirstIndex = lsr[0].start ?? Date() + let lastIndexWithTimestamp = lsr.count - 1 + let timeOfLastIndex = lsr[lastIndexWithTimestamp].end ?? Date() + averageLoopTime = (timeOfFirstIndex - timeOfLastIndex).timeInterval / 60 / Double(errorNR + successNR) + + // Median values + medianLoopTime = medianCalculation(array: timeForOneLoopArray) + medianInterval = medianCalculation(array: timeIntervalLoopArray) + // Average time interval between loops + averageIntervalLoops = timeIntervalLoopArray.reduce(0, +) / Double(timeIntervalLoopArray.count) + // Average loop duration + averageLoopDuration = timeForOneLoopArray.reduce(0, +) / Double(timeForOneLoopArray.count) + } - // Total median - medianBG = medianCalculation(array: bgArray) - - func tir(_ array: [(bg_: Double, date_: Date)]) -> (TIR: Double, hypos: Double, hypers: Double) { - var timeInHypo = 0.0 - var timeInHyper = 0.0 - var hypos = 0.0 - var hypers = 0.0 - var i = -1 - var lastIndex = false - let endIndex = array.count - 1 - var hypoLimit = settingsManager.preferences.low - var hyperLimit = settingsManager.preferences.high - if units == .mmolL { - hypoLimit = hypoLimit / 0.0555 - hyperLimit = hyperLimit / 0.0555 - } - var full_time = 0.0 - if endIndex > 0 { - full_time = (array[0].date_ - array[endIndex].date_).timeInterval - } - while i < endIndex { - i += 1 - let currentTime = array[i].date_ - var previousTime = currentTime - if i + 1 <= endIndex { - previousTime = array[i + 1].date_ - } else { - lastIndex = true + if minimumInt == 999.0 { + minimumInt = 0.0 } - if array[i].bg_ < Double(hypoLimit), !lastIndex { - // Exclude duration between CGM readings which are more than 30 minutes - timeInHypo += min((currentTime - previousTime).timeInterval, 30.minutes.timeInterval) - } else if array[i].bg_ >= Double(hyperLimit), !lastIndex { - timeInHyper += min((currentTime - previousTime).timeInterval, 30.minutes.timeInterval) + if minimumLoopTime == 9999.0 { + minimumLoopTime = 0.0 } - } - if timeInHypo == 0.0 { - hypos = 0 - } else if full_time != 0.0 { hypos = (timeInHypo / full_time) * 100 - } - if timeInHyper == 0.0 { - hypers = 0 - } else if full_time != 0.0 { hypers = (timeInHyper / full_time) * 100 - } - let TIR = 100 - (hypos + hypers) - return (roundDouble(TIR, 1), roundDouble(hypos, 1), roundDouble(hypers, 1)) - } - // HbA1c estimation (%, mmol/mol) 1 day - var NGSPa1CStatisticValue: Decimal = 0.0 - var IFCCa1CStatisticValue: Decimal = 0.0 - if nr_bgs > 0 { - NGSPa1CStatisticValue = ((bg_1 / conversionFactor) + 46.7) / 28.7 // NGSP (%) - IFCCa1CStatisticValue = 10.929 * - (NGSPa1CStatisticValue - 2.152) // IFCC (mmol/mol) A1C(mmol/mol) = 10.929 * (A1C(%) - 2.15) - } - // 7 days - var NGSPa1CStatisticValue_7: Decimal = 0.0 - var IFCCa1CStatisticValue_7: Decimal = 0.0 - if nr_bgs > 0 { - NGSPa1CStatisticValue_7 = ((bg_7 / conversionFactor) + 46.7) / 28.7 - IFCCa1CStatisticValue_7 = 10.929 * (NGSPa1CStatisticValue_7 - 2.152) - } - // 30 days - var NGSPa1CStatisticValue_30: Decimal = 0.0 - var IFCCa1CStatisticValue_30: Decimal = 0.0 - if nr_bgs > 0 { - NGSPa1CStatisticValue_30 = ((bg_30 / conversionFactor) + 46.7) / 28.7 - IFCCa1CStatisticValue_30 = 10.929 * (NGSPa1CStatisticValue_30 - 2.152) - } - // 90 days - var NGSPa1CStatisticValue_90: Decimal = 0.0 - var IFCCa1CStatisticValue_90: Decimal = 0.0 - if nr_bgs > 0 { - NGSPa1CStatisticValue_90 = ((bg_90 / conversionFactor) + 46.7) / 28.7 - IFCCa1CStatisticValue_90 = 10.929 * (NGSPa1CStatisticValue_90 - 2.152) - } - // Total days - var NGSPa1CStatisticValue_total: Decimal = 0.0 - var IFCCa1CStatisticValue_total: Decimal = 0.0 - if nr_bgs > 0 { - NGSPa1CStatisticValue_total = ((bg_total / conversionFactor) + 46.7) / 28.7 - IFCCa1CStatisticValue_total = 10.929 * - (NGSPa1CStatisticValue_total - 2.152) - } + var glucose = [Readings]() + + var firstElementTime = Date() + var lastElementTime = Date() + var currentIndexTime = Date() + + var bg: Decimal = 0 + + var bgArray: [Double] = [] + var bgArray_1_: [Double] = [] + var bgArray_7_: [Double] = [] + var bgArray_30_: [Double] = [] + var bgArray_90_: [Double] = [] + + var bgArrayForTIR: [(bg_: Double, date_: Date)] = [] + var bgArray_1: [(bg_: Double, date_: Date)] = [] + var bgArray_7: [(bg_: Double, date_: Date)] = [] + var bgArray_30: [(bg_: Double, date_: Date)] = [] + var bgArray_90: [(bg_: Double, date_: Date)] = [] + + var medianBG = 0.0 + var nr_bgs: Decimal = 0 + var bg_1: Decimal = 0 + var bg_7: Decimal = 0 + var bg_30: Decimal = 0 + var bg_90: Decimal = 0 + var bg_total: Decimal = 0 + var j = -1 + var conversionFactor: Decimal = 1 + if units == .mmolL { + conversionFactor = 0.0555 + } - let median = Durations( - day: roundDecimal(Decimal(medianCalculation(array: bgArray_1_)), 1), - week: roundDecimal(Decimal(medianCalculation(array: bgArray_7_)), 1), - month: roundDecimal(Decimal(medianCalculation(array: bgArray_30_)), 1), - total: roundDecimal(Decimal(medianBG), 1) - ) + var numberOfDays: Double = 0 + var nr1: Decimal = 0 + + let requestGFS = Readings.fetchRequest() as NSFetchRequest + let sortGlucose = NSSortDescriptor(key: "date", ascending: false) + requestGFS.sortDescriptors = [sortGlucose] + + try? glucose = coredataContext.fetch(requestGFS) + + // Time In Range (%) and Average Glucose. This will be refactored later after some testing. + let endIndex = glucose.count - 1 + + firstElementTime = glucose[0].date ?? Date() + lastElementTime = glucose[endIndex].date ?? Date() + + currentIndexTime = firstElementTime + + numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4 + + // Make arrays for median calculations and calculate averages + if endIndex >= 0 { + repeat { + j += 1 + if glucose[j].glucose > 0 { + currentIndexTime = glucose[j].date ?? firstElementTime + bg += Decimal(glucose[j].glucose) * conversionFactor + bgArray.append(Double(glucose[j].glucose) * Double(conversionFactor)) + bgArrayForTIR.append((Double(glucose[j].glucose), glucose[j].date!)) + nr_bgs += 1 + if (firstElementTime - currentIndexTime).timeInterval <= 8.64E4 { // 1 day + bg_1 = bg / nr_bgs + bgArray_1 = bgArrayForTIR + bgArray_1_ = bgArray + nr1 = nr_bgs + } + if (firstElementTime - currentIndexTime).timeInterval <= 6.048E5 { // 7 days + bg_7 = bg / nr_bgs + bgArray_7 = bgArrayForTIR + bgArray_7_ = bgArray + } + if (firstElementTime - currentIndexTime).timeInterval <= 2.592E6 { // 30 days + bg_30 = bg / nr_bgs + bgArray_30 = bgArrayForTIR + bgArray_30_ = bgArray + } + if (firstElementTime - currentIndexTime).timeInterval <= 7.776E7 { // 90 days + bg_90 = bg / nr_bgs + bgArray_90 = bgArrayForTIR + bgArray_90_ = bgArray + } + } + } while j != glucose.count - 1 + } - // MARK: Save to Median to CoreData + if nr_bgs > 0 { + // Up to 91 days + bg_total = bg / nr_bgs + } - coredataContext.perform { - let saveMedianToCoreData = BGmedian(context: self.coredataContext) - - saveMedianToCoreData.date = Date() - saveMedianToCoreData.median = median.total as NSDecimalNumber - saveMedianToCoreData.median_1 = median.day as NSDecimalNumber - saveMedianToCoreData.median_7 = median.week as NSDecimalNumber - saveMedianToCoreData.median_30 = median.month as NSDecimalNumber - saveMedianToCoreData.median_90 = self.roundDecimal( - Decimal(self.medianCalculation(array: bgArray_90_)), - 1 - ) as NSDecimalNumber + // Total median + medianBG = medianCalculation(array: bgArray) - try? self.coredataContext.save() - } + func tir(_ array: [(bg_: Double, date_: Date)]) -> (TIR: Double, hypos: Double, hypers: Double) { + var timeInHypo = 0.0 + var timeInHyper = 0.0 + var hypos = 0.0 + var hypers = 0.0 + var i = -1 + var lastIndex = false + let endIndex = array.count - 1 - var hbs = Durations( - day: roundDecimal(NGSPa1CStatisticValue, 1), - week: roundDecimal(NGSPa1CStatisticValue_7, 1), - month: roundDecimal(NGSPa1CStatisticValue_30, 1), - total: roundDecimal(NGSPa1CStatisticValue_total, 1) - ) + var hypoLimit = settingsManager.settings.low + var hyperLimit = settingsManager.settings.high - coredataContext.perform { - let saveHbA1c = HbA1c(context: self.coredataContext) - saveHbA1c.date = Date() - saveHbA1c.hba1c = NGSPa1CStatisticValue_total as NSDecimalNumber - saveHbA1c.hba1c_1 = NGSPa1CStatisticValue as NSDecimalNumber - saveHbA1c.hba1c_7 = NGSPa1CStatisticValue_7 as NSDecimalNumber - saveHbA1c.hba1c_30 = NGSPa1CStatisticValue_30 as NSDecimalNumber - saveHbA1c.hba1c_90 = NGSPa1CStatisticValue_90 as NSDecimalNumber + var full_time = 0.0 + if endIndex > 0 { + full_time = (array[0].date_ - array[endIndex].date_).timeInterval + } + while i < endIndex { + i += 1 + let currentTime = array[i].date_ + var previousTime = currentTime + if i + 1 <= endIndex { + previousTime = array[i + 1].date_ + } else { + lastIndex = true + } + if array[i].bg_ < Double(hypoLimit), !lastIndex { + // Exclude duration between CGM readings which are more than 30 minutes + timeInHypo += min((currentTime - previousTime).timeInterval, 30.minutes.timeInterval) + } else if array[i].bg_ >= Double(hyperLimit), !lastIndex { + timeInHyper += min((currentTime - previousTime).timeInterval, 30.minutes.timeInterval) + } + } + if timeInHypo == 0.0 { + hypos = 0 + } else if full_time != 0.0 { hypos = (timeInHypo / full_time) * 100 + } + if timeInHyper == 0.0 { + hypers = 0 + } else if full_time != 0.0 { hypers = (timeInHyper / full_time) * 100 + } + let TIR = 100 - (hypos + hypers) + return (roundDouble(TIR, 1), roundDouble(hypos, 1), roundDouble(hypers, 1)) + } - try? self.coredataContext.save() - } + // HbA1c estimation (%, mmol/mol) 1 day + var NGSPa1CStatisticValue: Decimal = 0.0 + var IFCCa1CStatisticValue: Decimal = 0.0 + if nr_bgs > 0 { + NGSPa1CStatisticValue = ((bg_1 / conversionFactor) + 46.7) / 28.7 // NGSP (%) + IFCCa1CStatisticValue = 10.929 * + (NGSPa1CStatisticValue - 2.152) // IFCC (mmol/mol) A1C(mmol/mol) = 10.929 * (A1C(%) - 2.15) + } + // 7 days + var NGSPa1CStatisticValue_7: Decimal = 0.0 + var IFCCa1CStatisticValue_7: Decimal = 0.0 + if nr_bgs > 0 { + NGSPa1CStatisticValue_7 = ((bg_7 / conversionFactor) + 46.7) / 28.7 + IFCCa1CStatisticValue_7 = 10.929 * (NGSPa1CStatisticValue_7 - 2.152) + } + // 30 days + var NGSPa1CStatisticValue_30: Decimal = 0.0 + var IFCCa1CStatisticValue_30: Decimal = 0.0 + if nr_bgs > 0 { + NGSPa1CStatisticValue_30 = ((bg_30 / conversionFactor) + 46.7) / 28.7 + IFCCa1CStatisticValue_30 = 10.929 * (NGSPa1CStatisticValue_30 - 2.152) + } + // 90 days + var NGSPa1CStatisticValue_90: Decimal = 0.0 + var IFCCa1CStatisticValue_90: Decimal = 0.0 + if nr_bgs > 0 { + NGSPa1CStatisticValue_90 = ((bg_90 / conversionFactor) + 46.7) / 28.7 + IFCCa1CStatisticValue_90 = 10.929 * (NGSPa1CStatisticValue_90 - 2.152) + } + // Total days + var NGSPa1CStatisticValue_total: Decimal = 0.0 + var IFCCa1CStatisticValue_total: Decimal = 0.0 + if nr_bgs > 0 { + NGSPa1CStatisticValue_total = ((bg_total / conversionFactor) + 46.7) / 28.7 + IFCCa1CStatisticValue_total = 10.929 * + (NGSPa1CStatisticValue_total - 2.152) + } - // Convert to user-preferred unit - let overrideHbA1cUnit = settingsManager.preferences.overrideHbA1cUnit - if units == .mmolL { - // Override if users sets overrideHbA1cUnit: true - if !overrideHbA1cUnit { - hbs = Durations( - day: roundDecimal(IFCCa1CStatisticValue, 1), - week: roundDecimal(IFCCa1CStatisticValue_7, 1), - month: roundDecimal(IFCCa1CStatisticValue_30, 1), - total: roundDecimal(IFCCa1CStatisticValue_total, 1) + let median = Durations( + day: roundDecimal(Decimal(medianCalculation(array: bgArray_1_)), 1), + week: roundDecimal(Decimal(medianCalculation(array: bgArray_7_)), 1), + month: roundDecimal(Decimal(medianCalculation(array: bgArray_30_)), 1), + total: roundDecimal(Decimal(medianBG), 1) ) - } - } else if units != .mmolL, overrideHbA1cUnit { - hbs = Durations( - day: roundDecimal(IFCCa1CStatisticValue, 1), - week: roundDecimal(IFCCa1CStatisticValue_7, 1), - month: roundDecimal(IFCCa1CStatisticValue_30, 1), - total: roundDecimal(IFCCa1CStatisticValue_total, 1) - ) - } - let nrOfCGMReadings = nr1 - - let loopstat = LoopCycles( - loops: successNR + errorNR, - errors: errorNR, - readings: Int(nrOfCGMReadings), - success_rate: Decimal(round(successRate ?? 0)), - avg_interval: roundDecimal(Decimal(averageLoopTime), 1), - median_interval: roundDecimal(Decimal(medianInterval), 1), - min_interval: roundDecimal(Decimal(minimumInt), 1), - max_interval: roundDecimal(Decimal(maximumInt), 1), - avg_duration: Decimal(roundDouble(averageLoopDuration, 2)), - median_duration: Decimal(roundDouble(medianLoopTime, 2)), - min_duration: roundDecimal(Decimal(minimumLoopTime), 2), - max_duration: Decimal(roundDouble(maximumLoopTime, 1)) - ) + // MARK: Save to Median to CoreData + + let saveMedianToCoreData = BGmedian(context: self.coredataContext) + saveMedianToCoreData.date = Date() + saveMedianToCoreData.median = median.total as NSDecimalNumber + saveMedianToCoreData.median_1 = median.day as NSDecimalNumber + saveMedianToCoreData.median_7 = median.week as NSDecimalNumber + saveMedianToCoreData.median_30 = median.month as NSDecimalNumber + saveMedianToCoreData.median_90 = self.roundDecimal( + Decimal(self.medianCalculation(array: bgArray_90_)), + 1 + ) as NSDecimalNumber + + try? self.coredataContext.save() + + var hbs = Durations( + day: roundDecimal(NGSPa1CStatisticValue, 1), + week: roundDecimal(NGSPa1CStatisticValue_7, 1), + month: roundDecimal(NGSPa1CStatisticValue_30, 1), + total: roundDecimal(NGSPa1CStatisticValue_total, 1) + ) - // TIR calcs for every case - var oneDay_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) - var sevenDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) - var thirtyDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) - var totalDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) - - // Get all TIR calcs for every case - if nr_bgs > 0 { - oneDay_ = tir(bgArray_1) - sevenDays_ = tir(bgArray_7) - thirtyDays_ = tir(bgArray_30) - totalDays_ = tir(bgArrayForTIR) - } + let saveHbA1c = HbA1c(context: self.coredataContext) + saveHbA1c.date = Date() + saveHbA1c.hba1c = NGSPa1CStatisticValue_total as NSDecimalNumber + saveHbA1c.hba1c_1 = NGSPa1CStatisticValue as NSDecimalNumber + saveHbA1c.hba1c_7 = NGSPa1CStatisticValue_7 as NSDecimalNumber + saveHbA1c.hba1c_30 = NGSPa1CStatisticValue_30 as NSDecimalNumber + saveHbA1c.hba1c_90 = NGSPa1CStatisticValue_90 as NSDecimalNumber + + try? self.coredataContext.save() + + // Convert to user-preferred unit + let overrideHbA1cUnit = settingsManager.settings.overrideHbA1cUnit + if units == .mmolL { + // Override if users sets overrideHbA1cUnit: true + if !overrideHbA1cUnit { + hbs = Durations( + day: roundDecimal(IFCCa1CStatisticValue, 1), + week: roundDecimal(IFCCa1CStatisticValue_7, 1), + month: roundDecimal(IFCCa1CStatisticValue_30, 1), + total: roundDecimal(IFCCa1CStatisticValue_total, 1) + ) + } + } else if units != .mmolL, overrideHbA1cUnit { + hbs = Durations( + day: roundDecimal(IFCCa1CStatisticValue, 1), + week: roundDecimal(IFCCa1CStatisticValue_7, 1), + month: roundDecimal(IFCCa1CStatisticValue_30, 1), + total: roundDecimal(IFCCa1CStatisticValue_total, 1) + ) + } - let tir = Durations( - day: roundDecimal(Decimal(oneDay_.TIR), 1), - week: roundDecimal(Decimal(sevenDays_.TIR), 1), - month: roundDecimal(Decimal(thirtyDays_.TIR), 1), - total: roundDecimal(Decimal(totalDays_.TIR), 1) - ) + let nrOfCGMReadings = nr1 + + let loopstat = LoopCycles( + loops: successNR + errorNR, + errors: errorNR, + readings: Int(nrOfCGMReadings), + success_rate: Decimal(round(successRate ?? 0)), + avg_interval: roundDecimal(Decimal(averageLoopTime), 1), + median_interval: roundDecimal(Decimal(medianInterval), 1), + min_interval: roundDecimal(Decimal(minimumInt), 1), + max_interval: roundDecimal(Decimal(maximumInt), 1), + avg_duration: Decimal(roundDouble(averageLoopDuration, 2)), + median_duration: Decimal(roundDouble(medianLoopTime, 2)), + min_duration: roundDecimal(Decimal(minimumLoopTime), 2), + max_duration: Decimal(roundDouble(maximumLoopTime, 1)) + ) - let hypo = Durations( - day: Decimal(oneDay_.hypos), - week: Decimal(sevenDays_.hypos), - month: Decimal(thirtyDays_.hypos), - total: Decimal(totalDays_.hypos) - ) + // TIR calcs for every case + var oneDay_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) + var sevenDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) + var thirtyDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) + var totalDays_: (TIR: Double, hypos: Double, hypers: Double) = (0.0, 0.0, 0.0) + + // Get all TIR calcs for every case + if nr_bgs > 0 { + oneDay_ = tir(bgArray_1) + sevenDays_ = tir(bgArray_7) + thirtyDays_ = tir(bgArray_30) + totalDays_ = tir(bgArrayForTIR) + } - let hyper = Durations( - day: Decimal(oneDay_.hypers), - week: Decimal(sevenDays_.hypers), - month: Decimal(thirtyDays_.hypers), - total: Decimal(totalDays_.hypers) - ) + let tir = Durations( + day: roundDecimal(Decimal(oneDay_.TIR), 1), + week: roundDecimal(Decimal(sevenDays_.TIR), 1), + month: roundDecimal(Decimal(thirtyDays_.TIR), 1), + total: roundDecimal(Decimal(totalDays_.TIR), 1) + ) - let TimeInRange = TIRs(TIR: tir, Hypos: hypo, Hypers: hyper) + let hypo = Durations( + day: Decimal(oneDay_.hypos), + week: Decimal(sevenDays_.hypos), + month: Decimal(thirtyDays_.hypos), + total: Decimal(totalDays_.hypos) + ) - let avgs = Durations( - day: roundDecimal(bg_1, 1), - week: roundDecimal(bg_7, 1), - month: roundDecimal(bg_30, 1), - total: roundDecimal(bg_total, 1) - ) + let hyper = Durations( + day: Decimal(oneDay_.hypers), + week: Decimal(sevenDays_.hypers), + month: Decimal(thirtyDays_.hypers), + total: Decimal(totalDays_.hypers) + ) - coredataContext.perform { - let saveAverages = BGaverages(context: self.coredataContext) - saveAverages.date = Date() - saveAverages.average = bg_total as NSDecimalNumber - saveAverages.average_1 = bg_1 as NSDecimalNumber - saveAverages.average_7 = bg_7 as NSDecimalNumber - saveAverages.average_30 = bg_30 as NSDecimalNumber - saveAverages.average_90 = bg_90 as NSDecimalNumber + let TimeInRange = TIRs(TIR: tir, Hypos: hypo, Hypers: hyper) - try? self.coredataContext.save() - } + let avgs = Durations( + day: roundDecimal(bg_1, 1), + week: roundDecimal(bg_7, 1), + month: roundDecimal(bg_30, 1), + total: roundDecimal(bg_total, 1) + ) - let avg = Averages(Average: avgs, Median: median) - var insulinDistribution = [InsulinDistribution]() + let saveAverages = BGaverages(context: self.coredataContext) + saveAverages.date = Date() + saveAverages.average = bg_total as NSDecimalNumber + saveAverages.average_1 = bg_1 as NSDecimalNumber + saveAverages.average_7 = bg_7 as NSDecimalNumber + saveAverages.average_30 = bg_30 as NSDecimalNumber + saveAverages.average_90 = bg_90 as NSDecimalNumber + try? self.coredataContext.save() + + let avg = Averages(Average: avgs, Median: median) + var insulinDistribution = [InsulinDistribution]() + + var insulin = Ins( + TDD: 0, + bolus: 0, + temp_basal: 0, + scheduled_basal: 0 + ) - var insulin = Ins( - TDD: 0, - bolus: 0, - temp_basal: 0, - scheduled_basal: 0 - ) + let requestInsulinDistribution = InsulinDistribution.fetchRequest() as NSFetchRequest + let sortInsulin = NSSortDescriptor(key: "date", ascending: false) + requestInsulinDistribution.sortDescriptors = [sortInsulin] + requestInsulinDistribution.fetchLimit = 1 - coredataContext.performAndWait { - let requestInsulinDistribution = InsulinDistribution.fetchRequest() as NSFetchRequest - let sortInsulin = NSSortDescriptor(key: "date", ascending: false) - requestInsulinDistribution.sortDescriptors = [sortInsulin] - requestInsulinDistribution.fetchLimit = 1 + try? insulinDistribution = coredataContext.fetch(requestInsulinDistribution) - try? insulinDistribution = coredataContext.fetch(requestInsulinDistribution) + insulin = Ins( + TDD: roundDecimal(currentTDD, 2), + bolus: insulinDistribution.first != nil ? ((insulinDistribution[0].bolus ?? 0) as Decimal) : 0, + temp_basal: insulinDistribution.first != nil ? ((insulinDistribution[0].tempBasal ?? 0) as Decimal) : 0, + scheduled_basal: insulinDistribution + .first != nil ? ((insulinDistribution[0].scheduledBasal ?? 0) as Decimal) : 0 + ) - insulin = Ins( - TDD: roundDecimal(currentTDD, 2), - bolus: insulinDistribution.first != nil ? ((insulinDistribution[0].bolus ?? 0) as Decimal) : 0, - temp_basal: insulinDistribution.first != nil ? ((insulinDistribution[0].tempBasal ?? 0) as Decimal) : 0, - scheduled_basal: insulinDistribution.first != nil ? ((insulinDistribution[0].scheduledBasal ?? 0) as Decimal) : 0 - ) - } + var sumOfSquares = 0.0 + var sumOfSquares_1 = 0.0 + var sumOfSquares_7 = 0.0 + var sumOfSquares_30 = 0.0 - var sumOfSquares = 0.0 - var sumOfSquares_1 = 0.0 - var sumOfSquares_7 = 0.0 - var sumOfSquares_30 = 0.0 + // Total + for array in bgArray { + sumOfSquares += pow(array - Double(bg_total), 2) + } + // One day + for array_1 in bgArray_1_ { + sumOfSquares_1 += pow(array_1 - Double(bg_1), 2) + } + // week + for array_7 in bgArray_7_ { + sumOfSquares_7 += pow(array_7 - Double(bg_7), 2) + } + // month + for array_30 in bgArray_30_ { + sumOfSquares_30 += pow(array_30 - Double(bg_30), 2) + } - // Total - for array in bgArray { - sumOfSquares += pow(array - Double(bg_total), 2) - } - // One day - for array_1 in bgArray_1_ { - sumOfSquares_1 += pow(array_1 - Double(bg_1), 2) - } - // week - for array_7 in bgArray_7_ { - sumOfSquares_7 += pow(array_7 - Double(bg_7), 2) - } - // month - for array_30 in bgArray_30_ { - sumOfSquares_30 += pow(array_30 - Double(bg_30), 2) - } + // Standard deviation and Coefficient of variation + var sd_total = 0.0 + var cv_total = 0.0 + var sd_1 = 0.0 + var cv_1 = 0.0 + var sd_7 = 0.0 + var cv_7 = 0.0 + var sd_30 = 0.0 + var cv_30 = 0.0 + + // Avoid division by zero + if bg_total > 0 { + sd_total = sqrt(sumOfSquares / Double(nr_bgs)) + cv_total = sd_total / Double(bg_total) * 100 + } + if bg_1 > 0 { + sd_1 = sqrt(sumOfSquares_1 / Double(bgArray_1_.count)) + cv_1 = sd_1 / Double(bg_1) * 100 + } + if bg_7 > 0 { + sd_7 = sqrt(sumOfSquares_7 / Double(bgArray_7_.count)) + cv_7 = sd_7 / Double(bg_7) * 100 + } + if bg_30 > 0 { + sd_30 = sqrt(sumOfSquares_30 / Double(bgArray_30_.count)) + cv_30 = sd_30 / Double(bg_30) * 100 + } - // Standard deviation and Coefficient of variation - var sd_total = 0.0 - var cv_total = 0.0 - var sd_1 = 0.0 - var cv_1 = 0.0 - var sd_7 = 0.0 - var cv_7 = 0.0 - var sd_30 = 0.0 - var cv_30 = 0.0 - - // Avoid division by zero - if bg_total > 0 { - sd_total = sqrt(sumOfSquares / Double(nr_bgs)) - cv_total = sd_total / Double(bg_total) * 100 - } - if bg_1 > 0 { - sd_1 = sqrt(sumOfSquares_1 / Double(bgArray_1_.count)) - cv_1 = sd_1 / Double(bg_1) * 100 - } - if bg_7 > 0 { - sd_7 = sqrt(sumOfSquares_7 / Double(bgArray_7_.count)) - cv_7 = sd_7 / Double(bg_7) * 100 - } - if bg_30 > 0 { - sd_30 = sqrt(sumOfSquares_30 / Double(bgArray_30_.count)) - cv_30 = sd_30 / Double(bg_30) * 100 - } + // Standard Deviations + let standardDeviations = Durations( + day: roundDecimal(Decimal(sd_1), 1), + week: roundDecimal(Decimal(sd_7), 1), + month: roundDecimal(Decimal(sd_30), 1), + total: roundDecimal(Decimal(sd_total), 1) + ) - // Standard Deviations - let standardDeviations = Durations( - day: roundDecimal(Decimal(sd_1), 1), - week: roundDecimal(Decimal(sd_7), 1), - month: roundDecimal(Decimal(sd_30), 1), - total: roundDecimal(Decimal(sd_total), 1) - ) + // CV = standard deviation / sample mean x 100 + let cvs = Durations( + day: roundDecimal(Decimal(cv_1), 1), + week: roundDecimal(Decimal(cv_7), 1), + month: roundDecimal(Decimal(cv_30), 1), + total: roundDecimal(Decimal(cv_total), 1) + ) - // CV = standard deviation / sample mean x 100 - let cvs = Durations( - day: roundDecimal(Decimal(cv_1), 1), - week: roundDecimal(Decimal(cv_7), 1), - month: roundDecimal(Decimal(cv_30), 1), - total: roundDecimal(Decimal(cv_total), 1) - ) + let variance = Variance(SD: standardDeviations, CV: cvs) + + let dailystat = Statistics( + created_at: Date(), + iPhone: UIDevice.current.getDeviceId, + iOS: UIDevice.current.getOSInfo, + Build_Version: version ?? "", + Build_Number: build ?? "1", + Branch: branch, + CopyRightNotice: String(copyrightNotice_.prefix(32)), + Build_Date: buildDate, + Algorithm: algo_, + AdjustmentFactor: af, + Pump: pump_, + CGM: cgm.rawValue, + insulinType: insulin_type.rawValue, + peakActivityTime: iPa, + Carbs_24h: carbTotal, + GlucoseStorage_Days: Decimal(roundDouble(numberOfDays, 1)), + Statistics: Stats( + Distribution: TimeInRange, + Glucose: avg, + HbA1c: hbs, + LoopCycles: loopstat, + Insulin: insulin, + Variance: variance + ) + ) - let variance = Variance(SD: standardDeviations, CV: cvs) - - let dailystat = Statistics( - created_at: Date(), - iPhone: UIDevice.current.getDeviceId, - iOS: UIDevice.current.getOSInfo, - Build_Version: version ?? "", - Build_Number: build ?? "1", - Branch: branch, - CopyRightNotice: String(copyrightNotice_.prefix(32)), - Build_Date: buildDate, - Algorithm: algo_, - AdjustmentFactor: af, - Pump: pump_, - CGM: cgm.rawValue, - insulinType: insulin_type.rawValue, - peakActivityTime: iPa, - Carbs_24h: carbTotal, - GlucoseStorage_Days: Decimal(roundDouble(numberOfDays, 1)), - Statistics: Stats( - Distribution: TimeInRange, - Glucose: avg, - HbA1c: hbs, - LoopCycles: loopstat, - Insulin: insulin, - Variance: variance - ) - ) + storage.transaction { storage in + storage.append(dailystat, to: file, uniqBy: \.created_at) + let uniqeEvents: [Statistics] = storage.retrieve(file, as: [Statistics].self)? + .filter { $0.created_at.addingTimeInterval(24.hours.timeInterval) > Date() } + .sorted { $0.created_at > $1.created_at } ?? [] + storage.save(Array(uniqeEvents), as: file) + } + nightscout.uploadStatistics(dailystat: dailystat) + nightscout.uploadPreferences() - storage.transaction { storage in - storage.append(dailystat, to: file, uniqBy: \.created_at) - let uniqeEvents: [Statistics] = storage.retrieve(file, as: [Statistics].self)? - .filter { $0.created_at.addingTimeInterval(24.hours.timeInterval) > Date() } - .sorted { $0.created_at > $1.created_at } ?? [] - storage.save(Array(uniqeEvents), as: file) + let saveStatsCoreData = StatsData(context: self.coredataContext) + saveStatsCoreData.lastrun = Date() + try? self.coredataContext.save() + print("Test time of statistics computation: \(-1 * now.timeIntervalSinceNow) s") + } } - nightscout.uploadStatistics(dailystat: dailystat) - nightscout.uploadPreferences() - print("Test time of statistics computation: \(-1 * statisticsStartedAt.timeIntervalSinceNow) s") } private func loopStats(loopStatRecord: LoopStats) { @@ -1376,7 +1366,6 @@ final class BaseAPSManager: APSManager, Injectable { try? self.coredataContext.save() } - print("Test time of LoopStats computation: \(-1 * LoopStatsStartedAt.timeIntervalSinceNow) s") } diff --git a/FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift b/FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift index 26837cd97e..cc30ef7868 100644 --- a/FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift +++ b/FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift @@ -187,9 +187,11 @@ final class OpenAPS { var duration: Decimal = 0 var newDuration: Decimal = 0 + var overrideTarget: Decimal = 0 if useOverride { duration = (overrideArray.first?.duration ?? 0) as Decimal + overrideTarget = (overrideArray.first?.target ?? 0) as Decimal let addedMinutes = Int(duration) let date = overrideArray.first?.date ?? Date() if date.addingTimeInterval(addedMinutes.minutes.timeInterval) < Date(), @@ -210,6 +212,7 @@ final class OpenAPS { saveToCoreData.duration = 0 saveToCoreData.indefinite = true saveToCoreData.percentage = Double(overridePercentage) + saveToCoreData.target = overrideTarget as NSDecimalNumber try? self.coredataContext.save() } else { newDuration = Decimal(Date().distance(to: date.addingTimeInterval(addedMinutes.minutes.timeInterval)).minutes) @@ -219,6 +222,7 @@ final class OpenAPS { saveToCoreData.duration = newDuration as NSDecimalNumber saveToCoreData.indefinite = false saveToCoreData.percentage = Double(overridePercentage) + saveToCoreData.target = overrideTarget as NSDecimalNumber try? self.coredataContext.save() } } @@ -233,6 +237,7 @@ final class OpenAPS { unlimited = true overridePercentage = 100 duration = 0 + overrideTarget = 0 } if temptargetActive /* || isPercentageEnabled */ { @@ -269,7 +274,8 @@ final class OpenAPS { useOverride: useOverride, duration: duration, unlimited: unlimited, - hbt: hbt_ + hbt: hbt_, + overrideTarget: overrideTarget ) storage.save(averages, as: OpenAPS.Monitor.oref2_variables) print("Test time for oref2_variables: \(-now.timeIntervalSinceNow) seconds") @@ -287,7 +293,8 @@ final class OpenAPS { useOverride: useOverride, duration: duration, unlimited: unlimited, - hbt: hbt_ + hbt: hbt_, + overrideTarget: overrideTarget ) storage.save(averages, as: OpenAPS.Monitor.oref2_variables) return self.loadFileFromStorage(name: Monitor.oref2_variables) diff --git a/FreeAPS/Sources/Application/FreeAPSApp.swift b/FreeAPS/Sources/Application/FreeAPSApp.swift index 67f66c9046..5b44bd5b46 100644 --- a/FreeAPS/Sources/Application/FreeAPSApp.swift +++ b/FreeAPS/Sources/Application/FreeAPSApp.swift @@ -59,9 +59,20 @@ import Swinject Main.RootView(resolver: resolver) .environment(\.managedObjectContext, dataController.persistentContainer.viewContext) .environmentObject(Icons()) + .onOpenURL(perform: handleURL) } .onChange(of: scenePhase) { newScenePhase in debug(.default, "APPLICATION PHASE: \(newScenePhase)") } } + + private func handleURL(_ url: URL) { + let components = URLComponents(url: url, resolvingAgainstBaseURL: false) + + switch components?.host { + case "device-select-resp": + resolver.resolve(NotificationCenter.self)!.post(name: .openFromGarminConnect, object: url) + default: break + } + } } diff --git a/FreeAPS/Sources/Assemblies/ServiceAssembly.swift b/FreeAPS/Sources/Assemblies/ServiceAssembly.swift index 61c0f14597..7782927318 100644 --- a/FreeAPS/Sources/Assemblies/ServiceAssembly.swift +++ b/FreeAPS/Sources/Assemblies/ServiceAssembly.swift @@ -19,5 +19,6 @@ final class ServiceAssembly: Assembly { container.register(HealthKitManager.self) { r in BaseHealthKitManager(resolver: r) } container.register(UserNotificationsManager.self) { r in BaseUserNotificationsManager(resolver: r) } container.register(WatchManager.self) { r in BaseWatchManager(resolver: r) } + container.register(GarminManager.self) { r in BaseGarminManager(resolver: r) } } } diff --git a/FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings b/FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings index 9a440ff44e..d096539fe3 100644 --- a/FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings +++ b/FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings @@ -227,7 +227,7 @@ Enact a temp Basal or a temp target */ /* */ "Manual Temp Basal" = "Ручная ВБС"; -/* Allow uploads tp NS */ +/* Allow uploads data to NS */ "Allow uploads" = "Разрешить выгрузку"; /* API secret in NS */ @@ -236,9 +236,6 @@ Enact a temp Basal or a temp target */ /* Connect to NS */ "Connect" = "Подключить"; -/* Connected to NS */ -"Connected!" = "Подключено!"; - /* Connecting to NS */ "Connecting..." = "Подключение..."; diff --git a/FreeAPS/Sources/Models/FreeAPSSettings.swift b/FreeAPS/Sources/Models/FreeAPSSettings.swift index 559ec7c093..2ae3ef5a28 100644 --- a/FreeAPS/Sources/Models/FreeAPSSettings.swift +++ b/FreeAPS/Sources/Models/FreeAPSSettings.swift @@ -13,9 +13,8 @@ struct FreeAPSSettings: JSON, Equatable { var skipBolusScreenAfterCarbs: Bool = false var displayHR: Bool = false var cgm: CGMType = .nightscout - var uploadGlucose: Bool = false + var uploadGlucose: Bool = true var useCalendar: Bool = false - var useAppleHealth: Bool = false var glucoseBadge: Bool = false var glucoseNotificationsAlways: Bool = false var useAlarmSound: Bool = false @@ -24,13 +23,23 @@ struct FreeAPSSettings: JSON, Equatable { var highGlucose: Decimal = 270 var carbsRequiredThreshold: Decimal = 10 var animatedBackground: Bool = false - var displayStatistics: Bool = false var useFPUconversion: Bool = true var individualAdjustmentFactor: Decimal = 0.5 var timeCap: Int = 8 var minuteInterval: Int = 30 var delay: Int = 60 + var useAppleHealth: Bool = false var smoothGlucose: Bool = false + var displayOnWatch: AwConfig = .BGTarget + var overrideHbA1cUnit: Bool = false + var high: Decimal = 145 + var low: Decimal = 70 + var uploadStats: Bool = true + var hours: Int = 6 + var xGridLines: Bool = true + var yGridLines: Bool = true + var oneDimensionalGraph: Bool = false + var rulerMarks: Bool = false } extension FreeAPSSettings: Decodable { @@ -81,6 +90,12 @@ extension FreeAPSSettings: Decodable { if let displayHR = try? container.decode(Bool.self, forKey: .displayHR) { settings.displayHR = displayHR + // compatibility if displayOnWatch is not available in json files + settings.displayOnWatch = (displayHR == true) ? AwConfig.HR : AwConfig.BGTarget + } + + if let displayOnWatch = try? container.decode(AwConfig.self, forKey: .displayOnWatch) { + settings.displayOnWatch = displayOnWatch } if let cgm = try? container.decode(CGMType.self, forKey: .cgm) { @@ -154,14 +169,42 @@ extension FreeAPSSettings: Decodable { settings.animatedBackground = animatedBackground } - if let displayStatistics = try? container.decode(Bool.self, forKey: .displayStatistics) { - settings.displayStatistics = displayStatistics - } - if let smoothGlucose = try? container.decode(Bool.self, forKey: .smoothGlucose) { settings.smoothGlucose = smoothGlucose } + if let low = try? container.decode(Decimal.self, forKey: .low) { + settings.low = low + } + + if let high = try? container.decode(Decimal.self, forKey: .high) { + settings.high = high + } + + if let uploadStats = try? container.decode(Bool.self, forKey: .uploadStats) { + settings.uploadStats = uploadStats + } + + if let hours = try? container.decode(Int.self, forKey: .hours) { + settings.hours = hours + } + + if let xGridLines = try? container.decode(Bool.self, forKey: .xGridLines) { + settings.xGridLines = xGridLines + } + + if let yGridLines = try? container.decode(Bool.self, forKey: .yGridLines) { + settings.yGridLines = yGridLines + } + + if let oneDimensionalGraph = try? container.decode(Bool.self, forKey: .oneDimensionalGraph) { + settings.oneDimensionalGraph = oneDimensionalGraph + } + + if let rulerMarks = try? container.decode(Bool.self, forKey: .rulerMarks) { + settings.rulerMarks = rulerMarks + } + self = settings } } diff --git a/FreeAPS/Sources/Models/Oref2_variables.swift b/FreeAPS/Sources/Models/Oref2_variables.swift index 638709016e..f74e99cafc 100644 --- a/FreeAPS/Sources/Models/Oref2_variables.swift +++ b/FreeAPS/Sources/Models/Oref2_variables.swift @@ -12,6 +12,7 @@ struct Oref2_variables: JSON, Equatable { var duration: Decimal var unlimited: Bool var hbt: Decimal + var overrideTarget: Decimal init( average_total_data: Decimal, @@ -24,7 +25,8 @@ struct Oref2_variables: JSON, Equatable { useOverride: Bool, duration: Decimal, unlimited: Bool, - hbt: Decimal + hbt: Decimal, + overrideTarget: Decimal ) { self.average_total_data = average_total_data self.weightedAverage = weightedAverage @@ -37,6 +39,7 @@ struct Oref2_variables: JSON, Equatable { self.duration = duration self.unlimited = unlimited self.hbt = hbt + self.overrideTarget = overrideTarget } } @@ -53,5 +56,6 @@ extension Oref2_variables { case duration case unlimited case hbt + case overrideTarget } } diff --git a/FreeAPS/Sources/Models/Preferences.swift b/FreeAPS/Sources/Models/Preferences.swift index 445873fa00..80f94c3e9f 100644 --- a/FreeAPS/Sources/Models/Preferences.swift +++ b/FreeAPS/Sources/Models/Preferences.swift @@ -52,11 +52,7 @@ struct Preferences: JSON { var enableSMB_high_bg: Bool = false var enableSMB_high_bg_target: Decimal = 110 var threshold_setting: Decimal = 65 - var high: Decimal = 10 - var low: Decimal = 4 var updateInterval: Decimal = 20 - var overrideHbA1cUnit: Bool = false - var displayLoops: Bool = false } extension Preferences { @@ -111,11 +107,7 @@ extension Preferences { case enableSMB_high_bg case enableSMB_high_bg_target case threshold_setting - case high - case low case updateInterval - case overrideHbA1cUnit - case displayLoops } } diff --git a/FreeAPS/Sources/Models/TIRforChart.swift b/FreeAPS/Sources/Models/TIRforChart.swift new file mode 100644 index 0000000000..bdbc13e384 --- /dev/null +++ b/FreeAPS/Sources/Models/TIRforChart.swift @@ -0,0 +1,8 @@ + +import Foundation + +struct ShapeModel: Identifiable { + var type: String + var percent: Decimal + var id = UUID() +} diff --git a/FreeAPS/Sources/Modules/AddCarbs/View/AddCarbsRootView.swift b/FreeAPS/Sources/Modules/AddCarbs/View/AddCarbsRootView.swift index 0a7701784c..29d4490ed4 100644 --- a/FreeAPS/Sources/Modules/AddCarbs/View/AddCarbsRootView.swift +++ b/FreeAPS/Sources/Modules/AddCarbs/View/AddCarbsRootView.swift @@ -36,50 +36,52 @@ extension AddCarbs { } } } + Section { - Section { - HStack { - Text("Carbs").fontWeight(.semibold) - Spacer() - DecimalTextField( - "0", - value: $state.carbs, - formatter: formatter, - autofocus: true, - cleanInput: true - ) - Text("grams").foregroundColor(.secondary) - }.padding(.vertical) + HStack { + Text("Carbs").fontWeight(.semibold) + Spacer() + DecimalTextField( + "0", + value: $state.carbs, + formatter: formatter, + autofocus: true, + cleanInput: true + ) + Text("grams").foregroundColor(.secondary) + }.padding(.vertical) - if state.useFPU { - proteinAndFat() - } - HStack { - Button { - isPromtPresented = true - } - label: { Text("Save as Preset") } + if state.useFPU { + proteinAndFat() + } + HStack { + Button { + isPromtPresented = true } - .frame(maxWidth: .infinity, alignment: .trailing) - .controlSize(.mini) - .buttonStyle(BorderlessButtonStyle()) + label: { Text("Save as Preset") } + } + .frame(maxWidth: .infinity, alignment: .trailing) + .controlSize(.mini) + .buttonStyle(BorderlessButtonStyle()) - .disabled( - (state.carbs <= 0 && state.fat <= 0 && state.protein <= 0) || - ( - (((state.selection?.carbs ?? 0) as NSDecimalNumber) as Decimal) == state - .carbs && (((state.selection?.fat ?? 0) as NSDecimalNumber) as Decimal) == state - .fat && (((state.selection?.protein ?? 0) as NSDecimalNumber) as Decimal) == state - .protein - ) - ) - .popover(isPresented: $isPromtPresented) { - presetPopover - } + .disabled( + (state.carbs <= 0 && state.fat <= 0 && state.protein <= 0) || + ( + (((state.selection?.carbs ?? 0) as NSDecimalNumber) as Decimal) == state + .carbs && (((state.selection?.fat ?? 0) as NSDecimalNumber) as Decimal) == state + .fat && (((state.selection?.protein ?? 0) as NSDecimalNumber) as Decimal) == state + .protein + ) + ) + .popover(isPresented: $isPromtPresented) { + presetPopover } } - Section { - mealPresets + + if state.useFPU { + Section { + mealPresets + } } Section { @@ -88,8 +90,15 @@ extension AddCarbs { Section(footer: Text(state.waitersNotepad().description)) { Button { state.add() } - label: { Text("Save and continue") } + label: { Text("Save and continue").font(.title3) } .disabled(state.carbs <= 0 && state.fat <= 0 && state.protein <= 0) + .frame(maxWidth: .infinity, alignment: .center) + } + + if !state.useFPU { + Section { + mealPresets + } } } .onAppear(perform: configureView) @@ -109,7 +118,7 @@ extension AddCarbs { preset.protein = state.protein as NSDecimalNumber preset.carbs = state.carbs as NSDecimalNumber try? moc.save() - state.selection = preset + state.addNewPresetToWaitersNotepad(dish) saved = false isPromtPresented = false } @@ -166,19 +175,19 @@ extension AddCarbs { ) Button { if state.carbs != 0, - (state.carbs - (((state.selection?.carbs ?? 0) as NSDecimalNumber) as Decimal) as Decimal) > 0 + (state.carbs - (((state.selection?.carbs ?? 0) as NSDecimalNumber) as Decimal) as Decimal) >= 0 { state.carbs -= (((state.selection?.carbs ?? 0) as NSDecimalNumber) as Decimal) } else { state.carbs = 0 } if state.fat != 0, - (state.fat - (((state.selection?.fat ?? 0) as NSDecimalNumber) as Decimal) as Decimal) > 0 + (state.fat - (((state.selection?.fat ?? 0) as NSDecimalNumber) as Decimal) as Decimal) >= 0 { state.fat -= (((state.selection?.fat ?? 0) as NSDecimalNumber) as Decimal) } else { state.fat = 0 } if state.protein != 0, - (state.protein - (((state.selection?.protein ?? 0) as NSDecimalNumber) as Decimal) as Decimal) > 0 + (state.protein - (((state.selection?.protein ?? 0) as NSDecimalNumber) as Decimal) as Decimal) >= 0 { state.protein -= (((state.selection?.protein ?? 0) as NSDecimalNumber) as Decimal) } else { state.protein = 0 } diff --git a/FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift b/FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift index 77d3480653..00cc0ff175 100644 --- a/FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift +++ b/FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift @@ -37,7 +37,7 @@ extension AddTempTarget { var lowTarget = low if viewPercantage { - lowTarget = computeTarget() + lowTarget = Decimal(round(Double(computeTarget()))) coredataContext.performAndWait { let saveToCoreData = TempTargets(context: self.coredataContext) saveToCoreData.id = UUID().uuidString @@ -90,7 +90,6 @@ extension AddTempTarget { let setHBT = TempTargetsSlider(context: self.coredataContext) setHBT.enabled = false setHBT.date = Date() - try? self.coredataContext.save() } } @@ -102,10 +101,9 @@ extension AddTempTarget { var lowTarget = low if viewPercantage { - lowTarget = computeTarget() + lowTarget = Decimal(round(Double(computeTarget()))) saveSettings = true } - var highTarget = lowTarget if units == .mmolL, !viewPercantage { @@ -190,7 +188,7 @@ extension AddTempTarget { ratio = maxValue target = (c / ratio) - c + 100 } - return target + return Decimal(Double(target)) } } } diff --git a/FreeAPS/Sources/Modules/CGM/CGMStateModel.swift b/FreeAPS/Sources/Modules/CGM/CGMStateModel.swift index 8affaf016b..6a5e0b969f 100644 --- a/FreeAPS/Sources/Modules/CGM/CGMStateModel.swift +++ b/FreeAPS/Sources/Modules/CGM/CGMStateModel.swift @@ -13,7 +13,7 @@ extension CGM { @Published var setupCGM: Bool = false @Published var cgm: CGMType = .nightscout // @Published var transmitterID = "" - @Published var uploadGlucose = false + @Published var uploadGlucose = true @Published var smoothGlucose = false @Published var createCalendarEvents = false @Published var calendarIDs: [String] = [] diff --git a/FreeAPS/Sources/Modules/ConfigEditor/View/ConfigEditorRootView.swift b/FreeAPS/Sources/Modules/ConfigEditor/View/ConfigEditorRootView.swift index ba8544a568..fb46b233a3 100644 --- a/FreeAPS/Sources/Modules/ConfigEditor/View/ConfigEditorRootView.swift +++ b/FreeAPS/Sources/Modules/ConfigEditor/View/ConfigEditorRootView.swift @@ -9,35 +9,37 @@ extension ConfigEditor { @State private var showShareSheet = false var body: some View { - TextEditor(text: $state.configText) - .keyboardType(.asciiCapable) - .font(.system(.subheadline, design: .monospaced)) - .allowsTightening(true) - .autocapitalization(.none) - .disableAutocorrection(true) - .toolbar { - ToolbarItemGroup(placement: .bottomBar) { - Spacer() - Button { showShareSheet = true } - label: { - Image(systemName: "square.and.arrow.up") + ZStack { + TextEditor(text: $state.configText) + .keyboardType(.asciiCapable) + .font(.system(.subheadline, design: .monospaced)) + .allowsTightening(true) + .autocapitalization(.none) + .disableAutocorrection(true) + .toolbar { + ToolbarItemGroup(placement: .bottomBar) { + Spacer() + Button { showShareSheet = true } + label: { + Image(systemName: "square.and.arrow.up") + } } } - } - .navigationBarItems( - trailing: Button("Save", action: state.save) - ) - .sheet(isPresented: $showShareSheet) { - ShareSheet(activityItems: [state.provider.urlFor(file: state.file)!]) - } - .onAppear { - configureView { - state.file = file + .navigationBarItems( + trailing: Button("Save", action: state.save) + ) + .sheet(isPresented: $showShareSheet) { + ShareSheet(activityItems: [state.provider.urlFor(file: state.file)!]) } - } - .navigationTitle(file) - .navigationBarTitleDisplayMode(.inline) - .padding() + .onAppear { + configureView { + state.file = file + } + } + .navigationTitle(file) + .navigationBarTitleDisplayMode(.inline) + .padding() + } } } } diff --git a/FreeAPS/Sources/Modules/DataTable/DataTableDataFlow.swift b/FreeAPS/Sources/Modules/DataTable/DataTableDataFlow.swift index 3f39b29aa7..d040778068 100644 --- a/FreeAPS/Sources/Modules/DataTable/DataTableDataFlow.swift +++ b/FreeAPS/Sources/Modules/DataTable/DataTableDataFlow.swift @@ -73,6 +73,13 @@ enum DataTable { return formatter } + private var tempTargetFormater: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 1 + return formatter + } + init( units: GlucoseUnits, type: DataType, @@ -138,7 +145,7 @@ enum DataTable { secondAmount = secondAmount.asMmolL } - return numberFormater.string(from: converted as NSNumber)! + " - " + numberFormater + return tempTargetFormater.string(from: converted as NSNumber)! + " - " + tempTargetFormater .string(from: secondAmount as NSNumber)! + " \(units.rawValue)" case .resume, .suspend: diff --git a/FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift b/FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift index cd91ced17a..af2af1f7bb 100644 --- a/FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift +++ b/FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift @@ -67,7 +67,7 @@ extension DataTable { private var glucoseList: some View { List { ForEach(state.glucose) { item in - gluciseView(item) + glucoseView(item) }.onDelete(perform: deleteGlucose) } } @@ -151,7 +151,7 @@ extension DataTable { } } - @ViewBuilder private func gluciseView(_ item: Glucose) -> some View { + @ViewBuilder private func glucoseView(_ item: Glucose) -> some View { VStack(alignment: .leading, spacing: 4) { HStack { Text(dateFormatter.string(from: item.glucose.dateString)) diff --git a/FreeAPS/Sources/Modules/Home/DurationButton.swift b/FreeAPS/Sources/Modules/Home/DurationButton.swift deleted file mode 100644 index dfeb49de79..0000000000 --- a/FreeAPS/Sources/Modules/Home/DurationButton.swift +++ /dev/null @@ -1,41 +0,0 @@ -import SwiftUI - -protocol DurationButton: CaseIterable { - var title: String { get } -} - -extension DurationButton where Self: RawRepresentable, RawValue == String { - var title: String { - rawValue - } -} - -enum durationState: String, DurationButton { - case day = "Past 24 Hours " - case week = "Past Week " - case month = "Past Month " - case total = "All Past Days of Data " -} - -struct durationButton: View { - let states: [T] - @State var currentIndex = 0 - @Binding var selectedState: T - - var body: some View { - Button { - currentIndex = currentIndex < states.count - 1 ? currentIndex + 1 : 0 - selectedState = states[currentIndex] - } label: { - Text(NSLocalizedString(states[currentIndex].title, comment: "Duration displayed in statPanel")) - .font(.caption2) - .foregroundColor(.secondary) - } - - .buttonBorderShape(.automatic) - .controlSize(.mini) - .buttonStyle(.bordered) - // .padding([.trailing], 15) - // .frame(maxWidth: .infinity, alignment: .trailing) - } -} diff --git a/FreeAPS/Sources/Modules/Home/HomeDataFlow.swift b/FreeAPS/Sources/Modules/Home/HomeDataFlow.swift index cbd26f6881..e7bb1930f6 100644 --- a/FreeAPS/Sources/Modules/Home/HomeDataFlow.swift +++ b/FreeAPS/Sources/Modules/Home/HomeDataFlow.swift @@ -7,7 +7,6 @@ enum Home { protocol HomeProvider: Provider { var suggestion: Suggestion? { get } - var statistics: Statistics? { get } var enactedSuggestion: Suggestion? { get } func heartbeatNow() func filteredGlucose(hours: Int) -> [BloodGlucose] diff --git a/FreeAPS/Sources/Modules/Home/HomeProvider.swift b/FreeAPS/Sources/Modules/Home/HomeProvider.swift index 8cdceb6d56..caef9d847f 100644 --- a/FreeAPS/Sources/Modules/Home/HomeProvider.swift +++ b/FreeAPS/Sources/Modules/Home/HomeProvider.swift @@ -14,14 +14,6 @@ extension Home { storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self) } - var statistics: Statistics? { - let stat = storage.retrieve(OpenAPS.Monitor.statistics, as: [Statistics].self) - if stat?.count ?? 0 != 0 { - return stat![0] - } - return nil - } - var enactedSuggestion: Suggestion? { storage.retrieve(OpenAPS.Enact.enacted, as: Suggestion.self) } diff --git a/FreeAPS/Sources/Modules/Home/HomeStateModel.swift b/FreeAPS/Sources/Modules/Home/HomeStateModel.swift index 9e07d92a61..357f88690a 100644 --- a/FreeAPS/Sources/Modules/Home/HomeStateModel.swift +++ b/FreeAPS/Sources/Modules/Home/HomeStateModel.swift @@ -13,8 +13,7 @@ extension Home { @Published var glucose: [BloodGlucose] = [] @Published var suggestion: Suggestion? - @Published var statistics: Statistics? - @Published var displayStatistics = false + @Published var uploadStats = false @Published var enactedSuggestion: Suggestion? @Published var recentGlucose: BloodGlucose? @Published var glucoseDelta: Int? @@ -46,15 +45,19 @@ extension Home { @Published var carbsRequired: Decimal? @Published var allowManualTemp = false @Published var units: GlucoseUnits = .mmolL - @Published var low: Decimal = 4 - @Published var high: Decimal = 10 - @Published var displayLoops = false @Published var pumpDisplayState: PumpDisplayState? @Published var alarm: GlucoseAlarm? @Published var animatedBackground = false @Published var manualTempBasal = false @Published var smooth = false @Published var maxValue: Decimal = 1.2 + @Published var lowGlucose: Decimal = 4 / 0.0555 + @Published var highGlucose: Decimal = 10 / 0.0555 + @Published var overrideUnit = false + @Published var screenHours: Int = 6 + @Published var displayXgridLines: Bool = false + @Published var displayYgridLines: Bool = false + @Published var thresholdLines: Bool = false override func subscribe() { setupGlucose() @@ -67,14 +70,9 @@ extension Home { setupCarbs() setupBattery() setupReservoir() - setupStatistics() suggestion = provider.suggestion - statistics = provider.statistics - displayStatistics = settingsManager.settings.displayStatistics - low = settingsManager.preferences.low - high = settingsManager.preferences.high - displayLoops = settingsManager.preferences.displayLoops + uploadStats = settingsManager.settings.uploadStats enactedSuggestion = provider.enactedSuggestion units = settingsManager.settings.units allowManualTemp = !settingsManager.settings.closedLoop @@ -87,6 +85,13 @@ extension Home { setupCurrentTempTarget() smooth = settingsManager.settings.smoothGlucose maxValue = settingsManager.preferences.autosensMax + lowGlucose = settingsManager.settings.low + highGlucose = settingsManager.settings.high + overrideUnit = settingsManager.settings.overrideHbA1cUnit + screenHours = settingsManager.settings.hours + displayXgridLines = settingsManager.settings.xGridLines + displayYgridLines = settingsManager.settings.yGridLines + thresholdLines = settingsManager.settings.rulerMarks broadcaster.register(GlucoseObserver.self, observer: self) broadcaster.register(SuggestionObserver.self, observer: self) @@ -321,13 +326,6 @@ extension Home { } } - private func setupStatistics() { - DispatchQueue.main.async { [weak self] in - guard let self = self else { return } - self.statistics = self.provider.statistics - } - } - private func setupBattery() { DispatchQueue.main.async { [weak self] in guard let self = self else { return } @@ -380,7 +378,6 @@ extension Home.StateModel: { func glucoseDidUpdate(_: [BloodGlucose]) { setupGlucose() - setupStatistics() } func suggestionDidUpdate(_ suggestion: Suggestion) { @@ -391,17 +388,21 @@ extension Home.StateModel: func settingsDidChange(_ settings: FreeAPSSettings) { allowManualTemp = !settings.closedLoop - displayStatistics = settingsManager.settings.displayStatistics + uploadStats = settingsManager.settings.uploadStats closedLoop = settingsManager.settings.closedLoop - low = settingsManager.preferences.low - high = settingsManager.preferences.high - displayLoops = settingsManager.preferences.displayLoops units = settingsManager.settings.units animatedBackground = settingsManager.settings.animatedBackground manualTempBasal = apsManager.isManualTempBasal smooth = settingsManager.settings.smoothGlucose + lowGlucose = settingsManager.settings.low + highGlucose = settingsManager.settings.high + overrideUnit = settingsManager.settings.overrideHbA1cUnit + screenHours = settingsManager.settings.hours + displayXgridLines = settingsManager.settings.xGridLines + displayYgridLines = settingsManager.settings.yGridLines + thresholdLines = settingsManager.settings.rulerMarks + setupGlucose() - setupStatistics() } func pumpHistoryDidUpdate(_: [PumpHistoryEvent]) { @@ -429,7 +430,6 @@ extension Home.StateModel: func enactedSuggestionDidUpdate(_ suggestion: Suggestion) { enactedSuggestion = suggestion setStatusTitle() - setupStatistics() } func pumpBatteryDidChange(_: Battery) { diff --git a/FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift b/FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift index db49587072..a0fc24a099 100644 --- a/FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift +++ b/FreeAPS/Sources/Modules/Home/View/Chart/MainChartView.swift @@ -19,26 +19,22 @@ typealias GlucoseYRange = (minValue: Int, minY: CGFloat, maxValue: Int, maxY: CG struct MainChartView: View { private enum Config { static let endID = "End" - static let screenHours = 6 static let basalHeight: CGFloat = 80 static let topYPadding: CGFloat = 20 - static let bottomYPadding: CGFloat = 50 + static let bottomYPadding: CGFloat = 80 static let minAdditionalWidth: CGFloat = 150 - static let maxGlucose = 250 - static let minGlucose = 50 + static let maxGlucose = 270 + static let minGlucose = 45 static let yLinesCount = 5 static let glucoseScale: CGFloat = 2 // default 2 static let bolusSize: CGFloat = 8 static let bolusScale: CGFloat = 2.5 static let carbsSize: CGFloat = 10 static let carbsScale: CGFloat = 0.3 - static let upperTarget: CGFloat = 180 - static let lowerTarget: CGFloat = 70 } @Binding var glucose: [BloodGlucose] @Binding var suggestion: Suggestion? - @Binding var statistcs: Statistics? @Binding var tempBasals: [PumpHistoryEvent] @Binding var boluses: [PumpHistoryEvent] @Binding var suspensions: [PumpHistoryEvent] @@ -51,6 +47,12 @@ struct MainChartView: View { @Binding var timerDate: Date @Binding var units: GlucoseUnits @Binding var smooth: Bool + @Binding var highGlucose: Decimal + @Binding var lowGlucose: Decimal + @Binding var screenHours: Int + @Binding var displayXgridLines: Bool + @Binding var displayYgridLines: Bool + @Binding var thresholdLines: Bool @State var didAppearTrigger = false @State private var glucoseDots: [CGRect] = [] @@ -66,7 +68,7 @@ struct MainChartView: View { @State private var carbsPath = Path() @State private var fpuDots: [DotInfo] = [] @State private var fpuPath = Path() - @State private var glucoseYGange: GlucoseYRange = (0, 0, 0, 0) + @State private var glucoseYRange: GlucoseYRange = (0, 0, 0, 0) @State private var offset: CGFloat = 0 @State private var cachedMaxBasalRate: Decimal? @@ -78,6 +80,13 @@ struct MainChartView: View { return formatter } + private var date24Formatter: DateFormatter { + let formatter = DateFormatter() + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.setLocalizedDateFormatFromTemplate("HH") + return formatter + } + private var glucoseFormatter: NumberFormatter { let formatter = NumberFormatter() formatter.numberStyle = .decimal @@ -128,6 +137,10 @@ struct MainChartView: View { .onChange(of: vSizeClass) { _ in update(fullSize: geo.size) } + .onChange(of: screenHours) { _ in + update(fullSize: geo.size) + // scroll.scrollTo(Config.endID, anchor: .trailing) + } .onReceive( Foundation.NotificationCenter.default .publisher(for: UIDevice.orientationDidChangeNotification) @@ -168,40 +181,44 @@ struct MainChartView: View { } private func yGridView(fullSize: CGSize) -> some View { - ZStack { + let useColour = displayYgridLines ? Color.secondary : Color.clear + return ZStack { Path { path in - let range = glucoseYGange + let range = glucoseYRange let step = (range.maxY - range.minY) / CGFloat(Config.yLinesCount) for line in 0 ... Config.yLinesCount { path.move(to: CGPoint(x: 0, y: range.minY + CGFloat(line) * step)) path.addLine(to: CGPoint(x: fullSize.width, y: range.minY + CGFloat(line) * step)) } - }.stroke(Color.secondary, lineWidth: 0.2) + }.stroke(useColour, lineWidth: 0.15) + // horizontal limits - let range = glucoseYGange - let topstep = (range.maxY - range.minY) / CGFloat(range.maxValue - range.minValue) * - (CGFloat(range.maxValue) - Config.upperTarget) - if CGFloat(range.maxValue) > Config.upperTarget { - Path { path in - path.move(to: CGPoint(x: 0, y: range.minY + topstep)) - path.addLine(to: CGPoint(x: fullSize.width, y: range.minY + topstep)) - }.stroke(Color.loopYellow, lineWidth: 0.5) - } - let yrange = glucoseYGange - let bottomstep = (yrange.maxY - yrange.minY) / CGFloat(yrange.maxValue - yrange.minValue) * - (CGFloat(yrange.maxValue) - Config.lowerTarget) - if CGFloat(yrange.minValue) < Config.lowerTarget { - Path { path in - path.move(to: CGPoint(x: 0, y: yrange.minY + bottomstep)) - path.addLine(to: CGPoint(x: fullSize.width, y: yrange.minY + bottomstep)) - }.stroke(Color.loopRed, lineWidth: 0.5) + if thresholdLines { + let range = glucoseYRange + let topstep = (range.maxY - range.minY) / CGFloat(range.maxValue - range.minValue) * + (CGFloat(range.maxValue) - CGFloat(highGlucose)) + if CGFloat(range.maxValue) > CGFloat(highGlucose) { + Path { path in + path.move(to: CGPoint(x: 0, y: range.minY + topstep)) + path.addLine(to: CGPoint(x: fullSize.width, y: range.minY + topstep)) + }.stroke(Color.loopYellow, lineWidth: 0.5) // .StrokeStyle(lineWidth: 0.5, dash: [5]) + } + let yrange = glucoseYRange + let bottomstep = (yrange.maxY - yrange.minY) / CGFloat(yrange.maxValue - yrange.minValue) * + (CGFloat(yrange.maxValue) - CGFloat(lowGlucose)) + if CGFloat(yrange.minValue) < CGFloat(lowGlucose) { + Path { path in + path.move(to: CGPoint(x: 0, y: yrange.minY + bottomstep)) + path.addLine(to: CGPoint(x: fullSize.width, y: yrange.minY + bottomstep)) + }.stroke(Color.loopRed, lineWidth: 0.5) + } } } } private func glucoseLabelsView(fullSize: CGSize) -> some View { ForEach(0 ..< Config.yLinesCount + 1, id: \.self) { line -> AnyView in - let range = glucoseYGange + let range = glucoseYRange let yStep = (range.maxY - range.minY) / CGFloat(Config.yLinesCount) let valueStep = Double(range.maxValue - range.minValue) / Double(Config.yLinesCount) let value = round(Double(range.maxValue) - Double(line) * valueStep) * @@ -264,7 +281,8 @@ struct MainChartView: View { @Environment(\.colorScheme) var colorScheme private func xGridView(fullSize: CGSize) -> some View { - ZStack { + let useColour = displayXgridLines ? Color.secondary : Color.clear + return ZStack { Path { path in for hour in 0 ..< hours + hours { let x = firstHourPosition(viewWidth: fullSize.width) + @@ -274,7 +292,7 @@ struct MainChartView: View { path.addLine(to: CGPoint(x: x, y: fullSize.height - 20)) } } - .stroke(Color.secondary, lineWidth: 0.2) + .stroke(useColour, lineWidth: 0.15) Path { path in // vertical timeline let x = timeToXCoordinate(timerDate.timeIntervalSince1970, fullSize: fullSize) @@ -289,10 +307,11 @@ struct MainChartView: View { } private func timeLabelsView(fullSize: CGSize) -> some View { - ZStack { + let format = screenHours > 6 ? date24Formatter : dateFormatter + return ZStack { // X time labels ForEach(0 ..< hours + hours) { hour in - Text(dateFormatter.string(from: firstHourDate().addingTimeInterval(hour.hours.timeInterval))) + Text(format.string(from: firstHourDate().addingTimeInterval(hour.hours.timeInterval))) .font(.caption) .position( x: firstHourPosition(viewWidth: fullSize.width) + @@ -488,7 +507,7 @@ extension MainChartView { let range = self.getGlucoseYRange(fullSize: fullSize) DispatchQueue.main.async { - glucoseYGange = range + glucoseYRange = range glucoseDots = dots } } @@ -504,7 +523,7 @@ extension MainChartView { let range = self.getGlucoseYRange(fullSize: fullSize) DispatchQueue.main.async { - glucoseYGange = range + glucoseYRange = range unSmoothedGlucoseDots = dots } } @@ -649,7 +668,8 @@ extension MainChartView { path.addLine(to: CGPoint(x: 0, y: Config.basalHeight)) } - let endDateTime = dayAgoTime + 1.days.timeInterval + 6.hours.timeInterval + let endDateTime = dayAgoTime + min(max(screenHours, 2), 24).hours.timeInterval + min(max(screenHours, 2), 24).hours + .timeInterval let autotunedBasalPoints = findRegularBasalPoints( timeBegin: dayAgoTime, timeEnd: endDateTime, @@ -855,7 +875,7 @@ extension MainChartView { } private func fullGlucoseWidth(viewWidth: CGFloat) -> CGFloat { - viewWidth * CGFloat(hours) / CGFloat(Config.screenHours) + viewWidth * CGFloat(hours) / CGFloat(min(max(screenHours, 2), 24)) } private func additionalWidth(viewWidth: CGFloat) -> CGFloat { @@ -876,11 +896,11 @@ extension MainChartView { let additionalTime = CGFloat(TimeInterval(max) * 5.minutes.timeInterval - lastDeltaTime) let oneSecondWidth = oneSecondStep(viewWidth: viewWidth) - return Swift.max(additionalTime * oneSecondWidth, Config.minAdditionalWidth) + return Swift.min(Swift.max(additionalTime * oneSecondWidth, Config.minAdditionalWidth), 275) } private func oneSecondStep(viewWidth: CGFloat) -> CGFloat { - viewWidth / (CGFloat(Config.screenHours) * CGFloat(1.hours.timeInterval)) + viewWidth / (CGFloat(min(max(screenHours, 2), 24)) * CGFloat(1.hours.timeInterval)) } private func maxPredValue() -> Int? { diff --git a/FreeAPS/Sources/Modules/Home/View/Header/CurrentGlucoseView.swift b/FreeAPS/Sources/Modules/Home/View/Header/CurrentGlucoseView.swift index f4c0afbc6f..acc8363006 100644 --- a/FreeAPS/Sources/Modules/Home/View/Header/CurrentGlucoseView.swift +++ b/FreeAPS/Sources/Modules/Home/View/Header/CurrentGlucoseView.swift @@ -5,6 +5,8 @@ struct CurrentGlucoseView: View { @Binding var delta: Int? @Binding var units: GlucoseUnits @Binding var alarm: GlucoseAlarm? + @Binding var lowGlucose: Decimal + @Binding var highGlucose: Decimal private var glucoseFormatter: NumberFormatter { let formatter = NumberFormatter() @@ -109,17 +111,17 @@ struct CurrentGlucoseView: View { var colorOfGlucose: Color { let whichGlucose = recentGlucose?.glucose ?? 0 + guard lowGlucose < highGlucose else { return .primary } + switch whichGlucose { - case 71 ... 145: - return .loopGreen - case 1 ... 55, - 217...: + case 0 ..< Int(lowGlucose): return .loopRed - case 56 ... 70, - 146 ... 216: + case Int(lowGlucose) ..< Int(highGlucose): + return .loopGreen + case Int(highGlucose)...: return .loopYellow default: - return .primary + return .loopYellow } } } diff --git a/FreeAPS/Sources/Modules/Home/View/HomeRootView.swift b/FreeAPS/Sources/Modules/Home/View/HomeRootView.swift index a51b897a6f..7f09bcd58a 100644 --- a/FreeAPS/Sources/Modules/Home/View/HomeRootView.swift +++ b/FreeAPS/Sources/Modules/Home/View/HomeRootView.swift @@ -10,7 +10,6 @@ extension Home { @StateObject var state = StateModel() @State var isStatusPopupPresented = false - @State var selectedState: durationState // Average/Median/Readings and CV/SD titles and values switches when you tap them @State var averageOrMedianTitle = NSLocalizedString("Average", comment: "") @@ -48,6 +47,15 @@ extension Home { return formatter } + private var fetchedTargetFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + if state.units == .mmolL { + formatter.maximumFractionDigits = 1 + } else { formatter.maximumFractionDigits = 0 } + return formatter + } + private var targetFormatter: NumberFormatter { let formatter = NumberFormatter() formatter.numberStyle = .decimal @@ -119,7 +127,9 @@ extension Home { recentGlucose: $state.recentGlucose, delta: $state.glucoseDelta, units: $state.units, - alarm: $state.alarm + alarm: $state.alarm, + lowGlucose: $state.lowGlucose, + highGlucose: $state.highGlucose ) .onTapGesture { if state.alarm == nil { @@ -215,11 +225,31 @@ extension Home { guard fetchedPercent.first?.enabled ?? false else { return nil } - let percentString = "\((fetchedPercent.first?.percentage ?? 100).formatted(.number)) %" - let durationString = (fetchedPercent.first?.indefinite ?? false) ? - "" : ", " + (tirFormatter.string(from: (fetchedPercent.first?.duration ?? 0) as NSNumber) ?? "") + " min" + var percentString = "\((fetchedPercent.first?.percentage ?? 100).formatted(.number)) %" + var target = (fetchedPercent.first?.target ?? 100) as Decimal + let indefinite = (fetchedPercent.first?.indefinite ?? false) + let unit = state.units.rawValue + if state.units == .mmolL { + target = target.asMmolL + } + var targetString = (fetchedTargetFormatter.string(from: target as NSNumber) ?? "") + " " + unit + if tempTargetString != nil || target == 0 { targetString = "" } + percentString = percentString == "100 %" ? "" : percentString + var durationString = indefinite ? + "" : ((tirFormatter.string(from: (fetchedPercent.first?.duration ?? 0) as NSNumber) ?? "") + " min") + + var comma1 = ", " + var comma2 = comma1 + if targetString == "" { comma1 = "" } + if percentString == "" { comma1 = "" } + if indefinite { comma2 = "" } + if percentString == "", targetString == "" { + comma1 = "" + comma2 = "" + durationString = "" + } - return percentString + durationString + return percentString + comma1 + targetString + comma2 + durationString } var infoPanel: some View { @@ -264,264 +294,6 @@ extension Home { .frame(maxWidth: .infinity, maxHeight: 30) } - @ViewBuilder private func statPanel() -> some View { - if state.displayStatistics { - VStack(spacing: 8) { - durationButton(states: durationState.allCases, selectedState: $selectedState) - - switch selectedState { - case .day: - - let hba1c_all = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.total ?? 0) as NSNumber) ?? "" - let average_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Average.day ?? 0) as NSNumber) ?? "" - let median_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Median.day ?? 0) as NSNumber) ?? "" - let tir_low = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypos.day ?? 0) as NSNumber) ?? "" - let tir_high = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypers.day ?? 0) as NSNumber) ?? "" - let tir_ = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.TIR.day ?? 0) as NSNumber) ?? "" - let hba1c_ = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.day ?? 0) as NSNumber) ?? "" - let sd_ = numberFormatter - .string(from: (state.statistics?.Statistics.Variance.SD.day ?? 0) as NSNumber) ?? "" - let cv_ = tirFormatter - .string(from: (state.statistics?.Statistics.Variance.CV.day ?? 0) as NSNumber) ?? "" - - averageTIRhca1c(hba1c_all, average_, median_, tir_low, tir_high, tir_, hba1c_, sd_, cv_) - - case .week: - let hba1c_all = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.total ?? 0) as NSNumber) ?? "" - let average_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Average.week ?? 0) as NSNumber) ?? "" - let median_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Median.week ?? 0) as NSNumber) ?? "" - let tir_low = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypos.week ?? 0) as NSNumber) ?? "" - let tir_high = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypers.week ?? 0) as NSNumber) ?? "" - let tir_ = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.TIR.week ?? 0) as NSNumber) ?? "" - let hba1c_ = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.week ?? 0) as NSNumber) ?? "" - let sd_ = numberFormatter - .string(from: (state.statistics?.Statistics.Variance.SD.week ?? 0) as NSNumber) ?? "" - let cv_ = tirFormatter - .string(from: (state.statistics?.Statistics.Variance.CV.week ?? 0) as NSNumber) ?? "" - - averageTIRhca1c(hba1c_all, average_, median_, tir_low, tir_high, tir_, hba1c_, sd_, cv_) - - case .month: - let hba1c_all = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.total ?? 0) as NSNumber) ?? "" - let average_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Average.month ?? 0) as NSNumber) ?? "" - let median_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Median.month ?? 0) as NSNumber) ?? "" - let tir_low = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypos.month ?? 0) as NSNumber) ?? "" - let tir_high = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypers.month ?? 0) as NSNumber) ?? "" - let tir_ = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.TIR.month ?? 0) as NSNumber) ?? "" - let hba1c_ = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.month ?? 0) as NSNumber) ?? "" - let sd_ = numberFormatter - .string(from: (state.statistics?.Statistics.Variance.SD.month ?? 0) as NSNumber) ?? "" - let cv_ = tirFormatter - .string(from: (state.statistics?.Statistics.Variance.CV.month ?? 0) as NSNumber) ?? "" - - averageTIRhca1c(hba1c_all, average_, median_, tir_low, tir_high, tir_, hba1c_, sd_, cv_) - - case .total: - let hba1c_all = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.total ?? 0) as NSNumber) ?? "" - let average_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Average.total ?? 0) as NSNumber) ?? "" - let median_ = targetFormatter - .string(from: (state.statistics?.Statistics.Glucose.Median.total ?? 0) as NSNumber) ?? "" - let tir_low = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypos.total ?? 0) as NSNumber) ?? "" - let tir_high = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.Hypers.total ?? 0) as NSNumber) ?? - "" - let tir_ = tirFormatter - .string(from: (state.statistics?.Statistics.Distribution.TIR.total ?? 0) as NSNumber) ?? "" - let hba1c_ = numberFormatter - .string(from: (state.statistics?.Statistics.HbA1c.total ?? 0) as NSNumber) ?? "" - let sd_ = numberFormatter - .string(from: (state.statistics?.Statistics.Variance.SD.total ?? 0) as NSNumber) ?? "" - let cv_ = tirFormatter - .string(from: (state.statistics?.Statistics.Variance.CV.total ?? 0) as NSNumber) ?? "" - - averageTIRhca1c(hba1c_all, average_, median_, tir_low, tir_high, tir_, hba1c_, sd_, cv_) - } - } - .frame(maxWidth: .infinity) - .padding([.bottom], 20) - } - } - - @ViewBuilder private func averageTIRhca1c( - _ hba1c_all: String, - _ average_: String, - _ median_: String, - _ tir_low: String, - _ tir_high: String, - _ tir_: String, - _ hba1c_: String, - _ sd_: String, - _ cv_: String - ) -> some View { - HStack { - Group { - if selectedState != .total { - HStack { - Text("HbA1c").font(.footnote).foregroundColor(.secondary) - Text(hba1c_).font(.footnote) - } - } else { - HStack { - Text( - "\(NSLocalizedString("HbA1c", comment: "")) (\(targetFormatter.string(from: (state.statistics?.GlucoseStorage_Days ?? 0) as NSNumber) ?? "") \(NSLocalizedString("days", comment: "")))" - ) - .font(.footnote).foregroundColor(.secondary) - Text(hba1c_all).font(.footnote) - } - } - // Average as default. Changes to Median when clicking. - let textAverageTitle = NSLocalizedString("Average", comment: "") - let textMedianTitle = NSLocalizedString("Median", comment: "") - let cgmReadingsTitle = NSLocalizedString("Readings", comment: "CGM readings in statPanel") - - HStack { - Text(averageOrMedianTitle).font(.footnote).foregroundColor(.secondary) - if averageOrMedianTitle == textAverageTitle { - Text(averageOrmedian == "" ? average_ : average_).font(.footnote) - } else if averageOrMedianTitle == textMedianTitle { - Text(averageOrmedian == "" ? median_ : median_).font(.footnote) - } else if averageOrMedianTitle == cgmReadingsTitle { - Text( - averageOrmedian != "0" ? tirFormatter - .string(from: (state.statistics?.Statistics.LoopCycles.readings ?? 0) as NSNumber) ?? "" : "" - ) - .font(.footnote) - } - }.onTapGesture { - if averageOrMedianTitle == textAverageTitle { - averageOrMedianTitle = textMedianTitle - averageOrmedian = median_ - } else if averageOrMedianTitle == textMedianTitle { - averageOrMedianTitle = cgmReadingsTitle - averageOrmedian = tirFormatter - .string(from: (state.statistics?.Statistics.LoopCycles.readings ?? 0) as NSNumber) ?? "" - } else if averageOrMedianTitle == cgmReadingsTitle { - averageOrMedianTitle = textAverageTitle - averageOrmedian = average_ - } - } - .frame(minWidth: 110) - // CV as default. Changes to SD when clicking - let text_CV_Title = NSLocalizedString("CV", comment: "") - let text_SD_Title = NSLocalizedString("SD", comment: "") - - HStack { - Text(CV_or_SD_Title).font(.footnote).foregroundColor(.secondary) - if CV_or_SD_Title == text_CV_Title { - Text(CVorSD == "" ? cv_ : cv_).font(.footnote) - } else { - Text(CVorSD == "" ? sd_ : sd_).font(.footnote) - } - }.onTapGesture { - if CV_or_SD_Title == text_CV_Title { - CV_or_SD_Title = text_SD_Title - CVorSD = sd_ - } else { - CV_or_SD_Title = text_CV_Title - CVorSD = cv_ - } - } - } - } - HStack { - Group { - HStack { - Text( - NSLocalizedString("Low", comment: " ") - ) - .font(.footnote) - .foregroundColor(.secondary) - - Text(tir_low + " %").font(.footnote).foregroundColor(.loopRed) - } - - HStack { - Text("Normal").font(.footnote).foregroundColor(.secondary) - Text(tir_ + " %").font(.footnote).foregroundColor(.loopGreen) - } - - HStack { - Text( - NSLocalizedString("High", comment: " ") - ) - .font(.footnote).foregroundColor(.secondary) - - Text(tir_high + " %").font(.footnote).foregroundColor(.loopYellow) - } - } - } - - if state.settingsManager.preferences.displayLoops { - HStack { - Group { - let loopTitle = NSLocalizedString("Loops", comment: "Nr of Loops in statPanel") - let errorTitle = NSLocalizedString("Errors", comment: "Loop Errors in statPanel") - - HStack { - Text(loopStatTitle).font(.footnote).foregroundColor(.secondary) - Text( - loopStatTitle == loopTitle ? tirFormatter - .string(from: (state.statistics?.Statistics.LoopCycles.loops ?? 0) as NSNumber) ?? "" : - tirFormatter - .string(from: (state.statistics?.Statistics.LoopCycles.errors ?? 0) as NSNumber) ?? "" - ).font(.footnote) - }.onTapGesture { - if loopStatTitle == loopTitle { - loopStatTitle = errorTitle - } else if loopStatTitle == errorTitle { - loopStatTitle = loopTitle - } - } - - HStack { - Text("Interval").font(.footnote) - .foregroundColor(.secondary) - Text( - targetFormatter - .string(from: (state.statistics?.Statistics.LoopCycles.avg_interval ?? 0) as NSNumber) ?? - "" - ).font(.footnote) - } - - HStack { - Text("Duration").font(.footnote) - .foregroundColor(.secondary) - Text( - numberFormatter - .string( - from: (state.statistics?.Statistics.LoopCycles.median_duration ?? 0) as NSNumber - ) ?? "" - ).font(.footnote) - } - } - } - } - } - var legendPanel: some View { ZStack { HStack(alignment: .center) { @@ -580,7 +352,6 @@ extension Home { MainChartView( glucose: $state.glucose, suggestion: $state.suggestion, - statistcs: $state.statistics, tempBasals: $state.tempBasals, boluses: $state.boluses, suspensions: $state.suspensions, @@ -592,7 +363,13 @@ extension Home { carbs: $state.carbs, timerDate: $state.timerDate, units: $state.units, - smooth: $state.smooth + smooth: $state.smooth, + highGlucose: $state.highGlucose, + lowGlucose: $state.lowGlucose, + screenHours: $state.screenHours, + displayXgridLines: $state.displayXgridLines, + displayYgridLines: $state.displayYgridLines, + thresholdLines: $state.thresholdLines ) } .padding(.bottom) @@ -652,6 +429,16 @@ extension Home { }.foregroundColor(.insulin) Spacer() } + Button { state.showModal(for: .statistics) + } + label: { + Image(systemName: "chart.xyaxis.line") + .renderingMode(.template) + .resizable() + .frame(width: 24, height: 24) + .padding(8) + }.foregroundColor(.purple) + Spacer() Button { state.showModal(for: .settings) } label: { Image("settings1") @@ -673,7 +460,6 @@ extension Home { infoPanel mainChart legendPanel - statPanel() bottomPanel(geo) } .edgesIgnoringSafeArea(.vertical) diff --git a/FreeAPS/Sources/Modules/Main/MainStateModel.swift b/FreeAPS/Sources/Modules/Main/MainStateModel.swift index 87d41b5959..a0848b7704 100644 --- a/FreeAPS/Sources/Modules/Main/MainStateModel.swift +++ b/FreeAPS/Sources/Modules/Main/MainStateModel.swift @@ -107,6 +107,7 @@ extension Main { } } +@available(iOS 16.0, *) extension Main.StateModel: CompletionDelegate { func completionNotifyingDidComplete(_: CompletionNotifying) { // close the window diff --git a/FreeAPS/Sources/Modules/OverrideProfilesConfig/OverrideProfilesStateModel.swift b/FreeAPS/Sources/Modules/OverrideProfilesConfig/OverrideProfilesStateModel.swift index ef6f53973e..73453abeed 100644 --- a/FreeAPS/Sources/Modules/OverrideProfilesConfig/OverrideProfilesStateModel.swift +++ b/FreeAPS/Sources/Modules/OverrideProfilesConfig/OverrideProfilesStateModel.swift @@ -7,17 +7,31 @@ extension OverrideProfilesConfig { @Published var isEnabled = false @Published var _indefinite = true @Published var duration: Decimal = 0 + @Published var target: Decimal = 0 + @Published var override_target: Bool = false + + var units: GlucoseUnits = .mmolL + + override func subscribe() { + units = settingsManager.settings.units + } let coredataContext = CoreDataStack.shared.persistentContainer.viewContext func saveSettings() { - coredataContext.perform { + coredataContext.perform { [self] in let saveOverride = Override(context: self.coredataContext) saveOverride.duration = self.duration as NSDecimalNumber saveOverride.indefinite = self._indefinite saveOverride.percentage = self.percentage saveOverride.enabled = self.isEnabled saveOverride.date = Date() + if override_target { + if units == .mmolL { + target = target.asMgdL + } + saveOverride.target = target as NSDecimalNumber + } else { saveOverride.target = 0 } try? self.coredataContext.save() } } @@ -34,6 +48,7 @@ extension OverrideProfilesConfig { percentage = overrideArray.first?.percentage ?? 100 _indefinite = overrideArray.first?.indefinite ?? true duration = (overrideArray.first?.duration ?? 0) as Decimal + let overrideTarget = (overrideArray.first?.target ?? 0) as Decimal var newDuration = Double(duration) if isEnabled { @@ -44,6 +59,10 @@ extension OverrideProfilesConfig { isEnabled = false } newDuration = Date().distance(to: date.addingTimeInterval(addedMinutes.minutes.timeInterval)).minutes + if overrideTarget != 0 { + override_target = true + target = units == .mmolL ? overrideTarget.asMmolL : overrideTarget + } } if newDuration < 0 { newDuration = 0 } else { duration = Decimal(newDuration) } @@ -52,6 +71,8 @@ extension OverrideProfilesConfig { _indefinite = true percentage = 100 duration = 0 + target = 0 + override_target = false } } } diff --git a/FreeAPS/Sources/Modules/OverrideProfilesConfig/View/OverrideProfilesRootView.swift b/FreeAPS/Sources/Modules/OverrideProfilesConfig/View/OverrideProfilesRootView.swift index 756f17117b..acf220cd00 100644 --- a/FreeAPS/Sources/Modules/OverrideProfilesConfig/View/OverrideProfilesRootView.swift +++ b/FreeAPS/Sources/Modules/OverrideProfilesConfig/View/OverrideProfilesRootView.swift @@ -11,6 +11,7 @@ extension OverrideProfilesConfig { @State private var showAlert = false @State private var showingDetail = false @State private var isPresented = true + @State private var alertSring = "" @Environment(\.dismiss) var dismiss private var formatter: NumberFormatter { @@ -20,10 +21,21 @@ extension OverrideProfilesConfig { return formatter } + private var glucoseFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + if state.units == .mmolL { + formatter.maximumFractionDigits = 1 + } + formatter.roundingMode = .halfUp + return formatter + } + var body: some View { Form { Section( - header: Text("Override your Basal, ISF and CR profiles"), + header: Text("Override your Basal, ISF, CR and Target profiles"), footer: Text("" + (!state.isEnabled ? "Currently no Override active" : "")) ) { Toggle(isOn: $state.isEnabled) { @@ -32,7 +44,8 @@ extension OverrideProfilesConfig { if !state.isEnabled { state.duration = 0 state.percentage = 100 - state._indefinite = false + state._indefinite = true + state.override_target = false state.saveSettings() } }) @@ -72,12 +85,48 @@ extension OverrideProfilesConfig { Text("minutes").foregroundColor(.secondary) } } + + HStack { + Toggle(isOn: $state.override_target) { + Text("Override Profile Target") + } + } + if state.override_target { + HStack { + Text("Target Glucose") + DecimalTextField("0", value: $state.target, formatter: glucoseFormatter, cleanInput: false) + Text(state.units.rawValue).foregroundColor(.secondary) + } + } + Button("Save") { showAlert.toggle() + + alertSring = "Selected Override:\n\n\(state.percentage.formatted(.number)) %, " + + ( + state.duration > 0 || !state + ._indefinite ? + ( + state + .duration + .formatted(.number.grouping(.never).rounded().precision(.fractionLength(0))) + + " min." + ) : + " infinite duration." + ) + + ( + (state.target == 0 || !state.override_target) ? "" : + (" Target: " + state.target.formatted() + " " + state.units.rawValue + ".") + ) + + + "\n\n" + + + "Saving this override will change your Profiles and/or your Target Glucose used for looping during the entire selected duration. Tapping save will start your new overide or edit your current active override." } .disabled( - state.isEnabled == false || state - .percentage == 100 || (!state._indefinite && state.duration == 0) + !state + .isEnabled || (state.percentage == 100 && !state.override_target) || + (!state._indefinite && state.duration == 0 || (state.override_target && state.target == 0)) ) .accentColor(.orange) .buttonStyle(BorderlessButtonStyle()) @@ -85,16 +134,11 @@ extension OverrideProfilesConfig { .frame(maxWidth: .infinity, alignment: .center) .controlSize(.mini) .alert( - "Selected Override:\n\n\(state.percentage.formatted(.number)) %, " + - (state.duration > 0 ? "\(state.duration) min" : " infinite duration.") + "\n\n" + - "Saving this override will change your basal insulin, ISF and CR during the entire selected duration. Tapping save will start your new overide or edit your current active override.", + alertSring, isPresented: $showAlert, actions: { Button("Cancel", role: .cancel) {} Button("Start Override", role: .destructive) { - if state.percentage == 100 { - state.isEnabled = false - } else { state.isEnabled = true } if state._indefinite { state.duration = 0 } else if state.duration == 0 { @@ -107,7 +151,9 @@ extension OverrideProfilesConfig { ) } } - }.onAppear { state.savedSettings() } + } + .onAppear(perform: configureView) + .onAppear { state.savedSettings() } } } } diff --git a/FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift b/FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift index 9eaccf541a..8081b61216 100644 --- a/FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift +++ b/FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift @@ -7,16 +7,12 @@ extension PreferencesEditor { @Published var allowAnnouncements = false @Published var insulinReqPercentage: Decimal = 70 @Published var skipBolusScreenAfterCarbs = false - @Published var displayHR = false - @Published var displayStatistics = false @Published var sections: [FieldSection] = [] override func subscribe() { preferences = provider.preferences subscribeSetting(\.allowAnnouncements, on: $allowAnnouncements) { allowAnnouncements = $0 } subscribeSetting(\.insulinReqPercentage, on: $insulinReqPercentage) { insulinReqPercentage = $0 } - subscribeSetting(\.displayHR, on: $displayHR) { displayHR = $0 } - subscribeSetting(\.displayStatistics, on: $displayStatistics) { displayStatistics = $0 } subscribeSetting(\.skipBolusScreenAfterCarbs, on: $skipBolusScreenAfterCarbs) { skipBolusScreenAfterCarbs = $0 } subscribeSetting(\.units, on: $unitsIndex.map { $0 == 0 ? GlucoseUnits.mgdL : .mmolL }) { @@ -25,72 +21,6 @@ extension PreferencesEditor { self?.provider.migrateUnits() } - let statFields = [ - Field( - displayName: NSLocalizedString( - "Low Glucose Limit", - comment: "Display As Low Glucose Percantage Under This Value" - ) + " (\(settingsManager.settings.units.rawValue))", - - type: .decimal(keypath: \.low), - infoText: NSLocalizedString( - "Blood Glucoses Under This Value Will Added To And Displayed as Low Glucose Percantage", - comment: "Description for Low Glucose Limit" - ), - settable: self - ), - Field( - displayName: NSLocalizedString( - "High Glucose Limit", - comment: "Limit For High Glucose in Statistics View" - ) + " (\(settingsManager.settings.units.rawValue))", - - type: .decimal(keypath: \.high), - infoText: NSLocalizedString( - "Blood Glucoses Over This Value Will Added To And Displaved as High Glucose Percantage", - comment: "High Glucose Limit" - ), - settable: self - ), - Field( - displayName: NSLocalizedString( - "Update every number of minutes:", - comment: "How often to update the statistics" - ), - - type: .decimal(keypath: \.updateInterval), - infoText: NSLocalizedString( - "Default is 20 minutes. How often to update and save the statistics.json and to upload last array, when enabled, to Nightscout.", - comment: "Description for update interval for statistics" - ), - settable: self - ), - Field( - displayName: NSLocalizedString( - "Display Loop Cycle statistics", - comment: "Display Display Loop Cycle statistics in statPanel" - ), - type: .boolean(keypath: \.displayLoops), - infoText: NSLocalizedString( - "Displays Loop statistics in the statPanel in Home View", - comment: "Description for Display Loop statistics" - ), - settable: self - ), - Field( - displayName: NSLocalizedString( - "Override HbA1c unit", - comment: "Display %" - ), - type: .boolean(keypath: \.overrideHbA1cUnit), - infoText: NSLocalizedString( - "Change default HbA1c unit in statPanlel. The unit in statPanel will be updateded with next statistics.json update", - comment: "Description for Override HbA1c unit" - ), - settable: self - ) - ] - let mainFields = [ Field( displayName: NSLocalizedString("Insulin curve", comment: "Insulin curve"), @@ -522,9 +452,6 @@ extension PreferencesEditor { ] sections = [ - FieldSection( - displayName: NSLocalizedString("Statistics", comment: "Options for Statistics"), fields: statFields - ), FieldSection( displayName: NSLocalizedString("OpenAPS main settings", comment: "OpenAPS main settings"), fields: mainFields ), diff --git a/FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift b/FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift index f88a50e729..38f374d396 100644 --- a/FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift +++ b/FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift @@ -36,10 +36,6 @@ extension PreferencesEditor { } Toggle("Skip Bolus screen after carbs", isOn: $state.skipBolusScreenAfterCarbs) - - Toggle("Display HR on Watch", isOn: $state.displayHR) - - Toggle("Display Statistics", isOn: $state.displayStatistics) } ForEach(state.sections.indexed(), id: \.1.id) { sectionIndex, section in diff --git a/FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift b/FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift index 7e87372cdb..b227b68e53 100644 --- a/FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift +++ b/FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift @@ -21,6 +21,7 @@ extension Settings { Section(header: Text("Devices")) { Text("Pump").navigationLink(to: .pumpConfig, from: self) Text("CGM").navigationLink(to: .cgm, from: self) + Text("Watch Devices").navigationLink(to: .watch, from: self) } Section(header: Text("Services")) { @@ -32,6 +33,7 @@ extension Settings { Text("Fat And Protein Conversion").navigationLink(to: .fpuConfig, from: self) Text("Profile Override").navigationLink(to: .overrideProfilesConfig, from: self) Text("App Icons").navigationLink(to: .iconConfig, from: self) + Text("Statistics and Home View").navigationLink(to: .statisticsConfig, from: self) } Section(header: Text("Configuration")) { diff --git a/FreeAPS/Sources/Modules/Stat/StatDataFlow.swift b/FreeAPS/Sources/Modules/Stat/StatDataFlow.swift new file mode 100644 index 0000000000..e0f9e6b3af --- /dev/null +++ b/FreeAPS/Sources/Modules/Stat/StatDataFlow.swift @@ -0,0 +1,5 @@ +enum Stat { + enum Config {} +} + +protocol StatProvider: Provider {} diff --git a/FreeAPS/Sources/Modules/Stat/StatProvider.swift b/FreeAPS/Sources/Modules/Stat/StatProvider.swift new file mode 100644 index 0000000000..7dca5d43ff --- /dev/null +++ b/FreeAPS/Sources/Modules/Stat/StatProvider.swift @@ -0,0 +1,3 @@ +extension Stat { + final class Provider: BaseProvider, StatProvider {} +} diff --git a/FreeAPS/Sources/Modules/Stat/StatStateModel.swift b/FreeAPS/Sources/Modules/Stat/StatStateModel.swift new file mode 100644 index 0000000000..a0718ec86b --- /dev/null +++ b/FreeAPS/Sources/Modules/Stat/StatStateModel.swift @@ -0,0 +1,23 @@ +import Foundation +import SwiftUI +import Swinject + +extension Stat { + final class StateModel: BaseStateModel { + @Injected() var settings: SettingsManager! + @Published var highLimit: Decimal? + @Published var lowLimit: Decimal? + @Published var overrideUnit: Bool? + @Published var layingChart: Bool? + + private(set) var units: GlucoseUnits = .mmolL + + override func subscribe() { + highLimit = settingsManager.settings.high + lowLimit = settingsManager.settings.low + units = settingsManager.settings.units + overrideUnit = settingsManager.settings.overrideHbA1cUnit + layingChart = settingsManager.settings.oneDimensionalGraph + } + } +} diff --git a/FreeAPS/Sources/Modules/Stat/View/StatRootView.swift b/FreeAPS/Sources/Modules/Stat/View/StatRootView.swift new file mode 100644 index 0000000000..c37671dc24 --- /dev/null +++ b/FreeAPS/Sources/Modules/Stat/View/StatRootView.swift @@ -0,0 +1,791 @@ +import Charts +import CoreData +import SwiftDate +import SwiftUI +import Swinject + +extension Stat { + struct RootView: BaseView { + let resolver: Resolver + @StateObject var state = StateModel() + + @FetchRequest( + entity: Readings.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)], predicate: NSPredicate( + format: "date >= %@", Calendar.current.startOfDay(for: Date()) as NSDate + ) + ) var fetchedGlucoseDay: FetchedResults + + @FetchRequest( + entity: Readings.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)], + predicate: NSPredicate(format: "date > %@", Date().addingTimeInterval(-24.hours.timeInterval) as NSDate) + ) var fetchedGlucoseTwentyFourHours: FetchedResults + + @FetchRequest( + entity: Readings.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)], + predicate: NSPredicate(format: "date > %@", Date().addingTimeInterval(-7.days.timeInterval) as NSDate) + ) var fetchedGlucoseWeek: FetchedResults + + @FetchRequest( + entity: Readings.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)], predicate: NSPredicate( + format: "date > %@", + Date().addingTimeInterval(-30.days.timeInterval) as NSDate + ) + ) var fetchedGlucoseMonth: FetchedResults + + @FetchRequest( + entity: Readings.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)], predicate: NSPredicate( + format: "date > %@", + Date().addingTimeInterval(-90.days.timeInterval) as NSDate + ) + ) var fetchedGlucose: FetchedResults + + @FetchRequest( + entity: TDD.entity(), + sortDescriptors: [NSSortDescriptor(key: "timestamp", ascending: false)] + ) var fetchedTDD: FetchedResults + + @FetchRequest( + entity: LoopStatRecord.entity(), + sortDescriptors: [NSSortDescriptor(key: "start", ascending: false)], predicate: NSPredicate( + format: "start > %@", + Date().addingTimeInterval(-24.hours.timeInterval) as NSDate + ) + ) var fetchedLoopStats: FetchedResults + + @FetchRequest( + entity: InsulinDistribution.entity(), + sortDescriptors: [NSSortDescriptor(key: "date", ascending: false)] + ) var fetchedInsulin: FetchedResults + + enum Duration: String, CaseIterable, Identifiable { + case Today + case Day + case Week + case Month + case Total + var id: Self { self } + } + + @State private var selectedDuration: Duration = .Today + @State var paddingAmount: CGFloat? = 10 + @State var headline: Color = .secondary + @State var days: Double = 0 + @State var pointSize: CGFloat = 3 + @State var conversionFactor = 0.0555 + + @ViewBuilder func stats() -> some View { + if state.layingChart ?? true { + bloodGlucose + Divider() + } else { + bloodGlucose + Divider() + standingTIRchart + Divider() + } + loops + Divider() + hba1c + } + + @ViewBuilder func chart() -> some View { + switch selectedDuration { + case .Today: + glucoseChart + case .Day: + glucoseChartTwentyFourHours + case .Week: + glucoseChartWeek + case .Month: + glucoseChartMonth + case .Total: + glucoseChart90 + } + if state.layingChart ?? true { + tirChart + } + } + + var body: some View { + ZStack { + VStack(alignment: .center) { + chart().padding(.top, 20) + Divider() + stats() + Divider() + Picker("Duration", selection: $selectedDuration) { + ForEach(Duration.allCases) { duration in + Text(duration.rawValue).tag(Optional(duration)) + } + } + .pickerStyle(.segmented) + } + } + .onAppear(perform: configureView) + .navigationBarTitle("Statistics") + .navigationBarTitleDisplayMode(.automatic) + .navigationBarItems(leading: Button("Close", action: state.hideModal)) + } + + var loops: some View { + VStack { + let loops_ = loopStats(fetchedLoopStats) + HStack { + ForEach(0 ..< loops_.count, id: \.self) { index in + VStack { + Text(loops_[index].string).font(.subheadline).foregroundColor(.secondary) + Text( + index == 0 ? loops_[index].double.formatted() : ( + index == 2 ? loops_[index].double + .formatted(.number.grouping(.never).rounded().precision(.fractionLength(2))) : + loops_[index] + .double + .formatted(.number.grouping(.never).rounded().precision(.fractionLength(1))) + ) + ) + }.padding(.horizontal, 6) + } + } + } + } + + var hba1c: some View { + let useUnit: GlucoseUnits = (state.units == .mmolL && (state.overrideUnit ?? false)) ? .mgdL : + (state.units == .mgdL && (state.overrideUnit ?? false) || state.units == .mmolL) ? .mmolL : .mgdL + return HStack { + let hba1cs = glucoseStats(fetchedGlucose) + let hba1cString = ( + useUnit == .mmolL ? hba1cs.ifcc + .formatted(.number.grouping(.never).rounded().precision(.fractionLength(1))) : hba1cs.ngsp + .formatted(.number.grouping(.never).rounded().precision(.fractionLength(1))) + + " %" + ) + + VStack { + Text("HbA1C").font(.subheadline).foregroundColor(headline) + HStack { + VStack { + Text(hba1cString) + } + } + }.padding([.horizontal], 15) + VStack { + Text("SD").font(.subheadline).foregroundColor(.secondary) + HStack { + VStack { + Text( + hba1cs.sd + .formatted( + .number.grouping(.never).rounded() + .precision(.fractionLength(state.units == .mmolL ? 1 : 0)) + ) + ) + } + } + }.padding([.horizontal], 15) + VStack { + Text("CV").font(.subheadline).foregroundColor(.secondary) + HStack { + VStack { + Text( + hba1cs.cv.formatted(.number.grouping(.never).rounded().precision(.fractionLength(0))) + ) + } + } + }.padding([.horizontal], 15) + // if selectedDuration == .Total || selectedDuration == .Today { + VStack { + Text("Days").font(.subheadline).foregroundColor(.secondary) + HStack { + VStack { + Text(numberOfDays.formatted(.number.grouping(.never).rounded().precision(.fractionLength(1)))) + } + } + }.padding([.horizontal], 15) + // } + } + } + + var bloodGlucose: some View { + VStack { + HStack { + let bgs = glucoseStats(fetchedGlucose) + VStack { + HStack { + Text(selectedDuration == .Today ? "Readings today" : "Readings / 24h").font(.subheadline) + .foregroundColor(.secondary) + } + HStack { + VStack { + Text( + bgs.readings.formatted(.number.grouping(.never).rounded().precision(.fractionLength(0))) + ) + } + } + } + VStack { + HStack { + Text("Average").font(.subheadline).foregroundColor(headline) + } + HStack { + VStack { + Text( + bgs.average + .formatted( + .number.grouping(.never).rounded() + .precision(.fractionLength(state.units == .mmolL ? 1 : 0)) + ) + ) + } + } + } + VStack { + HStack { + Text("Median").font(.subheadline).foregroundColor(.secondary) + } + HStack { + VStack { + Text( + bgs.median + .formatted( + .number.grouping(.never).rounded() + .precision(.fractionLength(state.units == .mmolL ? 1 : 0)) + ) + ) + } + } + } + } + } + } + + var numberOfDays: Double { + let array = selectedDuration == .Today ? fetchedGlucoseDay : selectedDuration == .Day ? + fetchedGlucoseTwentyFourHours : + selectedDuration == .Week ? fetchedGlucoseWeek : selectedDuration == .Month ? fetchedGlucoseMonth : + selectedDuration == + .Total ? fetchedGlucose : fetchedGlucoseDay + + let endIndex = array.count - 1 + var days = 0.0 + + if endIndex > 0 { + let firstElementTime = fetchedGlucose.first?.date ?? Date() + let lastElementTime = fetchedGlucose[endIndex].date ?? Date() + days = (firstElementTime - lastElementTime).timeInterval / 8.64E4 + } + return days + } + + var tirChart: some View { + let array = selectedDuration == .Today ? fetchedGlucoseDay : selectedDuration == .Day ? + fetchedGlucoseTwentyFourHours : + selectedDuration == .Week ? fetchedGlucoseWeek : selectedDuration == .Month ? fetchedGlucoseMonth : + selectedDuration == + .Total ? fetchedGlucose : fetchedGlucoseDay + let fetched = tir(array) + let data: [ShapeModel] = [ + .init(type: "Low", percent: fetched[0].decimal), + .init(type: "In Range", percent: fetched[1].decimal), + .init(type: "High", percent: fetched[2].decimal) + ] + + return Chart(data) { shape in + BarMark( + x: .value("TIR", shape.percent) + ) + .foregroundStyle(by: .value("Group", shape.type)) + .annotation(position: .overlay, alignment: .center) { + Text( + shape.percent == 0 ? "" : shape + .percent < 12 ? "\(shape.percent, format: .number.precision(.fractionLength(0)))" : + "\(shape.percent, format: .number.precision(.fractionLength(0))) %" + ) + } + } + .chartXAxis(.hidden) + .chartForegroundStyleScale(["Low": .red, "In Range": .green, "High": .orange]).frame(maxHeight: 55) + } + + var standingTIRchart: some View { + let array = selectedDuration == .Today ? fetchedGlucoseDay : selectedDuration == .Day ? + fetchedGlucoseTwentyFourHours : + selectedDuration == .Week ? fetchedGlucoseWeek : selectedDuration == .Month ? fetchedGlucoseMonth : + selectedDuration == .Total ? fetchedGlucose : fetchedGlucoseDay + let fetched = tir(array) + let data: [ShapeModel] = [ + .init(type: "Low", percent: fetched[0].decimal), + .init(type: "In Range", percent: fetched[1].decimal), + .init(type: "High", percent: fetched[2].decimal) + ] + + return VStack(alignment: .center) { + Chart(data) { shape in + BarMark( + x: .value("Shape", shape.type), + y: .value("Percentage", shape.percent) + ) + .foregroundStyle(by: .value("Group", shape.type)) + .annotation(position: shape.percent < 5 ? .top : .overlay, alignment: .center) { + Text(shape.percent == 0 ? "" : "\(shape.percent, format: .number.precision(.fractionLength(0))) %") + } + } + .chartYAxis(.hidden) + .chartLegend(.hidden) + .chartForegroundStyleScale(["Low": .red, "In Range": .green, "High": .orange]) + } + } + + var glucoseChart: some View { + let count = fetchedGlucoseDay.count + let lowLimit = (state.lowLimit ?? (4 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + let highLimit = (state.highLimit ?? (10 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + return Chart { + ForEach(fetchedGlucoseDay.filter({ $0.glucose > Int(state.highLimit ?? 145) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("High", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.orange) + .symbolSize(count < 20 ? 30 : 12) + } + ForEach( + fetchedGlucoseDay + .filter({ $0.glucose >= Int(state.lowLimit ?? 70) && $0.glucose <= Int(state.highLimit ?? 145) }), + id: \.date + ) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("In Range", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.green) + .symbolSize(count < 20 ? 30 : 12) + } + ForEach(fetchedGlucoseDay.filter({ $0.glucose < Int(state.lowLimit ?? 70) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("Low", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.red) + .symbolSize(count < 20 ? 30 : 12) + } + } + .chartYAxis { + AxisMarks( + values: [ + 0, + lowLimit, + highLimit, + state.units == .mmolL ? 15 : 270 + ] + ) + } + } + + var glucoseChartTwentyFourHours: some View { + let count = fetchedGlucoseTwentyFourHours.count + let lowLimit = (state.lowLimit ?? (4 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + let highLimit = (state.highLimit ?? (10 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + return Chart { + ForEach(fetchedGlucoseTwentyFourHours.filter({ $0.glucose > Int(state.highLimit ?? 145) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("High", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.orange) + .symbolSize(count < 20 ? 20 : 10) + } + ForEach( + fetchedGlucoseTwentyFourHours + .filter({ $0.glucose >= Int(state.lowLimit ?? 70) && $0.glucose <= Int(state.highLimit ?? 145) }), + id: \.date + ) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("In Range", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.green) + .symbolSize(count < 20 ? 20 : 10) + } + ForEach(fetchedGlucoseTwentyFourHours.filter({ $0.glucose < Int(state.lowLimit ?? 70) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("Low", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.red) + .symbolSize(count < 20 ? 20 : 10) + } + } + .chartYAxis { + AxisMarks( + values: [ + 0, + lowLimit, + highLimit, + state.units == .mmolL ? 15 : 270 + ] + ) + } } + + var glucoseChartWeek: some View { + let lowLimit = (state.lowLimit ?? (4 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + let highLimit = (state.highLimit ?? (10 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + return Chart { + ForEach(fetchedGlucoseWeek.filter({ $0.glucose > Int(state.highLimit ?? 145) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("Low", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.orange) + .symbolSize(5) + } + ForEach( + fetchedGlucoseWeek + .filter({ $0.glucose >= Int(state.lowLimit ?? 70) && $0.glucose <= Int(state.highLimit ?? 145) }), + id: \.date + ) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("In Range", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.green) + .symbolSize(5) + } + ForEach(fetchedGlucoseWeek.filter({ $0.glucose < Int(state.lowLimit ?? 70) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("High", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.red) + .symbolSize(5) + } + } + .chartYAxis { + AxisMarks( + values: [ + 0, + lowLimit, + highLimit, + state.units == .mmolL ? 15 : 270 + ] + ) + } + } + + var glucoseChartMonth: some View { + let lowLimit = (state.lowLimit ?? (4 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + let highLimit = (state.highLimit ?? (10 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + return Chart { + ForEach(fetchedGlucoseMonth.filter({ $0.glucose > Int(state.highLimit ?? 145) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("Low", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.orange) + .symbolSize(2) + } + ForEach( + fetchedGlucoseMonth + .filter({ $0.glucose >= Int(state.lowLimit ?? 70) && $0.glucose <= Int(state.highLimit ?? 145) }), + id: \.date + ) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("In Range", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.green) + .symbolSize(2) + } + ForEach(fetchedGlucoseMonth.filter({ $0.glucose < Int(state.lowLimit ?? 70) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("High", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.red) + .symbolSize(2) + } + } + .chartYAxis { + AxisMarks( + values: [ + 0, + lowLimit, + highLimit, + state.units == .mmolL ? 15 : 270 + ] + ) + } + } + + var glucoseChart90: some View { + let lowLimit = (state.lowLimit ?? (4 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + let highLimit = (state.highLimit ?? (10 * 0.0555)) * (state.units == .mmolL ? Decimal(conversionFactor) : 1) + return Chart { + ForEach(fetchedGlucose.filter({ $0.glucose > Int(state.highLimit ?? 145) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("Low", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.orange) + .symbolSize(2) + } + ForEach( + fetchedGlucose + .filter({ $0.glucose >= Int(state.lowLimit ?? 70) && $0.glucose <= Int(state.highLimit ?? 145) }), + id: \.date + ) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("In Range", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.green) + .symbolSize(2) + } + ForEach(fetchedGlucose.filter({ $0.glucose < Int(state.lowLimit ?? 70) }), id: \.date) { item in + PointMark( + x: .value("Date", item.date ?? Date()), + y: .value("High", Double(item.glucose) * (state.units == .mmolL ? conversionFactor : 1)) + ) + .foregroundStyle(.red) + .symbolSize(2) + } + } + .chartYAxis { + AxisMarks( + values: [ + 0, + lowLimit, + highLimit, + state.units == .mmolL ? 15 : 270 + ] + ) + } + } + + private func loopStats(_ loops: FetchedResults) -> [(double: Double, string: String)] { + guard (loops.first?.start) != nil else { return [] } + + var i = 0.0 + var minimumInt = 999.0 + var maximumInt = 0.0 + var timeIntervalLoops = 0.0 + var previousTimeLoop = loops.first?.end ?? Date() + var timeIntervalLoopArray: [Double] = [] + + let durationArray = loops.compactMap({ each in each.duration }) + let durationArrayCount = durationArray.count + // var durationAverage = durationArray.reduce(0, +) / Double(durationArrayCount) + + let medianDuration = medianCalculationDouble(array: durationArray) + let successsNR = loops.compactMap({ each in each.loopStatus }).filter({ each in each!.contains("Success") }).count + let errorNR = durationArrayCount - successsNR + let successRate: Double? = (Double(successsNR) / Double(successsNR + errorNR)) * 100 + + for each in loops { + if let loopEnd = each.end { + i += 1 + timeIntervalLoops = (previousTimeLoop - (each.start ?? previousTimeLoop)).timeInterval / 60 + + if timeIntervalLoops > 0.0, i != 1 { + timeIntervalLoopArray.append(timeIntervalLoops) + } + if timeIntervalLoops > maximumInt { + maximumInt = timeIntervalLoops + } + if timeIntervalLoops < minimumInt, i != 1 { + minimumInt = timeIntervalLoops + } + previousTimeLoop = loopEnd + } + } + + // Average Loop Interval in minutes + let timeOfFirstIndex = loops.first?.start ?? Date() + let lastIndexWithTimestamp = loops.count - 1 + let timeOfLastIndex = loops[lastIndexWithTimestamp].end ?? Date() + let averageInterval = (timeOfFirstIndex - timeOfLastIndex).timeInterval / 60 / Double(errorNR + successsNR) + + if minimumInt == 999.0 { + minimumInt = 0.0 + } + + var array: [(double: Double, string: String)] = [] + + array.append((double: Double(successsNR + errorNR), string: "Loops")) + array.append((double: averageInterval, string: "Interval")) + array.append((double: medianDuration, string: "Duration")) + array.append((double: successRate ?? 100, string: "%")) + + return array + } + + private func medianCalculation(array: [Int]) -> Double { + guard !array.isEmpty else { + return 0 + } + let sorted = array.sorted() + let length = array.count + + if length % 2 == 0 { + return Double((sorted[length / 2 - 1] + sorted[length / 2]) / 2) + } + return Double(sorted[length / 2]) + } + + private func medianCalculationDouble(array: [Double]) -> Double { + guard !array.isEmpty else { + return 0 + } + let sorted = array.sorted() + let length = array.count + + if length % 2 == 0 { + return (sorted[length / 2 - 1] + sorted[length / 2]) / 2 + } + return sorted[length / 2] + } + + private func glucoseStats(_ glucose_90: FetchedResults) + -> (ifcc: Double, ngsp: Double, average: Double, median: Double, sd: Double, cv: Double, readings: Double) + { + var numberOfDays: Double = 0 + let endIndex = glucose_90.count - 1 + + if endIndex > 0 { + let firstElementTime = glucose_90[0].date ?? Date() + let lastElementTime = glucose_90[endIndex].date ?? Date() + numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4 + } + var duration = 1 + var denominator: Double = 1 + + switch selectedDuration { + case .Today: + let minutesSinceMidnight = Calendar.current.component(.hour, from: Date()) * 60 + Calendar.current + .component(.minute, from: Date()) + duration = minutesSinceMidnight + denominator = 1 + case .Day: + duration = 1 * 1440 + denominator = 1 + case .Week: + duration = 7 * 1440 + if numberOfDays > 7 { denominator = 7 } else { denominator = numberOfDays } + case .Month: + duration = 30 * 1440 + if numberOfDays > 30 { denominator = 30 } else { denominator = numberOfDays } + case .Total: + duration = 90 * 1440 + if numberOfDays >= 90 { denominator = 90 } else { denominator = numberOfDays } + } + + let timeAgo = Date().addingTimeInterval(-duration.minutes.timeInterval) + let glucose = glucose_90.filter({ ($0.date ?? Date()) >= timeAgo }) + + let justGlucoseArray = glucose.compactMap({ each in Int(each.glucose as Int16) }) + let sumReadings = justGlucoseArray.reduce(0, +) + let countReadings = justGlucoseArray.count + + let glucoseAverage = Double(sumReadings) / Double(countReadings) + let medianGlucose = medianCalculation(array: justGlucoseArray) + + var NGSPa1CStatisticValue = 0.0 + var IFCCa1CStatisticValue = 0.0 + + if numberOfDays > 0 { + NGSPa1CStatisticValue = (glucoseAverage + 46.7) / 28.7 // NGSP (%) + IFCCa1CStatisticValue = 10.929 * + (NGSPa1CStatisticValue - 2.152) // IFCC (mmol/mol) A1C(mmol/mol) = 10.929 * (A1C(%) - 2.15) + } + var sumOfSquares = 0.0 + + for array in justGlucoseArray { + sumOfSquares += pow(Double(array) - Double(glucoseAverage), 2) + } + var sd = 0.0 + var cv = 0.0 + + // Avoid division by zero + if glucoseAverage > 0 { + sd = sqrt(sumOfSquares / Double(countReadings)) + cv = sd / Double(glucoseAverage) * 100 + } + + var output: (ifcc: Double, ngsp: Double, average: Double, median: Double, sd: Double, cv: Double, readings: Double) + output = ( + ifcc: IFCCa1CStatisticValue, + ngsp: NGSPa1CStatisticValue, + average: glucoseAverage * (state.units == .mmolL ? conversionFactor : 1), + median: medianGlucose * (state.units == .mmolL ? conversionFactor : 1), + sd: sd * (state.units == .mmolL ? conversionFactor : 1), cv: cv, + readings: Double(countReadings) / denominator + ) + return output + } + + private func tir(_ glucose_90: FetchedResults) -> [(decimal: Decimal, string: String)] { + var duration = 1 + + switch selectedDuration { + case .Today: + let minutesSinceMidnight = Calendar.current.component(.hour, from: Date()) * 60 + Calendar.current + .component(.minute, from: Date()) + duration = minutesSinceMidnight + case .Day: + duration = 1 * 1440 + case .Week: + duration = 7 * 1440 + case .Month: + duration = 30 * 1440 + case .Total: + duration = 90 * 1440 + } + + let hypoLimit = Int(state.lowLimit ?? 70) + let hyperLimit = Int(state.highLimit ?? 145) + + let timeAgo = Date().addingTimeInterval(-duration.minutes.timeInterval) + let glucose = glucose_90.filter({ ($0.date ?? Date()) >= timeAgo }) + + let justGlucoseArray = glucose.compactMap({ each in Int(each.glucose as Int16) }) + let totalReadings = justGlucoseArray.count + + let hyperArray = glucose.filter({ $0.glucose >= hyperLimit }) + let hyperReadings = hyperArray.compactMap({ each in each.glucose as Int16 }).count + let hyperPercentage = Double(hyperReadings) / Double(totalReadings) * 100 + + let hypoArray = glucose.filter({ $0.glucose <= hypoLimit }) + let hypoReadings = hypoArray.compactMap({ each in each.glucose as Int16 }).count + let hypoPercentage = Double(hypoReadings) / Double(totalReadings) * 100 + + let tir = 100 - (hypoPercentage + hyperPercentage) + + var array: [(decimal: Decimal, string: String)] = [] + array.append((decimal: Decimal(hypoPercentage), string: "Low")) + array.append((decimal: Decimal(tir), string: "NormaL")) + array.append((decimal: Decimal(hyperPercentage), string: "High")) + + return array + } + + private func colorOfGlucose(_ index: Int) -> Color { + let whichIndex = index + + switch whichIndex { + case 0: + return .red + case 1: + return .green + case 2: + return .orange + default: + return .primary + } + } + } +} diff --git a/FreeAPS/Sources/Modules/StatConfig/StatConfigDataFlow.swift b/FreeAPS/Sources/Modules/StatConfig/StatConfigDataFlow.swift new file mode 100644 index 0000000000..d6c59f70db --- /dev/null +++ b/FreeAPS/Sources/Modules/StatConfig/StatConfigDataFlow.swift @@ -0,0 +1,5 @@ +enum StatConfig { + enum Config {} +} + +protocol StatConfigProvider: Provider {} diff --git a/FreeAPS/Sources/Modules/StatConfig/StatConfigProvider.swift b/FreeAPS/Sources/Modules/StatConfig/StatConfigProvider.swift new file mode 100644 index 0000000000..60dd1aa902 --- /dev/null +++ b/FreeAPS/Sources/Modules/StatConfig/StatConfigProvider.swift @@ -0,0 +1,3 @@ +extension StatConfig { + final class Provider: BaseProvider, StatConfigProvider {} +} diff --git a/FreeAPS/Sources/Modules/StatConfig/StatConfigStateModel.swift b/FreeAPS/Sources/Modules/StatConfig/StatConfigStateModel.swift new file mode 100644 index 0000000000..7c28b6a9b6 --- /dev/null +++ b/FreeAPS/Sources/Modules/StatConfig/StatConfigStateModel.swift @@ -0,0 +1,52 @@ +import SwiftUI + +extension StatConfig { + final class StateModel: BaseStateModel { + @Published var overrideHbA1cUnit = false + @Published var low: Decimal = 4 / 0.0555 + @Published var high: Decimal = 10 / 0.0555 + @Published var uploadStats = false + @Published var hours: Decimal = 6 + @Published var xGridLines = false + @Published var yGridLines: Bool = false + @Published var oneDimensionalGraph = false + @Published var rulerMarks: Bool = false + + var units: GlucoseUnits = .mmolL + + override func subscribe() { + let units = settingsManager.settings.units + self.units = units + + subscribeSetting(\.overrideHbA1cUnit, on: $overrideHbA1cUnit) { overrideHbA1cUnit = $0 } + subscribeSetting(\.uploadStats, on: $uploadStats) { uploadStats = $0 } + subscribeSetting(\.xGridLines, on: $xGridLines) { xGridLines = $0 } + subscribeSetting(\.yGridLines, on: $yGridLines) { yGridLines = $0 } + subscribeSetting(\.rulerMarks, on: $rulerMarks) { rulerMarks = $0 } + subscribeSetting(\.oneDimensionalGraph, on: $oneDimensionalGraph) { oneDimensionalGraph = $0 } + + subscribeSetting(\.low, on: $low, initial: { + let value = max(min($0, 120), 40) + low = units == .mmolL ? value.asMmolL : value + }, map: { + guard units == .mmolL else { return $0 } + return $0.asMgdL + }) + + subscribeSetting(\.high, on: $high, initial: { + let value = max(min($0, 270), 130) + high = units == .mmolL ? value.asMmolL : value + }, map: { + guard units == .mmolL else { return $0 } + return $0.asMgdL + }) + + subscribeSetting(\.hours, on: $hours.map(Int.init), initial: { + let value = max(min($0, 24), 2) + hours = Decimal(value) + }, map: { + $0 + }) + } + } +} diff --git a/FreeAPS/Sources/Modules/StatConfig/View/StatConfigRootView.swift b/FreeAPS/Sources/Modules/StatConfig/View/StatConfigRootView.swift new file mode 100644 index 0000000000..a31c7d50eb --- /dev/null +++ b/FreeAPS/Sources/Modules/StatConfig/View/StatConfigRootView.swift @@ -0,0 +1,64 @@ +import SwiftUI +import Swinject + +extension StatConfig { + struct RootView: BaseView { + let resolver: Resolver + @StateObject var state = StateModel() + + private var glucoseFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + if state.units == .mmolL { + formatter.maximumFractionDigits = 1 + } + formatter.roundingMode = .halfUp + return formatter + } + + private var carbsFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + return formatter + } + + var body: some View { + Form { + Section(header: Text("Settings")) { + Toggle("Change HbA1c Unit", isOn: $state.overrideHbA1cUnit) + Toggle("Allow Upload of Statistics to NS", isOn: $state.uploadStats) + Toggle("Display Chart X - Grid lines", isOn: $state.xGridLines) + Toggle("Display Chart Y - Grid lines", isOn: $state.yGridLines) + Toggle("Display Chart Threshold lines for Low and High)", isOn: $state.rulerMarks) + Toggle("Standing / Laying TIR Chart", isOn: $state.oneDimensionalGraph) + + HStack { + Text("Hours X-Axis (6 default)") + Spacer() + DecimalTextField("6", value: $state.hours, formatter: carbsFormatter) + Text("hours").foregroundColor(.secondary) + } + + HStack { + Text("Low") + Spacer() + DecimalTextField("0", value: $state.low, formatter: glucoseFormatter) + Text(state.units.rawValue).foregroundColor(.secondary) + } + + HStack { + Text("High") + Spacer() + DecimalTextField("0", value: $state.high, formatter: glucoseFormatter) + Text(state.units.rawValue).foregroundColor(.secondary) + } + } + } + .onAppear(perform: configureView) + .navigationBarTitle("Statistics") + .navigationBarTitleDisplayMode(.automatic) + } + } +} diff --git a/FreeAPS/Sources/Modules/WatchConfig/View/WatchConfigRootView.swift b/FreeAPS/Sources/Modules/WatchConfig/View/WatchConfigRootView.swift new file mode 100644 index 0000000000..f527ff13dc --- /dev/null +++ b/FreeAPS/Sources/Modules/WatchConfig/View/WatchConfigRootView.swift @@ -0,0 +1,43 @@ +import SwiftUI +import Swinject + +extension WatchConfig { + struct RootView: BaseView { + let resolver: Resolver + @StateObject var state = StateModel() + + var body: some View { + Form { + Section(header: Text("Apple Watch")) { + Picker( + selection: $state.selectedAwConfig, + label: Text("Display on Watch") + ) { + ForEach(AwConfig.allCases) { v in + Text(v.displayName).tag(v) + } + } + } + Section(header: Text("Garmin Watch")) { + List { + ForEach(state.devices, id: \.uuid) { device in + Text(device.friendlyName) + } + .onDelete(perform: onDelete) + } + Button("Add devices") { + state.selectGarminDevices() + } + } + } + .onAppear(perform: configureView) + .navigationTitle("Watch Configuration") + .navigationBarTitleDisplayMode(.automatic) + } + + private func onDelete(offsets: IndexSet) { + state.devices.remove(atOffsets: offsets) + state.deleteGarminDevice() + } + } +} diff --git a/FreeAPS/Sources/Modules/WatchConfig/WatchConfigDataFlow.swift b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigDataFlow.swift new file mode 100644 index 0000000000..57f7f39fe0 --- /dev/null +++ b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigDataFlow.swift @@ -0,0 +1,5 @@ +enum WatchConfig { + enum Config {} +} + +protocol WatchConfigProvider {} diff --git a/FreeAPS/Sources/Modules/WatchConfig/WatchConfigProvider.swift b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigProvider.swift new file mode 100644 index 0000000000..f031aad185 --- /dev/null +++ b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigProvider.swift @@ -0,0 +1,20 @@ +import Foundation + +extension WatchConfig { + final class Provider: BaseProvider, WatchConfigProvider { + @Injected() private var settingsManager: SettingsManager! + private let processQueue = DispatchQueue(label: "WatchDeviceProvider.processQueue") + + var preferences: Preferences { + settingsManager.preferences + } + + func savePreferences(_ preferences: Preferences) { + processQueue.async { + var prefs = preferences + prefs.timestamp = Date() + self.storage.save(prefs, as: OpenAPS.Settings.preferences) + } + } + } +} diff --git a/FreeAPS/Sources/Modules/WatchConfig/WatchConfigStateModel.swift b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigStateModel.swift new file mode 100644 index 0000000000..8872fb1140 --- /dev/null +++ b/FreeAPS/Sources/Modules/WatchConfig/WatchConfigStateModel.swift @@ -0,0 +1,61 @@ +import ConnectIQ +import SwiftUI + +enum AwConfig: String, JSON, CaseIterable, Identifiable, Codable { + var id: String { rawValue } + case HR + case BGTarget + case steps + case isf + + var displayName: String { + switch self { + case .BGTarget: + return "Glucose Target" + case .HR: + return "Heart Rate" + case .steps: + return "Steps" + case .isf: + return "ISF" + } + } +} + +extension WatchConfig { + final class StateModel: BaseStateModel { + @Injected() private var garmin: GarminManager! + @Published var devices: [IQDevice] = [] + @Published var selectedAwConfig: AwConfig = .HR + + private(set) var preferences = Preferences() + + override func subscribe() { + preferences = provider.preferences + + subscribeSetting(\.displayOnWatch, on: $selectedAwConfig) { selectedAwConfig = $0 } + didSet: { [weak self] value in + // for compatibility with old displayHR + switch value { + case .HR: + self?.settingsManager.settings.displayHR = true + default: + self?.settingsManager.settings.displayHR = false + } + } + + devices = garmin.devices + } + + func selectGarminDevices() { + garmin.selectDevices() + .receive(on: DispatchQueue.main) + .weakAssign(to: \.devices, on: self) + .store(in: &lifetime) + } + + func deleteGarminDevice() { + garmin.updateListDevices(devices: devices) + } + } +} diff --git a/FreeAPS/Sources/Router/Screen.swift b/FreeAPS/Sources/Router/Screen.swift index 9d239d62dd..af152733c9 100644 --- a/FreeAPS/Sources/Router/Screen.swift +++ b/FreeAPS/Sources/Router/Screen.swift @@ -29,6 +29,9 @@ enum Screen: Identifiable, Hashable { case iconConfig case overrideProfilesConfig case snooze + case statistics + case watch + case statisticsConfig var id: Int { String(reflecting: self).hashValue } } @@ -39,10 +42,7 @@ extension Screen { case .loading: ProgressView() case .home: - Home.RootView( - resolver: resolver, - selectedState: .day - ) + Home.RootView(resolver: resolver) case .settings: Settings.RootView(resolver: resolver) case let .configEditor(file): @@ -93,6 +93,12 @@ extension Screen { OverrideProfilesConfig.RootView(resolver: resolver) case .snooze: Snooze.RootView(resolver: resolver) + case .watch: + WatchConfig.RootView(resolver: resolver) + case .statistics: + Stat.RootView(resolver: resolver) + case .statisticsConfig: + StatConfig.RootView(resolver: resolver) } } diff --git a/FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift b/FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift index f5a987fd8b..fa00448b7a 100644 --- a/FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift +++ b/FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift @@ -186,7 +186,6 @@ final class BaseUserNotificationsManager: NSObject, UserNotificationsManager, In addAppBadge(glucose: nil) let glucose = glucoseStorage.recent() - guard let lastGlucose = glucose.last, let glucoseValue = lastGlucose.glucose else { return } addAppBadge(glucose: lastGlucose.glucose) diff --git a/FreeAPS/Sources/Services/WatchManager/GarminManager.swift b/FreeAPS/Sources/Services/WatchManager/GarminManager.swift new file mode 100644 index 0000000000..be52184734 --- /dev/null +++ b/FreeAPS/Sources/Services/WatchManager/GarminManager.swift @@ -0,0 +1,208 @@ +import Combine +import ConnectIQ +import Foundation +import Swinject + +protocol GarminManager { + func selectDevices() -> AnyPublisher<[IQDevice], Never> + func updateListDevices(devices: [IQDevice]) + var devices: [IQDevice] { get } + func sendState(_ data: Data) + var stateRequet: (() -> (Data))? { get set } +} + +extension Notification.Name { + static let openFromGarminConnect = Notification.Name("Notification.Name.openFromGarminConnect") +} + +final class BaseGarminManager: NSObject, GarminManager, Injectable { + private enum Config { + static let watchfaceUUID = UUID(uuidString: "EC3420F6-027D-49B3-B45F-D81D6D3ED90A") + static let watchdataUUID = UUID(uuidString: "71CF0982-CA41-42A5-8441-EA81D36056C3") + } + + private let connectIQ = ConnectIQ.sharedInstance() + + private let router = FreeAPSApp.resolver.resolve(Router.self)! + + @Injected() private var notificationCenter: NotificationCenter! + + @Persisted(key: "BaseGarminManager.persistedDevices") private var persistedDevices: [CodableDevice] = [] + + private var watchfaces: [IQApp] = [] + + var stateRequet: (() -> (Data))? + + private let stateSubject = PassthroughSubject() + + private(set) var devices: [IQDevice] = [] { + didSet { + persistedDevices = devices.map(CodableDevice.init) + watchfaces = [] + devices.forEach { device in + connectIQ?.register(forDeviceEvents: device, delegate: self) + let watchfaceApp = IQApp( + uuid: Config.watchfaceUUID, + store: UUID(), + device: device + ) + let watchDataFieldApp = IQApp( + uuid: Config.watchdataUUID, + store: UUID(), + device: device + ) + watchfaces.append(watchfaceApp!) + watchfaces.append(watchDataFieldApp!) + connectIQ?.register(forAppMessages: watchfaceApp, delegate: self) + } + } + } + + private var lifetime = Lifetime() + private var selectPromise: Future<[IQDevice], Never>.Promise? + + init(resolver: Resolver) { + super.init() + connectIQ?.initialize(withUrlScheme: "freeaps-x", uiOverrideDelegate: self) + injectServices(resolver) + restoreDevices() + subscribeToOpenFromGarminConnect() + setupApplications() + subscribeState() + } + + private func subscribeToOpenFromGarminConnect() { + notificationCenter + .publisher(for: .openFromGarminConnect) + .sink { notification in + guard let url = notification.object as? URL else { return } + self.parseDevicesFor(url: url) + } + .store(in: &lifetime) + } + + private func subscribeState() { + func sendToWatchface(state: NSDictionary) { + watchfaces.forEach { app in + connectIQ?.getAppStatus(app) { status in + guard status?.isInstalled ?? false else { + debug(.service, "Garmin: watchface app not installed") + return + } + debug(.service, "Garmin: sending message to watchface") + self.sendMessage(state, to: app) + } + } + } + + stateSubject + .throttle(for: .seconds(10), scheduler: DispatchQueue.main, latest: true) + .sink { state in + sendToWatchface(state: state) + } + .store(in: &lifetime) + } + + private func restoreDevices() { + devices = persistedDevices.map(\.iqDevice) + } + + private func parseDevicesFor(url: URL) { + devices = connectIQ?.parseDeviceSelectionResponse(from: url) as? [IQDevice] ?? [] + selectPromise?(.success(devices)) + selectPromise = nil + } + + private func setupApplications() { + devices.forEach { _ in + } + } + + func selectDevices() -> AnyPublisher<[IQDevice], Never> { + Future { promise in + self.selectPromise = promise + self.connectIQ?.showDeviceSelection() + } + .timeout(120, scheduler: DispatchQueue.main) + .replaceEmpty(with: []) + .eraseToAnyPublisher() + } + + func updateListDevices(devices: [IQDevice]) { + self.devices = devices + } + + func sendState(_ data: Data) { + guard let object = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary else { + return + } + stateSubject.send(object) + } + + private func sendMessage(_ msg: NSDictionary, to app: IQApp) { + connectIQ?.sendMessage(msg, to: app, progress: { _, _ in + // debug(.service, "Garmin: sending progress: \(Int(Double(sent) / Double(all) * 100)) %") + }, completion: { result in + if result == .success { + debug(.service, "Garmin: message sent") + } else { + debug(.service, "Garmin: message failed") + } + }) + } +} + +extension BaseGarminManager: IQUIOverrideDelegate { + func needsToInstallConnectMobile() { + debug(.apsManager, "Garmin is not available") + let messageCont = MessageContent( + content: "The app Garmin Connect must be installed to use for iAPS.\n Go to App Store to download it", + type: .warning + ) + router.alertMessage.send(messageCont) + } +} + +extension BaseGarminManager: IQDeviceEventDelegate { + func deviceStatusChanged(_ device: IQDevice, status: IQDeviceStatus) { + switch status { + case .invalidDevice: + debug(.service, "Garmin: invalidDevice, Device: \(device.uuid!)") + case .bluetoothNotReady: + debug(.service, "Garmin: bluetoothNotReady, Device: \(device.uuid!)") + case .notFound: + debug(.service, "Garmin: notFound, Device: \(device.uuid!)") + case .notConnected: + debug(.service, "Garmin: notConnected, Device: \(device.uuid!)") + case .connected: + debug(.service, "Garmin: connected, Device: \(device.uuid!)") + @unknown default: + debug(.service, "Garmin: unknown state, Device: \(device.uuid!)") + } + } +} + +extension BaseGarminManager: IQAppMessageDelegate { + func receivedMessage(_ message: Any, from app: IQApp) { + print("ASDF: got message: \(message) from app: \(app.uuid!)") + if let status = message as? String, status == "status", let watchState = stateRequet?() { + sendState(watchState) + } + } +} + +struct CodableDevice: Codable, Equatable { + let id: UUID + let modelName: String + let friendlyName: String + + init(iqDevice: IQDevice) { + id = iqDevice.uuid + modelName = iqDevice.modelName + friendlyName = iqDevice.modelName + } + + var iqDevice: IQDevice { + IQDevice(id: id, modelName: modelName, friendlyName: friendlyName) + } +} diff --git a/FreeAPS/Sources/Services/WatchManager/WatchManager.swift b/FreeAPS/Sources/Services/WatchManager/WatchManager.swift index f1446b0aba..2457264cec 100644 --- a/FreeAPS/Sources/Services/WatchManager/WatchManager.swift +++ b/FreeAPS/Sources/Services/WatchManager/WatchManager.swift @@ -16,6 +16,7 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { @Injected() private var storage: FileStorage! @Injected() private var carbsStorage: CarbsStorage! @Injected() private var tempTargetsStorage: TempTargetsStorage! + @Injected() private var garmin: GarminManager! private var lifetime = Lifetime() @@ -40,6 +41,13 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { broadcaster.register(EnactedSuggestionObserver.self, observer: self) broadcaster.register(PumpBatteryObserver.self, observer: self) broadcaster.register(PumpReservoirObserver.self, observer: self) + garmin.stateRequet = { [weak self] () -> Data in + guard let self = self, let data = try? JSONEncoder().encode(self.state) else { + warning(.service, "Cannot encode watch state") + return Data() + } + return data + } configureState() } @@ -50,9 +58,15 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { self.state.glucose = glucoseValues.glucose self.state.trend = glucoseValues.trend self.state.delta = glucoseValues.delta + self.state.trendRaw = self.glucoseStorage.recent().last?.direction?.rawValue self.state.glucoseDate = self.glucoseStorage.recent().last?.dateString + self.state.glucoseDateInterval = self.state.glucoseDate.map { UInt64($0.timeIntervalSince1970) } self.state.lastLoopDate = self.enactedSuggestion?.recieved == true ? self.enactedSuggestion?.deliverAt : self .apsManager.lastLoopDate + self.state.lastLoopDateInterval = self.state.lastLoopDate.map { + guard $0.timeIntervalSince1970 > 0 else { return 0 } + return UInt64($0.timeIntervalSince1970) + } self.state.bolusIncrement = self.settingsManager.preferences.bolusIncrement self.state.maxCOB = self.settingsManager.preferences.maxCOB self.state.maxBolus = self.settingsManager.pumpSettings.maxBolus @@ -80,9 +94,13 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { } self.state.bolusAfterCarbs = !self.settingsManager.settings.skipBolusScreenAfterCarbs - self.state.displayHR = self.settingsManager.settings.displayHR + self.state.displayOnWatch = self.settingsManager.settings.displayOnWatch - self.state.eventualBG = self.evetualBGStraing() + let eBG = self.evetualBGStraing() + self.state.eventualBG = eBG.map { "⇢ " + $0 } + self.state.eventualBGRaw = eBG + + self.state.isf = self.suggestion?.isf self.sendState() } @@ -94,6 +112,9 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { warning(.service, "Cannot encode watch state") return } + + garmin.sendState(data) + guard session.isReachable else { return } session.sendMessageData(data, replyHandler: nil) { error in warning(.service, "Cannot send message to watch", error: error) @@ -148,7 +169,7 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable { return nil } let units = settingsManager.settings.units - return "⇢ " + eventualFormatter.string( + return eventualFormatter.string( from: (units == .mmolL ? eventualBG.asMmolL : Decimal(eventualBG)) as NSNumber )! } diff --git a/FreeAPS/Sources/Shortcuts/AppShortcuts.swift b/FreeAPS/Sources/Shortcuts/AppShortcuts.swift new file mode 100644 index 0000000000..1a20c7b812 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/AppShortcuts.swift @@ -0,0 +1,21 @@ +import AppIntents +import Foundation + +@available(iOS 16.0, *) struct AppShortcuts: AppShortcutsProvider { + @AppShortcutsBuilder static var appShortcuts: [AppShortcut] { + AppShortcut( + intent: ApplyTempPresetIntent(), + phrases: [ + "Activate \(.applicationName) temporary target ?", + "\(.applicationName) apply a temporary target" + ] + ) + AppShortcut( + intent: ListStateIntent(), + phrases: [ + "List \(.applicationName) state", + "\(.applicationName) state" + ] + ) + } +} diff --git a/FreeAPS/Sources/Shortcuts/BaseIntentsRequest.swift b/FreeAPS/Sources/Shortcuts/BaseIntentsRequest.swift new file mode 100644 index 0000000000..e2b574222e --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/BaseIntentsRequest.swift @@ -0,0 +1,23 @@ +import Foundation +import Swinject + +@available(iOS 16.0, *) protocol IntentsRequestType { + var intentRequest: BaseIntentsRequest { get set } +} + +@available(iOS 16.0, *) class BaseIntentsRequest: NSObject, Injectable { + @Injected() var tempTargetsStorage: TempTargetsStorage! + @Injected() var settingsManager: SettingsManager! + @Injected() var storage: TempTargetsStorage! + @Injected() var fileStorage: FileStorage! + + let resolver: Resolver + + let coredataContext = CoreDataStack.shared.persistentContainer.viewContext + + override init() { + resolver = FreeAPSApp.resolver + super.init() + injectServices(resolver) + } +} diff --git a/FreeAPS/Sources/Shortcuts/State/ListStateIntent.swift b/FreeAPS/Sources/Shortcuts/State/ListStateIntent.swift new file mode 100644 index 0000000000..7989cb1a9b --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/State/ListStateIntent.swift @@ -0,0 +1,41 @@ +import AppIntents +import Foundation + +@available(iOS 16.0, *) struct ListStateIntent: AppIntent { + // Title of the action in the Shortcuts app + static var title: LocalizedStringResource = "List last state available with iAPS" + + var stateIntent = StateIntentRequest() + + // Description of the action in the Shortcuts app + static var description = IntentDescription( + "Allow to list the last Blood Glucose, trends, IOB and COB available in iAPS" + ) + + static var parameterSummary: some ParameterSummary { + Summary("List all states of iAPS") + } + + @MainActor func perform() async throws -> some ReturnsValue & ShowsSnippetView { + let glucoseValues = try? stateIntent.getLastBG() + let iob_cob_value = try? stateIntent.getIOB_COB() + + guard let glucoseValue = glucoseValues else { throw StateIntentError.NoBG } + guard let iob_cob = iob_cob_value else { throw StateIntentError.NoIOBCOB } + let BG = StateiAPSResults( + glucose: glucoseValue.glucose, + trend: glucoseValue.trend, + delta: glucoseValue.delta, + date: glucoseValue.dateGlucose, + iob: iob_cob.iob, + cob: iob_cob.cob, + unit: stateIntent.settingsManager.settings.units + ) + let iob_text = String(format: "%.2f", iob_cob.iob) + let cob_text = String(format: "%.2f", iob_cob.cob) + return .result( + value: BG, + view: ListStateView(state: BG) + ) + } +} diff --git a/FreeAPS/Sources/Shortcuts/State/ListStateView.swift b/FreeAPS/Sources/Shortcuts/State/ListStateView.swift new file mode 100644 index 0000000000..25595cbe39 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/State/ListStateView.swift @@ -0,0 +1,128 @@ +import AppIntents +import Foundation +import SwiftUI + +struct ListStateView: View { + var state: StateiAPSResults + + private var numberFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 2 + return formatter + } + + private var glucoseFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + if state.unit == "mmolL" { + formatter.minimumFractionDigits = 1 + formatter.maximumFractionDigits = 1 + } + formatter.roundingMode = .halfUp + return formatter + } + + private var deltaFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 1 + formatter.positivePrefix = " +" + formatter.negativePrefix = " -" + return formatter + } + + private var timaAgoFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + formatter.negativePrefix = "" + return formatter + } + + private var dateFormatter: DateFormatter { + let formatter = DateFormatter() + formatter.timeStyle = .short + return formatter + } + + var body: some View { + HStack(alignment: .center) { + Spacer() + + HStack { + Text("IOB").font(.caption).foregroundColor(.secondary) + Text( + (numberFormatter.string(from: (state.iob ?? 0) as NSNumber) ?? "0") + + NSLocalizedString(" U", comment: "Insulin unit") + ) + .font(.body).fontWeight(.bold) + } + HStack { + Text("COB").font(.caption).foregroundColor(.secondary) + Text( + (numberFormatter.string(from: (state.cob ?? 0) as NSNumber) ?? "0") + + NSLocalizedString(" g", comment: "gram of carbs") + ) + .font(.body).fontWeight(.bold) + } + Spacer() + HStack { + Text( + state.glucose + ) + .font(.title).fontWeight(.bold).foregroundColor(.loopGreen) + image + } + HStack { + let minutes = state.date.timeIntervalSinceNow / 60 + let text = timaAgoFormatter.string(for: Double(minutes)) ?? "" + Text( + text == "0" ? "< 1 " + NSLocalizedString("min", comment: "Short form for minutes") : ( + text + " " + + NSLocalizedString("min", comment: "Short form for minutes") + " " + ) + ) + .font(.caption2).foregroundColor(.secondary) + + Text( + state.delta + ) + .font(.caption2).foregroundColor(.secondary) + } + Spacer() + } + .frame(maxWidth: .infinity) + .padding(.top, 6) + .padding(.bottom, 6) + // .background(Color.gray.opacity(0.2)) + } + + var image: Image { + let direction = state.trend + switch direction { + case "DoubleUp", + "SingleUp", + "TripleUp": + return Image(systemName: "arrow.up") + case "FortyFiveUp": + return Image(systemName: "arrow.up.right") + case "Flat": + return Image(systemName: "arrow.forward") + case "FortyFiveDown": + return Image(systemName: "arrow.down.forward") + case "DoubleDown", + "SingleDown", + "TripleDown": + return Image(systemName: "arrow.down") + + case "NONE", + "NOT COMPUTABLE", + "RATE OUT OF RANGE": + return Image(systemName: "arrow.left.and.right") + default: + return Image(systemName: "arrow.left.and.right") + } + } +} diff --git a/FreeAPS/Sources/Shortcuts/State/StateIntentRequest.swift b/FreeAPS/Sources/Shortcuts/State/StateIntentRequest.swift new file mode 100644 index 0000000000..11933b8a9a --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/State/StateIntentRequest.swift @@ -0,0 +1,116 @@ +import AppIntents +import Foundation + +enum StateIntentError: Error { + case StateIntentUnknownError + case NoBG + case NoIOBCOB +} + +@available(iOS 16, *) struct StateiAPSResults: AppEntity { + static var defaultQuery = StateBGQuery() + + static var typeDisplayRepresentation: TypeDisplayRepresentation = "iAPS State Result" + + var displayRepresentation: DisplayRepresentation { + DisplayRepresentation(title: "\(glucose)") + } + + var id: UUID + @Property(title: "Glucose") var glucose: String + + @Property(title: "Trend") var trend: String + + @Property(title: "Delta") var delta: String + + @Property(title: "Date") var date: Date + + @Property(title: "IOB") var iob: Double? + + @Property(title: "COB") var cob: Double? + + @Property(title: "unit") var unit: String? + + init(glucose: String, trend: String, delta: String, date: Date, iob: Double, cob: Double, unit: GlucoseUnits) { + id = UUID() + self.glucose = glucose + self.trend = trend + self.delta = delta + self.date = date + self.iob = iob + self.cob = cob + self.unit = unit.rawValue + } +} + +@available(iOS 16.0, *) struct StateBGQuery: EntityQuery { + func entities(for _: [StateiAPSResults.ID]) async throws -> [StateiAPSResults] { + [] + } + + func suggestedEntities() async throws -> [StateiAPSResults] { + [] + } +} + +@available(iOS 16.0, *) final class StateIntentRequest: BaseIntentsRequest { + @Injected() private var glucoseStorage: GlucoseStorage! + @Injected() private var carbsStorage: CarbsStorage! + @Injected() private var apsManager: APSManager! + + func getLastBG() throws -> (dateGlucose: Date, glucose: String, trend: String, delta: String) { + let glucose = glucoseStorage.recent() + guard let lastGlucose = glucose.last, let glucoseValue = lastGlucose.glucose else { throw StateIntentError.NoBG } + let delta = glucose.count >= 2 ? glucoseValue - (glucose[glucose.count - 2].glucose ?? 0) : nil + let units = settingsManager.settings.units + + let glucoseText = glucoseFormatter + .string(from: Double( + units == .mmolL ? glucoseValue + .asMmolL : Decimal(glucoseValue) + ) as NSNumber)! + let directionText = lastGlucose.direction?.rawValue ?? "none" + let deltaText = delta + .map { + self.deltaFormatter + .string(from: Double( + units == .mmolL ? $0 + .asMmolL : Decimal($0) + ) as NSNumber)! + } ?? "--" + + return (lastGlucose.dateString, glucoseText, directionText, deltaText) + } + + func getIOB_COB() throws -> (iob: Double, cob: Double) { + let iob = suggestion?.iob ?? 0.0 + let cob = suggestion?.cob ?? 0.0 + let iob_double = Double(truncating: iob as NSNumber) + let cob_double = Double(truncating: cob as NSNumber) + return (iob_double, cob_double) + } + + private var suggestion: Suggestion? { + fileStorage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self) + } + + private var glucoseFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + if settingsManager.settings.units == .mmolL { + formatter.minimumFractionDigits = 1 + formatter.maximumFractionDigits = 1 + } + formatter.roundingMode = .halfUp + return formatter + } + + private var deltaFormatter: NumberFormatter { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 1 + formatter.positivePrefix = "+" + return formatter + } +} diff --git a/FreeAPS/Sources/Shortcuts/TempPresets/ApplyTempPresetIntent.swift b/FreeAPS/Sources/Shortcuts/TempPresets/ApplyTempPresetIntent.swift new file mode 100644 index 0000000000..1c4e95ecf1 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/TempPresets/ApplyTempPresetIntent.swift @@ -0,0 +1,68 @@ +import AppIntents +import Foundation + +@available(iOS 16.0, *) struct ApplyTempPresetIntent: AppIntent { + // Title of the action in the Shortcuts app + static var title: LocalizedStringResource = "Apply a temporary Preset" + + // Description of the action in the Shortcuts app + static var description = IntentDescription("Allow to apply a specific temporary preset.") + + internal var intentRequest: TempPresetsIntentRequest + + init() { + intentRequest = TempPresetsIntentRequest() + } + + @Parameter(title: "Preset") var preset: tempPreset? + + @Parameter( + title: "Confirm Before applying", + description: "If toggled, you will need to confirm before applying", + default: true + ) var confirmBeforeApplying: Bool + + static var parameterSummary: some ParameterSummary { + When(\ApplyTempPresetIntent.$confirmBeforeApplying, .equalTo, true, { + Summary("Applying \(\.$preset)") { + \.$confirmBeforeApplying + } + }, otherwise: { + Summary("Immediately applying \(\.$preset)") { + \.$confirmBeforeApplying + } + }) + } + + @MainActor func perform() async throws -> some ProvidesDialog { + do { + let presetToApply: tempPreset + if let preset = preset { + presetToApply = preset + } else { + presetToApply = try await $preset.requestDisambiguation( + among: intentRequest.fetchAll(), + dialog: "What temp preset would you like ?" + ) + } + + let displayName: String = presetToApply.name + if confirmBeforeApplying { + try await requestConfirmation( + result: .result(dialog: "Are you sure to applying the temp target \(displayName) ?") + ) + } + + // TODO: enact the temp target + let tempTarget = try intentRequest.findTempTarget(presetToApply) + let finalTempTargetApply = try intentRequest.enactTempTarget(tempTarget) + let displayDetail: String = + "the target \(finalTempTargetApply.displayName) is applying during \(finalTempTargetApply.duration) mn" + return .result( + dialog: IntentDialog(stringLiteral: displayDetail) + ) + } catch { + throw error + } + } +} diff --git a/FreeAPS/Sources/Shortcuts/TempPresets/CancelTempPresetIntent.swift b/FreeAPS/Sources/Shortcuts/TempPresets/CancelTempPresetIntent.swift new file mode 100644 index 0000000000..c884937c96 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/TempPresets/CancelTempPresetIntent.swift @@ -0,0 +1,27 @@ +import AppIntents +import Foundation + +@available(iOS 16.0, *) struct CancelTempPresetIntent: AppIntent { + // Title of the action in the Shortcuts app + static var title: LocalizedStringResource = "Cancel a temporary Preset" + + // Description of the action in the Shortcuts app + static var description = IntentDescription("Cancel temporary preset.") + + internal var intentRequest: TempPresetsIntentRequest + + init() { + intentRequest = TempPresetsIntentRequest() + } + + @MainActor func perform() async throws -> some ProvidesDialog { + do { + try intentRequest.cancelTempTarget() + return .result( + dialog: IntentDialog(stringLiteral: "Temporary Target canceled") + ) + } catch { + throw error + } + } +} diff --git a/FreeAPS/Sources/Shortcuts/TempPresets/ListTempPresetsIntent.swift b/FreeAPS/Sources/Shortcuts/TempPresets/ListTempPresetsIntent.swift new file mode 100644 index 0000000000..403bcf43bd --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/TempPresets/ListTempPresetsIntent.swift @@ -0,0 +1,43 @@ +import AppIntents +import Foundation + +@available(iOS 16.0, *) struct ListTempPresetsIntent: AppIntent { + // Title of the action in the Shortcuts app + static var title: LocalizedStringResource = "Choose Temporary Presets" + + // Description of the action in the Shortcuts app + static var description = IntentDescription( + "Allow to list and choose a specific temporary Preset.", + categoryName: "Navigation" + ) + + @Parameter(title: "Preset") var preset: tempPreset? + + static var parameterSummary: some ParameterSummary { + Summary("Choose the temp preset \(\.$preset)") + } + + @MainActor func perform() async throws -> some ReturnsValue { + .result( + value: preset! + ) + } +} + +@available(iOS 16.0, *) struct tempPresetsQuery: EntityQuery { + internal var intentRequest: TempPresetsIntentRequest + + init() { + intentRequest = TempPresetsIntentRequest() + } + + func entities(for identifiers: [tempPreset.ID]) async throws -> [tempPreset] { + let tempTargets = intentRequest.fetchIDs(identifiers) + return tempTargets + } + + func suggestedEntities() async throws -> [tempPreset] { + let tempTargets = intentRequest.fetchAll() + return tempTargets + } +} diff --git a/FreeAPS/Sources/Shortcuts/TempPresets/TempPresetsIntentRequest.swift b/FreeAPS/Sources/Shortcuts/TempPresets/TempPresetsIntentRequest.swift new file mode 100644 index 0000000000..e8167b2656 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/TempPresets/TempPresetsIntentRequest.swift @@ -0,0 +1,84 @@ +import CoreData +import Foundation + +@available(iOS 16.0, *) final class TempPresetsIntentRequest: BaseIntentsRequest { + enum TempPresetsError: Error { + case noTempTargetFound + case noDurationDefined + } + + private func convert(tt: [TempTarget]) -> [tempPreset] { + tt.map { tempPreset.convert($0) } + } + + func fetchAll() -> [tempPreset] { + convert(tt: tempTargetsStorage.presets()) + } + + func fetchIDs(_ uuid: [tempPreset.ID]) -> [tempPreset] { + let UUIDTempTarget = tempTargetsStorage.presets().filter { uuid.contains(UUID(uuidString: $0.id)!) } + return convert(tt: UUIDTempTarget) + } + + func fetchOne(_ uuid: tempPreset.ID) -> tempPreset? { + let UUIDTempTarget = tempTargetsStorage.presets().filter { UUID(uuidString: $0.id) == uuid } + guard let OneTempTarget = UUIDTempTarget.first else { return nil } + return tempPreset.convert(OneTempTarget) + } + + func findTempTarget(_ tempPreset: tempPreset) throws -> TempTarget { + let tempTargetFound = tempTargetsStorage.presets().filter { $0.id == tempPreset.id.uuidString } + guard let tempOneTarget = tempTargetFound.first else { throw TempPresetsError.noTempTargetFound } + return tempOneTarget + } + + func enactTempTarget(_ presetTarget: TempTarget) throws -> TempTarget { + var tempTarget = presetTarget + tempTarget.createdAt = Date() + storage.storeTempTargets([tempTarget]) + + coredataContext.performAndWait { + var tempTargetsArray = [TempTargetsSlider]() + let requestTempTargets = TempTargetsSlider.fetchRequest() as NSFetchRequest + let sortTT = NSSortDescriptor(key: "date", ascending: false) + requestTempTargets.sortDescriptors = [sortTT] + try? tempTargetsArray = coredataContext.fetch(requestTempTargets) + + let whichID = tempTargetsArray.first(where: { $0.id == tempTarget.id }) + + if whichID != nil { + let saveToCoreData = TempTargets(context: self.coredataContext) + saveToCoreData.active = true + saveToCoreData.date = Date() + saveToCoreData.hbt = whichID?.hbt ?? 160 + saveToCoreData.startDate = Date() + saveToCoreData.duration = whichID?.duration ?? 0 + + try? self.coredataContext.save() + } else { + let saveToCoreData = TempTargets(context: self.coredataContext) + saveToCoreData.active = false + saveToCoreData.date = Date() + try? self.coredataContext.save() + } + } + + return tempTarget + } + + func cancelTempTarget() throws { + storage.storeTempTargets([TempTarget.cancel(at: Date())]) + try coredataContext.performAndWait { + let saveToCoreData = TempTargets(context: self.coredataContext) + saveToCoreData.active = false + saveToCoreData.date = Date() + try self.coredataContext.save() + + let setHBT = TempTargetsSlider(context: self.coredataContext) + setHBT.enabled = false + setHBT.date = Date() + + try self.coredataContext.save() + } + } +} diff --git a/FreeAPS/Sources/Shortcuts/TempPresets/tempPresetIntent.swift b/FreeAPS/Sources/Shortcuts/TempPresets/tempPresetIntent.swift new file mode 100644 index 0000000000..a3ed8f2050 --- /dev/null +++ b/FreeAPS/Sources/Shortcuts/TempPresets/tempPresetIntent.swift @@ -0,0 +1,31 @@ +import AppIntents +import Foundation +import Intents +import Swinject + +@available(iOS 16.0, *) struct tempPreset: AppEntity, Identifiable { + static var defaultQuery = tempPresetsQuery() + + var id: UUID + var name: String + var targetTop: Decimal? + var targetBottom: Decimal? + var duration: Decimal + + var displayRepresentation: DisplayRepresentation { + DisplayRepresentation(title: "\(name)") + } + + static var typeDisplayRepresentation: TypeDisplayRepresentation = "Presets" + + static func convert(_ tempTarget: TempTarget) -> tempPreset { + var tp = tempPreset( + id: UUID(uuidString: tempTarget.id)!, + name: tempTarget.displayName, + duration: tempTarget.duration + ) + tp.targetTop = tempTarget.targetTop + tp.targetBottom = tempTarget.targetBottom + return tp + } +} diff --git a/FreeAPSWatch WatchKit Extension/DataFlow.swift b/FreeAPSWatch WatchKit Extension/DataFlow.swift index 03100846e4..99b69e4d8a 100644 --- a/FreeAPSWatch WatchKit Extension/DataFlow.swift +++ b/FreeAPSWatch WatchKit Extension/DataFlow.swift @@ -3,9 +3,12 @@ import Foundation struct WatchState: Codable { var glucose: String? var trend: String? + var trendRaw: String? var delta: String? var glucoseDate: Date? + var glucoseDateInterval: UInt64? var lastLoopDate: Date? + var lastLoopDateInterval: UInt64? var bolusIncrement: Decimal? var maxCOB: Decimal? var maxBolus: Decimal? @@ -16,7 +19,9 @@ struct WatchState: Codable { var tempTargets: [TempTargetWatchPreset] = [] var bolusAfterCarbs: Bool? var eventualBG: String? - var displayHR: Bool? + var eventualBGRaw: String? + var displayOnWatch: AwConfig? + var isf: Decimal? } struct TempTargetWatchPreset: Codable, Identifiable { diff --git a/FreeAPSWatch WatchKit Extension/Views/MainView.swift b/FreeAPSWatch WatchKit Extension/Views/MainView.swift index 79f431feb7..11afc5cedc 100644 --- a/FreeAPSWatch WatchKit Extension/Views/MainView.swift +++ b/FreeAPSWatch WatchKit Extension/Views/MainView.swift @@ -13,6 +13,7 @@ struct MainView: View { @State var isTargetsActive = false @State var isBolusActive = false @State private var pulse = 0 + @State private var steps = 0 @GestureState var isDetectingLongPress = false @State var completedLongPress = false @@ -118,7 +119,8 @@ struct MainView: View { .scaledToFill() .minimumScaleFactor(0.5) - if state.displayHR { + switch state.displayOnWatch { + case .HR: Spacer() HStack { if completedLongPress { @@ -146,14 +148,41 @@ struct MainView: View { .gesture(longPress) } } - - } else if let eventualBG = state.eventualBG.nonEmpty { + case .BGTarget: + if let eventualBG = state.eventualBG.nonEmpty { + Spacer() + HStack { + Text(eventualBG) + .font(.caption2) + .scaledToFill() + .foregroundColor(.secondary) + .minimumScaleFactor(0.5) + } + } + case .steps: Spacer() HStack { - Text(eventualBG) + Text("🦶" + " \(steps)") + .fontWeight(.regular) .font(.caption2) .scaledToFill() - .foregroundColor(.secondary) + .foregroundColor(.white) + .minimumScaleFactor(0.5) + } + case .isf: + Spacer() + let isf: String = state.isf != nil ? "\(state.isf ?? 0)" : "-" + HStack { + Image(systemName: "arrow.up.arrow.down") + .renderingMode(.template) + .resizable() + .frame(width: 16, height: 16) + .foregroundColor(.blue) + Text("\(isf)") + .fontWeight(.regular) + .font(.caption2) + .scaledToFill() + .foregroundColor(.white) .minimumScaleFactor(0.5) } } @@ -255,15 +284,61 @@ struct MainView: View { func start() { autorizeHealthKit() startHeartRateQuery(quantityTypeIdentifier: .heartRate) + startStepsQuery(quantityTypeIdentifier: .stepCount) } func autorizeHealthKit() { let healthKitTypes: Set = [ + HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)!, HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)! ] healthStore.requestAuthorization(toShare: healthKitTypes, read: healthKitTypes) { _, _ in } } + private func startStepsQuery(quantityTypeIdentifier _: HKQuantityTypeIdentifier) { + let type = HKQuantityType.quantityType(forIdentifier: .stepCount)! + let now = Date() + let startOfDay = Calendar.current.startOfDay(for: now) + var interval = DateComponents() + interval.day = 1 + let query = HKStatisticsCollectionQuery( + quantityType: type, + quantitySamplePredicate: nil, + options: [.cumulativeSum], + anchorDate: startOfDay, + intervalComponents: interval + ) + + query.initialResultsHandler = { _, result, _ in + var resultCount = 0.0 + guard let result = result else { + self.steps = 0 + return + } + result.enumerateStatistics(from: startOfDay, to: now) { statistics, _ in + + if let sum = statistics.sumQuantity() { + // Get steps (they are of double type) + resultCount = sum.doubleValue(for: HKUnit.count()) + } // end if + // Return + self.steps = Int(resultCount) + } + } + + query.statisticsUpdateHandler = { + _, statistics, _, _ in + + // If new statistics are available + if let sum = statistics?.sumQuantity() { + let resultCount = sum.doubleValue(for: HKUnit.count()) + // Return + self.steps = Int(resultCount) + } // end if + } + healthStore.execute(query) + } + private func startHeartRateQuery(quantityTypeIdentifier: HKQuantityTypeIdentifier) { let devicePredicate = HKQuery.predicateForObjects(from: [HKDevice.local()]) let updateHandler: (HKAnchoredObjectQuery, [HKSample]?, [HKDeletedObject]?, HKQueryAnchor?, Error?) -> Void = { diff --git a/FreeAPSWatch WatchKit Extension/WatchStateModel.swift b/FreeAPSWatch WatchKit Extension/WatchStateModel.swift index 31d8be6878..eb49ee697c 100644 --- a/FreeAPSWatch WatchKit Extension/WatchStateModel.swift +++ b/FreeAPSWatch WatchKit Extension/WatchStateModel.swift @@ -3,6 +3,14 @@ import Foundation import SwiftUI import WatchConnectivity +enum AwConfig: String, CaseIterable, Identifiable, Codable { + var id: String { rawValue } + case HR + case BGTarget + case steps + case isf +} + class WatchStateModel: NSObject, ObservableObject { var session: WCSession @@ -23,7 +31,7 @@ class WatchStateModel: NSObject, ObservableObject { @Published var isCarbsViewActive = false @Published var isTempTargetViewActive = false @Published var isBolusViewActive = false - @Published var displayHR = false + @Published var displayOnWatch: AwConfig = .BGTarget @Published var eventualBG = "" @Published var isConfirmationViewActive = false { didSet { @@ -45,6 +53,8 @@ class WatchStateModel: NSObject, ObservableObject { @Published var timerDate = Date() @Published var pendingBolus: Double? + @Published var isf: Decimal? + private var lifetime = Set() private var confirmationTimeout: AnyCancellable? let timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect() @@ -160,7 +170,8 @@ class WatchStateModel: NSObject, ObservableObject { bolusAfterCarbs = state.bolusAfterCarbs ?? true lastUpdate = Date() eventualBG = state.eventualBG ?? "" - displayHR = state.displayHR ?? false + displayOnWatch = state.displayOnWatch ?? .BGTarget + isf = state.isf } } diff --git a/fastlane/Fastfile b/fastlane/Fastfile index aae5b77008..295135f3bf 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -149,7 +149,8 @@ platform :ios do configure_bundle_id("FreeAPS", "ru.artpancreas.#{TEAMID}.FreeAPS", [ Spaceship::ConnectAPI::BundleIdCapability::Type::APP_GROUPS, - Spaceship::ConnectAPI::BundleIdCapability::Type::HEALTHKIT + Spaceship::ConnectAPI::BundleIdCapability::Type::HEALTHKIT, + Spaceship::ConnectAPI::BundleIdCapability::Type::NFC_TAG_READING ]) configure_bundle_id("FreeAPSWatch WatchKit Extension", "ru.artpancreas.#{TEAMID}.FreeAPS.watchkitapp.watchkitextension", [ @@ -201,7 +202,7 @@ platform :ios do bundle_id = Spaceship::ConnectAPI::BundleId.find(identifier) end - find_bundle_id("com.#{TEAMID}.loopkit.Loop") + find_bundle_id("ru.artpancreas.#{TEAMID}.FreeAPS") end desc "Nuke Certs" diff --git a/fastlane/testflight.md b/fastlane/testflight.md index 1bf192c626..b1392f21a6 100644 --- a/fastlane/testflight.md +++ b/fastlane/testflight.md @@ -93,14 +93,6 @@ _Please note that in default builds of iAPS, the app group is actually identical 1. Click "Confirm". 1. Remember to do this for each of the identifiers above. -## Add NFC Tag Reading to FreeeAPS App ID -1. Go to [Certificates, Identifiers & Profiles](https://developer.apple.com/account/resources/identifiers/list) on the apple developer site. -1. Click on the "FreeeAPS" identifier -1. Scroll down to "NFC Tag Reading" -1. Tap the check box to enable NFC Tag Reading. -1. Click "Save". -1. Click "Confirm". - ## Create iAPS App in App Store Connect If you have created a iAPS app in App Store Connect before, you can skip this section as well.