From 46291fe8d032d8e49fddd644e38e278abdeaa2ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Helm=C3=B8=20Larsen?= Date: Sat, 2 Dec 2017 12:40:03 +0100 Subject: [PATCH 01/46] Update danish Updated until line 4000 --- lib/language.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/language.js b/lib/language.js index b69b1c26d9b..cd7e2bea58e 100644 --- a/lib/language.js +++ b/lib/language.js @@ -40,6 +40,7 @@ function init() { 'Listening on port' : { cs: 'Poslouchám na portu' ,es: 'Escuchando en el puerto' + ,dk: 'Lytter på port' ,fr: 'Ecoute sur port' ,pt: 'Escutando porta' ,sv: 'Lyssnar på port' @@ -464,7 +465,7 @@ function init() { ,hr: 'Danas' ,sv: 'Idag' ,it: 'Oggi' - ,dk: 'Idag' + ,dk: 'I dag' ,fi: 'Tänään' ,nb: 'Idag' ,he: 'היום' @@ -1015,7 +1016,7 @@ function init() { ,bg: 'Зареждане на въведените лечения от' ,hr: 'Učitavanje podataka o tretmanu' ,it: 'Carico dati dei trattamenti' - ,dk: 'Indlæser data for' + ,dk: 'Indlæser behandlingsdata for' ,fi: 'Lataan toimenpidetietoja: ' ,nb: 'Leser behandlingsdata for' ,he: 'טוען נתוני טיפולים של' @@ -1131,7 +1132,7 @@ function init() { ,bg: 'няма' ,hr: 'Prazno' ,it: 'Nessuno' - ,dk: 'ingen' + ,dk: 'Ingen' ,fi: 'tyhjä' ,nb: 'ingen' ,he: 'ללא' @@ -1407,7 +1408,7 @@ function init() { ,bg: 'Период' ,hr: 'Period' ,it: 'Periodo' - ,dk: 'Period' + ,dk: 'Periode' ,fi: 'Aikaväli' ,nb: 'Periode' ,he: 'תקופה' @@ -1887,7 +1888,7 @@ function init() { ,hr: 'Standardna devijacija' ,sv: 'Standardavvikelse' ,it: 'Deviazione Standard' - ,dk: 'Standardafgivelse' + ,dk: 'Standardafvigelse' ,fi: 'Keskijakauma' ,nb: 'Standardavvik' ,he: 'סטיית תקן' @@ -2048,7 +2049,7 @@ function init() { ,hr: 'Nema pohranjenog API tajnog hasha. Unesite tajni API' ,sv: 'Hemlig api-nyckel saknas. Du måste ange API hemlighet' ,it: 'API hash segreto non è ancora memorizzato. È necessario inserire API segreto.' - ,dk: 'Mangler API-nøgle. Du skal indtaste API hemmelighed' + ,dk: 'Mangler API-nøgle. Du skal indtaste API nøglen' ,fi: 'Salainen API-tarkiste puuttuu. Syötä API tarkiste.' ,nb: 'Mangler API nøkkel. Du må skrive inn API hemmelighet.' ,pl: 'Nie ma żadnego poufnego hasha API zapisanego. Należy wprowadzić poufny hash API.' @@ -2230,7 +2231,7 @@ function init() { ,hr: 'Uredi zapis' ,sv: 'Editera post' ,it: 'Modifica registro' - ,dk: 'Editere post' + ,dk: 'Rediger post' ,fi: 'Muokkaa tallennetta' ,nb: 'Editere registrering' ,he: 'ערוך רשומה' @@ -2942,7 +2943,7 @@ function init() { ,hr: 'Koristi korekciju GUK-a u izračunu' ,sv: 'Använd BS-korrektion för beräkning' ,it: 'Utilizzare la correzione nei calcoli delle Glicemie' - ,dk: 'Anvend BS-korrektion før beregning' + ,dk: 'Anvend BS-korrektion i beregning' ,fi: 'Käytä korjausannosta laskentaan' ,nb: 'Bruk blodsukkerkorrigering i beregning' ,pl: 'Użyj BG w obliczeniach korekty' @@ -3030,7 +3031,7 @@ function init() { ,hr: 'Brzi izbor' ,sv: 'Snabbval' ,it: 'Scelta rapida' - ,dk: 'Hurtig snack' + ,dk: 'Hurtig valg' ,fi: 'Pikavalinta' ,nb: 'Hurtigvalg' ,pl: 'Szybki wybór' @@ -3208,7 +3209,7 @@ function init() { ,hr: 'Unesi korekciju inzulinom u tretman' ,sv: 'Ange insulinkorrektion för händelse' ,it: 'Inserisci correzione insulina nella somministrazione' - ,dk: 'Indtast insulionkorrektion' + ,dk: 'Indtast insulinkorrektion' ,fi: 'Syötä insuliinikorjaus' ,nb: 'Task inn insulinkorrigering' ,pl: 'Wprowadź wartość korekty w leczeniu' @@ -3885,7 +3886,7 @@ function init() { ,hr: 'Status autentikacije' ,sv: 'Autentiseringsstatus' ,it: 'Stato di autenticazione' - ,dk: 'Autentifikationsstatus' + ,dk: 'Godkendelsesstatus' ,fi: 'Autentikoinnin tila' ,nb: 'Autentiseringsstatus' ,pl: 'Status uwierzytelnienia' From 23b915e87e548dc76cb5097c83ce7a94dfda5975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Helm=C3=B8=20Larsen?= Date: Sat, 2 Dec 2017 20:59:21 +0100 Subject: [PATCH 02/46] Updates to danish translation Updated lines 4000 -> 7450 --- lib/language.js | 105 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 90 insertions(+), 15 deletions(-) diff --git a/lib/language.js b/lib/language.js index b69b1c26d9b..af8314c64c9 100644 --- a/lib/language.js +++ b/lib/language.js @@ -4108,6 +4108,7 @@ function init() { ,'Logarithmic (Dynamic)' : { cs: 'Logaritmické (Dynamické)' ,de: 'Logaritmisch (dynamisch)' + ,dk: 'Logaritmisk (Dynamisk)' ,it: 'Logaritmica (Dinamica)' ,el: 'Λογαριθμική (Δυναμική)' ,ro: 'Logaritmic (Dinamic)' @@ -4127,6 +4128,7 @@ function init() { ,'Insulin-on-Board' : { cs: 'IOB' ,de: 'Aktives Bolus-Insulin' + ,dk: 'Aktivt insulin (IOB)' ,it: 'IOB-Insulina a Bordo' ,nb: 'AI' ,el: 'Ενεργή Ινσουλίνη (IOB)' @@ -4146,6 +4148,7 @@ function init() { ,'Carbs-on-Board' : { cs: 'COB' ,de: 'Aktiv wirksame Kohlenhydrate' + ,dk: 'Aktive kulhydrater (COB)' ,it: 'COB-Carboidrati a Bordo' ,nb: 'AK' ,el: 'Ενεργοί Υδατάνθρακες (COB)' @@ -4165,6 +4168,7 @@ function init() { ,'Bolus Wizard Preview' : { cs: 'BWP-Náhled bolusového kalk.' ,de: 'Bolus-Kalkulator Vorschau' + ,dk: 'Bolus Wizard (BWP)' ,it: 'BWP-Calcolatore di bolo' ,nb: 'Boluskalkulator' ,el: 'Εργαλείο Εκτίμησης Επάρκειας Ινσουλίνης (BWP)' @@ -4184,6 +4188,7 @@ function init() { ,'Value Loaded' : { cs: 'Hodnoty načteny' ,de: 'Geladener Wert' + ,dk: 'Værdi indlæst' ,it: 'Valori Caricati' ,nb: 'Verdi lastet' ,el: 'Τιμή ανακτήθηκε' @@ -4203,6 +4208,7 @@ function init() { ,'Cannula Age' : { cs: 'CAGE-Stáří kanyly' ,de: 'Kanülenalter' + ,dk: 'Insuflon alder (CAGE)' ,it: 'CAGE-Cambio Ago' ,el: 'Ημέρες Χρήσης Κάνουλας (CAGE)' ,nb: 'Nålalder' @@ -4222,6 +4228,7 @@ function init() { ,'Basal Profile' : { cs: 'Bazál' ,de: 'Basalraten-Profil' + ,dk: 'Basal profil' ,it: 'BASAL-Profilo Basale' ,el: 'Προφίλ Βασικής Ινσουλίνης (BASAL)' ,nb: 'Basalprofil' @@ -4342,7 +4349,7 @@ function init() { ,bg: '3часа' ,hr: '3h' ,it: '3ORE' - ,dk: '3tim' + ,dk: '3t' ,fi: '3h' ,nb: '3t' ,pl: '3h' @@ -4365,7 +4372,7 @@ function init() { ,bg: '6часа' ,hr: '6h' ,it: '6ORE' - ,dk: '6tim' + ,dk: '6t' ,fi: '6h' ,nb: '6t' ,pl: '6h' @@ -4383,7 +4390,7 @@ function init() { ,fr: '12hr' ,el: '12 ώρες' ,pt: '12h' - ,sv: '12tim' + ,sv: '12t' ,ro: '12h' ,bg: '12часа' ,hr: '12h' @@ -4411,7 +4418,7 @@ function init() { ,bg: '24часа' ,hr: '24h' ,it: '24ORE' - ,dk: '24tim' + ,dk: '24t' ,fi: '24h' ,nb: '24t' ,pl: '24h' @@ -4434,7 +4441,7 @@ function init() { ,bg: 'Настройки' ,hr: 'Postavke' ,it: 'Impostazioni' - ,dk: 'Opsætning' + ,dk: 'Indstillinger' ,fi: 'Asetukset' ,nb: 'Innstillinger' ,pl: 'Ustawienia' @@ -4480,7 +4487,7 @@ function init() { ,bg: 'Формат на датата' ,hr: 'Format datuma' ,it: 'Formato data' - ,dk: 'dato format' + ,dk: 'Dato format' ,fi: 'Aikamuoto' ,nb: 'Datoformat' ,pl: 'Format daty' @@ -4917,7 +4924,7 @@ function init() { ,bg: 'Кръвна захар' ,hr: 'Vrijednost GUK-a' ,it: 'Lettura glicemie' - ,dk: 'Glukose aflæsning' + ,dk: 'Blodsukker aflæsning' ,fi: 'Verensokeri' ,nb: 'Blodsukkermåling' ,he: 'מדידת סוכר' @@ -5126,7 +5133,7 @@ function init() { ,bg: 'Много висока КЗ' ,hr: 'Hitni alarm za hiper' ,it: 'Urgente:Glicemia Alta' - ,dk: 'Høj grænse overskredet' + ,dk: 'Kritisk grænse overskredet' ,fi: 'Kriittinen korkea' ,nb: 'Kritisk høy alarm' ,he: 'התראת גבוה דחופה' @@ -5245,7 +5252,7 @@ function init() { ,bg: 'Много стари данни' ,hr: 'Hitno: Stari podaci' ,it: 'Notifica:Urgente' - ,dk: 'Advarsel: Gamle data' + ,dk: 'Kritisk: Gamle data' ,fi: 'Vanhat tiedot: hälytys' ,nb: 'Advarsel: Veldig gamle data' ,pl: 'Uwaga: brak odczytów' @@ -5475,7 +5482,7 @@ function init() { ,bg: 'Име на страницата' ,hr: 'Vlastiti naziv' ,it: 'Titolo personalizzato' - ,dk: 'Egen titel' + ,dk: 'Valgfri titel' ,fi: 'Omavalintainen otsikko' ,nb: 'Egen tittel' ,pl: 'Własny tytuł strony' @@ -5558,6 +5565,7 @@ function init() { ,'Colorblind-friendly colors' : { cs: 'Pro barvoslepé' ,de: 'Farbenblind-freundliche Darstellung' + ,dk: 'Farveblindvenlige farver ,nb: 'Fargeblindvennlige farger' ,el: 'Χρώματα συμβατά για αχρωματοψία' ,pt: 'Cores para daltônicos' @@ -5675,7 +5683,7 @@ function init() { ,bg: 'в бъдещето' ,hr: 'U budućnosti' ,it: 'nel futuro' - ,dk: 'fremtiden' + ,dk: 'i fremtiden' ,fi: 'tulevaisuudessa' ,nb: 'fremtiden' ,pl: 'w przyszłości' @@ -5721,7 +5729,7 @@ function init() { ,bg: 'час по-рано' ,hr: 'sat unazad' ,it: 'ora fa' - ,dk: 'Time siden' + ,dk: 'time siden' ,fi: 'tunti sitten' ,nb: 'Time siden' ,pl: 'godzina temu' @@ -5744,7 +5752,7 @@ function init() { ,bg: 'часа по-рано' ,hr: 'sati unazad' ,it: 'ore fa' - ,dk: 'Timer siden' + ,dk: 'timer siden' ,fi: 'tuntia sitten' ,nb: 'Timer siden' ,pl: 'godzin temu' @@ -5767,7 +5775,7 @@ function init() { ,bg: 'мин. по-рано' ,hr: 'minuta unazad' ,it: 'minuto fa' - ,dk: 'minutter siden' + ,dk: 'minut siden' ,fi: 'm sitten' ,nb: 'minutter siden' ,pl: 'minuta temu' @@ -5951,7 +5959,7 @@ function init() { ,bg: 'Висок' ,hr: 'Teško' ,it: 'Pesante' - ,dk: 'Voldsom' + ,dk: 'Meget' ,fi: 'Raskas' ,nb: 'Mye' ,pl: 'Wysoki' @@ -6166,6 +6174,7 @@ function init() { ,'Language' : { cs: 'Jazyk' ,de: 'Sprache' + ,dk: 'Sprog' ,sv: 'Språk' ,nb: 'Språk' ,el: 'Γλώσσα' @@ -6185,6 +6194,7 @@ function init() { ,'Add new' : { cs: 'Přidat nový' ,de: 'Neu hinzufügen' + ,dk: 'Tilføj ny' ,sv: 'Lägg till ny' ,ro: 'Adaugă nou' ,el: 'Προσθήκη' @@ -6203,6 +6213,7 @@ function init() { ,'g' : { // grams shortcut cs: 'g' ,de: 'g' + ,dk: 'g' ,sv: 'g' ,ro: 'g' ,bg: 'гр' @@ -6221,6 +6232,7 @@ function init() { ,'ml' : { // milliliters shortcut cs: 'ml' ,de: 'ml' + ,dk: 'ml' ,sv: 'ml' ,ro: 'ml' ,bg: 'мл' @@ -6239,6 +6251,7 @@ function init() { ,'pcs' : { // pieces shortcut cs: 'ks' ,de: 'Stk.' + ,dk: 'stk' ,sv: 'st' ,ro: 'buc' ,bg: 'бр' @@ -6257,6 +6270,7 @@ function init() { ,'Drag&drop food here' : { cs: 'Sem táhni & pusť jídlo' ,de: 'Mahlzeit hierher verschieben' + ,dk: 'Hiv og slip mad her' ,sv: 'Dra&Släpp mat här' ,ro: 'Drag&drop aliment aici' ,el: 'Σύρετε εδώ φαγητό' @@ -6277,6 +6291,7 @@ function init() { ,sv: 'Care Portal' ,it: 'Somministrazioni' ,de: 'Behandlungs-Portal' + ,dk: 'Omsorgsportal' ,ro: 'Care Portal' ,bg: 'Въвеждане на данни' ,nb: 'Omsorgsportal' @@ -6294,6 +6309,7 @@ function init() { cs: 'Střední/Neznámá' ,sv: 'Medium/Okänt' ,de: 'Mittel/Unbekannt' + ,dk: 'Medium/Ukendt' ,ro: 'Mediu/Necunoscut' ,el: 'Μέσος/Άγνωστος' ,bg: 'Среден/неизвестен' @@ -6313,6 +6329,7 @@ function init() { ,sv: 'Framtida' ,ro: 'ÎN VIITOR' ,de: 'IN DER ZUKUNFT' + ,dk: 'I fremtiden' ,el: 'ΣΤΟ ΜΕΛΛΟΝ' ,bg: 'В БЪДЕШЕТО' ,nb: 'I fremtiden' @@ -6329,6 +6346,7 @@ function init() { ,'Update' : { // Update button cs: 'Aktualizovat' ,de: 'Aktualisieren' + ,dk: 'Opdater' ,sv: 'Uppdatera' ,nb: 'Oppdater' ,pt: 'Atualizar' @@ -6348,6 +6366,7 @@ function init() { ,'Order' : { cs: 'Pořadí' ,de: 'Reihenfolge' + ,dk: 'Sorter' ,sv: 'Sortering' ,nb: 'Sortering' ,el: 'Σειρά κατάταξης' @@ -6366,6 +6385,7 @@ function init() { ,'oldest on top' : { cs: 'nejstarší nahoře' ,de: 'älteste oben' + ,dk: 'ældste øverst' ,sv: 'Äldst först' ,nb: 'Eldste først' ,el: 'τα παλαιότερα πρώτα' @@ -6385,6 +6405,7 @@ function init() { cs: 'nejnovější nahoře' ,sv: 'Nyast först' ,de: 'neueste oben' + ,dk: 'nyeste øverst' ,nb: 'Nyeste først' ,el: 'τα νεότερα πρώτα' ,ro: 'mai noi primele' @@ -6404,6 +6425,7 @@ function init() { ,sv: 'Alla sensorhändelser' ,nb: 'Alle sensorhendelser' ,de: 'Alle Sensor-Ereignisse' + ,dl: 'Alle sensor begivenheder' ,el: 'Όλα τα συμβάντα του αισθητήρα' ,ro: 'Evenimente legate de senzor' ,bg: 'Всички събития от сензора' @@ -6422,6 +6444,7 @@ function init() { ,nb: 'Fjern fremtidige elementer fra mongo database' ,el: 'Αφαίρεση μελλοντικών εγγραφών από τη βάση δεδομένων' ,de: 'Entferne zukünftige Objekte aus Mongo-Datenbank' + ,dk: 'Fjern fremtidige værdier fra mongo databasen' ,ro: 'Șterge date din viitor din baza de date mongo' ,sv: 'Ta bort framtida händelser från mongodatabasen' ,bg: 'Премахни бъдещите точки от Монго базата с данни' @@ -6441,6 +6464,7 @@ function init() { ,nb: 'Finn og fjern fremtidige behandlinger' ,el: 'Εύρεση και αφαίρεση μελλοντικών ενεργειών από τη βάση δεδομένων' ,de: 'Finde und entferne zukünftige Behandlungen' + ,dk: 'Find og fjern fremtidige behandlinger' ,ro: 'Caută și elimină tratamente din viitor' ,sv: 'Hitta och ta bort framtida behandlingar' ,bg: 'Намери и премахни събития в бъдещето' @@ -6459,6 +6483,7 @@ function init() { cs: 'Tento úkol najde a odstraní ošetření v budoucnosti.' ,nb: 'Finn og fjern fremtidige behandlinger' ,de: 'Finde und entferne Behandlungen in der Zukunft.' + ,dk: 'Denne handling finder og fjerner fremtidige behandlinger.' ,el: 'Αυτή η ενέργεια αφαιρεί μελλοντικές ενέργειες από τη βάση δεδομένων' ,ro: 'Acest instrument curăță tratamentele din viitor.' ,sv: 'Denna uppgift hittar och rensar framtida händelser' @@ -6478,6 +6503,7 @@ function init() { cs: 'Odstraň ošetření v budoucnosti' ,nb: 'Fjern fremtidige behandlinger' ,de: 'Entferne Behandlungen in der Zukunft' + ,dk: 'Fjern behandlinger i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' ,ro: 'Șterge tratamentele din viitor' ,sv: 'Ta bort framtida händelser' @@ -6496,6 +6522,7 @@ function init() { ,'Find and remove entries in the future' : { cs: 'Najít a odstranit CGM data v budoucnosti' ,de: 'Finde und entferne Einträge in der Zukunft' + ,dk: 'Find og fjern indgange i fremtiden' ,nb: 'Finn og fjern fremtidige hendelser' ,el: 'Εύρεση και αφαίρεση μελλοντικών εγγραφών από τη βάση δεδομένων' ,bg: 'Намери и премахни данни от сензора в бъдещето' @@ -6517,6 +6544,7 @@ function init() { ,nb: 'Finn og fjern fremtidige cgm data lastet opp med feil dato/tid' ,el: 'Αυτή η ενέργεια αφαιρεί δεδομένα αιθητήρα τα οποία εισήχθησαν με λάθος ημερομηνία και ώρα, από τη βάση δεδομένων' ,de: 'Finde und entferne CGM Daten in der Zukunft, die vom Uploader mit falschem Datum/Uhrzeit erstellt wurden.' + ,dk: 'Denne handling finder og fjerner CGM data i fremtiden forårsaget af indlæsning med forkert dato/tid.' ,bg: 'Тази опция ще намери и премахне данни от сензора в бъдещето, създадени поради грешна дата/време.' ,ro: 'Instrument de căutare și eliminare a datelor din viitor, create de uploader cu ora setată greșit' ,sv: 'Denna uppgift hittar och tar bort framtida CGM-data skapad vid felaktig tidsinställning' @@ -6535,6 +6563,7 @@ function init() { cs: 'Odstraň CGM data v budoucnosti' ,nb: 'Fjern fremtidige hendelser' ,de: 'Entferne Einträge in der Zukunft' + ,dk: 'Fjern indgange i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' ,bg: 'Премахни данните от сензора в бъдещето' ,ro: 'Elimină înregistrările din viitor' @@ -6554,6 +6583,7 @@ function init() { cs: 'Nahrávám databázi ...' ,nb: 'Leser database ...' ,de: 'Lade Datenbank' + ,dk: 'Indlæser database ...' ,el: 'Φόρτωση Βάσης Δεδομένων' ,bg: 'Зареждане на базата с данни ...' ,ro: 'Încarc baza de date' @@ -6576,6 +6606,7 @@ function init() { ,ro: 'Baza de date conține %1 înregistrări din viitor' ,sv: 'Databas innehåller %1 framtida händelser' ,de: 'Datenbank enthält %1 zukünftige Einträge' + ,dk: 'Databasen indeholder %1 fremtidige indgange' ,bg: 'Базата с дани съдържа %1 бъдещи записи' ,it: 'Contiene Database %1 record futuri' ,fi: 'Tietokanta sisältää %1 merkintää tulevaisuudessa' @@ -6593,6 +6624,7 @@ function init() { ,nb: 'Fjern %1 valgte elementer?' ,el: 'Αφαίρεση των επιλεγμένων εγγραφών?' ,de: 'Lösche ausgewählten %1 Eintrag?' + ,dk: 'Fjern %1 valgte indgange?' ,ro: 'Șterg %1 înregistrări selectate?' ,sv: 'Ta bort %1 valda händelser' ,bg: 'Премахване на %1 от избраните записи?' @@ -6611,6 +6643,7 @@ function init() { cs: 'Chyba při nahrávání databáze' ,nb: 'Feil udner lasting av database' ,de: 'Fehler beim Laden der Datenbank' + ,dk: 'Fejl ved indlæsning af database' ,el: 'Σφάλμα στη φόρτωση της βάσης δεδομένων' ,ro: 'Eroare la încărcarea bazei de date' ,sv: 'Fel vid laddning av databas' @@ -6630,6 +6663,7 @@ function init() { cs: 'Záznam %1 odstraněn ...' ,nb: 'Element %1 fjernet' ,de: 'Eintrag %1 entfernt' + ,dk: 'Indgang %1 fjernet ...' ,el: 'Οι εγγραφές αφαιρέθηκαν' ,ro: 'Înregistrarea %1 a fost ștearsă...' ,sv: 'Händelse %1 borttagen ...' @@ -6649,6 +6683,7 @@ function init() { cs: 'Chyba při odstaňování záznamu %1' ,nb: 'Feil under fjerning av element %1' ,de: 'Fehler beim Entfernen des Eintrags %1' + ,dk: 'Fejl ved fjernelse af indgang %1' ,el: 'Σφάλμα αφαίρεσης εγγραφών' ,ro: 'Eroare la ștergerea înregistrării %1' ,sv: 'Fel vid borttagning av %1' @@ -6670,6 +6705,7 @@ function init() { ,ro: 'Se șterg înregistrările...' ,el: 'Αφαίρεση Εγγραφών' ,de: 'Entferne Einträge ...' + ,dk: 'Sletter indgange ...' ,sv: 'Tar bort händelser ...' ,bg: 'Изтриване на записите...' ,it: 'Elimino dei record ...' @@ -6689,6 +6725,7 @@ function init() { ,ro: 'Curăță tabela despre status din Mongo' ,el: 'Καθαρισμός βάσης δεδομένων Mongo' ,de: 'Bereinige Mongo Status-Datenbank' + ,dk: 'Slet Mongo status database' ,sv: 'Rensa Mongo status databas' ,bg: 'Изчисти статуса на Монго базата с данни' ,it: 'Pulisci database di Mongo' @@ -6705,6 +6742,7 @@ function init() { cs: 'Odstranění všech záznamů z kolekce devicestatus' ,nb: 'Fjern alle dokumenter fra device status tabell' ,de: 'Lösche alle Dokumente der Gerätestatus-Sammlung' + ,dk: 'Fjerne alle dokumenter fra device status tabellen' ,el: 'Διαγραφή όλων των δεδομένων σχετικών με κατάσταση της συσκευής ανάγνωσης του αισθητήρα' ,ro: 'Șterge toate documentele din colecția de status dispozitiv' ,sv: 'Ta bort alla dokument i devicestatus collektionen' @@ -6724,6 +6762,7 @@ function init() { ,nb: 'Denne funksjonen fjerner alle dokumenter fra device status tabellen. Nyttig når status for opplaster batteri ikke blir opppdatert' ,el: 'Αυτή η ενέργεια διαγράφει όλα τα δεδομένα της κατάστασης της συσκευής ανάγνωσης. Χρήσιμη όταν η κατάσταση της συσκευής ανάγνωσης δεν ανανεώνεται σωστά.' ,de: 'Diese Aufgabe entfernt alle Dokumente aus der Gerätestatus-Sammlung. Nützlich wenn der Uploader-Batteriestatus sich nicht aktualisiert.' + ,dk: 'Denne handling fjerner alle dokumenter fra device status tabellen. Brugbart når uploader betteri status ikke er korrekt opdateret.' ,ro: 'Acest instrument șterge toate documentele din colecția devicestatus. Se folosește când încărcarea bateriei nu se afișează corect.' ,sv: 'Denna uppgift tar bort alla dokument från devicestatuskollektionen. Användbart när batteristatus ej uppdateras' ,bg: 'Тази опция премахва всички документи от папката статус-устройство. Полезно е, когато статусът на батерията не се обновява.' @@ -6743,6 +6782,7 @@ function init() { ,ro: 'Șterge toate documentele' ,el: 'Διαγραφή όλων των δεδομένων' ,de: 'Lösche alle Dokumente' + ,dk: 'Slet alle dokumenter' ,sv: 'Ta bort alla dokument' ,bg: 'Изтрий всички документи' ,it: 'Eliminare tutti i documenti' @@ -6760,6 +6800,7 @@ function init() { ,nb: 'Fjern alle dokumenter fra device status tabellen?' ,el: 'Διαγραφή όλων των δεδομένων της κατάστασης της συσκευής ανάγνωσης?' ,de: 'Löschen aller Dokumente der Gerätestatus-Sammlung?' + ,dk: 'Fjern alle dokumenter fra device status tabellen' ,ro: 'Șterg toate documentele din colecția devicestatus?' ,sv: 'Ta bort alla dokument från devicestatuscollektionen' ,bg: 'Изтриване на всички документи от папката статус-устройство?' @@ -6777,6 +6818,7 @@ function init() { cs: 'Databáze obsahuje %1 záznamů' ,nb: 'Databasen inneholder %1 elementer' ,de: 'Datenbank enthält %1 Einträge' + ,dk: 'Databasen indeholder %1 indgange' ,el: 'Η βάση δεδομένων περιέχει 1% εγγραφές' ,ro: 'Baza de date conține %1 înregistrări' ,sv: 'Databasen innehåller %1 händelser' @@ -6795,6 +6837,7 @@ function init() { cs: 'Všechny záznamy odstraněny ...' ,nb: 'Alle elementer fjernet ...' ,de: 'Alle Einträge entfernt...' + ,dk: 'Alle indgange fjernet ...' ,el: 'Έγινε διαγραφή όλων των δεδομένων' ,ro: 'Toate înregistrările au fost șterse.' ,sv: 'Alla händelser raderade ...' @@ -6814,6 +6857,7 @@ function init() { ,nb: 'Administrasjonsoppgaver' ,ro: 'Instrumente de administrare' ,de: 'Administrator Werkzeuge' + ,dl: 'Administrator opgaver' ,el: 'Εργαλεία Διαχειριστή' ,sv: 'Adminverktyg' ,bg: 'Настройки на администратора' @@ -6834,6 +6878,7 @@ function init() { ,ro: 'Rapoarte Nightscout' ,el: 'Αναφορές' ,de: 'Nightscout-Berichte' + ,dk: 'Nightscout - rapporter' ,sv: 'Nightscout - Statistik' ,bg: 'Найтскаут статистика' ,it: 'Nightscout - Statistiche' @@ -6849,6 +6894,7 @@ function init() { ,'Cancel' : { cs: 'Zrušit' ,de: 'Abbruch' + ,dk: 'Annuller' ,nb: 'Avbryt' ,el: 'Ακύρωση' ,ro: 'Renunță' @@ -6869,6 +6915,7 @@ function init() { ,nb: 'Editer behandling' ,ro: 'Modifică înregistrarea' ,de: 'Bearbeite Behandlung' + ,dk: 'Rediger indgang' ,el: 'Επεξεργασία Εγγραφής' ,sv: 'Redigera behandling' ,bg: 'Редакция на събитие' @@ -6886,6 +6933,7 @@ function init() { cs: 'Doba trvání' ,ro: 'Durata' ,de: 'Dauer' + ,dk: 'Varighed' ,el: 'Διάρκεια' ,sv: 'Varaktighet' ,bg: 'Времетраене' @@ -6903,6 +6951,7 @@ function init() { ,'Duration in minutes' : { cs: 'Doba trvání v minutách' ,de: 'Dauer in Minuten' + ,dk: 'Varighed i minutter' ,ro: 'Durata în minute' ,el: 'Διάρκεια σε λεπτά' ,sv: 'Varaktighet i minuter' @@ -6921,6 +6970,7 @@ function init() { ,'Temp Basal' : { cs: 'Dočasný bazál' ,de: 'Temporäre Basalrate' + ,dk: 'Midlertidig basal' ,ro: 'Bazală temporară' ,sv: 'Temporär basal' ,bg: 'Временен базал' @@ -6940,6 +6990,7 @@ function init() { ,ro: 'Start bazală temporară' ,sv: 'Temporär basalstart' ,de: 'Start Temporäre Basalrate' + ,dk: 'Midlertidig basal start' ,bg: 'Начало на временен базал' ,it: 'Inizio Basale Temp' ,nb: 'Midlertidig basal start' @@ -6959,6 +7010,7 @@ function init() { ,bg: 'Край на временен базал' ,it: 'Fine Basale Temp' ,de: 'Ende Temporäre Basalrate' + ,dk: 'Midlertidig basal slut' ,nb: 'Midlertidig basal stopp' ,fi: 'Tilapäinen basaali loppu' ,pl: 'Koniec tymczasowej dawki podstawowej' @@ -6973,6 +7025,7 @@ function init() { cs: 'Procenta' ,ro: 'Procent' ,de: 'Prozent' + ,dk: 'Procent' ,el: 'Επι τοις εκατό' ,sv: 'Procent' ,bg: 'Процент' @@ -6993,6 +7046,7 @@ function init() { ,sv: 'Basaländring i %' ,bg: 'Промяна на базала с %' ,de: 'Basalratenänderung in %' + ,dk: 'Basal ændring i %' ,it: 'Variazione basale in %' ,nb: 'Basal endring i %' ,fi: 'Basaalimuutos prosenteissa' @@ -7009,6 +7063,7 @@ function init() { ,ro: 'Valoare bazală' ,sv: 'Basalvärde' ,de: 'Basalrate' + ,dk: 'Basalværdi' ,bg: 'Временен базал' ,it: 'Valore Basale' ,nb: 'Basalverdi' @@ -7026,6 +7081,7 @@ function init() { ,bg: 'Базална стойност' ,it: 'Valore Basale Assoluto' ,de: 'Absoluter Basalratenwert' + ,dk: 'Absolut basalværdi' ,nb: 'Absolutt basalverdi' ,ro: 'Valoare absolută bazală' ,sv: 'Absolut basalvärde' @@ -7042,6 +7098,7 @@ function init() { cs: 'Oznámení' ,bg: 'Известяване' ,de: 'Ankündigung' + ,dk: 'Meddelelse' ,ro: 'Anunț' ,el: 'Ανακοίνωση' ,sv: 'Avisering' @@ -7063,6 +7120,7 @@ function init() { ,ro: 'Se încarcă date bazală temporară' ,sv: 'Laddar temporär basaldata' ,de: 'Lade temporäre Basaldaten' + ,dk: 'Indlæser midlertidig basal data' ,nb: 'Laster verdier for midlertidig basal' ,fi: 'Lataan tilapäisten basaalien tietoja' ,bg: 'Зареждане на данни за временния базал' @@ -7081,6 +7139,7 @@ function init() { ,nb: 'Lagre før bytte til ny?' ,el: 'Αποθήκευση τρεχουσας εγγραφής πριν δημιουργήσουμε νέα?' ,de: 'Aktuelle Einträge speichern?' + ,dk: 'Gem aktuelle indgang før der skiftes til ny?' ,fi: 'Tallenna nykyinen merkintä ennen vaihtoa uuteen?' ,bg: 'Запази текущият запис преди да промениш новия ' ,pl: 'Zapisać bieżący rekord przed zamianą na nowy?' @@ -7098,6 +7157,7 @@ function init() { ,sv: 'Ny profil' ,el: 'Εναλλαγή προφίλ' ,de: 'Profil wechseln' + ,dk: 'Byt profil' ,nb: 'Bytt profil' ,fi: 'Vaihda profiilia' ,bg: 'Смяна на профил' @@ -7113,6 +7173,7 @@ function init() { ,'Profile' : { cs: 'Profil' ,de: 'Profil' + ,dk: 'Profil' ,el: 'Προφίλ' ,it: 'Profilo' ,ro: 'Profil' @@ -7131,6 +7192,7 @@ function init() { ,'General profile settings' : { cs: 'Obecná nastavení profilu' ,de: 'Allgemeine Profileinstellungen' + ,dk: 'Generelle profil indstillinger' ,el: 'Γενικές Ρυθμίσεις Προφίλ' ,ro: 'Setări generale profil' ,sv: 'Allmän profilinställning' @@ -7152,6 +7214,7 @@ function init() { ,sv: 'Titel' ,el: 'Τίτλος' ,de: 'Überschrift' + ,dk: 'Overskrift' ,nb: 'Tittel' ,fi: 'Otsikko' ,bg: 'Заглавие' @@ -7171,6 +7234,7 @@ function init() { ,el: 'Εγραφές Βάσης Δεδομένων' ,nb: 'Databaseverdier' ,de: 'Datenbankeinträge' + ,dk: 'Database indgange' ,fi: 'Tietokantamerkintöjä' ,bg: 'Записи в базата с данни' ,pl: 'Rekordy bazy danych' @@ -7189,6 +7253,7 @@ function init() { ,el: 'Προσθήκη νέας εγγραφής' ,nb: 'Legg til ny rad' ,de: 'Neuen Eintrag hinzufügen' + ,dk: 'Tilføj ny indgang' ,fi: 'Lisää uusi merkintä' ,bg: 'Добави нов запис' ,pl: 'Dodaj nowy rekord' @@ -7207,6 +7272,7 @@ function init() { ,el: 'Αφαίρεση εγγραφής' ,nb: 'Fjern denne raden' ,de: 'Diesen Eintrag löschen' + ,fk: 'Fjern denne indgang' ,fi: 'Poista tämä merkintä' ,bg: 'Премахни този запис' ,pl: 'Usuń ten rekord' @@ -7225,6 +7291,7 @@ function init() { ,sv: 'Kopiera denna händelse till ny' ,nb: 'Kopier til ny rad' ,de: 'Diesen Eintrag duplizieren' + ,dk: 'Dupliker denne indgang' ,fi: 'Kopioi tämä merkintä uudeksi' ,bg: 'Копирай този запис като нов' ,pl: 'Powiel ten rekord na nowy' @@ -7242,6 +7309,7 @@ function init() { ,sv: 'Händelse giltig från' ,el: 'Ισχύει από' ,de: 'Eintrag gültig ab' + ,dk: 'Indgang gyldig fra' ,nb: 'Rad gyldig fra' ,fi: 'Merkintä voimassa alkaen' ,bg: 'Записът е валиден от ' @@ -7260,6 +7328,7 @@ function init() { ,sv: 'Lagrad profil' ,el: 'Αποθηκευμένα προφίλ' ,de: 'Gesicherte Profile' + ,dk: 'Gemte profiler' ,nb: 'Lagrede profiler' ,fi: 'Tallennetut profiilit' ,bg: 'Запаметени профили' @@ -7275,6 +7344,7 @@ function init() { ,'Timezone' : { cs: 'Časová zóna' ,de: 'Zeitzone' + ,dk: 'Tidszone' ,ro: 'Fus orar' ,el: 'Ζώνη Ώρας' ,sv: 'Tidszon' @@ -7297,6 +7367,7 @@ function init() { ,sv: 'verkningstid för insulin (DIA)' ,nb: 'Insulin varighet' ,de: 'Dauer der Insulinaktivität (DIA)' + ,dk: 'Varighed af insulin aktivitet (DIA)' ,fi: 'Insuliinin vaikutusaika (DIA)' ,bg: 'Продължителност на инсулиновата активност DIA' ,pl: 'Czas trwania aktywnej insuliny (DIA)' @@ -7313,6 +7384,7 @@ function init() { ,ro: 'Reprezintă durata tipică pentru care insulina are efect. Este diferită la fiecare pacient și pentru fiecare tip de insulină' ,el: 'Αντιπροσωπευει την τυπική διάρκεια δράσης της χορηγηθείσας ινσουλίνης.' ,de: 'Entspricht der typischen Dauer in der das Insulin wirkt. Variiert je Patient und Insulintyp. Häufig 3-4 Stunden für die meisten Pumpeninsuline und die meisten Patienten. Manchmal auch Insulin-Wirkungsdauer genannt.' + ,dk: 'Representerer den typiske tid hvor insulinen virker. Varierer per patient og per insulin type. Typisk 3-4 timer for de fleste pumpe insulin og for de fleste patienter. Nogle gange kaldes dette også insulin-livs-tid.' ,sv: 'Beskriver under hur lång tid insulinet verkar. Varierar mellan patienter. Typisk varaktighet 3-4 timmar.' ,nb: 'Representerer typisk insulinvarighet. Varierer per pasient og per insulin type. Vanligvis 3-4 timer for de fleste typer insulin og de fleste pasientene. Noen ganger også kalt insulinlevetid.' ,fi: 'Kertoo insuliinin tyypillisen vaikutusajan. Vaihtelee potilaan ja insuliinin tyypin mukaan. Tyypillisesti 3-4 tuntia pumpuissa käytettävällä insuliinilla.' @@ -7333,6 +7405,7 @@ function init() { ,el: 'Αναλογία Ινσουλίνης/Υδατάνθρακα (I:C)' ,nb: 'IKH forhold' ,de: 'Insulin/Kohlenhydrate-Verhältnis (I:KH)' + ,dk: 'Insulin til kulhydrat forhold (I:C)' ,fi: 'Insuliiniannoksen hiilihydraattisuhde (I:HH)' ,bg: 'Съотношение инсулин/въглехидратите ICR I:C И:ВХ' ,pl: 'Współczynnik insulina/węglowodany (I:C)' @@ -7349,6 +7422,7 @@ function init() { ,ro: 'ore' ,el: 'ώρες' ,de: 'Stunden' + ,dk: 'timer' ,sv: 'timmar' ,nb: 'timer' ,fi: 'tuntia' @@ -7368,6 +7442,7 @@ function init() { ,sv: 'g/timme' ,nb: 'g/t' ,de: 'g/Std' + ,dk: 'g/time' ,fi: 'g/tunti' ,bg: 'гр/час' ,pl: 'g/godzine' From 863c1dffbd471ed1ce3565f114581c21fcc81e9b Mon Sep 17 00:00:00 2001 From: Bog Dan Date: Sun, 3 Dec 2017 09:24:43 +0200 Subject: [PATCH 03/46] RO - update 12/03/2017 Updated language translation and few errors fixed. --- lib/language.js | 57 +++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/lib/language.js b/lib/language.js index b69b1c26d9b..796052fa204 100644 --- a/lib/language.js +++ b/lib/language.js @@ -8412,7 +8412,7 @@ function init() { ,'Positive temp basal insulin:' : { cs: 'Pozitivní dočasný bazální inzulín:' ,bg: 'Положителен временен базален инсулин' - ,ro: 'Bazala temporară crescută:' + ,ro: 'Bazala temporară marită:' ,el: 'Θετική βασική ινσουλίνη' ,ru: 'Положит знач временн базал инс ' ,sv: 'Positiv tempbasal insulin:' @@ -8429,7 +8429,7 @@ function init() { ,'Negative temp basal insulin:' : { cs:'Negativní dočasný bazální inzulín:' ,bg: 'Отрицателен временен базален инсулин' - ,ro: 'Bazala temporară scăzută:' + ,ro: 'Bazala temporară micșorată:' ,el: 'Αρνητική βασική ινσουλίνη' ,ru: 'Отриц знач временн базал инс' ,sv: 'Negativ tempbasal för insulin:' @@ -8881,7 +8881,7 @@ function init() { ,'hour ago' : { cs:'hodina zpět' ,bg: 'Преди час' - ,ro: 'oră trecut' + ,ro: 'oră în trecut' ,ru: 'час назад' ,sv: 'timme sedan' ,nb: 'time siden' @@ -8897,7 +8897,7 @@ function init() { ,'hours ago' : { cs:'hodin zpět' ,bg: 'Преди часове' - ,ro: 'ore trecute' + ,ro: 'ore în trecut' ,ru: 'часов назад' ,sv: 'timmar sedan' ,nb: 'timer siden' @@ -8994,7 +8994,7 @@ function init() { ,'Current Carb Ratio' : { cs:'Sacharidový poměr (I:C)' ,de: 'Aktuelles KH-Verhältnis' - ,ro: 'Report Insulină:Carbohidrați (ICR)' + ,ro: 'Raport Insulină:Carbohidrați (ICR)' ,ru: 'Актуальное соотношение инсулин:углеводы' ,sk: 'Aktuálny sacharidový pomer (I"C)' ,sv: 'Gällande kolhydratkvot' @@ -9581,7 +9581,7 @@ function init() { ,'aiming at' : { cs:'s cílem' ,de: 'angestrebt werden' - ,ro: 'se țintește la' + ,ro: 'ținta este' ,ru: 'цель на' ,bg: 'цел към' ,sv: 'önskad utgång' @@ -9700,7 +9700,7 @@ function init() { ,'Time to change cannula' : { cs:'Čas na výměnu setu' ,de: 'Es ist Zeit, die Kanüle zu wechseln' - ,ro: 'Este momentul să schimbați canula' + ,ro: 'Este vremea să schimbați canula' ,bg: 'Време за смяна на сет' ,ru: 'Пора заменить канюлю' ,sv: 'Dags att byta infusionsset' @@ -9730,7 +9730,7 @@ function init() { ,'Cannula age %1 hours' : { cs:'Stáří setu %1 hodin' ,de: 'Kanülen Alter %1 Stunden' - ,ro: 'Vechimea canulei %1 ore' + ,ro: 'Vechimea canulei în ore: %1' ,bg: 'Сетът е на %1 часове' ,ru: 'Возраст канюли %1 час' ,sv: 'Infusionsset tid %1 timmar' @@ -9820,7 +9820,7 @@ function init() { ,'Insulin reservoir change overdue!' : { cs:'Čas na výměnu zásobníku vypršel!' ,de: 'Ampullenwechsel überfällig!' - ,ro: 'Depășire termen de schimbare a rezervorului de insulină' + ,ro: 'Termenul de schimbare a rezervorului de insulină a fost depășit' ,bg: 'Смянатата на резервоара просрочена' ,ru: 'Срок замены тубы инсулина истек' ,sv: 'Insulinbytestid överskriden' @@ -10329,7 +10329,7 @@ function init() { , nb: 'slightly dropping' , pl: 'slightly dropping' , pt: 'slightly dropping' - , ro: 'slightly dropping' + , ro: 'scădere ușoară' , ru: 'незначительное падение' , sk: 'slightly dropping' , sv: 'slightly dropping' @@ -10354,7 +10354,7 @@ function init() { , nb: 'slightly rising' , pl: 'slightly rising' , pt: 'slightly rising' - , ro: 'slightly rising' + , ro: 'creștere ușoară' , ru: 'незначительный подъем' , sk: 'slightly rising' , sv: 'slightly rising' @@ -10379,7 +10379,7 @@ function init() { , nb: 'holding' , pl: 'holding' , pt: 'holding' - , ro: 'holding' + , ro: 'stabil' , ru: 'ровный' , sk: 'holding' , sv: 'holding' @@ -10404,7 +10404,7 @@ function init() { , nb: 'rising' , pl: 'rising' , pt: 'rising' - , ro: 'rising' + , ro: 'creștere' , ru: 'растет' , sk: 'rising' , sv: 'rising' @@ -10429,7 +10429,7 @@ function init() { , nb: 'dropping' , pl: 'dropping' , pt: 'dropping' - , ro: 'dropping' + , ro: 'scădere' , ru: 'падает' , sk: 'dropping' , sv: 'dropping' @@ -10454,7 +10454,7 @@ function init() { , nb: 'rapidly dropping' , pl: 'rapidly dropping' , pt: 'rapidly dropping' - , ro: 'rapidly dropping' + , ro: 'scădere bruscă' , ru: 'быстро падает' , sk: 'rapidly dropping' , sv: 'rapidly dropping' @@ -10479,7 +10479,7 @@ function init() { , nb: 'rapidly rising' , pl: 'rapidly rising' , pt: 'rapidly rising' - , ro: 'rapidly rising' + , ro: 'creștere rapidă' , ru: 'быстро растет' , sk: 'rapidly rising' , sv: 'rapidly rising' @@ -10504,7 +10504,7 @@ function init() { , nb: '%1 and %2 as of %3.' , pl: '%1 and %2 as of %3.' , pt: '%1 and %2 as of %3.' - , ro: '%1 and %2 as of %3.' + , ro: '%1 și %2 din %3.' , nl: '%1 and %2 as of %3.' , ru: '%1 и %2 начиная с %3.' , sk: '%1 and %2 as of %3.' @@ -10529,7 +10529,7 @@ function init() { , nb: '%1 current basal is %2 units per hour' , pl: '%1 current basal is %2 units per hour' , pt: '%1 current basal is %2 units per hour' - , ro: '%1 current basal is %2 units per hour' + , ro: '%1 bazala curentă este %2 unități pe oră' , ru: '%1 текущий базал %2 ед в час' , sk: '%1 current basal is %2 units per hour' , sv: '%1 current basal is %2 units per hour' @@ -10554,7 +10554,7 @@ function init() { , nb: '%1 temp basal of %2 units per hour will end %3' , pl: '%1 temp basal of %2 units per hour will end %3' , pt: '%1 temp basal of %2 units per hour will end %3' - , ro: '%1 temp basal of %2 units per hour will end %3' + , ro: '%1 bazala temporară de %2 unități pe oră se va termina la %3' , ru: '%1 временный базал %2 ед в час закончится в %3' , sk: '%1 temp basal of %2 units per hour will end %3' , sv: '%1 temp basal of %2 units per hour will end %3' @@ -10579,7 +10579,7 @@ function init() { , nb: 'and you have %1 insulin on board.' , pl: 'and you have %1 insulin on board.' , pt: 'and you have %1 insulin on board.' - , ro: 'and you have %1 insulin on board.' + , ro: 'și mai aveți %1 insulină activă.' , ru: 'и вы имеете %1 инсулина в организме.' , sk: 'and you have %1 insulin on board.' , sv: 'and you have %1 insulin on board.' @@ -10604,7 +10604,7 @@ function init() { , nb: 'You have %1 insulin on board' , pl: 'You have %1 insulin on board' , pt: 'You have %1 insulin on board' - , ro: 'You have %1 insulin on board' + , ro: 'Aveți %1 insulină activă' , ru: 'вы имеете %1 инсулина в организме' , sk: 'You have %1 insulin on board' , sv: 'You have %1 insulin on board' @@ -10629,7 +10629,7 @@ function init() { , nb: '%1 units of' , pl: '%1 units of' , pt: '%1 units of' - , ro: '%1 units of' + , ro: '%1 unități' , ru: '%1 единиц' , sk: '%1 units of' , sv: '%1 units of' @@ -10653,7 +10653,7 @@ function init() { , nb: 'Your' , pl: 'Your' , pt: 'Your' - , ro: 'Your' + , ro: '' , ru: 'ваш' , sk: 'Your' , sv: 'Your' @@ -10677,8 +10677,8 @@ function init() { , nb: '%1 has a ' , pl: '%1 has a ' , pt: '%1 has a ' - , ro: '%1 имеет ' - , ru: '%1 has a ' + , ro: '%1 are ' + , ru: '%1 имеет ' , sk: '%1 has a ' , sv: '%1 has a ' , zh_cn: '%1 has a ' @@ -10701,7 +10701,7 @@ function init() { , nb: 'no' , pl: 'no' , pt: 'no' - , ro: 'no' + , ro: 'fără' , ru: 'нет' , sk: 'no' , sv: 'no' @@ -10712,20 +10712,25 @@ function init() { cs: 'Tuk [g]' ,de: 'Fett [g]' ,fi: 'Rasva [g]' + ,ro: 'Grăsimi [g]' }, 'Protein [g]': { cs: 'Proteiny [g]' ,de: 'Proteine [g]' ,fi: 'Proteiini [g]' + ,ro: 'Proteine [g]' + }, 'Energy [kJ]': { cs: 'Energie [kJ]' ,de: 'Energie [kJ]' , fi: 'Energia [kJ]' + ,ro: 'Energie [g]' } , 'Clock View': { fi: 'Kellonäkymä' + ,ro: 'Vedere tip ceas' } }; From e277f165bdbb7e0d67d745112c7b7c08ab70a8a2 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Tue, 5 Dec 2017 11:23:28 +0200 Subject: [PATCH 04/46] Update language.js Added missing single quote --- lib/language.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/language.js b/lib/language.js index af8314c64c9..e5af981e0ea 100644 --- a/lib/language.js +++ b/lib/language.js @@ -5565,7 +5565,7 @@ function init() { ,'Colorblind-friendly colors' : { cs: 'Pro barvoslepé' ,de: 'Farbenblind-freundliche Darstellung' - ,dk: 'Farveblindvenlige farver + ,dk: 'Farveblindvenlige farver' ,nb: 'Fargeblindvennlige farger' ,el: 'Χρώματα συμβατά για αχρωματοψία' ,pt: 'Cores para daltônicos' From ec4e97a1c735cd80d77dc33f2b34373b908fb749 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Tue, 5 Dec 2017 11:35:50 +0200 Subject: [PATCH 05/46] Bump version number to 0.10.3 --- bower.json | 2 +- npm-shrinkwrap.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index 00a25dda77a..9c69a0346c5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "nightscout", - "version": "0.10.2-release-20171201", + "version": "0.10.3-dev-20171205"", "dependencies": { "colorbrewer": "~1.0.0", "jQuery-Storage-API": "~1.7.2", diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 52ec53c4471..75f0b09c9f4 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "Nightscout", - "version": "0.10.2-release-20171201", + "version": "0.10.3-dev-20171205", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d5fb14ef018..4a9dc335515 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Nightscout", - "version": "0.10.2-release-20171201", + "version": "0.10.3-dev-20171205", "description": "Nightscout acts as a web-based CGM (Continuous Glucose Montinor) to allow multiple caregivers to remotely view a patients glucose data in realtime.", "license": "AGPL-3.0", "author": "Nightscout Team", From 18892a491b587b138361e72902895ced68c911a4 Mon Sep 17 00:00:00 2001 From: Dragan Maksimovic Date: Tue, 5 Dec 2017 07:17:21 -0700 Subject: [PATCH 06/46] Fix bg units in updated Loop pill (#3114) * Update package.json * update package.json * Update loop.js * test * add BLE RSSI * add BLE RSSI * update RSSI time stamp * update Loop RSSI reporting * update Loop RSSI reporting * show RSSI and pumpRSSI in Loop pill, if available * update Loop pill RSSI * Update RSSI in Loop pill * Fix bg units * updated Loop pill test * Fix bg units --- lib/plugins/loop.js | 20 ++++++++++++++++---- tests/loop.test.js | 6 +++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/plugins/loop.js b/lib/plugins/loop.js index 8b65f1bd0b2..bf2482cfe3c 100644 --- a/lib/plugins/loop.js +++ b/lib/plugins/loop.js @@ -299,13 +299,25 @@ function init(ctx) { function concatEventualBG (valueParts) { if (prop.lastLoop && prop.lastLoop.predicted) { var predictedBGvalues = prop.lastLoop.predicted.values; - var eventualBG = predictedBGvalues.pop(); + var eventualBG = predictedBGvalues[predictedBGvalues.length-1]; + var maxBG = Math.max.apply(null,predictedBGvalues); + var minBG = Math.min.apply(null,predictedBGvalues); + var eventualBGscaled = sbx.settings.units === 'mmol' ? + sbx.roundBGToDisplayFormat(sbx.scaleMgdl(eventualBG)) : eventualBG; + var maxBGscaled = sbx.settings.units === 'mmol' ? + sbx.roundBGToDisplayFormat(sbx.scaleMgdl(maxBG)) : maxBG; + var minBGscaled = sbx.settings.units === 'mmol' ? + sbx.roundBGToDisplayFormat(sbx.scaleMgdl(minBG)) : minBG; valueParts = valueParts.concat([ - ', Predicted Eventual BG: ' - , eventualBG + ', Predicted Min-Max BG: ' + , minBGscaled + , '-' + , maxBGscaled + ,', Eventual BG: ' + , eventualBGscaled ]); } - + return valueParts; } diff --git a/tests/loop.test.js b/tests/loop.test.js index dde15daf187..78580470430 100644 --- a/tests/loop.test.js +++ b/tests/loop.test.js @@ -121,10 +121,10 @@ describe('loop', function ( ) { options.value.should.equal('1m ago'); var first = _.first(options.info); first.label.should.equal('1m ago'); - first.value.should.equal('Temp Basal Started 0.88U/hour for 30m, IOB: 0.17U, Predicted Eventual BG: 147'); + first.value.should.equal('Temp Basal Started 0.88U/hour for 30m, IOB: 0.17U, Predicted Min-Max BG: 147-149, Eventual BG: 147'); } , addForecastPoints: function mockAddForecastPoints (points) { - points.length.should.equal(5); + points.length.should.equal(6); done(); } } @@ -257,7 +257,7 @@ describe('loop', function ( ) { loop.alexa.intentHandlers[0].intentHandler(function next(title, response) { title.should.equal('Loop Forecast'); - response.should.equal('According to the loop forecast you are expected to be between 147 and 149 over the next in 20 minutes'); + response.should.equal('According to the loop forecast you are expected to be between 147 and 149 over the next in 25 minutes'); loop.alexa.intentHandlers[1].intentHandler(function next(title, response) { title.should.equal('Last loop'); From 52901154d096eb3269041ea387ad8ba111be2a8b Mon Sep 17 00:00:00 2001 From: Lorenzo Sandini Date: Wed, 27 Dec 2017 14:55:27 +0200 Subject: [PATCH 07/46] Updated french translation (#3180) french translation updated --- lib/language.js | 362 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 315 insertions(+), 47 deletions(-) diff --git a/lib/language.js b/lib/language.js index bd0ee2384d8..948c26b24c8 100644 --- a/lib/language.js +++ b/lib/language.js @@ -618,7 +618,7 @@ function init() { cs: 'Od' ,de: 'Von' ,es: 'Desde' - ,fr: 'De' + ,fr: 'Du' ,el: 'Από' ,pt: 'De' ,sv: 'Från' @@ -641,7 +641,7 @@ function init() { cs: 'Do' ,de: 'Bis' ,es: 'Hasta' - ,fr: 'À' + ,fr: 'Au' ,el: 'Έως' ,pt: 'a' ,ro: 'La' @@ -801,7 +801,7 @@ function init() { cs: 'horní' ,de: 'oben' ,es: 'Superior' - ,fr: 'Supérieur' + ,fr: 'Supérieure' ,el: 'Πάνω όριο' ,pt: 'Superior' ,ro: 'Sus' @@ -2041,7 +2041,7 @@ function init() { cs: 'Není uložený žádný hash API hesla. Musíte zadat API heslo.' ,de: 'Keine API-Prüfsumme gespeichert. Bitte API-Prüfsumme eingeben.' ,es: 'No se ha almacenado ningún hash todavía. Debe introducir su secreto API.' - ,fr: 'Pas de secret API existant. Vous devez l\'en entrer.' + ,fr: 'Pas de secret API existant. Vous devez en entrer un.' ,el: 'Δεν υπάρχει αποθηκευμένο συνθηματικό API. Πρέπει να εισάγετε το συνθηματικό API' ,pt: 'Hash de segredo de API inexistente. Insira um segredo de API.' ,ro: 'Încă nu există cheie API secretă. Aceasta trebuie introdusă.' @@ -2659,7 +2659,7 @@ function init() { cs: 'Ulož hash na tomto počítači (používejte pouze na soukromých počítačích)' ,de: 'Speichere Prüfsumme auf diesem Computer (nur auf privaten Computern anwenden)' ,es: 'Guardar hash en este ordenador (Usar solo en ordenadores privados)' - ,fr: 'Sauver le hash sur cet ordinateur (privé uniquement)' + ,fr: 'Sauvegarder le hash sur cet ordinateur (privé uniquement)' ,el: 'Αποθήκευση συνθηματικού σε αυτό τον υπολογιστή (μόνο για υπολογιστές προσωπικής χρήσης)' ,pt: 'Salvar hash nesse computador (Somente em computadores privados)' ,ro: 'Salvează cheia pe acest PC (Folosiți doar PC de încredere)' @@ -2979,7 +2979,7 @@ function init() { cs: 'Glykémie z glukoměru' ,de: 'Blutzucker vom Messgerät' ,es: 'Glucemia del glucómetro' - ,fr: 'Glycémie de glucomètre' + ,fr: 'Glycémie du glucomètre' ,el: 'Τιμή γλυκόζης από τον μετρητή' ,pt: 'Glicemia do glicosímetro' ,sv: 'BS från blodsockermätare' @@ -3313,7 +3313,7 @@ function init() { cs: '60 min předem' ,de: '60 Min. früher' ,es: '60 min antes' - ,fr: '60 min avant' + ,fr: '60 min plus tôt' ,el: '60 λεπτά πριν' ,pt: '60 min antes' ,sv: '60 min tidigare' @@ -3335,7 +3335,7 @@ function init() { cs: '45 min předem' ,de: '45 Min. früher' ,es: '45 min antes' - ,fr: '45 min avant' + ,fr: '45 min plus tôt' ,el: '45 λεπτά πριν' ,pt: '45 min antes' ,sv: '45 min tidigare' @@ -3357,7 +3357,7 @@ function init() { cs: '30 min předem' ,de: '30 Min früher' ,es: '30 min antes' - ,fr: '30 min avant' + ,fr: '30 min plus tôt' ,el: '30 λεπτά πριν' ,pt: '30 min antes' ,sv: '30 min tidigare' @@ -3379,7 +3379,7 @@ function init() { cs: '20 min předem' ,de: '20 Min. früher' ,es: '20 min antes' - ,fr: '20 min avant' + ,fr: '20 min plus tôt' ,el: '20 λεπτά πριν' ,pt: '20 min antes' ,sv: '20 min tidigare' @@ -3401,7 +3401,7 @@ function init() { cs: '15 min předem' ,de: '15 Min. früher' ,es: '15 min antes' - ,fr: '15 min avant' + ,fr: '15 min plus tôt' ,el: '15 λεπτά πριν' ,pt: '15 min antes' ,sv: '15 min tidigare' @@ -3446,7 +3446,7 @@ function init() { cs: '15 min po' ,de: '15 Min. später' ,es: '15 min más tarde' - ,fr: '15 min après' + ,fr: '15 min plus tard' ,el: '15 λεπτά αργότερα' ,pt: '15 min depois' ,ro: 'după 15 min' @@ -3469,7 +3469,7 @@ function init() { cs: '20 min po' ,de: '20 Min. später' ,es: '20 min más tarde' - ,fr: '20 min après' + ,fr: '20 min plus tard' ,el: '20 λεπτά αργότερα' ,pt: '20 min depois' ,ro: 'după 20 min' @@ -3492,7 +3492,7 @@ function init() { cs: '30 min po' ,de: '30 Min. später' ,es: '30 min más tarde' - ,fr: '30 min après' + ,fr: '30 min plus tard' ,el: '30 λεπτά αργότερα' ,pt: '30 min depois' ,ro: 'după 30 min' @@ -3515,7 +3515,7 @@ function init() { cs: '45 min po' ,de: '45 Min. später' ,es: '45 min más tarde' - ,fr: '45 min après' + ,fr: '45 min plus tard' ,el: '45 λεπτά αργότερα' ,pt: '45 min depois' ,ro: 'după 45 min' @@ -3538,7 +3538,7 @@ function init() { cs: '60 min po' ,de: '60 Min. später' ,es: '60 min más tarde' - ,fr: '60 min après' + ,fr: '60 min plus tard' ,el: '60 λεπτά αργότερα' ,pt: '60 min depois' ,ro: 'după 60 min' @@ -3651,7 +3651,7 @@ function init() { cs: 'Odeslat formulář' ,de: 'Formular absenden' ,es: 'Enviar formulario' - ,fr: 'Formulaire de soumission' + ,fr: 'Suomettre le formulaire' ,el: 'Υποβολή Φόρμας' ,pt: 'Enviar formulário' ,sv: 'Överför händelse' @@ -4111,6 +4111,7 @@ function init() { ,de: 'Logaritmisch (dynamisch)' ,dk: 'Logaritmisk (Dynamisk)' ,it: 'Logaritmica (Dinamica)' + ,fr: 'Logarithmique (Dynamique)' ,el: 'Λογαριθμική (Δυναμική)' ,ro: 'Logaritmic (Dinamic)' ,bg: 'Логоритмична (Динамична)' @@ -4129,6 +4130,7 @@ function init() { ,'Insulin-on-Board' : { cs: 'IOB' ,de: 'Aktives Bolus-Insulin' + ,fr: 'Insuline à bord' ,dk: 'Aktivt insulin (IOB)' ,it: 'IOB-Insulina a Bordo' ,nb: 'AI' @@ -4149,6 +4151,7 @@ function init() { ,'Carbs-on-Board' : { cs: 'COB' ,de: 'Aktiv wirksame Kohlenhydrate' + ,fr: 'Glucides à bord' ,dk: 'Aktive kulhydrater (COB)' ,it: 'COB-Carboidrati a Bordo' ,nb: 'AK' @@ -4169,6 +4172,7 @@ function init() { ,'Bolus Wizard Preview' : { cs: 'BWP-Náhled bolusového kalk.' ,de: 'Bolus-Kalkulator Vorschau' + ,fr: 'Prévue du Calculatuer de bolus' ,dk: 'Bolus Wizard (BWP)' ,it: 'BWP-Calcolatore di bolo' ,nb: 'Boluskalkulator' @@ -4189,6 +4193,7 @@ function init() { ,'Value Loaded' : { cs: 'Hodnoty načteny' ,de: 'Geladener Wert' + ,fr: 'Valeur chargée' ,dk: 'Værdi indlæst' ,it: 'Valori Caricati' ,nb: 'Verdi lastet' @@ -4209,6 +4214,7 @@ function init() { ,'Cannula Age' : { cs: 'CAGE-Stáří kanyly' ,de: 'Kanülenalter' + ,fr: 'Age de la canule' ,dk: 'Insuflon alder (CAGE)' ,it: 'CAGE-Cambio Ago' ,el: 'Ημέρες Χρήσης Κάνουλας (CAGE)' @@ -4229,6 +4235,7 @@ function init() { ,'Basal Profile' : { cs: 'Bazál' ,de: 'Basalraten-Profil' + ,fr: 'Profil Basal' ,dk: 'Basal profil' ,it: 'BASAL-Profilo Basale' ,el: 'Προφίλ Βασικής Ινσουλίνης (BASAL)' @@ -4503,7 +4510,7 @@ function init() { cs: '12 hodin' ,de: '12 Stunden' ,es: '12 horas' - ,fr: '12hr' + ,fr: '12 heures' ,el: '12ωρο' ,pt: '12 horas' ,sv: '12-timmars' @@ -4526,7 +4533,7 @@ function init() { cs: '24 hodin' ,de: '24 Stunden' ,es: '24 horas' - ,fr: '24hr' + ,fr: '24 heures' ,el: '24ωρο' ,pt: '24 horas' ,sv: '24-timmars' @@ -4733,7 +4740,7 @@ function init() { cs: 'Cvičení' ,de: 'Bewegung' ,es: 'Ejercicio' - ,fr: 'Exercice' + ,fr: 'Exercice physique' ,el: 'Άσκηση' ,pt: 'Exercício' ,sv: 'Aktivitet' @@ -5126,7 +5133,7 @@ function init() { cs: 'Urgentní vysoká glykémie' ,de: 'Achtung Hoch Alarm' ,es: 'Alarma de glucemia alta urgente' - ,fr: 'Alarme haute urgente' + ,fr: 'Alarme hyperglycémie urgente' ,el: 'Ειδοποίηση επικίνδυνα υψηλής γλυκόζης' ,pt: 'URGENTE: Alarme de glicemia alta' ,sv: 'Brådskande högt larmvärde' @@ -5150,7 +5157,7 @@ function init() { cs: 'Vysoká glykémie' ,de: 'Hoch Alarm' ,es: 'Alarma de glucemia alta' - ,fr: 'Alarme haute' + ,fr: 'Alarme hyperglycémie' ,el: 'Ειδοποίηση υψηλής γλυκόζης' ,pt: 'Alarme de glicemia alta' ,sv: 'Högt larmvärde' @@ -5174,7 +5181,7 @@ function init() { cs: 'Nízká glykémie' ,de: 'Tief Alarm' ,es: 'Alarma de glucemia baja' - ,fr: 'Alarme basse' + ,fr: 'Alarme hypoglycémie' ,el: 'Ειδοποίηση χαμηλής γλυκόζης' ,pt: 'Alarme de glicemia baixa' ,sv: 'Lågt larmvärde' @@ -5198,7 +5205,7 @@ function init() { cs: 'Urgentní nízká glykémie' ,de: 'Achtung Tief Alarm' ,es: 'Alarma de glucemia baja urgente' - ,fr: 'Alarme basse urgente' + ,fr: 'Alarme hypoglycémie urgente' ,el: 'Ειδοποίηση επικίνδυνα χαμηλής γλυκόζης' ,pt: 'URGENTE: Alarme de glicemia baixa' ,sv: 'Brådskande lågt larmvärde' @@ -5222,7 +5229,7 @@ function init() { cs: 'Zastaralá data' ,de: 'Warnung: Daten nicht mehr gültig' ,es: 'Datos obsoletos: aviso' - ,fr: 'Données dépassées: avis' + ,fr: 'Données échues: avertissement' ,el: 'Έλλειψη πρόσφατων δεδομένων: Προειδοποίηση' ,pt: 'Dados antigos: alerta' ,sv: 'Förfluten data: Varning!' @@ -5245,7 +5252,7 @@ function init() { cs: 'Zastaralá data urgentní' ,de: 'Achtung: Daten nicht mehr gültig' ,es: 'Datos obsoletos: Urgente' - ,fr: 'Données dépassées urgentes' + ,fr: 'Données échues: avertissement urgent' ,el: 'Έλλειψη πρόσφατων δεδομένων: ΕΠΕΙΓΟΝ' ,pt: 'Dados antigos: Urgente' ,sv: 'Brådskande varning, inaktuell data' @@ -5314,7 +5321,7 @@ function init() { cs: 'Když je povoleno, obrazovka je ztlumena 22:00 - 6:00' ,de: 'Sofern aktiviert wird die Anzeige von 22h - 6h gedimmt' ,es: 'Cuando esté activo, el brillo de la página bajará de 10pm a 6am.' - ,fr: 'Si activé, la page sera assombire de 22:00 à 6:00' + ,fr: 'Si activé, la page sera assombrie de 22:00 à 6:00' ,el: 'Όταν ενεργοποιηθεί, η φωτεινότητα της οθόνης θα μειωθεί μεταξύ 22.00 - 6.00' ,pt: 'Se ativado, a página será escurecida entre 22h e 6h' ,sv: 'När aktiverad dimmas sidan mellan 22:00 - 06:00' @@ -5475,7 +5482,7 @@ function init() { cs: 'Vlastní název stránky' ,de: 'Benutzerdefinierter Titel' ,es: 'Título personalizado' - ,fr: 'Titre sur mesure' + ,fr: 'Titre personalisé' ,el: 'Επιθυμητός τίτλος σελίδας' ,pt: 'Customizar Título' ,sv: 'Egen titel' @@ -5566,6 +5573,7 @@ function init() { ,'Colorblind-friendly colors' : { cs: 'Pro barvoslepé' ,de: 'Farbenblind-freundliche Darstellung' + ,fr: 'Couleurs pour daltoniens' ,dk: 'Farveblindvenlige farver' ,nb: 'Fargeblindvennlige farger' ,el: 'Χρώματα συμβατά για αχρωματοψία' @@ -5585,7 +5593,7 @@ function init() { cs: 'Vymaž a nastav výchozí hodnoty' ,de: 'Zurücksetzen und Voreinstellungen verwenden' ,es: 'Inicializar y utilizar los valores por defecto' - ,fr: 'Remise à zéro et utiliser des valeurs par défaut' + ,fr: 'Remettre à zéro et utiliser les valeurs par défaut' ,el: 'Αρχικοποίηση και χρήση των προκαθορισμένων ρυθμίσεων' ,pt: 'Zerar e usar padrões' ,sv: 'Återställ standardvärden' @@ -5997,7 +6005,7 @@ function init() { cs: 'Glykémie z RAW dat' ,de: 'Roh-BG' ,es: 'Glucemia en crudo' - ,fr: 'Glycémie brut' + ,fr: 'Glycémie brute' ,el: 'Αυτούσιες τιμές γλυκόζης' ,pt: 'Glicemia sem processamento' ,sv: 'RAW-BS' @@ -6087,7 +6095,7 @@ function init() { ,es: 'Mostrar Plugins' ,fr: 'Montrer Plugins' ,el: 'Πρόσθετα Συστήματος' - ,pt: 'Mostrar Plugins' + ,pt: 'Mostrar les Plugins' ,ro: 'Arată plugin-urile' ,bg: 'Покажи добавките' ,hr: 'Prikaži plugine' @@ -6153,7 +6161,7 @@ function init() { cs: 'Čas jídla' ,de: 'Kohlenhydrat Zeit' ,es: 'Momento de la ingesta' - ,fr: 'Moment de Glucide' + ,fr: 'Moment de l\'ingestion de Glucides' ,el: 'Στιγμή χορηγησης υδ/κων' ,pt: 'Hora do carboidrato' ,ro: 'Ora carbohidrați' @@ -6175,6 +6183,7 @@ function init() { ,'Language' : { cs: 'Jazyk' ,de: 'Sprache' + ,fr: 'Langue' ,dk: 'Sprog' ,sv: 'Språk' ,nb: 'Språk' @@ -6195,6 +6204,7 @@ function init() { ,'Add new' : { cs: 'Přidat nový' ,de: 'Neu hinzufügen' + ,fr: 'Ajouter nouveau' ,dk: 'Tilføj ny' ,sv: 'Lägg till ny' ,ro: 'Adaugă nou' @@ -6214,6 +6224,7 @@ function init() { ,'g' : { // grams shortcut cs: 'g' ,de: 'g' + ,fr: 'g' ,dk: 'g' ,sv: 'g' ,ro: 'g' @@ -6233,6 +6244,7 @@ function init() { ,'ml' : { // milliliters shortcut cs: 'ml' ,de: 'ml' + ,fr: 'ml' ,dk: 'ml' ,sv: 'ml' ,ro: 'ml' @@ -6252,6 +6264,7 @@ function init() { ,'pcs' : { // pieces shortcut cs: 'ks' ,de: 'Stk.' + ,fr: 'pcs' ,dk: 'stk' ,sv: 'st' ,ro: 'buc' @@ -6271,6 +6284,7 @@ function init() { ,'Drag&drop food here' : { cs: 'Sem táhni & pusť jídlo' ,de: 'Mahlzeit hierher verschieben' + ,fr: 'Glisser et déposer repas ici ' ,dk: 'Hiv og slip mad her' ,sv: 'Dra&Släpp mat här' ,ro: 'Drag&drop aliment aici' @@ -6290,6 +6304,7 @@ function init() { ,'Care Portal' : { cs: 'Portál ošetření' ,sv: 'Care Portal' + ,fr: 'Care Portal' ,it: 'Somministrazioni' ,de: 'Behandlungs-Portal' ,dk: 'Omsorgsportal' @@ -6310,6 +6325,7 @@ function init() { cs: 'Střední/Neznámá' ,sv: 'Medium/Okänt' ,de: 'Mittel/Unbekannt' + ,fr: 'Moyen/Inconnu' ,dk: 'Medium/Ukendt' ,ro: 'Mediu/Necunoscut' ,el: 'Μέσος/Άγνωστος' @@ -6327,6 +6343,7 @@ function init() { } ,'IN THE FUTURE' : { cs: 'V BUDOUCNOSTI' + ,fr: 'dans le futur' ,sv: 'Framtida' ,ro: 'ÎN VIITOR' ,de: 'IN DER ZUKUNFT' @@ -6349,6 +6366,7 @@ function init() { ,de: 'Aktualisieren' ,dk: 'Opdater' ,sv: 'Uppdatera' + ,fr: 'Mise à jour' ,nb: 'Oppdater' ,pt: 'Atualizar' ,el: 'Ενημέρωση' @@ -6367,6 +6385,7 @@ function init() { ,'Order' : { cs: 'Pořadí' ,de: 'Reihenfolge' + ,fr: 'Mise en ordre' ,dk: 'Sorter' ,sv: 'Sortering' ,nb: 'Sortering' @@ -6386,6 +6405,7 @@ function init() { ,'oldest on top' : { cs: 'nejstarší nahoře' ,de: 'älteste oben' + ,fr: 'Plus vieux en tête de liste' ,dk: 'ældste øverst' ,sv: 'Äldst först' ,nb: 'Eldste først' @@ -6406,6 +6426,7 @@ function init() { cs: 'nejnovější nahoře' ,sv: 'Nyast först' ,de: 'neueste oben' + ,fr: 'Nouveaux en tête de liste' ,dk: 'nyeste øverst' ,nb: 'Nyeste først' ,el: 'τα νεότερα πρώτα' @@ -6426,6 +6447,7 @@ function init() { ,sv: 'Alla sensorhändelser' ,nb: 'Alle sensorhendelser' ,de: 'Alle Sensor-Ereignisse' + ,fr: 'Tous les événement senseur' ,dl: 'Alle sensor begivenheder' ,el: 'Όλα τα συμβάντα του αισθητήρα' ,ro: 'Evenimente legate de senzor' @@ -6443,6 +6465,7 @@ function init() { ,'Remove future items from mongo database' : { cs: 'Odebrání položek v budoucnosti z Mongo databáze' ,nb: 'Fjern fremtidige elementer fra mongo database' + ,fr: 'Effacer les éléments futurs de la base de données mongo' ,el: 'Αφαίρεση μελλοντικών εγγραφών από τη βάση δεδομένων' ,de: 'Entferne zukünftige Objekte aus Mongo-Datenbank' ,dk: 'Fjern fremtidige værdier fra mongo databasen' @@ -6463,6 +6486,7 @@ function init() { ,'Find and remove treatments in the future' : { cs: 'Najít a odstranit záznamy ošetření v budoucnosti' ,nb: 'Finn og fjern fremtidige behandlinger' + ,fr: 'Chercher et effacer les élément dont la date est dans le futur' ,el: 'Εύρεση και αφαίρεση μελλοντικών ενεργειών από τη βάση δεδομένων' ,de: 'Finde und entferne zukünftige Behandlungen' ,dk: 'Find og fjern fremtidige behandlinger' @@ -6484,6 +6508,7 @@ function init() { cs: 'Tento úkol najde a odstraní ošetření v budoucnosti.' ,nb: 'Finn og fjern fremtidige behandlinger' ,de: 'Finde und entferne Behandlungen in der Zukunft.' + ,fr: 'Cette tâche cherche et efface les éléments dont la date est dans le futur' ,dk: 'Denne handling finder og fjerner fremtidige behandlinger.' ,el: 'Αυτή η ενέργεια αφαιρεί μελλοντικές ενέργειες από τη βάση δεδομένων' ,ro: 'Acest instrument curăță tratamentele din viitor.' @@ -6504,6 +6529,7 @@ function init() { cs: 'Odstraň ošetření v budoucnosti' ,nb: 'Fjern fremtidige behandlinger' ,de: 'Entferne Behandlungen in der Zukunft' + ,fr: 'Efface les traitements ayant un date dans le futur' ,dk: 'Fjern behandlinger i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' ,ro: 'Șterge tratamentele din viitor' @@ -6523,6 +6549,7 @@ function init() { ,'Find and remove entries in the future' : { cs: 'Najít a odstranit CGM data v budoucnosti' ,de: 'Finde und entferne Einträge in der Zukunft' + ,fr: 'Cherche et efface les événements dans le futur' ,dk: 'Find og fjern indgange i fremtiden' ,nb: 'Finn og fjern fremtidige hendelser' ,el: 'Εύρεση και αφαίρεση μελλοντικών εγγραφών από τη βάση δεδομένων' @@ -6543,6 +6570,7 @@ function init() { ,'This task find and remove CGM data in the future created by uploader with wrong date/time.' : { cs: 'Tento úkol najde a odstraní CGM data v budoucnosti vzniklé špatně nastaveným datem v uploaderu.' ,nb: 'Finn og fjern fremtidige cgm data lastet opp med feil dato/tid' + ,fr: 'Cet outil cherche et efface les valeurs CGM dont la date est dans le futur' ,el: 'Αυτή η ενέργεια αφαιρεί δεδομένα αιθητήρα τα οποία εισήχθησαν με λάθος ημερομηνία και ώρα, από τη βάση δεδομένων' ,de: 'Finde und entferne CGM Daten in der Zukunft, die vom Uploader mit falschem Datum/Uhrzeit erstellt wurden.' ,dk: 'Denne handling finder og fjerner CGM data i fremtiden forårsaget af indlæsning med forkert dato/tid.' @@ -6564,6 +6592,7 @@ function init() { cs: 'Odstraň CGM data v budoucnosti' ,nb: 'Fjern fremtidige hendelser' ,de: 'Entferne Einträge in der Zukunft' + ,fr: 'Efface les événement dans le futur' ,dk: 'Fjern indgange i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' ,bg: 'Премахни данните от сензора в бъдещето' @@ -6584,6 +6613,7 @@ function init() { cs: 'Nahrávám databázi ...' ,nb: 'Leser database ...' ,de: 'Lade Datenbank' + ,fr: 'Charge la base de données...' ,dk: 'Indlæser database ...' ,el: 'Φόρτωση Βάσης Δεδομένων' ,bg: 'Зареждане на базата с данни ...' @@ -6603,6 +6633,7 @@ function init() { ,'Database contains %1 future records' : { cs: 'Databáze obsahuje %1 záznamů v budoucnosti' ,nb: 'Databasen inneholder %1 fremtidige hendelser' + ,fr: 'La base de données contient %1 valeurs futures' ,el: 'Η Βάση Δεδομένων περιέχει 1% μελλοντικές εγγραφές' ,ro: 'Baza de date conține %1 înregistrări din viitor' ,sv: 'Databas innehåller %1 framtida händelser' @@ -6623,6 +6654,7 @@ function init() { ,'Remove %1 selected records?' : { cs: 'Odstranit %1 vybraných záznamů' ,nb: 'Fjern %1 valgte elementer?' + ,fr: 'Effacer %1 valeurs choisies?' ,el: 'Αφαίρεση των επιλεγμένων εγγραφών?' ,de: 'Lösche ausgewählten %1 Eintrag?' ,dk: 'Fjern %1 valgte indgange?' @@ -6643,6 +6675,7 @@ function init() { ,'Error loading database' : { cs: 'Chyba při nahrávání databáze' ,nb: 'Feil udner lasting av database' + ,fr: 'Erreur chargement de la base de données' ,de: 'Fehler beim Laden der Datenbank' ,dk: 'Fejl ved indlæsning af database' ,el: 'Σφάλμα στη φόρτωση της βάσης δεδομένων' @@ -6664,6 +6697,7 @@ function init() { cs: 'Záznam %1 odstraněn ...' ,nb: 'Element %1 fjernet' ,de: 'Eintrag %1 entfernt' + ,fr: 'Événement %1 effacé' ,dk: 'Indgang %1 fjernet ...' ,el: 'Οι εγγραφές αφαιρέθηκαν' ,ro: 'Înregistrarea %1 a fost ștearsă...' @@ -6684,6 +6718,7 @@ function init() { cs: 'Chyba při odstaňování záznamu %1' ,nb: 'Feil under fjerning av element %1' ,de: 'Fehler beim Entfernen des Eintrags %1' + ,fr: 'Echec d\'effacement de l\'événement %1' ,dk: 'Fejl ved fjernelse af indgang %1' ,el: 'Σφάλμα αφαίρεσης εγγραφών' ,ro: 'Eroare la ștergerea înregistrării %1' @@ -6703,6 +6738,7 @@ function init() { ,'Deleting records ...' : { cs: 'Odstraňování záznamů ...' ,nb: 'Fjerner elementer...' + ,fr: 'Effacement d\événements...' ,ro: 'Se șterg înregistrările...' ,el: 'Αφαίρεση Εγγραφών' ,de: 'Entferne Einträge ...' @@ -6725,6 +6761,7 @@ function init() { ,nb: 'Slett Mongo status database' ,ro: 'Curăță tabela despre status din Mongo' ,el: 'Καθαρισμός βάσης δεδομένων Mongo' + ,fr: 'Nettoyage de la base de donées Mongo' ,de: 'Bereinige Mongo Status-Datenbank' ,dk: 'Slet Mongo status database' ,sv: 'Rensa Mongo status databas' @@ -6743,6 +6780,7 @@ function init() { cs: 'Odstranění všech záznamů z kolekce devicestatus' ,nb: 'Fjern alle dokumenter fra device status tabell' ,de: 'Lösche alle Dokumente der Gerätestatus-Sammlung' + ,fr: 'Effacer tous les documents de la collection devicestatus' ,dk: 'Fjerne alle dokumenter fra device status tabellen' ,el: 'Διαγραφή όλων των δεδομένων σχετικών με κατάσταση της συσκευής ανάγνωσης του αισθητήρα' ,ro: 'Șterge toate documentele din colecția de status dispozitiv' @@ -6761,6 +6799,7 @@ function init() { ,'This task removes all documents from devicestatus collection. Useful when uploader battery status is not properly updated.' : { cs: 'Tento úkol odstraní všechny dokumenty z kolekce devicestatus. Je to vhodné udělat, pokud se ukazatel stavu baterie neobnovuje správně.' ,nb: 'Denne funksjonen fjerner alle dokumenter fra device status tabellen. Nyttig når status for opplaster batteri ikke blir opppdatert' + ,fr: 'Efface tous les documents de la collection devicestatus. Utile lorsque l\'indicateur de chargement de la batterie du Smartphone n\'est pas affichée correctement' ,el: 'Αυτή η ενέργεια διαγράφει όλα τα δεδομένα της κατάστασης της συσκευής ανάγνωσης. Χρήσιμη όταν η κατάσταση της συσκευής ανάγνωσης δεν ανανεώνεται σωστά.' ,de: 'Diese Aufgabe entfernt alle Dokumente aus der Gerätestatus-Sammlung. Nützlich wenn der Uploader-Batteriestatus sich nicht aktualisiert.' ,dk: 'Denne handling fjerner alle dokumenter fra device status tabellen. Brugbart når uploader betteri status ikke er korrekt opdateret.' @@ -6779,6 +6818,7 @@ function init() { } ,'Delete all documents' : { cs: 'Odstranit všechny dokumenty' + ,fr: 'Effacer toutes les données' ,nb: 'Fjern alle dokumenter' ,ro: 'Șterge toate documentele' ,el: 'Διαγραφή όλων των δεδομένων' @@ -6799,6 +6839,7 @@ function init() { ,'Delete all documents from devicestatus collection devicestatus?' : { cs: 'Odstranit všechny dokumenty z kolekce devicestatus?' ,nb: 'Fjern alle dokumenter fra device status tabellen?' + ,fr: 'Effacer toutes les données de la collection devicestatus ?' ,el: 'Διαγραφή όλων των δεδομένων της κατάστασης της συσκευής ανάγνωσης?' ,de: 'Löschen aller Dokumente der Gerätestatus-Sammlung?' ,dk: 'Fjern alle dokumenter fra device status tabellen' @@ -6819,6 +6860,7 @@ function init() { cs: 'Databáze obsahuje %1 záznamů' ,nb: 'Databasen inneholder %1 elementer' ,de: 'Datenbank enthält %1 Einträge' + ,fr: 'La base de donées contient %1 événements' ,dk: 'Databasen indeholder %1 indgange' ,el: 'Η βάση δεδομένων περιέχει 1% εγγραφές' ,ro: 'Baza de date conține %1 înregistrări' @@ -6838,6 +6880,7 @@ function init() { cs: 'Všechny záznamy odstraněny ...' ,nb: 'Alle elementer fjernet ...' ,de: 'Alle Einträge entfernt...' + ,fr: 'Toutes les valeurs ont été effacées' ,dk: 'Alle indgange fjernet ...' ,el: 'Έγινε διαγραφή όλων των δεδομένων' ,ro: 'Toate înregistrările au fost șterse.' @@ -6858,6 +6901,7 @@ function init() { ,nb: 'Administrasjonsoppgaver' ,ro: 'Instrumente de administrare' ,de: 'Administrator Werkzeuge' + ,fr: 'Outils d\'administration' ,dl: 'Administrator opgaver' ,el: 'Εργαλεία Διαχειριστή' ,sv: 'Adminverktyg' @@ -6877,6 +6921,7 @@ function init() { cs: 'Nightscout - Výkazy' ,nb: 'Nightscout - rapporter' ,ro: 'Rapoarte Nightscout' + ,fr: 'Rapports Nightscout' ,el: 'Αναφορές' ,de: 'Nightscout-Berichte' ,dk: 'Nightscout - rapporter' @@ -6895,6 +6940,7 @@ function init() { ,'Cancel' : { cs: 'Zrušit' ,de: 'Abbruch' + ,fr: 'Interrompre' ,dk: 'Annuller' ,nb: 'Avbryt' ,el: 'Ακύρωση' @@ -6916,6 +6962,7 @@ function init() { ,nb: 'Editer behandling' ,ro: 'Modifică înregistrarea' ,de: 'Bearbeite Behandlung' + ,fr: 'Modifier un traitement' ,dk: 'Rediger indgang' ,el: 'Επεξεργασία Εγγραφής' ,sv: 'Redigera behandling' @@ -6934,6 +6981,7 @@ function init() { cs: 'Doba trvání' ,ro: 'Durata' ,de: 'Dauer' + ,fr: 'Durée' ,dk: 'Varighed' ,el: 'Διάρκεια' ,sv: 'Varaktighet' @@ -6952,6 +7000,7 @@ function init() { ,'Duration in minutes' : { cs: 'Doba trvání v minutách' ,de: 'Dauer in Minuten' + ,fr: 'Durée en minutes' ,dk: 'Varighed i minutter' ,ro: 'Durata în minute' ,el: 'Διάρκεια σε λεπτά' @@ -6971,6 +7020,7 @@ function init() { ,'Temp Basal' : { cs: 'Dočasný bazál' ,de: 'Temporäre Basalrate' + ,fr: 'Débit basal temporaire' ,dk: 'Midlertidig basal' ,ro: 'Bazală temporară' ,sv: 'Temporär basal' @@ -6991,6 +7041,7 @@ function init() { ,ro: 'Start bazală temporară' ,sv: 'Temporär basalstart' ,de: 'Start Temporäre Basalrate' + ,fr: 'Début du débit basal temporaire' ,dk: 'Midlertidig basal start' ,bg: 'Начало на временен базал' ,it: 'Inizio Basale Temp' @@ -7007,6 +7058,7 @@ function init() { ,'Temp Basal End' : { cs: 'Dočasný bazál konec' ,ro: 'Sfârșit bazală temporară' + ,fr: 'Fin du débit basal temporaire' ,sv: 'Temporär basalavslut' ,bg: 'Край на временен базал' ,it: 'Fine Basale Temp' @@ -7026,6 +7078,7 @@ function init() { cs: 'Procenta' ,ro: 'Procent' ,de: 'Prozent' + ,fr: 'Pourcent' ,dk: 'Procent' ,el: 'Επι τοις εκατό' ,sv: 'Procent' @@ -7044,6 +7097,7 @@ function init() { ,'Basal change in %' : { cs: 'Změna bazálu v %' ,ro: 'Bazală schimbată în %' + ,fr: 'Changement du débit basal en %' ,sv: 'Basaländring i %' ,bg: 'Промяна на базала с %' ,de: 'Basalratenänderung in %' @@ -7062,6 +7116,7 @@ function init() { ,'Basal value' : { // absolute value for temp basal cs: 'Hodnota bazálu' ,ro: 'Valoare bazală' + ,fr: 'Valeur du débit basal' ,sv: 'Basalvärde' ,de: 'Basalrate' ,dk: 'Basalværdi' @@ -7081,6 +7136,7 @@ function init() { cs: 'Hodnota bazálu' ,bg: 'Базална стойност' ,it: 'Valore Basale Assoluto' + ,fr: 'Débit basal absolu' ,de: 'Absoluter Basalratenwert' ,dk: 'Absolut basalværdi' ,nb: 'Absolutt basalverdi' @@ -7099,6 +7155,7 @@ function init() { cs: 'Oznámení' ,bg: 'Известяване' ,de: 'Ankündigung' + ,fr: 'Annonce' ,dk: 'Meddelelse' ,ro: 'Anunț' ,el: 'Ανακοίνωση' @@ -7106,7 +7163,7 @@ function init() { ,he: 'הודעה' ,it: 'Annuncio' ,nb: 'Kunngjøring' - ,fi: 'Tiedoite' + ,fi: 'Tiedote' ,pl: 'Powiadomienie' ,pt: 'Aviso' ,ru: 'Оповещение' @@ -7118,6 +7175,7 @@ function init() { ,'Loading temp basal data' : { cs: 'Nahrávám dočasné bazály' ,it: 'Caricamento basale temp' + ,fr: 'Chargement des données de débit basal' ,ro: 'Se încarcă date bazală temporară' ,sv: 'Laddar temporär basaldata' ,de: 'Lade temporäre Basaldaten' @@ -7137,6 +7195,7 @@ function init() { cs: 'Uložit současný záznam před změnou na nový?' ,ro: 'Salvez înregistrarea curentă înainte de a trece mai departe?' ,sv: 'Spara aktuell data innan skifte till ny?' + ,fr: 'Sauvegarder l\'événement actuel avant d\'avancer au suivant ?' ,nb: 'Lagre før bytte til ny?' ,el: 'Αποθήκευση τρεχουσας εγγραφής πριν δημιουργήσουμε νέα?' ,de: 'Aktuelle Einträge speichern?' @@ -7156,6 +7215,7 @@ function init() { cs: 'Přepnutí profilu' ,ro: 'Schimbă profilul' ,sv: 'Ny profil' + ,fr: 'Changement de profil' ,el: 'Εναλλαγή προφίλ' ,de: 'Profil wechseln' ,dk: 'Byt profil' @@ -7176,6 +7236,7 @@ function init() { ,de: 'Profil' ,dk: 'Profil' ,el: 'Προφίλ' + ,fr: 'Profil' ,it: 'Profilo' ,ro: 'Profil' ,sv: 'Profil' @@ -7193,6 +7254,7 @@ function init() { ,'General profile settings' : { cs: 'Obecná nastavení profilu' ,de: 'Allgemeine Profileinstellungen' + ,fr: 'Réglages principaus du profil' ,dk: 'Generelle profil indstillinger' ,el: 'Γενικές Ρυθμίσεις Προφίλ' ,ro: 'Setări generale profil' @@ -7213,6 +7275,7 @@ function init() { cs: 'Název' ,ro: 'Titlu' ,sv: 'Titel' + ,fr: 'Titre' ,el: 'Τίτλος' ,de: 'Überschrift' ,dk: 'Overskrift' @@ -7231,6 +7294,7 @@ function init() { ,'Database records' : { cs: 'Záznamy v databázi' ,ro: 'Înregistrări' + ,fr: 'Entrées de la base de données' ,sv: 'Databashändelser' ,el: 'Εγραφές Βάσης Δεδομένων' ,nb: 'Databaseverdier' @@ -7250,6 +7314,7 @@ function init() { ,'Add new record' : { cs: 'Přidat nový záznam' ,ro: 'Adaugă înregistrare nouă' + ,fr: 'Ajouter une nouvelle entrée' ,sv: 'Lägg till ny händelse' ,el: 'Προσθήκη νέας εγγραφής' ,nb: 'Legg til ny rad' @@ -7269,6 +7334,7 @@ function init() { ,'Remove this record' : { cs: 'Vymazat tento záznam' ,ro: 'Șterge această înregistrare' + ,fr: 'Supprimer cette entrée' ,sv: 'Ta bort denna händelse' ,el: 'Αφαίρεση εγγραφής' ,nb: 'Fjern denne raden' @@ -7288,6 +7354,7 @@ function init() { ,'Clone this record to new' : { cs: 'Zkopíruj tento záznam do nového' ,ro: 'Duplică această înregistrare' + ,fr: 'Dupliquer cette entrée' ,el: 'Αντιγραφή σε νέα' ,sv: 'Kopiera denna händelse till ny' ,nb: 'Kopier til ny rad' @@ -7307,6 +7374,7 @@ function init() { ,'Record valid from' : { cs: 'Záznam platný od' ,ro: 'Înregistare validă de la' + ,fr: 'Entrée valide à partir de' ,sv: 'Händelse giltig från' ,el: 'Ισχύει από' ,de: 'Eintrag gültig ab' @@ -7325,6 +7393,7 @@ function init() { } ,'Stored profiles' : { cs: 'Uložené profily' + ,fr: 'Profils sauvegardés' ,ro: 'Profile salvate' ,sv: 'Lagrad profil' ,el: 'Αποθηκευμένα προφίλ' @@ -7345,6 +7414,7 @@ function init() { ,'Timezone' : { cs: 'Časová zóna' ,de: 'Zeitzone' + ,fr: 'Zone horaire' ,dk: 'Tidszone' ,ro: 'Fus orar' ,el: 'Ζώνη Ώρας' @@ -7364,6 +7434,7 @@ function init() { ,'Duration of Insulin Activity (DIA)' : { cs: 'Doba působnosti inzulínu (DIA)' ,ro: 'Durata de acțiune a insulinei' + ,fr: 'Durée d\'action de l\'insuline' ,el: 'Διάρκεια Δράσης Ινσουλίνης(DIA)' ,sv: 'verkningstid för insulin (DIA)' ,nb: 'Insulin varighet' @@ -7384,6 +7455,7 @@ function init() { cs: 'Představuje typickou dobu, po kterou inzulín působí. Bývá různá podle pacienta a inzulínu. Typicky 3-4 hodiny pro pacienty s pumpou.' ,ro: 'Reprezintă durata tipică pentru care insulina are efect. Este diferită la fiecare pacient și pentru fiecare tip de insulină' ,el: 'Αντιπροσωπευει την τυπική διάρκεια δράσης της χορηγηθείσας ινσουλίνης.' + ,fr: 'Représente la durée d\'action typique de l\'insuline. Varie individuellement et selon le type d\'insuline. Typiquement 3-4 heures pour les insulines utilisées dans les pompes.' ,de: 'Entspricht der typischen Dauer in der das Insulin wirkt. Variiert je Patient und Insulintyp. Häufig 3-4 Stunden für die meisten Pumpeninsuline und die meisten Patienten. Manchmal auch Insulin-Wirkungsdauer genannt.' ,dk: 'Representerer den typiske tid hvor insulinen virker. Varierer per patient og per insulin type. Typisk 3-4 timer for de fleste pumpe insulin og for de fleste patienter. Nogle gange kaldes dette også insulin-livs-tid.' ,sv: 'Beskriver under hur lång tid insulinet verkar. Varierar mellan patienter. Typisk varaktighet 3-4 timmar.' @@ -7403,6 +7475,7 @@ function init() { cs: 'Inzulíno-sacharidový poměr (I:C).' ,ro: 'Rată insulină la carbohidrați (ICR)' ,sv: 'Insulin-Kolhydratskvot' + ,fr: 'Rapport Insuline-Glucides (I:C)' ,el: 'Αναλογία Ινσουλίνης/Υδατάνθρακα (I:C)' ,nb: 'IKH forhold' ,de: 'Insulin/Kohlenhydrate-Verhältnis (I:KH)' @@ -7422,6 +7495,7 @@ function init() { cs: 'hodin' ,ro: 'ore' ,el: 'ώρες' + ,fr: 'heures' ,de: 'Stunden' ,dk: 'timer' ,sv: 'timmar' @@ -7440,6 +7514,7 @@ function init() { ,'g/hour' : { cs: 'g/hod' ,ro: 'g/oră' + ,fr: 'g/heure' ,sv: 'g/timme' ,nb: 'g/t' ,de: 'g/Std' @@ -7458,6 +7533,7 @@ function init() { ,'g carbs per U insulin. The ratio of how many grams of carbohydrates are offset by each U of insulin.' : { cs: 'gramy na jednotku inzulínu. Poměr, jaké množství sacharidů pokryje jednotku inzulínu.' ,ro: 'g carbohidrați pentru o unitate de insulină. Câte grame de carbohidrați sunt acoperite de 1U insulină.' + ,fr: 'g de glucides par Uninté d\'insuline. Le rapport représentant la quantité de glucides compensée par une unité d\'insuline.' ,el: 'Γραμμάρια (g) υδατάνθρακα ανά μονάδα (U) ινσουλίνης. Πόσα γραμμάρια υδατάνθρακα αντιστοιχούν σε μία μονάδα ινσουλίνης' ,sv: 'gram kolhydrater per enhet insulin. Antal gram kolhydrater varje enhet insulin sänker' ,de: 'g Kohlenhydrate pro Einheit Insulin. Das Verhältnis wie viele Gramm Kohlenhydrate je Einheit Insulin verbraucht werden.' @@ -7477,6 +7553,7 @@ function init() { cs: 'Citlivost inzulínu (ISF)' ,ro: 'Factor de sensilibtate la insulină (ISF)' ,de: 'Insulinsensibilitätsfaktor (ISF)' + ,fr: 'Facteur de sensibilité à l\'insuline (ISF)' ,el: 'Ευαισθησία στην Ινοσυλίνη (ISF)' ,sv: 'Insulinkänslighetsfaktor (ISF)' ,nb: 'Insulinfølsomhetsfaktor' @@ -7494,6 +7571,7 @@ function init() { ,'mg/dL or mmol/L per U insulin. The ratio of how much BG changes with each U of corrective insulin.' : { cs: 'mg/dL nebo mmol/L na jednotku inzulínu. Poměr, jak se změní glykémie po podaní jednotky inzulínu' ,ro: 'mg/dL sau mmol/L pentru 1U insulină. Cât de mult influențează glicemia o corecție de o unitate de insulină.' + ,fr: 'mg/dL ou mmol/l par unité d\'insuline. Le rapport représentant la modification de la glycémie résultant de l\'administration d\'une unité d\'insuline.' ,el: 'mg/dl ή mmol/L ανά μονάδα U ινσουλίνης. Το πόσες μονάδες ρίχνει τη γλυκόζη αίματος μία μονάδα U ινσουλίνης' ,de: 'mg/dL oder mmol/L pro Einheit Insulin. Verhältnis von BG-Veränderung je Einheit Korrekturinsulin.' ,sv: 'mg/dl eller mmol per enhet insulin. Hur varje enhet insulin sänker blodsockret' @@ -7513,6 +7591,7 @@ function init() { cs: 'Rychlost absorbce sacharidů' ,ro: 'Rata de absorbție' ,el: 'Ρυθμός απορρόφησης υδατανθράκων' + ,fr: 'Activité glucidique / vitesse d\'absorption' ,de: 'Kohlenhydrataktivität / Aufnahme Kohlenhydrate' ,sv: 'Kolhydratstid' ,nb: 'Karbohydrattid' @@ -7530,6 +7609,7 @@ function init() { ,'grams per unit time. Represents both the change in COB per unit of time, as well as the amount of carbs that should take effect over that time. Carb absorption / activity curves are less well understood than insulin activity, but can be approximated using an initial delay followed by a constant rate of absorption (g/hr).' : { cs: 'gramy za jednotku času. Reprezentuje jak změnu COB za jednoku času, tak množství sacharidů, které se za tu dobu projevily. Křivka absorbce sacharidů je mnohem méně pochopitelná než IOB, ale může být aproximována počáteční pauzou následovanou konstantní hodnotou absorbce (g/hod).' ,el: 'Γραμμάρια ανά μονάδα χρόνου. Αναπαριστά τόσο την μεταβολή του COB στη μονάδα του χρόνου. Οι καμπύλες της απορρόφησης υδατανθράκων και της άσκησης δεν έχουν κατανοηθεί πλήρως από την επιστημονική κοινότητα, αλλά μπορούν να προσεγγιστούν βάζοντας μία αρχική καθυστέρηση ακολουθούμενη από έναν σταθερό ρυθμό απορρόφησης (g/hr).' + ,fr: 'grammes par unité de temps. Représente l\'augmentation de COB par unité de temps et la quantité de glucides agissant durant cette période. L\'absorption des glucides est imprécise et est évaluée en moyenne. L\'unité est grammes par heure (g/h).' ,ro: 'grame pe unitatea de timp. Reprezintă atât schimbarea COB pe unitatea de timp, cât și cantitatea de carbohidrați care ar influența în perioada de timp. Graficele ratei de absorbție sunt mai puțin înțelese decât senzitivitatea la insulină, dar se poate aproxima folosind o întârziere implicită și apoi o rată constantă de aborbție (g/h).' ,sv: 'gram per tidsenhet. Representerar både ändring i aktiva kolhydrater per tidsenhet som mängden kolhydrater som tas upp under denna tid. Kolhydratsupptag / aktivitetskurvor är svårare att förutspå än aktivt insulin men kan beräknas genom att använda en startfördröjning följd av en konstant absorbtionsgrad (g/timme) ' ,de: 'Gramm pro Zeiteinheit. Bedeutet sowohl die Änderung in COB je Zeiteinheit, als auch die Menge an Kohlenhydraten die über diese Zeit wirken sollten. Kohlenhydrat-Absorption / Aktivitätskurven werden weniger genau verstanden als Insulinaktivität, aber sie können angenähert werden indem eine Anfangsverzögerung mit konstanter Aufnahme (g/Std.) verwendet wird.' @@ -7550,6 +7630,7 @@ function init() { ,ro: 'Rata bazală [unitate/oră]' ,el: 'Ρυθμός Βασικ΄ς ινσουλίνης [U/hour]' ,de: 'Basalraten [Einheit/h]' + ,fr: 'Débit basal (Unités/ heure)' ,sv: 'Basal [enhet/t]' ,nb: 'Basal [enhet/t]' ,fi: 'Basaali [yksikköä/tunti]' @@ -7568,6 +7649,7 @@ function init() { ,ro: 'Intervalul țintă al glicemiei [mg/dL, mmol/L]' ,el: 'Στόχος Γλυκόζης Αίματος [mg/dl , mmol/l]' ,de: 'Blutzucker-Zielbereich [mg/dL, mmol/L]' + ,fr: 'Cible d\'intervalle de glycémie' ,sv: 'Önskvärt blodsockerintervall [mg/dl,mmol]' ,nb: 'Ønsket blodsukkerintervall [mg/dl,mmmol/l]' ,fi: 'Tavoitealue [mg/dL tai mmol/L]' @@ -7584,6 +7666,7 @@ function init() { ,'Start of record validity' : { cs: 'Začátek platnosti záznamu' ,ro: 'De când este valabilă înregistrarea' + ,fr: 'Début de validité des données' ,el: 'Ισχύει από' ,sv: 'Starttid för händelse' ,de: 'Beginn der Aufzeichnungsgültigkeit' @@ -7602,6 +7685,7 @@ function init() { ,'Icicle' : { cs: 'Rampouch' ,it: 'Inverso' + ,fr: 'Stalactite' ,de: 'Eiszapfen' ,ro: 'Țurțure' ,sv: 'Istapp' @@ -7619,6 +7703,7 @@ function init() { ,'Render Basal' : { cs: 'Zobrazení bazálu' ,it: 'Grafico Basale' + ,fr: 'Afficher le débit basal' ,el: 'Απεικόνιση Βασικής Ινσουλίνης' ,ro: 'Afișează bazala' ,sv: 'Generera Basal' @@ -7639,6 +7724,7 @@ function init() { cs: 'Použitý profil' ,ro: 'Profil folosit' ,de: 'Verwendetes Profil' + ,fr: 'Profil utilisé' ,el: 'Προφίλ σε χρήση' ,sv: 'Vald profil' ,nb: 'Brukt profil' @@ -7656,6 +7742,7 @@ function init() { ,'Calculation is in target range.' : { cs: 'Kalkulace je v cílovém rozsahu.' ,ro: 'Calculul dă o valoare în intervalul țintă.' + ,fr: 'La valeur calculée est dans l\'intervalle cible' ,el: 'Ο υπολογισμός είναι εντός στόχου' ,de: 'Berechnung ist innerhalb des Zielbereichs' ,sv: 'Inom intervallområde' @@ -7674,6 +7761,7 @@ function init() { ,'Loading profile records ...' : { cs: 'Nahrávám profily ...' ,nb: 'Leser profiler' + ,fr: 'Chargement des profils...' ,el: 'Φόρτωση δεδομένων προφίλ' ,de: 'Lade Profilaufzeichnungen ...' ,ro: 'Se încarcă datele profilului...' @@ -7692,6 +7780,7 @@ function init() { ,'Values loaded.' : { cs: 'Data nahrána.' ,nb: 'Verdier lastet' + ,fr: 'Valeurs chargées' ,el: 'Δεδομένα φορτώθηκαν' ,de: 'Werte geladen.' ,ro: 'Valorile au fost încărcate.' @@ -7711,6 +7800,7 @@ function init() { cs: 'Použity výchozí hodnoty.' ,nb: 'Standardverdier brukt' ,el: 'Χρήση προκαθορισμένων τιμών' + ,fr: 'Valeurs par défault utilisées' ,de: 'Standardwerte werden verwendet.' ,ro: 'Se folosesc valorile implicite.' ,sv: 'Standardvärden valda' @@ -7728,6 +7818,7 @@ function init() { ,'Error. Default values used.' : { cs: 'CHYBA: Použity výchozí hodnoty.' ,nb: 'Feil. Standardverdier brukt.' + ,fr: 'Erreur! Valeurs par défault utilisées.' ,el: 'Σφάλμα: Χρήση προκαθορισμένων τιμών' ,de: 'Fehler. Standardwerte werden verwendet.' ,ro: 'Eroare. Se folosesc valorile implicite.' @@ -7746,6 +7837,7 @@ function init() { ,'Time ranges of target_low and target_high don\'t match. Values are restored to defaults.' : { cs: 'Rozsahy časů pro limity glykémií si neodpovídají. Budou nastaveny výchozí hodnoty.' ,nb: 'Tidsintervall for målområde lav og høy stemmer ikke. Standardverdier er brukt.' + ,fr: 'Les intervalles de temps pour la cible glycémique supérieure et inférieure diffèrent. Les valeurs par défault sont restaurées.' ,el: 'Το χρονικό διάστημα του χαμηλού ορίου/στόχου και του υψηλού, δεν συμπίπτουν. Γίνεται επαναφορά στις προκαθορισμένες τιμές.' ,de: 'Zeitspanne vom untersten und obersten Wert wird nicht berücksichtigt. Werte auf Standard zurückgesetzt.' ,ro: 'Intervalele temporale pentru țintă_inferioară și țintă_superioară nu se potrivesc. Se folosesc valorile implicite.' @@ -7764,6 +7856,7 @@ function init() { ,'Valid from:' : { cs: 'Platné od:' ,de: 'Gültig ab:' + ,fr: 'Valide à partir de:' ,nb: 'Gyldig fra:' ,el: 'Ισχύει από:' ,ro: 'Valid de la:' @@ -7782,6 +7875,7 @@ function init() { ,'Save current record before switching to new?' : { cs: 'Uložit současný záznam před přepnutím na nový?' ,nb: 'Lagre før nytte til ny?' + ,fr: 'Sauvegarder cetter entrée avant de procéder à l\'entrée suivante?' ,el: 'Αποθήκευση αλλαγών πριν γίνει εναλλαγή στο νέο προφίλ? ' ,de: 'Aktuellen Datensatz speichern?' ,ro: 'Salvez valoarea curentă înainte de a trece la una nouă?' @@ -7800,6 +7894,7 @@ function init() { ,'Add new interval before' : { cs: 'Přidat nový interval před' ,nb: 'Legg til nytt intervall før' + ,fr: 'Ajouter un intervalle de temps avant' ,el: 'Προσθήκη νέου διαστήματος, πριν' ,de: 'Neues Intervall vorher hinzufügen' ,ro: 'Adaugă un nou interval înainte' @@ -7818,6 +7913,7 @@ function init() { ,'Delete interval' : { cs: 'Smazat interval' ,nb: 'Slett intervall' + ,fr: 'Effacer l\'intervalle' ,el: 'Διαγραφή διαστήματος' ,de: 'Intervall löschen' ,ro: 'Șterge interval' @@ -7836,6 +7932,7 @@ function init() { ,'I:C' : { cs: 'I:C' ,nb: 'IKH' + ,fr: 'I:C' ,ro: 'ICR' ,de: 'I:KH' ,sv: 'I:C' @@ -7854,6 +7951,7 @@ function init() { ,nb: 'ISF' ,ro: 'ISF' ,de: 'ISF' + ,fr: 'ISF' ,sv: 'ISF' ,fi: 'ISF' ,bg: 'Инсулинова чувствителност' @@ -7869,6 +7967,7 @@ function init() { cs: 'Kombinovaný bolus' ,pl: 'Bolus złożony' ,de: 'Verzögerter Bolus' + ,fr: 'Bolus Duo/Combo' ,el: '' ,ro: 'Bolus extins' ,sv: 'Combo-bolus' @@ -7886,6 +7985,7 @@ function init() { ,'Difference' : { cs: 'Rozdíl' ,de: 'Unterschied' + ,fr: 'Différence' ,ro: 'Diferență' ,el: 'Διαφορά' ,sv: 'Skillnad' @@ -7904,6 +8004,7 @@ function init() { ,'New time' : { cs: 'Nový čas' ,de: 'Neue Zeit' + ,fr: 'Nouveau temps' ,ro: 'Oră nouă' ,el: 'Νέα ώρα' ,sv: 'Ny tid' @@ -7922,6 +8023,7 @@ function init() { ,'Edit Mode' : { cs: 'Editační mód' ,ro: 'Mod editare' + ,fr: 'Mode Édition' ,de: 'Bearbeitungsmodus' ,sv: 'Editeringsläge' ,el: 'Λειτουργία Επεξεργασίας' @@ -7941,6 +8043,7 @@ function init() { ,'When enabled icon to start edit mode is visible' : { cs: 'Pokud je povoleno, ikona pro vstup do editačního módu je zobrazena' ,ro: 'La activare, butonul de editare este vizibil' + ,fr: 'Lorsqu\'activé, l\'icône du Mode Édition devient visible' ,el: 'Όταν ενεργοποιηθεί, το εικονίδιο της λειτουργίας επεξεργασίας είναι ορατό' ,de: 'Wenn aktiviert wird das Icons zum Start des Bearbeitungsmodus sichtbar' ,sv: 'Ikon visas när editeringsläge är aktivt' @@ -7960,6 +8063,7 @@ function init() { ,'Operation' : { cs: 'Operace' ,ro: 'Operațiune' + ,fr: 'Opération' ,de: 'Operation' ,el: 'Λειτουργία' ,sv: 'Operation' @@ -7977,6 +8081,7 @@ function init() { ,'Move' : { cs: 'Přesunout' ,ro: 'Mutați' + ,fr: 'Déplacer' ,de: 'Verschieben' ,el: 'Μετακίνηση' ,sv: 'Flytta' @@ -7995,6 +8100,7 @@ function init() { ,'Delete' : { cs: 'Odstranit' ,de: 'Löschen' + ,fr: 'Effacer' ,el: 'Διαγραφή' ,ro: 'Ștergeți' ,sv: 'Ta bort' @@ -8013,6 +8119,7 @@ function init() { ,'Move insulin' : { cs: 'Přesunout inzulín' ,ro: 'Mutați insulina' + ,fr: 'Déplacer l\'insuline' ,de: 'Insulin verschieben' ,el: 'Μετακίνηση ινσουλίνης' ,sv: 'Flytta insulin' @@ -8032,6 +8139,7 @@ function init() { cs: 'Přesunout sacharidy' ,ro: 'Mutați carbohidrații' ,de: 'Kohlenhydrate verschieben' + ,fr: 'Déplacer les glucides' ,el: 'Μετακίνηση υδατανθράκων' ,sv: 'Flytta kolhydrater' ,nb: 'Flytt karbohydrater' @@ -8050,6 +8158,7 @@ function init() { cs: 'Odstranit inzulín' ,ro: 'Ștergeți insulina' ,de: 'Insulin löschen' + ,fr: 'Effacer l\'insuline' ,el: 'Αφαίρεση ινσουλίνης' ,sv: 'Ta bort insulin' ,nb: 'Fjern insulin' @@ -8067,6 +8176,7 @@ function init() { ,'Remove carbs' : { cs: 'Odstranit sacharidy' ,ro: 'Ștergeți carbohidrații' + ,fr: 'Effacer les glucides' ,de: 'Kohlenhydrate löschen' ,el: 'Αφαίρεση υδατανθράκων' ,sv: 'Ta bort kolhydrater' @@ -8085,6 +8195,7 @@ function init() { ,'Change treatment time to %1 ?' : { cs: 'Změnit čas ošetření na %1 ?' ,ro: 'Schimbați ora acțiunii cu %1 ?' + ,fr: 'Modifier l\'horaire du traitment? Nouveau: %1' ,de: 'Behandlungsdauer ändern in %1 ?' ,el: 'Αλλαγή του χρόνου της ενέργειας σε %1?' ,sv: 'Ändra behandlingstid till %1 ?' @@ -8104,6 +8215,7 @@ function init() { cs: 'Změnit čas sacharidů na %1 ?' ,ro: 'Schimbați ora carbohidraților cu %1 ?' ,de: 'Kohlenhydrat-Zeit ändern zu %1 ?' + ,fr: 'Modifier l\'horaire des glucides? Nouveau: %1' ,el: 'Αλλαγή του χρόνου πρόσληψης υδατανθράκων σε %1?' ,sv: 'Ändra kolhydratstid till %1 ?' ,nb: 'Endre Karbohydrattid til %1 ?' @@ -8122,6 +8234,7 @@ function init() { cs: 'Změnit čas inzulínu na %1 ?' ,ro: 'Schimbați ora insulinei cu %1 ?' ,el: 'Αλλαγή του χρόνου χορήγησης ινσουλίνης σε %1 ?' + ,fr: 'Modifier l\'horaire de l\'insuline? Nouveau: %1' ,de: 'Insulinzeit ändern zu %1 ?' ,sv: 'Ändra insulintid till %1 ?' ,nb: 'Endre insulintid til %1 ?' @@ -8140,6 +8253,7 @@ function init() { cs: 'Odstranit ošetření ?' ,ro: 'Ștergeți acțiunea?' ,de: 'Behandlung löschen?' + ,fr: 'Effacer le traitment?' ,el: 'Διαγραφή ενέργειας ?' ,sv: 'Ta bort behandling ?' ,nb: 'Fjern behandling ?' @@ -8157,6 +8271,7 @@ function init() { ,'Remove insulin from treatment ?' : { cs: 'Odstranit inzulín z ošetření ?' ,de: 'Insulin der Behandlung löschen?' + ,fr: 'Effacer l\'insuline du traitement?' ,ro: 'Ștergeți insulina din acțiune?' ,el: 'Διαγραφή ινσουλίνης από την ενέργεια?' ,sv: 'Ta bort insulin från behandling ?' @@ -8176,6 +8291,7 @@ function init() { cs: 'Odstranit sacharidy z ošetření ?' ,ro: 'Ștergeți carbohidrații din acțiune?' ,de: 'Kohlenhydrate der Behandlung löschen?' + ,fr: 'Effacer les glucides du traitement?' ,el: 'Διαγραφή των υδατανθράκων από την ενέργεια?' ,sv: 'Ta bort kolhydrater från behandling ?' ,nb: 'Fjern karbohydrater fra behandling ?' @@ -8193,6 +8309,7 @@ function init() { ,'Rendering' : { cs: 'Vykresluji' ,ro: 'Se desenează' + ,fr: 'Représentation graphique' ,de: 'Darstellung' ,el: 'Απεικόνιση' ,sv: 'Rendering' @@ -8211,6 +8328,7 @@ function init() { ,'Loading OpenAPS data of' : { cs: 'Nahrávám OpenAPS data z' ,de: 'Lade OpenAPS Daten von' + ,fr: 'Chargement des données OpenAPS de' ,ro: 'Se încarcă datele OpenAPS pentru' ,el: 'Φόρτωση δεδομένων OpenAPS' ,sv: 'Laddar OpenAPS data för' @@ -8229,6 +8347,7 @@ function init() { ,'Loading profile switch data' : { cs: 'Nahrávám data přepnutí profilu' ,de: 'Lade Daten Profil-Wechsel' + ,fr: 'Chargement de données de changement de profil' ,el: 'Φόρτωση δεδομένων νέου προφίλ σε ισχύ' ,ro: 'Se încarcă datele de schimbare profil' ,sv: 'Laddar ny profildata' @@ -8247,6 +8366,7 @@ function init() { ,'Profile is going to be saved in newer format used in Nightscout 0.9.0 and above and will not be usable in older versions anymore.\nAre you sure?' : { cs: 'Profil bude uložen v novějším formátu používaném v Nightscoutu 0.9.0 a novějších. Již nebude použitelný se starší verzí.\nJste si jistý?' ,el: 'Το προφίλ πρόκειται να αποθηκευτεί με τη νέα του μορφή (έκδοση Nighscout 0.9.0 και πάνω) και δεν πρόκειται να μπορεί να χρησιμοποιηθεί σε παλαιότερες εκδόσεις. \nΕίστε σίγουροι?' + ,fr: 'Le profil va être sauvegardé dans un nouveau format utilisé par Nightscout 0.9.0 et suivants, et il ne pourra plus être utilisé par les versions antérieures. \nÊtes-vous sûr?' ,ro: 'Profilul va fi salvat într-un format nou, folosit în Nightscout 0.9.0 și superior și nu va mai fi posibilă folosirea pentru versiunile mai vechi.\nSunteți de acord?' ,de: 'Profil wird in einem neuem Format für Nightscout 0.9.0 und höher gespeichert und ist in älteren Versionen nicht mehr nutzbar. Sind Sie sicher?' ,sv: 'Profilen sparas i ett nyare format som ej kommer fungera i tidigare versioner av Nightscout (<0.9.0). \nÄr du säker?' @@ -8265,6 +8385,7 @@ function init() { ,'Wrong profile setting.\nNo profile defined to displayed time.\nRedirecting to profile editor to create new profile.' : { cs: 'Chybě nastavený profil.\nNení definovaný žádný platný profil k času zobrazení.\nProvádím přesměrování na editor profilu.' ,el: 'Λάθος προφίλ. Παρακαλώ δημιουργήστε ένα νέο προφίλ' + ,fr: 'Erreur de réglage de profil. \nAucun profil défini pour indiquer l\'heure. \nRedirection vers la création d\'un nouveau profil. ' ,de: 'Falsche Profileinstellung.\nKein Profil festgelegt zur angezeigten Zeit.\n Weiter zum Profileditor um ein neues Profil zu erstellen.' ,bg: 'Грешни настройки на профила. \nНяма определен профил към избраното време. \nПрепращане към редактора на профила, за създаване на нов профил.' ,ro: 'Setare de profil eronată.\nNu este definit niciun profil pentru perioada afișată.\nMergeți la editorul de profiluri pentru a defini unul nou.' @@ -8283,6 +8404,7 @@ function init() { ,'Pump' : { cs: 'Pumpa' ,sk: 'Pumpa' + ,fr: 'Pompe' ,sv: 'Pump' ,el: 'Αντλία' ,nb: 'Pumpe' @@ -8301,6 +8423,7 @@ function init() { cs: 'Stáří senzoru (SAGE)' ,sk: 'Zavedenie senzoru (SAGE)' ,sv: 'Sensorålder (SAGE)' + ,fr: 'Âge du senseur (SAGE)' ,el: 'Ημέρες χρήσης αισθητήρα (SAGE)' ,nb: 'Sensoralder (SAGE)' ,de: 'Sensor-Alter' @@ -8318,6 +8441,7 @@ function init() { ,'Insulin Age' : { cs: 'Stáří inzulínu (IAGE)' ,sk: 'Výmena inzulínu (IAGE)' + ,fr: 'Âge de l\'insuline (IAGE)' ,el: 'Ημέρες χρήσης αμπούλας ινσουλίνης (IAGE)' ,sv: 'Insulinålder (IAGE)' ,nb: 'Insulinalder (IAGE)' @@ -8336,6 +8460,7 @@ function init() { ,'Temporary target' : { cs: 'Dočasný cíl' ,de: 'Temporäres Ziel' + ,fr: 'Cible temporaire' ,sk: 'Dočasný cieľ' ,el: 'Προσωρινός στόχος' ,sv: 'Tillfälligt mål' @@ -8353,6 +8478,7 @@ function init() { ,'Reason' : { cs: 'Důvod' ,sk: 'Dôvod' + ,fr: 'Raison' ,sv: 'Orsak' ,el: 'Αιτία' ,nb: 'Årsak' @@ -8370,6 +8496,7 @@ function init() { ,'Eating soon' : { cs: 'Následuje jídlo' ,sk: 'Jesť čoskoro' + ,fr: 'Repas sous peu' ,sv: 'Snart matdags' ,nb: 'Snart tid for mat' ,de: 'Bald essend' @@ -8386,6 +8513,7 @@ function init() { ,'Top' : { cs: 'Horní' ,sk: 'Vrchná' + ,fr: 'Haut' ,sv: 'Toppen' ,el: 'Πάνω' ,nb: 'Øverst' @@ -8404,6 +8532,7 @@ function init() { cs: 'Dolní' ,sk: 'Spodná' ,sv: 'Botten' + ,fr: 'Bas' ,el: 'Κάτω' ,nb: 'Nederst' ,de: 'Unten' @@ -8420,6 +8549,7 @@ function init() { ,'Activity' : { cs: 'Aktivita' ,sk: 'Aktivita' + ,fr: 'Activité' ,sv: 'Aktivitet' ,el: 'Δραστηριότητα' ,nb: 'Aktivitet' @@ -8437,6 +8567,7 @@ function init() { ,'Targets' : { cs: 'Cíl' ,sk: 'Ciele' + ,fr: 'Cibles' ,el: 'Στόχοι' ,de: 'Ziele' ,sv: 'Mål' @@ -8454,6 +8585,7 @@ function init() { ,'Bolus insulin:' : { cs: 'Bolusový inzulín:' ,bg: 'Болус инсулин' + ,fr: 'Bolus d\'Insuline' ,ro: 'Insulină bolusată:' ,el: 'Ινσουλίνη' ,ru: 'Болюс инсулин' @@ -8471,6 +8603,7 @@ function init() { ,'Base basal insulin:' : { cs: 'Základní bazální inzulín:' ,bg: 'Основен базален инсулин' + ,fr: 'Débit basal de base' ,ro: 'Bazala obișnuită:' ,el: 'Βασική Ινσουλίνη' ,ru: 'Основной базал инсулин' @@ -8488,6 +8621,7 @@ function init() { ,'Positive temp basal insulin:' : { cs: 'Pozitivní dočasný bazální inzulín:' ,bg: 'Положителен временен базален инсулин' + ,fr: 'Débit basal temporaire positif' ,ro: 'Bazala temporară marită:' ,el: 'Θετική βασική ινσουλίνη' ,ru: 'Положит знач временн базал инс ' @@ -8505,6 +8639,7 @@ function init() { ,'Negative temp basal insulin:' : { cs:'Negativní dočasný bazální inzulín:' ,bg: 'Отрицателен временен базален инсулин' + ,fr: 'Débit basal temporaire négatif' ,ro: 'Bazala temporară micșorată:' ,el: 'Αρνητική βασική ινσουλίνη' ,ru: 'Отриц знач временн базал инс' @@ -8522,6 +8657,7 @@ function init() { ,'Total basal insulin:' : { cs: 'Celkový bazální inzulín:' ,bg: 'Общо базален инсулин' + ,fr: 'Insuline basale au total:' ,ro: 'Bazala totală:' ,el: 'Συνολική Βασική Ινσουλίνη (BASAL)' ,ru: 'Всего базал инсулина' @@ -8539,6 +8675,7 @@ function init() { ,'Total daily insulin:' : { cs:'Celkový denní inzulín:' ,bg: 'Общо инсулин за деня' + ,fr: 'Insuline totale journalière' ,ro: 'Insulina totală zilnică:' ,el: 'Συνολική Ημερήσια Ινσουλίνη' ,ru: 'Всего ежедн базал инсулина' @@ -8556,6 +8693,7 @@ function init() { ,'Unable to %1 Role' : { // PUT or POST cs: 'Chyba volání %1 Role:' ,bg: 'Невъзможно да %1 Роля' + ,fr: 'Incapable de %1 rôle' ,ro: 'Imposibil de %1 Rolul' ,ru: 'Невозможно %1 Роль' ,sv: 'Kan inte ta bort roll %1' @@ -8573,6 +8711,7 @@ function init() { cs: 'Nelze odstranit Roli:' ,bg: 'Невъзможно изтриването на Роля' ,ro: 'Imposibil de șters Rolul' + ,fr: 'Effacement de rôle impossible' ,ru: 'Невозможно удалить Роль' ,sv: 'Kan ej ta bort roll' ,nb: 'Kan ikke ta bort rolle' @@ -8589,6 +8728,7 @@ function init() { cs: 'Databáze obsahuje %1 rolí' ,bg: 'Базата данни съдържа %1 роли' ,ro: 'Baza de date conține %1 rol(uri)' + ,fr: 'La base de données contient %1 rôles' ,ru: 'База данных содержит %1 Ролей' ,sv: 'Databasen innehåller %1 roller' ,nb: 'Databasen inneholder %1 roller' @@ -8605,6 +8745,7 @@ function init() { cs:'Editovat roli' ,bg: 'Промени Роля' ,ro: 'Editează Rolul' + ,fr: 'Éditer le rôle' ,ru: 'Редактировать Роль' ,sv: 'Editera roll' ,nb: 'Editer rolle' @@ -8620,6 +8761,7 @@ function init() { ,'admin, school, family, etc' : { cs: 'administrátor, škola, rodina atd...' ,bg: 'администратор,училище,семейство и т.н.' + ,fr: 'Administrateur, école, famille, etc' ,ro: 'administrator, școală, familie, etc' ,ru: 'админ, школа, семья и т д' ,sv: 'Administratör, skola, familj, etc' @@ -8637,6 +8779,7 @@ function init() { cs: 'Oprávnění' ,bg: 'Права' ,ro: 'Permisiuni' + ,fr: 'Permissions' ,ru: 'Разрешения' ,sv: 'Rättigheter' ,nb: 'Rettigheter' @@ -8653,6 +8796,7 @@ function init() { cs: 'Opravdu vymazat: ' ,bg: 'Потвърдете изтриването' ,ro: 'Confirmați ștergerea: ' + ,fr: 'Êtes-vous sûr de vouloir effacer:' ,ru: 'Вы уверены, что хотите удалить' ,sv: 'Är du säker att du vill ta bort:' ,nb: 'Er du sikker på at du vil slette:' @@ -8668,11 +8812,12 @@ function init() { ,'Each role will have a 1 or more permissions. The * permission is a wildcard, permissions are a hierarchy using : as a separator.' : { cs: 'Každá role má 1 nebo více oprávnění. Oprávnění * je zástupný znak, oprávnění jsou hiearchie používající : jako oddělovač.' ,bg: 'Всяка роля ще има 1 или повече права. В * правото е маска, правата са йерархия използвайки : като разделител' + ,fr: 'Chaque rôle aura une ou plusieurs permissions. La permission * est un joker (permission universelle), les permissions sont une hierarchie utilisant : comme séparatuer' ,ro: 'Fiecare rol va avea cel puțin o permisiune. Permisiunea * este totală, permisiunile sunt ierarhice utilizând : pe post de separator.' ,ru: 'Каждая роль имеет 1 или более разрешений. Разрешение * это подстановочный символ, разрешения это иерархия, использующая : как разделитель.' ,sv: 'Varje roll kommer få en eller flera rättigheter. * är en wildcard, rättigheter sätts hirarkiskt med : som avgränsare.' ,nb: 'Hver enkelt rolle vil ha en eller flere rettigheter. *-rettigheten er wildcard. Rettigheter settes hierarkisk med : som separator.' - ,fi: 'Jokaisella roolilla on yksi tai useampia oikeuksia. + on jokeri (tunnistuu kaikkina oikeuksina), oikeudet ovat hierarkia joka käyttää : merkkiä erottimena.' + ,fi: 'Jokaisella roolilla on yksi tai useampia oikeuksia. * on jokeri (tunnistuu kaikkina oikeuksina), oikeudet ovat hierarkia joka käyttää : merkkiä erottimena.' ,de: 'Jede Rolle hat eine oder mehrere Berechtigungen. Die * Berechtigung ist ein Platzhalter, Berechtigungen sind hierachrchisch mit : als Separator.' ,pt: 'Cada função terá uma ou mais permissões. A permissão * é um wildcard, permissões são uma hierarquia utilizando * como um separador.' ,sk: 'Každá rola má 1 alebo viac oprávnení. Oprávnenie * je zástupný znak, oprávnenia sú hierarchie používajúce : ako oddelovač.' @@ -8684,6 +8829,7 @@ function init() { ,'Add new Role' : { cs: 'Přidat novou roli' ,bg: 'Добавете нова роля' + ,fr: 'Ajouter un nouveau rôle' ,ro: 'Adaugă un Rol nou' ,ru: 'Добавить новую Роль' ,sv: 'Lägg till roll' @@ -8700,6 +8846,7 @@ function init() { ,'Roles - Groups of People, Devices, etc' : { cs: 'Role - Skupiny lidí, zařízení atd.' ,bg: 'Роли - Група хора,устройства,т.н.' + ,fr: 'Rôles - Groupe de Personnes ou d\'appareils' ,ro: 'Roluri - Grupuri de persoane, dispozitive, etc' ,ru: 'Роли- группы людей, устройств и т п' ,sv: 'Roller - Grupp av användare, Enheter, etc' @@ -8716,6 +8863,7 @@ function init() { ,'Edit this role' : { cs: 'Editovat tuto roli' ,bg: 'Промени тази роля' + ,fr: 'Editer ce rôle' ,ro: 'Editează acest rol' ,ru: 'Редактировать эту роль' ,sv: 'Editera denna roll' @@ -8732,6 +8880,7 @@ function init() { ,'Admin authorized' : { cs: 'Admin autorizován' ,bg: 'Оторизиран като администратор' + ,fr: 'Administrateur autorisé' ,ro: 'Autorizat de admin' ,ru: 'Разрешено администратором' ,sv: 'Administratorgodkänt' @@ -8749,6 +8898,7 @@ function init() { ,'Subjects - People, Devices, etc' : { cs: 'Subjekty - Lidé, zařízení atd.' ,bg: 'Субекти - Хора,Устройства,т.н.' + ,fr: 'Utilisateurs - Personnes, Appareils, etc' ,ro: 'Subiecte - Persoane, dispozitive, etc' ,ru: 'Субъекты - Люди, устройства и т п' ,sv: 'Ämnen - Användare, Enheter, etc' @@ -8765,6 +8915,7 @@ function init() { ,'Each subject will have a unique access token and 1 or more roles. Click on the access token to open a new view with the selected subject, this secret link can then be shared.' : { cs: 'Každý subjekt má svůj unikátní token a 1 nebo více rolí. Klikem na přístupový token se otevře nové okno pro tento subjekt. Tento link je možné sdílet.' ,bg: 'Всеки обект ще има уникален ключ за достъп и 1 или повече роли. Кликнете върху ключа за достъп, за да отворите нов изглед с избрания обект, тази секретна връзка може след това да се споделя' + ,fr: 'Chaque utilisateur aura un identificateur unique et un ou plusieurs rôles. Cliquez sur l\'identificateur pour révéler l\'utilisateur, ce lien secret peut être partagé.' ,ro: 'Fiecare subiect va avea o cheie unică de acces și unul sau mai multe roluri. Apăsați pe cheia de acces pentru a vizualiza subiectul selectat, acest link poate fi distribuit.' ,ru: 'Каждый субъект получает уникальный код доступа и 1 или более ролей. Нажмите на иконку кода доступа чтобы открыть новое окно с выбранным субъектом, эту секретную ссылку можно переслать.' ,sv: 'Varje ämne får en unik säkerhetsnyckel och en eller flera roller. Klicka på accessnyckeln för att öppna en ny vy med det valda ämnet, denna hemliga länk kan sedan delas.' @@ -8781,6 +8932,7 @@ function init() { ,'Add new Subject' : { cs: 'Přidat nový subjekt' ,bg: 'Добави нов субект' + ,fr: 'Ajouter un nouvel Utilisateur' ,ro: 'Adaugă un Subiect nou' ,ru: 'Добавить нового субъекта' ,sv: 'Lägg till nytt ämne' @@ -8798,6 +8950,7 @@ function init() { cs: 'Chyba volání %1 Subjektu:' ,bg: 'Невъзможно %1 субект' ,ro: 'Imposibil de %1 Subiectul' + ,fr: 'Impossible de créer l\'Utilisateur %1' ,ru: 'Невозможно %1 субъекта' ,sv: 'Kan ej %1 ämne' ,nb: 'Kan ikke %1 ressurs' @@ -8814,6 +8967,7 @@ function init() { cs: 'Nelze odstranit Subjekt:' ,bg: 'Невъзможно изтриването на субекта' ,ro: 'Imposibil de șters Subiectul' + ,fr: 'Impossible d\'effacer l\'Utilisateur' ,ru: 'Невозможно удалить ' ,sv: 'Kan ej ta bort ämne' ,nb: 'Kan ikke slette ressurs' @@ -8829,6 +8983,7 @@ function init() { ,'Database contains %1 subjects' : { cs: 'Databáze obsahuje %1 subjektů' ,bg: 'Базата данни съдържа %1 субекти' + ,fr: 'La base de données contient %1 utilisateurs' ,fi: 'Tietokanta sisältää %1 käyttäjää' ,ru: 'База данных содержит %1 субъект(а/ов)' ,ro: 'Baza de date are %1 subiecți' @@ -8846,6 +9001,7 @@ function init() { cs:'Editovat subjekt' ,bg: 'Промени субект' ,ro: 'Editează Subiectul' + ,fr: 'Éditer l\'Utilisateur' ,ru: 'Редактировать субъекта' ,sv: 'Editera ämne' ,nb: 'Editer ressurs' @@ -8862,6 +9018,7 @@ function init() { cs:'osoba, zařízeni atd.' ,bg: 'човек,устройство,т.н.' ,ro: 'persoană, dispozitiv, etc' + ,fr: 'personne, appareil, etc' ,ru: 'лицо, устройство и т п' ,sv: 'person,enhet,etc' ,nb: 'person, enhet osv' @@ -8878,6 +9035,7 @@ function init() { cs:'role1, role2' ,bg: 'Роля1, Роля2' ,ro: 'Rol1, Rol2' + ,fr: 'rôle1, rôle2' ,ru: 'Роль1, Роль2' ,sv: 'Roll1, Roll2' ,nb: 'rolle1, rolle2' @@ -8894,6 +9052,7 @@ function init() { cs:'Editovat tento subjekt' ,bg: 'Промени този субект' ,ro: 'Editează acest subiect' + ,fr: 'Éditer cet utilisateur' ,ru: 'Редактировать этого субъекта' ,sv: 'Editera ämnet' ,nb: 'Editer ressurs' @@ -8910,6 +9069,7 @@ function init() { cs:'Smazat tento subjekt' ,bg: 'Изтрий този субект' ,ro: 'Șterge acest subiect' + ,fr: 'Effacer cet utilisateur:' ,ru: 'Удалить этого субъекта' ,sv: 'Ta bort ämnet' ,nb: 'Slett ressurs' @@ -8926,6 +9086,7 @@ function init() { cs:'Role' ,bg: 'Роли' ,ro: 'Roluri' + ,fr: 'Rôles' ,ru: 'Роли' ,sv: 'Roller' ,nb: 'Roller' @@ -8942,6 +9103,7 @@ function init() { cs:'Přístupový token' ,bg: 'Ключ за достъп' ,ro: 'Cheie de acces' + ,fr: 'Identificateur unique' ,ru: 'Код доступа' ,sv: 'Åtkomstnyckel' ,nb: 'Tilgangsnøkkel' @@ -8957,6 +9119,7 @@ function init() { ,'hour ago' : { cs:'hodina zpět' ,bg: 'Преди час' + ,fr: 'heure avant' ,ro: 'oră în trecut' ,ru: 'час назад' ,sv: 'timme sedan' @@ -8973,6 +9136,7 @@ function init() { ,'hours ago' : { cs:'hodin zpět' ,bg: 'Преди часове' + ,fr: 'heures avant' ,ro: 'ore în trecut' ,ru: 'часов назад' ,sv: 'timmar sedan' @@ -8990,6 +9154,7 @@ function init() { cs:'Ztlumit na %1 minut' ,bg: 'Заглушаване за %1 минути' ,ro: 'Liniște pentru %1 minute' + ,fr: 'Silence pour %1 minutes' ,ru: 'Молчание %1 минут' ,sv: 'Tyst i %1 minuter' ,nb: 'Stille i %1 minutter' @@ -9007,6 +9172,7 @@ function init() { cs:'Zkontrolovat glykémii' ,de: 'BZ kontrollieren' ,ro: 'Verificați glicemia' + ,fr: 'Vérifier la glycémie' ,ru: 'Проверьте гликемию' ,sv: 'Kontrollera blodglukos' ,nb: 'Sjekk blodsukker' @@ -9023,6 +9189,7 @@ function init() { cs:'BAZÁL' ,ro: 'Bazală' ,ru: 'Базал' + ,fr: 'Basale' ,sk: 'BAZÁL' ,sv: 'BASAL' ,nb: 'BASAL' @@ -9039,6 +9206,7 @@ function init() { cs:'Současný bazál' ,de: 'Aktuelle Basalrate' ,ro: 'Bazala curentă' + ,fr: 'Débit basal actuel' ,ru: 'Актуальный базал' ,sk: 'Aktuálny bazál' ,sv: 'Nuvarande basal' @@ -9055,6 +9223,7 @@ function init() { cs:'Citlivost (ISF)' ,de: 'Sensitivität' ,ro: 'Sensibilitate la insulină (ISF)' + ,fr: 'Sensibilité à l\'insuline (ISF)' ,ru: 'Чуствительность к инсулину' ,sk: 'Citlivosť (ISF)' ,sv: 'Insulinkönslighet (ISF)' @@ -9070,6 +9239,7 @@ function init() { ,'Current Carb Ratio' : { cs:'Sacharidový poměr (I:C)' ,de: 'Aktuelles KH-Verhältnis' + ,fr: 'Rapport Insuline-glucides actuel (I:C)' ,ro: 'Raport Insulină:Carbohidrați (ICR)' ,ru: 'Актуальное соотношение инсулин:углеводы' ,sk: 'Aktuálny sacharidový pomer (I"C)' @@ -9087,6 +9257,7 @@ function init() { cs:'Časová zóna' ,de: 'Basal Zeitzone' ,ro: 'Fus orar pentru bazală' + ,fr: 'Fuseau horaire' ,ru: 'Временная зона базала' ,sk: 'Časová zóna pre bazál' ,sv: 'Basal tidszon' @@ -9103,6 +9274,7 @@ function init() { cs:'Aktivní profil' ,de: 'Aktives Profil' ,ro: 'Profilul activ' + ,fr: 'Profil actif' ,ru: 'Действующий профиль' ,sk: 'Aktívny profil' ,sv: 'Aktiv profil' @@ -9119,6 +9291,7 @@ function init() { cs:'Aktivní dočasný bazál' ,de: 'Aktive temp. Basalrate' ,ro: 'Bazală temporară activă' + ,fr: 'Débit basal temporaire actif' ,ru: 'Активный временный базал' ,sk: 'Aktívny dočasný bazál' ,sv: 'Aktiv tempbasal' @@ -9135,6 +9308,7 @@ function init() { cs:'Začátek dočasného bazálu' ,de: 'Start aktive temp. Basalrate' ,ro: 'Start bazală temporară activă' + ,fr: 'Début du débit basal temporaire' ,ru: 'Старт активного временного базала' ,sk: 'Štart dočasného bazálu' ,sv: 'Aktiv tempbasal start' @@ -9151,6 +9325,7 @@ function init() { cs:'Trvání dočasného bazálu' ,de: 'Dauer aktive temp. Basalrate' ,ro: 'Durata bazalei temporare active' + ,fr: 'Durée du débit basal temporaire' ,ru: 'Длительность активного временного базала' ,sk: 'Trvanie dočasného bazálu' ,sv: 'Aktiv tempbasal varaktighetstid' @@ -9167,6 +9342,7 @@ function init() { cs:'Zbývající dočasný bazál' ,de: 'Verbleibene Dauer temp. Basalrate' ,ro: 'Rest de bazală temporară activă' + ,fr: 'Durée restante de débit basal temporaire' ,ru: 'Остаток акивного временного базала' ,sk: 'Zostatok dočasného bazálu' ,sv: 'Återstående tempbasaltid' @@ -9183,6 +9359,7 @@ function init() { cs:'Základní hodnota bazálu' ,ro: 'Valoarea profilului bazalei' ,ru: 'Значение профайла базала' + ,fr: 'Valeur du débit basal' ,sv: 'Basalprofil värde' ,nb: 'Basalprofil verdi' ,fi: 'Basaaliprofiilin arvo' @@ -9197,6 +9374,7 @@ function init() { ,'Active combo bolus' : { cs:'Aktivní kombinovaný bolus' ,ro: 'Bolus combinat activ' + ,fr: 'Bolus Duo/Combo actif' ,ru: 'Активный комбинированный болюс' ,sv: 'Aktiv kombobolus' ,nb: 'Kombinasjonsbolus' @@ -9212,6 +9390,7 @@ function init() { ,'Active combo bolus start' : { cs:'Začátek kombinovaného bolusu' ,ro: 'Start bolus combinat activ' + ,fr: 'Début de Bolus Duo/Combo' ,ru: 'Старт активного комбо болюса' ,sv: 'Aktiv kombobolus start' ,nb: 'Kombinasjonsbolus start' @@ -9227,6 +9406,7 @@ function init() { ,'Active combo bolus duration' : { cs:'Trvání kombinovaného bolusu' ,ro: 'Durată bolus combinat activ' + ,fr: 'Durée du Bolus Duo/Combo' ,ru: 'Длительность активного комбо болюса' ,sv: 'Aktiv kombibolus varaktighet' ,nb: 'Kombinasjonsbolus varighet' @@ -9242,6 +9422,7 @@ function init() { ,'Active combo bolus remaining' : { cs:'Zbývající kombinovaný bolus' ,ro: 'Rest de bolus combinat activ' + ,fr: 'Activité restante du Bolus Duo/Combo' ,ru: 'Остаток активного комбо болюса' ,sv: 'Återstående aktiv kombibolus' ,nb: 'Gjenstående kombinasjonsbolus' @@ -9258,6 +9439,7 @@ function init() { cs:'Změna glykémie' ,de: 'BZ Differenz' ,ro: 'Diferență glicemie' + ,fr: 'Différence de glycémie' ,ru: 'Изменение гликемии' ,sv: 'BS deltavärde' ,nb: 'BS forskjell' @@ -9275,6 +9457,7 @@ function init() { cs:'Dosažený čas' ,de: 'Vergangene Zeit' ,ro: 'Timp scurs' + ,fr: 'Temps écoulé' ,ru: 'Прошло времени' ,sv: 'Förfluten tid' ,nb: 'Forløpt tid' @@ -9292,6 +9475,7 @@ function init() { cs:'Absolutní rozdíl' ,de: 'Absolute Differenz' ,ro: 'Diferență absolută' + ,fr: 'Différence absolue' ,ru: 'Абсолютное изменение' ,sv: 'Absolut deltavärde' ,nb: 'Absolutt forskjell' @@ -9309,6 +9493,7 @@ function init() { cs:'Interpolováno' ,de: 'Interpoliert' ,ro: 'Interpolat' + ,fr: 'Interpolé' ,ru: 'Интерполировано' ,sv: 'Interpolerad' ,nb: 'Interpolert' @@ -9326,6 +9511,7 @@ function init() { cs:'KALK' ,ro: 'Ajutor bolusare (BWP)' ,ru: 'Предпросмотр калькулятора болюса' + ,fr: 'Calculateur de bolus (BWP)' ,sv: 'Boluskalkylator' ,nb: 'Boluskalkulator' ,fi: 'Annoslaskuri' @@ -9342,6 +9528,7 @@ function init() { cs:'Urgentní' ,de: 'Akut' ,ro: 'Urgent' + ,fr: 'Urgent' ,ru: 'Срочно' ,sv: 'Akut' ,nb: 'Akutt' @@ -9359,6 +9546,7 @@ function init() { cs:'Varování' ,de: 'Warnung' ,ro: 'Atenție' + ,fr: 'Attention' ,ru: 'Осторожно' ,sv: 'Varning' ,nb: 'Advarsel' @@ -9375,6 +9563,7 @@ function init() { ,'Info' : { cs:'Informativní' ,ro: 'Informație' + ,fr: 'Information' ,ru: 'Информация' ,sv: 'Information' ,nb: 'Informasjon' @@ -9392,6 +9581,7 @@ function init() { cs:'Nejnižší' ,ro: 'Cea mai mică' ,ru: 'Самое нижнее' + ,fr: 'Valeur la plus basse' ,sv: 'Lägsta' ,nb: 'Laveste' ,fi: 'Matalin' @@ -9407,6 +9597,7 @@ function init() { ,'Snoozing high alarm since there is enough IOB' : { cs:'Vypínání alarmu vyskoké glykémie, protože je dostatek IOB' ,ro: 'Ignoră alarma de hiper deoarece este suficientă insulină activă IOB' + ,fr: 'Alarme haute ignorée car suffisamment d\'insuline à bord (IOB)' ,bg: 'Изключване на аларма за висока КЗ, тъй като има достатъчно IOB' ,ru: 'Отключение предупреждение о высоком СК ввиду достаточности инсулина в организме' ,sv: 'Snoozar höglarm då aktivt insulin är tillräckligt' @@ -9422,6 +9613,7 @@ function init() { cs:'Zkontrolovat glykémii, čas na bolus?' ,de: 'BZ kontrollieren, ggf. Bolus abgeben?' ,ro: 'Verifică glicemia, poate este necesar un bolus?' + ,fr: 'Vérifier la glycémie, bolus nécessaire ?' ,bg: 'Провери КЗ, не е ли време за болус?' ,ru: 'Проверьте СК, не пора ли ввести болюс?' ,sv: 'Kontrollera BS, dags att ge bolus?' @@ -9437,6 +9629,7 @@ function init() { cs:'Poznámka' ,ro: 'Notificare' ,ru: 'Заметка' + ,fr: 'Notification' ,bg: 'Известие' ,sv: 'Notering' ,nb: 'NB' @@ -9450,6 +9643,7 @@ function init() { cs:'chybějící informace' ,de: 'Benötigte Information fehlt' ,ro: 'Informații importante lipsă' + ,fr: 'Information nécessaire manquante' ,ru: 'Отсутствует необходимая информация' ,bg: 'Липсва необходима информация' ,nb: 'Nødvendig informasjon mangler' @@ -9464,6 +9658,7 @@ function init() { cs:'Aktivní inzulín' ,de: 'Aktives Insulin' ,ro: 'Insulină activă (IOB)' + ,fr: 'Insuline à bord (IOB)' ,ru: 'Активный инсулин (IOB)' ,bg: 'Активен Инсулин (IOB)' ,sv: 'Aktivt insulin (IOB)' @@ -9479,6 +9674,7 @@ function init() { cs:'Aktuální cílová hodnota' ,de: 'Aktueller Zielbereich' ,ro: 'Țintă curentă' + ,fr: 'Cible actuelle' ,ru: 'Актуальное целевое значение' ,bg: 'Настояща целева КЗ' ,sv: 'Aktuellt mål' @@ -9494,6 +9690,7 @@ function init() { cs:'Očekávaný efekt' ,de: 'Erwarteter Effekt' ,ro: 'Efect presupus' + ,fr: 'Effect escompté' ,ru: 'Ожидаемый эффект' ,bg: 'Очакван ефект' ,sv: 'Förväntad effekt' @@ -9509,6 +9706,7 @@ function init() { cs:'Očekávaný výsledek' ,de: 'Erwartetes Ergebnis' ,ro: 'Rezultat așteptat' + ,fr: 'Résultat escompté' ,ru: 'Ожидаемый результат' ,bg: 'Очакван резултат' ,sv: 'Förvöntat resultat' @@ -9524,6 +9722,7 @@ function init() { cs:'Ekvivalent v sacharidech' ,de: 'Kohlenhydrat-Äquivalent' ,ro: 'Echivalență în carbohidrați' + ,fr: 'Equivalent glucidique' ,ru: 'Эквивалент в углеводах' ,bg: 'Равностойност във ВХ' ,sv: 'Kolhydratsinnehåll' @@ -9538,6 +9737,7 @@ function init() { cs:'Nadbytek inzulínu: o %1U více, než na dosažení spodní hranice cíle. Nepočítáno se sacharidy.' ,de: 'Überschüssiges Insulin: %1U mehr als zum Erreichen der Untergrenze notwendig, Kohlenhydrate sind unberücksichtigt' ,ro: 'Insulină în exces: %1U mai mult decât este necesar pentru a atinge ținta inferioară, fără a ține cont de carbohidrați' + ,fr: 'Insuline en excès: %1U de plus que nécessaire pour atteindre la cible inférieure, sans prendre en compte les glucides' ,bg: 'Излишният инсулин %1U е повече от необходимия за достигане до долната граница, ВХ не се вземат под внимание' ,ru: 'Избыток инсулина равного %1U, необходимого для достижения нижнего целевого значения, углеводы не будут учтены' ,sv: 'Överskott av insulin motsvarande %1U mer än nödvändigt för att nå lågt målvärde, kolhydrater ej medräknade' @@ -9553,6 +9753,7 @@ function init() { cs:'Nadbytek inzulínu: o %1U více, než na dosažení spodní hranice cíle. UJISTĚTE SE, ŽE JE TO POKRYTO SACHARIDY' ,de: 'Überschüssiges Insulin: %1U mehr als zum Erreichen der Untergrenze notwendig. SICHERSTELLEN, DASS IOB DURCH KOHLENHYDRATE ABGEDECKT WIRD' ,ro: 'Insulină în exces: %1U mai mult decât este necesar pentru a atinge ținta inferioară, ASIGURAȚI-VĂ CĂ INSULINA ESTE ACOPERITĂ DE CARBOHIDRAȚI' + ,fr: 'Insuline en excès: %1U de plus que nécessaire pour atteindre la cible inférieure, ASSUREZ UN APPORT SUFFISANT DE GLUCIDES' ,bg: 'Излишният инсулин %1U е повече от необходимия за достигане до долната граница, ПРОВЕРИ ДАЛИ IOB СЕ ПОКРИВА ОТ ВЪГЛЕХИДРАТИТЕ' ,ru: 'Избыток инсулина, равного %1U, необходимого для достижения нижнего целевого значения, ПОКРОЙТЕ IOB ИНСУЛИН В ОРГАНИЗМЕ УГЛЕВОДАМИ' ,sv: 'Överskott av insulin motsvarande %1U mer än nödvändigt för att nå lågt målvärde, SÄKERSTÄLL ATT IOB TÄCKS AV KOLHYDRATER' @@ -9567,6 +9768,7 @@ function init() { cs:'Nutné snížení aktivního inzulínu o %1U k dosažení spodního cíle. Příliž mnoho bazálu?' ,de: 'Aktives Insulins um %1U reduzieren, um Untergrenze zu erreichen. Basal zu hoch?' ,ro: '%1U sunt în plus ca insulină activă pentru a atinge ținta inferioară, bazala este prea mare?' + ,fr: 'Réduction d\'insuline active nécessaire pour atteindre la cible inférieure. Débit basal trop élevé ?' ,bg: '%1U намаляне е необходимо в активния инсулин до достигане до долната граница, прекалено висок базал?' ,ru: 'Для достижения нижнего целевого значения необходимо понизить величину активного инсулина на %1U, велика база?' ,sv: '%1U minskning nödvändig i aktivt insulin för att nå lågt målvärde, för hög basal?' @@ -9581,6 +9783,7 @@ function init() { cs:'úprava změnou bazálu není možná. Podat sacharidy?' ,de: 'Basalrate geht außerhalb des Zielbereiches. Kohlenhydrate nehmen?' ,ro: 'ajustarea bazalei duce în afara intervalului țintă. Suplimentați carbohirații?' + ,fr: 'ajustement de débit basal hors de limites, prenez des glucides?' ,bg: 'Корекция на базала не е възможна, добавка на въглехидрати? ' ,ru: 'Корректировка базы вне диапазона, добавить углеводов?' ,sv: 'basaländring utanför gräns, ge kolhydrater?' @@ -9596,6 +9799,7 @@ function init() { cs:'úprava změnou bazálu není možná. Podat bolus?' ,de: 'Basalrate geht außerhalb des Zielbereiches. Bolus abgeben?' ,ro: 'ajustarea bazalei duce în afara intervalului țintă. Suplimentați insulina?' + ,fr: 'ajustement de débit basal hors de limites, prenez un bolus?' ,bg: 'Корекция на базала не е възможна, добавка на болус? ' ,ru: 'Корректировка базы вне диапазона, добавить болюс?' ,sv: 'basaländring utanför gräns, ge bolus?' @@ -9611,6 +9815,7 @@ function init() { cs:'nad horním' ,de: 'überhalb Obergrenze' ,ro: 'peste ținta superioară' + ,fr: 'plus haut que la limite supérieure' ,ru: 'Выше верхнего' ,bg: 'над горната' ,sv: 'över hög nivå' @@ -9627,6 +9832,7 @@ function init() { cs:'pod spodním' ,de: 'unterhalb Untergrenze' ,ro: 'sub ținta inferioară' + ,fr: 'plus bas que la limite inférieure' ,bg: 'под долната' ,ru: 'Ниже нижнего' ,sv: 'under låg nivå' @@ -9643,6 +9849,7 @@ function init() { cs:'Předpokládaná glykémie %1 cílem' ,de: 'Erwarteter BZ %1' ,ro: 'Glicemie estimată %1 în țintă' + ,fr: 'Glycémie cible projetée %1 ' ,bg: 'Предполагаемата КЗ %1 в граници' ,ru: 'Расчетная гликемия %1' ,sv: 'Önskat BS %1 mål' @@ -9657,6 +9864,7 @@ function init() { ,'aiming at' : { cs:'s cílem' ,de: 'angestrebt werden' + ,fr: 'visant' ,ro: 'ținta este' ,ru: 'цель на' ,bg: 'цел към' @@ -9673,6 +9881,7 @@ function init() { cs:'Bolus %1 jednotek' ,de: 'Bolus von %1 Einheiten' ,ro: 'Bolus de %1 unități' + ,fr: 'Bolus %1 unités' ,bg: 'Болус %1 единици' ,ru: 'Болюс %1 единиц' ,sv: 'Bolus %1 enheter' @@ -9688,6 +9897,7 @@ function init() { cs:'nebo úprava bazálu' ,de: 'oder Basal anpassen' ,ro: 'sau ajustează bazala' + ,fr: 'ou ajuster le débit basal' ,bg: 'или корекция на базала' ,ru: 'или корректировать базу' ,sv: 'eller justera basal' @@ -9703,6 +9913,7 @@ function init() { cs:'Před korekcí zkontrolujte glukometrem glykémii!' ,de: 'Überprüfe deinen BZ mit dem Messgerät, bevor du eine Korrektur vornimmst!' ,ro: 'Verifică glicemia cu glucometrul înainte de a face o corecție!' + ,fr: 'Vérifier la glycémie avec un glucomètre avant de corriger!' ,bg: 'Провери КЗ с глюкомер, преди кореция!' ,ru: 'Перед корректировкой сверьте СК с глюкометром' ,sv: 'Kontrollera blodglukos med fingerstick före korrigering!ß' @@ -9717,6 +9928,7 @@ function init() { ,'Basal reduction to account %1 units:' : { cs:'Úprava bazálu pro náhradu bolusu %1 U ' ,ro: 'Reducere bazală pentru a compensa %1 unități:' + ,fr: 'Réduction du débit basal pour obtenir l\'effet d\' %1 unité' ,bg: 'Намаляне на базала с %1 единици' ,ru: 'Снижение базы на %1 единиц' ,sv: 'Basalsänkning för att nå %1 enheter' @@ -9732,6 +9944,7 @@ function init() { cs:'30ti minutový dočasný bazál' ,de: '30min temporäres Basal' ,ro: 'bazală temporară de 30 minute' + ,fr: 'débit basal temporaire de 30 min' ,bg: '30м временен базал' ,ru: '30 мин врем базал' ,sv: '30 minuters temporär basal' @@ -9747,6 +9960,7 @@ function init() { cs:'hodinový dočasný bazál' ,de: '1h temporäres Basal' ,ro: 'bazală temporară de 1 oră' + ,fr: 'débit basal temporaire de 1 heure' ,bg: '1 час временен базал' ,ru: '1 час врем базал' ,sv: '60 minuters temporär basal' @@ -9763,6 +9977,7 @@ function init() { ,de: 'Kanülenwechsel überfällig!' ,ro: 'Depășire termen schimbare canulă!' ,bg: 'Времето за смяна на сет просрочено' + ,fr: 'Dépassement de date de changement de canule!' ,ru: 'С' ,sv: 'Infusionsset, bytestid överskriden' ,nb: 'Byttetid for infusjonssett overskredet' @@ -9776,6 +9991,7 @@ function init() { ,'Time to change cannula' : { cs:'Čas na výměnu setu' ,de: 'Es ist Zeit, die Kanüle zu wechseln' + ,fr: 'Le moment est venu de changer de canule' ,ro: 'Este vremea să schimbați canula' ,bg: 'Време за смяна на сет' ,ru: 'Пора заменить канюлю' @@ -9792,6 +10008,7 @@ function init() { cs:'Blíží se čas na výměnu setu' ,de: 'Kanüle bald wechseln' ,ro: 'Schimbați canula în curând' + ,fr: 'Changement de canule bientòt' ,bg: 'Смени сета скоро' ,ru: 'Подходит время замены канюли' ,sv: 'Byt infusionsset snart' @@ -9806,6 +10023,7 @@ function init() { ,'Cannula age %1 hours' : { cs:'Stáří setu %1 hodin' ,de: 'Kanülen Alter %1 Stunden' + ,fr: 'âge de la canule %1 heures' ,ro: 'Vechimea canulei în ore: %1' ,bg: 'Сетът е на %1 часове' ,ru: 'Возраст канюли %1 час' @@ -9822,6 +10040,7 @@ function init() { cs:'Nasazený' ,de: 'Eingesetzt' ,ro: 'Inserat' + ,fr: 'Insérée' ,bg: 'Поставен' ,ru: 'Введено' ,sv: 'Applicerad' @@ -9838,6 +10057,7 @@ function init() { cs:'SET' ,ro: 'VC' ,bg: 'ВС' + ,fr: 'CAGE' ,ru: 'ВКан' ,sv: 'Nål' ,nb: 'Nål alder' @@ -9852,7 +10072,8 @@ function init() { ,'COB' : { cs:'SACH' ,ro: 'COB' - ,bg: 'АВХ' + ,bg: 'АВХ' + ,fr: 'COB' ,ru: 'Активн углеводы' ,sv: 'COB' ,nb: 'Aktive katbohydrater' @@ -9867,7 +10088,8 @@ function init() { cs:'Poslední sacharidy' ,de: 'Letzte Kohlenhydrate' ,ro: 'Ultimii carbohidrați' - ,bg: 'Последни ВХ' + ,fr: 'Derniers glucides' + ,bg: 'Последни ВХ' ,ru: 'Новые углеводы' ,sv: 'Senaste kolhydrater' ,nb: 'Siste karbohydrater' @@ -9881,6 +10103,7 @@ function init() { ,'IAGE' : { cs:'INZ' ,ro: 'VI' + ,fr: 'IAGE' ,bg: 'ВИнс' ,ru: 'ВозрИнс' ,sv: 'Insulinålder' @@ -9896,6 +10119,7 @@ function init() { ,'Insulin reservoir change overdue!' : { cs:'Čas na výměnu zásobníku vypršel!' ,de: 'Ampullenwechsel überfällig!' + ,fr: 'Dépassement de date de changement de réservoir d\'insuline!' ,ro: 'Termenul de schimbare a rezervorului de insulină a fost depășit' ,bg: 'Смянатата на резервоара просрочена' ,ru: 'Срок замены тубы инсулина истек' @@ -9912,6 +10136,7 @@ function init() { cs:'Čas na výměnu zásobníku' ,de: 'Es ist Zeit, die Ampulle zu wechseln' ,ro: 'Este timpul pentru schimbarea rezervorului de insulină' + ,fr: 'Le moment est venu de changer de réservoir d\'insuline' ,bg: 'Време е за смяна на резервоара' ,ru: 'Наступил срок замены тубы инсулина' ,sv: 'Dags att byta insulinreservoar' @@ -9927,6 +10152,7 @@ function init() { cs:'Blíží se čas na výměnu zásobníku' ,de: 'Ampulle bald wechseln' ,ro: 'Rezervorul de insulină trebuie schimbat în curând' + ,fr: 'Changement de réservoir d\'insuline bientôt' ,bg: 'Смени резервоара скоро' ,ru: 'Наступает срок замены тубы инсулина' ,sv: 'Byt insulinreservoar snart' @@ -9941,6 +10167,7 @@ function init() { ,'Insulin reservoir age %1 hours' : { cs:'Stáří zásobníku %1 hodin' ,de: 'Ampullen Alter %1 Stunden' + ,fr: 'Âge du réservoir d\'insuline %1 heures' ,ro: 'Vârsta reservorului de insulină %1 ore' ,ru: 'Картридж инсулина отработал %1часов' ,bg: 'Резервоарът е на %1 часа' @@ -9956,6 +10183,7 @@ function init() { ,'Changed' : { cs:'Vyměněno' ,de: 'Gewechselt' + ,fr: 'Changé' ,ro: 'Schimbat' ,ru: 'Замена произведена' ,bg: 'Сменен' @@ -9972,6 +10200,7 @@ function init() { cs:'IOB' ,ro: 'IOB' ,ru: 'Активный Инсулин' + ,fr: 'IOB' ,bg: 'АИ' ,sv: 'IOB' ,nb: 'Aktivt insulin' @@ -9986,6 +10215,7 @@ function init() { cs:'IOB z ošetření' ,ro: 'IOB în Careportal' ,ru: 'Активн Инс на портале назначений' + ,fr: 'Careportal IOB' ,bg: 'АИ от Кеърпортал' ,sv: 'IOB i Careportal' ,nb: 'Aktivt insulin i Careportal' @@ -9999,6 +10229,7 @@ function init() { ,'Last Bolus' : { cs:'Poslední bolus' ,de: 'Letzter Bolus' + ,fr: 'Dernier Bolus' ,ro: 'Ultimul bolus' ,ru: 'Прошлый болюс' ,bg: 'Последен болус' @@ -10015,6 +10246,7 @@ function init() { cs:'IOB z bazálů' ,ro: 'IOB bazală' ,ru: 'Активн Базал' + ,fr: 'IOB du débit basal' ,bg: 'Базален АИ' ,sv: 'Basal IOB' ,nb: 'Basal Aktivt Insulin' @@ -10029,6 +10261,7 @@ function init() { cs:'Zdroj' ,de: 'Quelle' ,ro: 'Sursă' + ,fr: 'Source' ,ru: 'Источник' ,bg: 'Източник' ,sv: 'Källa' @@ -10044,6 +10277,7 @@ function init() { cs:'Zastaralá data, zkontrolovat mobil?' ,de: 'Daten sind veraltet, Übertragungsgerät prüfen?' ,ro: 'Date învechite, verificați uploaderul!' + ,fr: 'Valeurs trop anciennes, vérifier l\'uploadeur' ,ru: 'Устаревшие данные, проверьте загрузчик' ,bg: 'Стари данни, провери телефона' ,sv: 'Gammal data, kontrollera rigg?' @@ -10058,6 +10292,7 @@ function init() { ,'Last received:' : { cs:'Naposledy přijato:' ,de: 'Zuletzt empfangen:' + ,fr: 'Dernière réception:' ,ro: 'Ultimile date:' ,ru: 'Предыдущий полученный' ,bg: 'Последно получени' @@ -10074,6 +10309,7 @@ function init() { cs:'%1m zpět' ,de: 'vor %1m' ,ro: 'acum %1 minute' + ,fr: 'il y a %1 min' ,ru: 'мин назад' ,bg: 'преди %1 мин.' ,sv: '%1m sedan' @@ -10089,6 +10325,7 @@ function init() { cs:'%1h zpět' ,de: 'vor %1h' ,ro: 'acum %1 ore' + ,fr: '%1 heures plus tôt' ,ru: 'час назад' ,bg: 'преди %1 час' ,sv: '%1h sedan' @@ -10104,6 +10341,7 @@ function init() { cs:'%1d zpět' ,de: 'vor 1d' ,ro: 'acum %1 zile' + ,fr: '%1 jours plus tôt' ,ru: 'дн назад' ,bg: 'преди %1 ден' ,sv: '%1d sedan' @@ -10120,6 +10358,7 @@ function init() { ,ro: 'VECHI' ,ru: 'РЕТРО' ,bg: 'РЕТРО' + ,fr: 'RETRO' ,sv: 'RETRO' ,nb: 'GAMMELT' ,fi: 'RETRO' @@ -10133,6 +10372,7 @@ function init() { cs:'SENZ' ,ro: 'VS' ,ru: 'Сенсор проработал' + ,fr: 'SAGE' ,bg: 'ВС' ,sv: 'Sensor' ,nb: 'Sensoralder' @@ -10148,6 +10388,7 @@ function init() { cs:'Čas na výměnu senzoru vypršel!' ,de: 'Sensorwechsel/-neustart überfällig!' ,ro: 'Depășire termen schimbare/restart senzor!' + ,fr: 'Changement/Redémarrage du senseur dépassé!' ,ru: 'Рестарт сенсора просрочен' ,bg: 'Смяната/рестартът на сензора са пресрочени' ,sv: 'Sensor byte/omstart överskriden!' @@ -10164,6 +10405,7 @@ function init() { ,de: 'Es ist Zeit, den Sensor zu wechseln/neuzustarten' ,ro: 'Este timpul pentru schimbarea senzorului' ,ru: 'Время замены/рестарта сенсора' + ,fr: 'C\'est le moment de changer/redémarrer le senseur' ,bg: 'Време за смяна/рестарт на сензора' ,sv: 'Dags att byta/starta om sensorn' ,nb: 'På tide å bytte/restarte sensoren' @@ -10178,6 +10420,7 @@ function init() { cs:'Blíží se čas na výměnu senzoru' ,de: 'Sensor bald wechseln/neustarten' ,ro: 'Schimbați/restartați senzorul în curând' + ,fr: 'Changement/Redémarrage du senseur bientôt' ,ru: 'Приближается срок замены/рестарта сенсора' ,bg: 'Смени/рестартирай сензора скоро' ,sv: 'Byt/starta om sensorn snart' @@ -10193,6 +10436,7 @@ function init() { cs:'Stáří senzoru %1 dní %2 hodin' ,de: 'Sensor Alter %1 Tage %2 Stunden' ,ro: 'Senzori vechi de %1 zile și %2 ore' + ,fr: 'Âge su senseur %1 jours et %2 heures' ,ru: 'Сенсор проработал % дн % час' ,bg: 'Сензорът е на %1 дни %2 часа ' ,sv: 'Sensorålder %1 dagar %2 timmar' @@ -10208,6 +10452,7 @@ function init() { cs: 'Výměna sensoru' ,de: 'Sensor eingesetzt' ,ro: 'Inserția senzorului' + ,fr: 'Insertion du senseur' ,ru: 'Установка сенсора' ,bg: 'Поставяне на сензора' ,sv: 'Sensor insättning' @@ -10223,6 +10468,7 @@ function init() { cs: 'Znovuspuštění sensoru' ,ro: 'Pornirea senzorului' ,ru: 'Запуск сенсора' + ,fr: 'Démarrage du senseur' ,bg: 'Стартиране на сензора' ,sv: 'Sensorstart' ,nb: 'Sensorstart' @@ -10237,6 +10483,7 @@ function init() { cs: 'dní' ,de: 'Tage' ,ro: 'zile' + ,fr: 'jours' ,ru: 'дн' ,bg: 'дни' ,sv: 'dagar' @@ -10251,6 +10498,7 @@ function init() { ,'Insulin distribution' : { cs: 'Rozložení inzulínu' ,ro: 'Distribuția de insulină' + ,fr: 'Distribution de l\'insuline' ,ru: 'распределение инсулина' ,fi: 'Insuliinijakauma' ,it: 'Distribuzione di insulina' @@ -10259,6 +10507,7 @@ function init() { ,'To see this report, press SHOW while in this view' : { cs: 'Pro zobrazení toho výkazu stiskněte Zobraz na této záložce' ,de: 'Auf ZEIGEN drücken, um den Bericht in dieser Ansicht anzuzeigen' + ,fr: 'Pour voir le rapport, cliquer sur MONTRER dans cette fenêtre' ,ro: 'Pentru a vedea acest raport, apăsați butonul SHOW' ,ru: 'чтобы увидеть отчет, нажмите show/показать' ,fi: 'Nähdäksesi tämän raportin, paina NÄYTÄ tässä näkymässä' @@ -10269,6 +10518,7 @@ function init() { cs: 'AR2 predikci' ,de: 'AR2 Vorhersage' ,ro: 'Predicție AR2' + ,fr: 'Prédiction AR2' ,ru: 'прогноз AR2' ,fi: 'AR2 Ennusteet' ,it: 'Previsione AR2' @@ -10278,6 +10528,7 @@ function init() { cs: 'OpenAPS predikci' ,de: 'OpenAPS Vorhersage' ,ro: 'Predicții OpenAPS' + ,fr: 'Prédictions OpenAPS' ,ru: 'прогнозы OpenAPS' ,fi: 'OpenAPS Ennusteet' ,it: 'Previsione OpenAPS' @@ -10286,6 +10537,7 @@ function init() { ,'Temporary Target' : { cs: 'Dočasný cíl glykémie' ,de: 'Temporäres Ziel' + ,fr: 'Cible temporaire' ,ro: 'Țintă temporară' ,ru: 'промежуточная цель' ,fi: 'Tilapäinen tavoite' @@ -10295,6 +10547,7 @@ function init() { ,'Temporary Target Cancel' : { cs: 'Dočasný cíl glykémie konec' ,de: 'Temporäres Ziel abbrechen' + ,fr: 'Effacer la cible temporaire' ,ro: 'Renunțare la ținta temporară' ,ru: 'отмена промежуточной цели' ,fi: 'Peruuta tilapäinen tavoite' @@ -10304,6 +10557,7 @@ function init() { ,'OpenAPS Offline' : { cs: 'OpenAPS vypnuto' ,ro: 'OpenAPS deconectat' + ,fr: 'OpenAPS déconnecté' ,ru: 'OpenAPS вне сети' ,fi: 'OpenAPS poissa verkosta' ,it: 'OpenAPS disconnesso' @@ -10312,6 +10566,7 @@ function init() { ,'Profiles' : { cs: 'Profily' ,de: 'Profile' + ,fr: 'Profils' ,ro: 'Profile' ,ru: 'профили' ,fi: 'Profiilit' @@ -10320,6 +10575,7 @@ function init() { } ,'Time in fluctuation' : { fi: 'Aika muutoksessa' + ,fr: 'Temps passé en fluctuation' ,it: 'Tempo in fluttuazione' ,ro: 'Timp în fluctuație' ,ru: 'время флуктуаций' @@ -10327,6 +10583,7 @@ function init() { } ,'Time in rapid fluctuation' : { fi: 'Aika nopeassa muutoksessa' + ,fr: 'Temps passé en fluctuation rapide' ,it: 'Tempo in rapida fluttuazione' ,ro: 'Timp în fluctuație rapidă' ,ru: 'время быстрых флуктуаций' @@ -10334,6 +10591,7 @@ function init() { } ,'This is only a rough estimation that can be very inaccurate and does not replace actual blood testing. The formula used is taken from:' : { fi: 'Tämä on epätarkka arvio joka saattaa heittää huomattavasti mittaustuloksesta, eikä korvaa laboratoriotestiä. Laskentakaava on otettu artikkelista: ' + ,fr: 'Ceci est seulement une estimation grossière qui peut être très imprécise et ne remplace pas une mesure sanguine adéquate. La formule est empruntée à l\'article:' ,it: 'Questa è solo un\'approssimazione che può essere molto inaccurata e che non sostituisce la misurazione capillare. La formula usata è presa da:' ,ro: 'Aceasta este doar o aproximare brută, care poate fi foarte imprecisă și nu ține loc de testare capilară. Formula matematică folosită este luată din:' ,ru: 'Это приблизительная оценка не заменяющая фактический анализ крови. Используемая формула взята из:' @@ -10342,12 +10600,14 @@ function init() { , 'Filter by hours' : { fi: 'Huomioi raportissa seuraavat tunnit' ,it: 'Filtra per ore' + ,fr: 'Filtrer par heures' ,ro: 'Filtrare pe ore' ,ru: 'почасовой фильтр' ,nl: 'Filter op uren' } , 'Time in fluctuation and Time in rapid fluctuation measure the % of time during the examined period, during which the blood glucose has been changing relatively fast or rapidly. Lower values are better.' : { fi: 'Aika Muutoksessa ja Aika Nopeassa Muutoksessa mittaa osuutta tarkkailtavasta aikaperiodista, jolloin glukoosi on ollut nopeassa tai hyvin nopeassa muutoksessa. Pienempi arvo on parempi.' + ,fr: 'Le Temps passé en fluctuation et le temps passé en fluctuation rapide mesurent la part de temps durant la période examinée, pendant laquelle la glycémie a évolué relativement ou très rapidement. Les valeurs basses sont les meilleures.' ,it: 'Tempo in fluttuazione e Tempo in rapida fluttuazione misurano la % di tempo durante il periodo esaminato, durante il quale la glicemia stà variando velocemente o rapidamente. Bassi valori sono migliori.' ,ro: 'Timpul în fluctuație și timpul în fluctuație rapidă măsoară procentul de timp, din perioada examinată, în care glicemia din sânge a avut o variație relativ rapidă sau rapidă. Valorile mici sunt de preferat.' ,ru: 'время флуктуаций и время быстрых флуктуаций означает % времени в рассматриваемый период в течение которого СК менялся относительно быстро или просто быстро. Более низкие значения предпочтительней' @@ -10355,13 +10615,15 @@ function init() { } , 'Mean Total Daily Change is a sum of the absolute value of all glucose excursions for the examined period, divided by the number of days. Lower is better.' : { fi: 'Keskimääräinen Kokonaismuutos kertoo kerkimääräisen päivätason verensokerimuutoksien yhteenlasketun arvon. Pienempi arvo on parempi.' + ,fr: 'La Variation Totale Journalière Moyenne est la somme de toute les excursions glycémiques absolues pour une période analysée, divisée par le nombre de jours. Les valeurs basses sont les meilleures.' ,it: 'Media Totale Giornaliera Variazioni è la somma dei valori assoluti di tutte le escursioni glicemiche per il periodo esaminato, diviso per il numero di giorni. Bassi valori sono migliori.' ,ro: 'Schimbarea medie totală zilnică este suma valorilor absolute ale tuturor excursiilor glicemice din perioada examinată, împărțite la numărul de zile. Valorile mici sunt de preferat.' ,ru: 'усредненное ежедневное изменение это сумма абсолютных величин всех отклонений СК в рассматриваемый период, деленное на количество дней. Меньшая величина предпочтительней' ,nl: 'Gemiddelde veranderingen per dag is een som van alle waardes die uitschieten over de bekeken periode, gedeeld door het aantal dagen in deze periode. Lager is beter.' } , 'Mean Hourly Change is a sum of the absolute value of all glucose excursions for the examined period, divided by the number of hours in the period. Lower is better.' : { - fi: 'Keskimääräinen tunti kertoo kerkimääräisen tuntitason verensokerimuutoksien yhteenlasketun arvon. Pienempi arvo on parempi.' + fi: 'Keskimääräinen tunti kertoo keskimääräisen tuntitason verensokerimuutoksien yhteenlasketun arvon. Pienempi arvo on parempi.' + ,fr: 'La Variation Horaire Moyenne est la somme de toute les excursions glycémiques absolues pour une période analysée, divisée par le nombre d\'heures dans la période. Les valeures basses sont les meilleures.' ,it: 'Media Oraria Variazioni è la somma del valore assoluto di tutte le escursioni glicemiche per il periodo esaminato, diviso per il numero di ore. Bassi valori sono migliori.' ,ro: 'Variația media orară este suma valorilor absolute ale tuturor excursiilor glicemice din perioada examinată, împărțite la numărul de ore din aceeași perioadă. Valorile mici sunt de preferat.' ,ru: 'усредненное часовое изменение это сумма абсолютных величин всех отклонений СК в рассматриваемый период, деленное на количество часов в этот период. Более низкое предпочтительней' @@ -10369,13 +10631,15 @@ function init() { } , 'GVI and PGS are measures developed by Dexcom, detailed here.' : { fi: 'GVI ja PGS ovat Dexcom-yrityksen kehittämiä mittaustapoja, joista voit lukea lisää täällä..' - ,it: 'GVI e PGS sono misure sviluppate da Dexcom, dettagliate qui.' + ,fr: 'GVI et PGS sont des mesures développées par la firme Dexcom, présentées en détail ici.' + ,it: 'GVI e PGS sono misure sviluppate da Dexcom, dettagliate qui.' ,ro: 'GVI și PGS sunt caracteristici de măsurare inventate de Dexcom, ale căror detalii le găsiți aici.' ,ru: 'вариабельность гликемии и статус гликемии больного это величины, разработанные декскомом, подробнее here.' ,nl: 'GVI en PGS zijn maten ontworpen door Dexcom, gedetaillieerde info here.' } , 'Mean Total Daily Change' : { fi: 'Keskimääräinen Kokonaismuutos' + ,fr: 'Variation Totale Journalière Moyenne' ,it: 'Media Totale Giornaliera Variazioni' ,ro: 'Variația medie totală zilnică' ,ru: 'усредненное изменение за день' @@ -10383,6 +10647,7 @@ function init() { } , 'Mean Hourly Change' : { fi: 'Keskimääräinen tuntimuutos' + ,fr: 'Variation Horaire Moyenne' ,it: 'Media Oraria Variazioni' ,ro: 'Variația medie orară' ,ru: 'усредненное изменение за час' @@ -10397,7 +10662,7 @@ function init() { , en: 'slightly dropping' , es: 'slightly dropping' , fi: 'laskee hitaasti' - , fr: 'slightly dropping' + , fr: 'en chute lente' , he: 'slightly dropping' , hr: 'slightly dropping' , it: 'slightly dropping' @@ -10422,7 +10687,7 @@ function init() { , en: 'slightly rising' , es: 'slightly rising' , fi: 'nousee hitaasti' - , fr: 'slightly rising' + , fr: 'en montée lente' , he: 'slightly rising' , hr: 'slightly rising' , it: 'slightly rising' @@ -10447,7 +10712,7 @@ function init() { , en: 'holding' , es: 'holding' , fi: 'tasainen' - , fr: 'holding' + , fr: 'stable' , he: 'holding' , hr: 'holding' , it: 'holding' @@ -10472,7 +10737,7 @@ function init() { , en: 'rising' , es: 'rising' , fi: 'nousussa' - , fr: 'rising' + , fr: 'en montée' , he: 'rising' , hr: 'rising' , it: 'rising' @@ -10497,7 +10762,7 @@ function init() { , en: 'dropping' , es: 'dropping' , fi: 'laskussa' - , fr: 'dropping' + , fr: 'en chute' , he: 'dropping' , hr: 'dropping' , it: 'dropping' @@ -10522,7 +10787,7 @@ function init() { , en: 'rapidly dropping' , es: 'rapidly dropping' , fi: 'laskee nopeasti' - , fr: 'rapidly dropping' + , fr: 'en chute rapide' , he: 'rapidly dropping' , hr: 'rapidly dropping' , it: 'rapidly dropping' @@ -10547,7 +10812,7 @@ function init() { , en: 'rapidly rising' , es: 'rapidly rising' , fi: 'nousee nopeasti' - , fr: 'rapidly rising' + , fr: 'en montée rapide' , he: 'rapidly rising' , hr: 'rapidly rising' , it: 'rapidly rising' @@ -10788,24 +11053,27 @@ function init() { cs: 'Tuk [g]' ,de: 'Fett [g]' ,fi: 'Rasva [g]' + ,fr: 'Graisses [g]' ,ro: 'Grăsimi [g]' }, 'Protein [g]': { cs: 'Proteiny [g]' ,de: 'Proteine [g]' ,fi: 'Proteiini [g]' + ,fr: 'Protéines [g]' ,ro: 'Proteine [g]' - }, 'Energy [kJ]': { cs: 'Energie [kJ]' ,de: 'Energie [kJ]' - , fi: 'Energia [kJ]' + ,fi: 'Energia [kJ]' + ,fr: 'Énergie [kJ]' ,ro: 'Energie [g]' } , 'Clock View': { fi: 'Kellonäkymä' + ,fr: 'Vue Horloge' ,ro: 'Vedere tip ceas' } From 2068a3ead0b5cced9151207a4fa423dae2773793 Mon Sep 17 00:00:00 2001 From: pedrojparedes Date: Wed, 27 Dec 2017 14:11:38 +0100 Subject: [PATCH 08/46] Update Spanish 100% translated. (#3158) * Spanish language translated to 100% --- lib/language.js | 361 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 315 insertions(+), 46 deletions(-) diff --git a/lib/language.js b/lib/language.js index 948c26b24c8..f0bd13125f3 100644 --- a/lib/language.js +++ b/lib/language.js @@ -2017,7 +2017,7 @@ function init() { ,'Using stored API secret hash' : { cs: 'Používám uložený hash API hesla' ,de: 'Gespeicherte API-Prüfsumme verwenden' - ,es: 'Usando el hash del API pre-almacenado' + ,es: 'Usando hash del API secreto pre-almacenado' ,fr: 'Utilisation du hash API existant' ,el: 'Χρηση αποθηκευμένου συνθηματικού' ,pt: 'Usando o hash de API existente' @@ -2040,6 +2040,7 @@ function init() { ,'No API secret hash stored yet. You need to enter API secret.' : { cs: 'Není uložený žádný hash API hesla. Musíte zadat API heslo.' ,de: 'Keine API-Prüfsumme gespeichert. Bitte API-Prüfsumme eingeben.' + ,es: 'No se ha almacenado ningún hash todavía. Debe introducir su API secreto.' ,es: 'No se ha almacenado ningún hash todavía. Debe introducir su secreto API.' ,fr: 'Pas de secret API existant. Vous devez en entrer un.' ,el: 'Δεν υπάρχει αποθηκευμένο συνθηματικό API. Πρέπει να εισάγετε το συνθηματικό API' @@ -2337,7 +2338,7 @@ function init() { ,'Your API secret must be at least 12 characters long' : { cs: 'Vaše API heslo musí mít alespoň 12 znaků' ,de: 'Deine API-Prüfsumme muss mindestens 12 Zeichen lang sein' - ,es: 'Su secreo API debe contener al menos 12 caracteres' + ,es: 'Su API secreo debe contener al menos 12 carácteres' ,fr: 'Votre secret API doit contenir au moins 12 caractères' ,el: 'Το συνθηματικό πρέπει να είναι τουλάχιστον 12 χαρακτήρων' ,pt: 'Seu segredo de API deve conter no mínimo 12 caracteres' @@ -2360,7 +2361,7 @@ function init() { ,'Bad API secret' : { cs: 'Chybné API heslo' ,de: 'Fehlerhafte API-Prüfsumme' - ,es: 'Secreto API incorrecto' + ,es: 'API secreto incorrecto' ,fr: 'Secret API erroné' ,el: 'Λάθος συνθηματικό' ,pt: 'Segredo de API incorreto' @@ -2383,7 +2384,7 @@ function init() { ,'API secret hash stored' : { cs: 'Hash API hesla uložen' ,de: 'API-Prüfsumme gespeichert' - ,es: 'Hash de secreto API guardado' + ,es: 'Hash del API secreto guardado' ,fr: 'Hash API secret sauvegardé' ,el: 'Το συνθηματικό αποθηκεύτηκε' ,pt: 'Segredo de API guardado' @@ -2635,7 +2636,7 @@ function init() { ,'Your API secret' : { cs: 'Vaše API heslo' ,de: 'Deine API-Prüfsumme' - ,es: 'Su secreto API' + ,es: 'Su API secreto' ,fr: 'Votre secret API' ,el: 'Το συνθηματικό σας' ,pt: 'Seu segredo de API' @@ -2956,7 +2957,7 @@ function init() { ,'BG from CGM (autoupdated)' : { cs: 'Glykémie z CGM (automaticky aktualizovaná)' ,de: 'Blutglukose vom CGM (Auto-Update)' - ,es: 'Glucemia del sensor (Actualizado automáticamente)' + ,es: 'Glucemia del sensor (Auto-actualizado)' ,fr: 'Glycémie CGM (automatique)' ,el: 'Τιμή γλυκόζης από τον αισθητήρα (αυτόματο)' ,pt: 'Glicemia do sensor (Automático)' @@ -3112,7 +3113,7 @@ function init() { ,'Use COB correction in calculation' : { cs: 'Použij korekci na COB' ,de: 'Verwende verzehrte Kohlenhydrate zur Kalkulation' - ,es: 'Usar la corrección de COB en los cálculos' + ,es: 'Usar carbohidratos activos para los cálculos' ,fr: 'Utiliser les COB dans les calculs' ,el: 'Χρήση των υδατανθράκων που απομένουν για τον υπολογισμό' ,pt: 'Usar correção de COB no cálculo' @@ -3134,7 +3135,7 @@ function init() { ,'Use IOB in calculation' : { cs: 'Použij IOB ve výpočtu' ,de: 'Verwende gespritzes Insulin zur Kalkulation' - ,es: 'Usar la IOB en los cálculos' + ,es: 'Usar Insulina activa en los cálculos' ,fr: 'Utiliser l\'IOB dans les calculs' ,el: 'Χρήση της υπολογισθείσας ινσουλίνης που έχει απομείνει για τον υπολογισμό' ,pt: 'Usar IOB no cálculo' @@ -3156,7 +3157,7 @@ function init() { ,'Other correction' : { cs: 'Jiná korekce' ,de: 'Weitere Korrektur' - ,es: 'Otra correción' + ,es: 'Otra corrección' ,fr: 'Autre correction' ,el: 'Άλλη διόρθωση' ,pt: 'Outra correção' @@ -3268,7 +3269,7 @@ function init() { ,'Carbs needed if Insulin total is negative value' : { cs: 'Chybějící sacharidy v případě, že výsledek je záporný' ,de: 'Benötigte Kohlenhydrate sofern Gesamtinsulin einen negativen Wert aufweist' - ,es: 'Hidratos de carbono necesarios si el total de insulina es un valor negativo' + ,es: 'Carbohidratos necesarios si total insulina es un valor negativo' ,fr: 'Glucides nécessaires si insuline totale est un valeur négative' ,el: 'Απαιτούνται υδατάνθρακες εάν η συνολική ινσουλίνη έχει αρνητική τιμή' ,pt: 'Carboidratos necessários se Insulina total for negativa' @@ -3831,7 +3832,7 @@ function init() { ,'Device authenticated' : { cs: 'Zařízení ověřeno' ,de: 'Gerät authentifiziert' - ,es: 'Dispositivo autenticado' + ,es: 'Dispositivo autorizado' ,fr: 'Appareil authentifié' ,el: 'Εξουσιοδοτημένη Συσκευή' ,pt: 'Dispositivo autenticado' @@ -3854,7 +3855,7 @@ function init() { ,'Device not authenticated' : { cs: 'Zařízení není ověřeno' ,de: 'Gerät nicht authentifiziert' - ,es: 'Dispositivo no autenticado' + ,es: 'Dispositivo no autorizado' ,fr: 'Appareil non authentifié' ,el: 'Συσκευή Μη Εξουσιοδοτημένη' ,pt: 'Dispositivo não autenticado' @@ -3877,7 +3878,7 @@ function init() { ,'Authentication status' : { cs: 'Stav ověření' ,de: 'Authentifikations Status' - ,es: 'Estado de autenticación' + ,es: 'Estado de autorización' ,fr: 'Status de l\'authentification' ,el: 'Κατάσταση Εξουσιοδότησης' ,pt: 'Status de autenticação' @@ -3900,7 +3901,7 @@ function init() { ,'Authenticate' : { cs: 'Ověřit' ,de: 'Authentifizieren' - ,es: 'Autenticar' + ,es: 'Autentificar' ,fr: 'Authentifier' ,el: 'Πιστοποίηση' ,pt: 'Autenticar' @@ -3946,7 +3947,7 @@ function init() { ,'Your device is not authenticated yet' : { cs: 'Toto zařízení nebylo dosud ověřeno' ,de: 'Dein Gerät ist noch nicht authentifiziert' - ,es: 'Su dispositivo no ha sido autenticado todavía' + ,es: 'Su dispositivo no ha sido autentificado todavía' ,fr: 'Votre appareil n\'est pas encore authentifié' ,el: 'Η συκευή σας δεν έχει πιστοποιηθεί' ,pt: 'Seu dispositivo ainda não foi autenticado' @@ -4109,6 +4110,7 @@ function init() { ,'Logarithmic (Dynamic)' : { cs: 'Logaritmické (Dynamické)' ,de: 'Logaritmisch (dynamisch)' + ,es: 'Logarítmo (Dinámico)' ,dk: 'Logaritmisk (Dynamisk)' ,it: 'Logaritmica (Dinamica)' ,fr: 'Logarithmique (Dynamique)' @@ -4130,6 +4132,7 @@ function init() { ,'Insulin-on-Board' : { cs: 'IOB' ,de: 'Aktives Bolus-Insulin' + ,es: 'Insulina activa' ,fr: 'Insuline à bord' ,dk: 'Aktivt insulin (IOB)' ,it: 'IOB-Insulina a Bordo' @@ -4151,6 +4154,7 @@ function init() { ,'Carbs-on-Board' : { cs: 'COB' ,de: 'Aktiv wirksame Kohlenhydrate' + ,es: 'Carbohidratos activos' ,fr: 'Glucides à bord' ,dk: 'Aktive kulhydrater (COB)' ,it: 'COB-Carboidrati a Bordo' @@ -4172,6 +4176,7 @@ function init() { ,'Bolus Wizard Preview' : { cs: 'BWP-Náhled bolusového kalk.' ,de: 'Bolus-Kalkulator Vorschau' + ,es: 'Vista previa del cálculo del bolo' ,fr: 'Prévue du Calculatuer de bolus' ,dk: 'Bolus Wizard (BWP)' ,it: 'BWP-Calcolatore di bolo' @@ -4193,6 +4198,7 @@ function init() { ,'Value Loaded' : { cs: 'Hodnoty načteny' ,de: 'Geladener Wert' + ,es: 'Valor cargado' ,fr: 'Valeur chargée' ,dk: 'Værdi indlæst' ,it: 'Valori Caricati' @@ -4214,6 +4220,7 @@ function init() { ,'Cannula Age' : { cs: 'CAGE-Stáří kanyly' ,de: 'Kanülenalter' + ,es: 'Antigüedad cánula' ,fr: 'Age de la canule' ,dk: 'Insuflon alder (CAGE)' ,it: 'CAGE-Cambio Ago' @@ -4235,6 +4242,7 @@ function init() { ,'Basal Profile' : { cs: 'Bazál' ,de: 'Basalraten-Profil' + ,es: 'Perfil Basal' ,fr: 'Profil Basal' ,dk: 'Basal profil' ,it: 'BASAL-Profilo Basale' @@ -4670,7 +4678,7 @@ function init() { ,'Carb Correction' : { cs: 'Přídavek sacharidů' ,de: 'Kohlenhydrate Korrektur' - ,es: 'Hidratos de carbono de corrección' + ,es: 'Carbohidratos de corrección' ,fr: 'Correction glucide' ,el: 'Διόρθωση με Υδατάνθρακεςς' ,pt: 'Correção com carboidrato' @@ -5573,6 +5581,7 @@ function init() { ,'Colorblind-friendly colors' : { cs: 'Pro barvoslepé' ,de: 'Farbenblind-freundliche Darstellung' + ,es: 'Colores para Daltónicos' ,fr: 'Couleurs pour daltoniens' ,dk: 'Farveblindvenlige farver' ,nb: 'Fargeblindvennlige farger' @@ -5660,7 +5669,7 @@ function init() { ,'Bolus Wizard' : { cs: 'Bolusový kalkulátor' ,de: 'Bolus-Kalkulator' - ,es: 'Bolus Wizard' + ,es: 'Calculo Bolos sugeridos' ,fr: 'Calculateur de bolus' ,el: 'Εργαλείο υπολογισμού ινσουλίνης' ,pt: 'Ajuda de bolus' @@ -5752,7 +5761,7 @@ function init() { ,'hrs ago' : { cs: 'hod zpět' ,de: 'Stunden her' - ,es: 'hr atrás' + ,es: 'hrs atrás' ,fr: 'hrs avant' ,el: 'ώρες πριν' ,pt: 'h atrás' @@ -5798,7 +5807,7 @@ function init() { ,'mins ago' : { cs: 'min zpět' ,de: 'Minuten her' - ,es: 'min atrás' + ,es: 'mins atrás' ,fr: 'mins avant' ,el: 'λεπτά πριν' ,pt: 'min atrás' @@ -6183,6 +6192,7 @@ function init() { ,'Language' : { cs: 'Jazyk' ,de: 'Sprache' + ,es: 'Lenguaje' ,fr: 'Langue' ,dk: 'Sprog' ,sv: 'Språk' @@ -6204,6 +6214,7 @@ function init() { ,'Add new' : { cs: 'Přidat nový' ,de: 'Neu hinzufügen' + ,es: 'Añadir nuevo' ,fr: 'Ajouter nouveau' ,dk: 'Tilføj ny' ,sv: 'Lägg till ny' @@ -6224,6 +6235,7 @@ function init() { ,'g' : { // grams shortcut cs: 'g' ,de: 'g' + ,es: 'gr' ,fr: 'g' ,dk: 'g' ,sv: 'g' @@ -6244,6 +6256,7 @@ function init() { ,'ml' : { // milliliters shortcut cs: 'ml' ,de: 'ml' + ,es: 'ml' ,fr: 'ml' ,dk: 'ml' ,sv: 'ml' @@ -6264,6 +6277,7 @@ function init() { ,'pcs' : { // pieces shortcut cs: 'ks' ,de: 'Stk.' + ,es: 'pcs' ,fr: 'pcs' ,dk: 'stk' ,sv: 'st' @@ -6284,6 +6298,7 @@ function init() { ,'Drag&drop food here' : { cs: 'Sem táhni & pusť jídlo' ,de: 'Mahlzeit hierher verschieben' + ,es: 'Arrastre y suelte aquí alimentos' ,fr: 'Glisser et déposer repas ici ' ,dk: 'Hiv og slip mad her' ,sv: 'Dra&Släpp mat här' @@ -6307,6 +6322,7 @@ function init() { ,fr: 'Care Portal' ,it: 'Somministrazioni' ,de: 'Behandlungs-Portal' + ,es: 'Portal cuidador' ,dk: 'Omsorgsportal' ,ro: 'Care Portal' ,bg: 'Въвеждане на данни' @@ -6325,6 +6341,7 @@ function init() { cs: 'Střední/Neznámá' ,sv: 'Medium/Okänt' ,de: 'Mittel/Unbekannt' + ,es: 'Medio/Desconocido' ,fr: 'Moyen/Inconnu' ,dk: 'Medium/Ukendt' ,ro: 'Mediu/Necunoscut' @@ -6347,6 +6364,7 @@ function init() { ,sv: 'Framtida' ,ro: 'ÎN VIITOR' ,de: 'IN DER ZUKUNFT' + ,es: 'EN EL FUTURO' ,dk: 'I fremtiden' ,el: 'ΣΤΟ ΜΕΛΛΟΝ' ,bg: 'В БЪДЕШЕТО' @@ -6364,6 +6382,7 @@ function init() { ,'Update' : { // Update button cs: 'Aktualizovat' ,de: 'Aktualisieren' + ,es: 'Actualizar' ,dk: 'Opdater' ,sv: 'Uppdatera' ,fr: 'Mise à jour' @@ -6385,6 +6404,7 @@ function init() { ,'Order' : { cs: 'Pořadí' ,de: 'Reihenfolge' + ,es: 'Ordenar' ,fr: 'Mise en ordre' ,dk: 'Sorter' ,sv: 'Sortering' @@ -6405,6 +6425,7 @@ function init() { ,'oldest on top' : { cs: 'nejstarší nahoře' ,de: 'älteste oben' + ,es: 'Más antiguo arriba' ,fr: 'Plus vieux en tête de liste' ,dk: 'ældste øverst' ,sv: 'Äldst först' @@ -6426,6 +6447,7 @@ function init() { cs: 'nejnovější nahoře' ,sv: 'Nyast först' ,de: 'neueste oben' + ,es: 'Más nuevo arriba' ,fr: 'Nouveaux en tête de liste' ,dk: 'nyeste øverst' ,nb: 'Nyeste først' @@ -6447,6 +6469,7 @@ function init() { ,sv: 'Alla sensorhändelser' ,nb: 'Alle sensorhendelser' ,de: 'Alle Sensor-Ereignisse' + ,es: 'Todos los eventos del sensor' ,fr: 'Tous les événement senseur' ,dl: 'Alle sensor begivenheder' ,el: 'Όλα τα συμβάντα του αισθητήρα' @@ -6468,6 +6491,7 @@ function init() { ,fr: 'Effacer les éléments futurs de la base de données mongo' ,el: 'Αφαίρεση μελλοντικών εγγραφών από τη βάση δεδομένων' ,de: 'Entferne zukünftige Objekte aus Mongo-Datenbank' + ,es: 'Remover elementos futuros desde basedatos Mongo' ,dk: 'Fjern fremtidige værdier fra mongo databasen' ,ro: 'Șterge date din viitor din baza de date mongo' ,sv: 'Ta bort framtida händelser från mongodatabasen' @@ -6489,6 +6513,7 @@ function init() { ,fr: 'Chercher et effacer les élément dont la date est dans le futur' ,el: 'Εύρεση και αφαίρεση μελλοντικών ενεργειών από τη βάση δεδομένων' ,de: 'Finde und entferne zukünftige Behandlungen' + ,es: 'Encontrar y eliminar tratamientos futuros' ,dk: 'Find og fjern fremtidige behandlinger' ,ro: 'Caută și elimină tratamente din viitor' ,sv: 'Hitta och ta bort framtida behandlingar' @@ -6508,6 +6533,7 @@ function init() { cs: 'Tento úkol najde a odstraní ošetření v budoucnosti.' ,nb: 'Finn og fjern fremtidige behandlinger' ,de: 'Finde und entferne Behandlungen in der Zukunft.' + ,es: 'Este comando encuentra y elimina tratamientos futuros.' ,fr: 'Cette tâche cherche et efface les éléments dont la date est dans le futur' ,dk: 'Denne handling finder og fjerner fremtidige behandlinger.' ,el: 'Αυτή η ενέργεια αφαιρεί μελλοντικές ενέργειες από τη βάση δεδομένων' @@ -6529,6 +6555,7 @@ function init() { cs: 'Odstraň ošetření v budoucnosti' ,nb: 'Fjern fremtidige behandlinger' ,de: 'Entferne Behandlungen in der Zukunft' + ,es: 'Elimina tratamientos futuros' ,fr: 'Efface les traitements ayant un date dans le futur' ,dk: 'Fjern behandlinger i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' @@ -6549,6 +6576,7 @@ function init() { ,'Find and remove entries in the future' : { cs: 'Najít a odstranit CGM data v budoucnosti' ,de: 'Finde und entferne Einträge in der Zukunft' + ,es: 'Encuentra y elimina entradas futuras' ,fr: 'Cherche et efface les événements dans le futur' ,dk: 'Find og fjern indgange i fremtiden' ,nb: 'Finn og fjern fremtidige hendelser' @@ -6573,6 +6601,7 @@ function init() { ,fr: 'Cet outil cherche et efface les valeurs CGM dont la date est dans le futur' ,el: 'Αυτή η ενέργεια αφαιρεί δεδομένα αιθητήρα τα οποία εισήχθησαν με λάθος ημερομηνία και ώρα, από τη βάση δεδομένων' ,de: 'Finde und entferne CGM Daten in der Zukunft, die vom Uploader mit falschem Datum/Uhrzeit erstellt wurden.' + ,es: 'Este comando encuentra y elimina datos del sensor futuros creados por actualizaciones con errores en fecha/hora' ,dk: 'Denne handling finder og fjerner CGM data i fremtiden forårsaget af indlæsning med forkert dato/tid.' ,bg: 'Тази опция ще намери и премахне данни от сензора в бъдещето, създадени поради грешна дата/време.' ,ro: 'Instrument de căutare și eliminare a datelor din viitor, create de uploader cu ora setată greșit' @@ -6592,6 +6621,7 @@ function init() { cs: 'Odstraň CGM data v budoucnosti' ,nb: 'Fjern fremtidige hendelser' ,de: 'Entferne Einträge in der Zukunft' + ,es: 'Elimina entradas futuras' ,fr: 'Efface les événement dans le futur' ,dk: 'Fjern indgange i fremtiden' ,el: 'Αφαίρεση μελλοντικών ενεργειών' @@ -6613,6 +6643,7 @@ function init() { cs: 'Nahrávám databázi ...' ,nb: 'Leser database ...' ,de: 'Lade Datenbank' + ,es: 'Cargando base de datos ...' ,fr: 'Charge la base de données...' ,dk: 'Indlæser database ...' ,el: 'Φόρτωση Βάσης Δεδομένων' @@ -6638,6 +6669,7 @@ function init() { ,ro: 'Baza de date conține %1 înregistrări din viitor' ,sv: 'Databas innehåller %1 framtida händelser' ,de: 'Datenbank enthält %1 zukünftige Einträge' + ,es: 'Base de datos contiene %1 registros futuros' ,dk: 'Databasen indeholder %1 fremtidige indgange' ,bg: 'Базата с дани съдържа %1 бъдещи записи' ,it: 'Contiene Database %1 record futuri' @@ -6657,6 +6689,7 @@ function init() { ,fr: 'Effacer %1 valeurs choisies?' ,el: 'Αφαίρεση των επιλεγμένων εγγραφών?' ,de: 'Lösche ausgewählten %1 Eintrag?' + ,es: 'Eliminar %1 registros seleccionados?' ,dk: 'Fjern %1 valgte indgange?' ,ro: 'Șterg %1 înregistrări selectate?' ,sv: 'Ta bort %1 valda händelser' @@ -6677,6 +6710,7 @@ function init() { ,nb: 'Feil udner lasting av database' ,fr: 'Erreur chargement de la base de données' ,de: 'Fehler beim Laden der Datenbank' + ,es: 'Error al cargar base de datos' ,dk: 'Fejl ved indlæsning af database' ,el: 'Σφάλμα στη φόρτωση της βάσης δεδομένων' ,ro: 'Eroare la încărcarea bazei de date' @@ -6697,6 +6731,7 @@ function init() { cs: 'Záznam %1 odstraněn ...' ,nb: 'Element %1 fjernet' ,de: 'Eintrag %1 entfernt' + ,es: 'Registro %1 eliminado ...' ,fr: 'Événement %1 effacé' ,dk: 'Indgang %1 fjernet ...' ,el: 'Οι εγγραφές αφαιρέθηκαν' @@ -6718,6 +6753,7 @@ function init() { cs: 'Chyba při odstaňování záznamu %1' ,nb: 'Feil under fjerning av element %1' ,de: 'Fehler beim Entfernen des Eintrags %1' + ,es: 'Error al eliminar registro %1' ,fr: 'Echec d\'effacement de l\'événement %1' ,dk: 'Fejl ved fjernelse af indgang %1' ,el: 'Σφάλμα αφαίρεσης εγγραφών' @@ -6742,6 +6778,7 @@ function init() { ,ro: 'Se șterg înregistrările...' ,el: 'Αφαίρεση Εγγραφών' ,de: 'Entferne Einträge ...' + ,es: 'Eliminando registros ...' ,dk: 'Sletter indgange ...' ,sv: 'Tar bort händelser ...' ,bg: 'Изтриване на записите...' @@ -6763,6 +6800,7 @@ function init() { ,el: 'Καθαρισμός βάσης δεδομένων Mongo' ,fr: 'Nettoyage de la base de donées Mongo' ,de: 'Bereinige Mongo Status-Datenbank' + ,es: 'Limpiar estado de la base de datos Mongo' ,dk: 'Slet Mongo status database' ,sv: 'Rensa Mongo status databas' ,bg: 'Изчисти статуса на Монго базата с данни' @@ -6780,6 +6818,7 @@ function init() { cs: 'Odstranění všech záznamů z kolekce devicestatus' ,nb: 'Fjern alle dokumenter fra device status tabell' ,de: 'Lösche alle Dokumente der Gerätestatus-Sammlung' + ,es: 'Borrar todos los documentos desde colección devicesatatus' ,fr: 'Effacer tous les documents de la collection devicestatus' ,dk: 'Fjerne alle dokumenter fra device status tabellen' ,el: 'Διαγραφή όλων των δεδομένων σχετικών με κατάσταση της συσκευής ανάγνωσης του αισθητήρα' @@ -6802,6 +6841,7 @@ function init() { ,fr: 'Efface tous les documents de la collection devicestatus. Utile lorsque l\'indicateur de chargement de la batterie du Smartphone n\'est pas affichée correctement' ,el: 'Αυτή η ενέργεια διαγράφει όλα τα δεδομένα της κατάστασης της συσκευής ανάγνωσης. Χρήσιμη όταν η κατάσταση της συσκευής ανάγνωσης δεν ανανεώνεται σωστά.' ,de: 'Diese Aufgabe entfernt alle Dokumente aus der Gerätestatus-Sammlung. Nützlich wenn der Uploader-Batteriestatus sich nicht aktualisiert.' + ,es: 'Este comando elimina todos los documentos desde la colección devicestatus. Útil cuando el estado de la batería cargadora no se actualiza correctamente' ,dk: 'Denne handling fjerner alle dokumenter fra device status tabellen. Brugbart når uploader betteri status ikke er korrekt opdateret.' ,ro: 'Acest instrument șterge toate documentele din colecția devicestatus. Se folosește când încărcarea bateriei nu se afișează corect.' ,sv: 'Denna uppgift tar bort alla dokument från devicestatuskollektionen. Användbart när batteristatus ej uppdateras' @@ -6823,6 +6863,7 @@ function init() { ,ro: 'Șterge toate documentele' ,el: 'Διαγραφή όλων των δεδομένων' ,de: 'Lösche alle Dokumente' + ,es: 'Borra todos los documentos' ,dk: 'Slet alle dokumenter' ,sv: 'Ta bort alla dokument' ,bg: 'Изтрий всички документи' @@ -6842,6 +6883,7 @@ function init() { ,fr: 'Effacer toutes les données de la collection devicestatus ?' ,el: 'Διαγραφή όλων των δεδομένων της κατάστασης της συσκευής ανάγνωσης?' ,de: 'Löschen aller Dokumente der Gerätestatus-Sammlung?' + ,es: 'Borrar todos los documentos desde la colección devicestatus?' ,dk: 'Fjern alle dokumenter fra device status tabellen' ,ro: 'Șterg toate documentele din colecția devicestatus?' ,sv: 'Ta bort alla dokument från devicestatuscollektionen' @@ -6860,6 +6902,7 @@ function init() { cs: 'Databáze obsahuje %1 záznamů' ,nb: 'Databasen inneholder %1 elementer' ,de: 'Datenbank enthält %1 Einträge' + ,es: 'La Base de datos contiene %1 registros' ,fr: 'La base de donées contient %1 événements' ,dk: 'Databasen indeholder %1 indgange' ,el: 'Η βάση δεδομένων περιέχει 1% εγγραφές' @@ -6880,6 +6923,7 @@ function init() { cs: 'Všechny záznamy odstraněny ...' ,nb: 'Alle elementer fjernet ...' ,de: 'Alle Einträge entfernt...' + ,es: 'Todos los registros eliminados ...' ,fr: 'Toutes les valeurs ont été effacées' ,dk: 'Alle indgange fjernet ...' ,el: 'Έγινε διαγραφή όλων των δεδομένων' @@ -6901,6 +6945,7 @@ function init() { ,nb: 'Administrasjonsoppgaver' ,ro: 'Instrumente de administrare' ,de: 'Administrator Werkzeuge' + ,es: 'Herramientas Administrativas' ,fr: 'Outils d\'administration' ,dl: 'Administrator opgaver' ,el: 'Εργαλεία Διαχειριστή' @@ -6924,6 +6969,7 @@ function init() { ,fr: 'Rapports Nightscout' ,el: 'Αναφορές' ,de: 'Nightscout-Berichte' + ,es: 'Informes - Nightscout' ,dk: 'Nightscout - rapporter' ,sv: 'Nightscout - Statistik' ,bg: 'Найтскаут статистика' @@ -6940,6 +6986,7 @@ function init() { ,'Cancel' : { cs: 'Zrušit' ,de: 'Abbruch' + ,es: 'Cancelar' ,fr: 'Interrompre' ,dk: 'Annuller' ,nb: 'Avbryt' @@ -6962,6 +7009,7 @@ function init() { ,nb: 'Editer behandling' ,ro: 'Modifică înregistrarea' ,de: 'Bearbeite Behandlung' + ,es: 'Editar tratamiento' ,fr: 'Modifier un traitement' ,dk: 'Rediger indgang' ,el: 'Επεξεργασία Εγγραφής' @@ -6981,6 +7029,7 @@ function init() { cs: 'Doba trvání' ,ro: 'Durata' ,de: 'Dauer' + ,es: 'Duración' ,fr: 'Durée' ,dk: 'Varighed' ,el: 'Διάρκεια' @@ -7000,6 +7049,7 @@ function init() { ,'Duration in minutes' : { cs: 'Doba trvání v minutách' ,de: 'Dauer in Minuten' + ,es: 'Duración en minutos' ,fr: 'Durée en minutes' ,dk: 'Varighed i minutter' ,ro: 'Durata în minute' @@ -7020,6 +7070,7 @@ function init() { ,'Temp Basal' : { cs: 'Dočasný bazál' ,de: 'Temporäre Basalrate' + ,es: 'Tasa basal temporal' ,fr: 'Débit basal temporaire' ,dk: 'Midlertidig basal' ,ro: 'Bazală temporară' @@ -7041,6 +7092,7 @@ function init() { ,ro: 'Start bazală temporară' ,sv: 'Temporär basalstart' ,de: 'Start Temporäre Basalrate' + ,es: 'Inicio Tasa Basal temporal' ,fr: 'Début du débit basal temporaire' ,dk: 'Midlertidig basal start' ,bg: 'Начало на временен базал' @@ -7063,6 +7115,7 @@ function init() { ,bg: 'Край на временен базал' ,it: 'Fine Basale Temp' ,de: 'Ende Temporäre Basalrate' + ,es: 'Fin Tasa Basal temporal' ,dk: 'Midlertidig basal slut' ,nb: 'Midlertidig basal stopp' ,fi: 'Tilapäinen basaali loppu' @@ -7078,6 +7131,7 @@ function init() { cs: 'Procenta' ,ro: 'Procent' ,de: 'Prozent' + ,es: 'Porcentaje' ,fr: 'Pourcent' ,dk: 'Procent' ,el: 'Επι τοις εκατό' @@ -7101,6 +7155,7 @@ function init() { ,sv: 'Basaländring i %' ,bg: 'Промяна на базала с %' ,de: 'Basalratenänderung in %' + ,es: 'Basal modificado en %' ,dk: 'Basal ændring i %' ,it: 'Variazione basale in %' ,nb: 'Basal endring i %' @@ -7119,6 +7174,7 @@ function init() { ,fr: 'Valeur du débit basal' ,sv: 'Basalvärde' ,de: 'Basalrate' + ,es: 'Valor basal' ,dk: 'Basalværdi' ,bg: 'Временен базал' ,it: 'Valore Basale' @@ -7138,6 +7194,7 @@ function init() { ,it: 'Valore Basale Assoluto' ,fr: 'Débit basal absolu' ,de: 'Absoluter Basalratenwert' + ,es: 'Valor basal absoluto' ,dk: 'Absolut basalværdi' ,nb: 'Absolutt basalverdi' ,ro: 'Valoare absolută bazală' @@ -7155,6 +7212,7 @@ function init() { cs: 'Oznámení' ,bg: 'Известяване' ,de: 'Ankündigung' + ,es: 'Aviso' ,fr: 'Annonce' ,dk: 'Meddelelse' ,ro: 'Anunț' @@ -7179,6 +7237,7 @@ function init() { ,ro: 'Se încarcă date bazală temporară' ,sv: 'Laddar temporär basaldata' ,de: 'Lade temporäre Basaldaten' + ,es: 'Cargando datos tasa basal temporal' ,dk: 'Indlæser midlertidig basal data' ,nb: 'Laster verdier for midlertidig basal' ,fi: 'Lataan tilapäisten basaalien tietoja' @@ -7199,6 +7258,7 @@ function init() { ,nb: 'Lagre før bytte til ny?' ,el: 'Αποθήκευση τρεχουσας εγγραφής πριν δημιουργήσουμε νέα?' ,de: 'Aktuelle Einträge speichern?' + ,es: 'Grabar datos actuales antes de cambiar por nuevos?' ,dk: 'Gem aktuelle indgang før der skiftes til ny?' ,fi: 'Tallenna nykyinen merkintä ennen vaihtoa uuteen?' ,bg: 'Запази текущият запис преди да промениш новия ' @@ -7218,6 +7278,7 @@ function init() { ,fr: 'Changement de profil' ,el: 'Εναλλαγή προφίλ' ,de: 'Profil wechseln' + ,es: 'Cambiar Perfil' ,dk: 'Byt profil' ,nb: 'Bytt profil' ,fi: 'Vaihda profiilia' @@ -7234,6 +7295,7 @@ function init() { ,'Profile' : { cs: 'Profil' ,de: 'Profil' + ,es: 'Perfil' ,dk: 'Profil' ,el: 'Προφίλ' ,fr: 'Profil' @@ -7254,6 +7316,7 @@ function init() { ,'General profile settings' : { cs: 'Obecná nastavení profilu' ,de: 'Allgemeine Profileinstellungen' + ,es: 'Configuración perfil genérico' ,fr: 'Réglages principaus du profil' ,dk: 'Generelle profil indstillinger' ,el: 'Γενικές Ρυθμίσεις Προφίλ' @@ -7278,6 +7341,7 @@ function init() { ,fr: 'Titre' ,el: 'Τίτλος' ,de: 'Überschrift' + ,es: 'Titulo' ,dk: 'Overskrift' ,nb: 'Tittel' ,fi: 'Otsikko' @@ -7299,6 +7363,7 @@ function init() { ,el: 'Εγραφές Βάσης Δεδομένων' ,nb: 'Databaseverdier' ,de: 'Datenbankeinträge' + ,es: 'Registros grabados en base datos' ,dk: 'Database indgange' ,fi: 'Tietokantamerkintöjä' ,bg: 'Записи в базата с данни' @@ -7319,6 +7384,7 @@ function init() { ,el: 'Προσθήκη νέας εγγραφής' ,nb: 'Legg til ny rad' ,de: 'Neuen Eintrag hinzufügen' + ,es: 'Añadir nuevo registro' ,dk: 'Tilføj ny indgang' ,fi: 'Lisää uusi merkintä' ,bg: 'Добави нов запис' @@ -7339,6 +7405,7 @@ function init() { ,el: 'Αφαίρεση εγγραφής' ,nb: 'Fjern denne raden' ,de: 'Diesen Eintrag löschen' + ,es: 'Eliminar este registro' ,fk: 'Fjern denne indgang' ,fi: 'Poista tämä merkintä' ,bg: 'Премахни този запис' @@ -7357,6 +7424,7 @@ function init() { ,fr: 'Dupliquer cette entrée' ,el: 'Αντιγραφή σε νέα' ,sv: 'Kopiera denna händelse till ny' + ,es: 'Duplicar este registro como nuevo' ,nb: 'Kopier til ny rad' ,de: 'Diesen Eintrag duplizieren' ,dk: 'Dupliker denne indgang' @@ -7378,6 +7446,7 @@ function init() { ,sv: 'Händelse giltig från' ,el: 'Ισχύει από' ,de: 'Eintrag gültig ab' + ,es: 'Registro válido desde' ,dk: 'Indgang gyldig fra' ,nb: 'Rad gyldig fra' ,fi: 'Merkintä voimassa alkaen' @@ -7398,6 +7467,7 @@ function init() { ,sv: 'Lagrad profil' ,el: 'Αποθηκευμένα προφίλ' ,de: 'Gesicherte Profile' + ,es: 'Perfiles guardados' ,dk: 'Gemte profiler' ,nb: 'Lagrede profiler' ,fi: 'Tallennetut profiilit' @@ -7414,6 +7484,7 @@ function init() { ,'Timezone' : { cs: 'Časová zóna' ,de: 'Zeitzone' + ,es: 'Zona horaria' ,fr: 'Zone horaire' ,dk: 'Tidszone' ,ro: 'Fus orar' @@ -7439,6 +7510,7 @@ function init() { ,sv: 'verkningstid för insulin (DIA)' ,nb: 'Insulin varighet' ,de: 'Dauer der Insulinaktivität (DIA)' + ,es: 'Duración Insulina Activa (DIA)' ,dk: 'Varighed af insulin aktivitet (DIA)' ,fi: 'Insuliinin vaikutusaika (DIA)' ,bg: 'Продължителност на инсулиновата активност DIA' @@ -7455,6 +7527,7 @@ function init() { cs: 'Představuje typickou dobu, po kterou inzulín působí. Bývá různá podle pacienta a inzulínu. Typicky 3-4 hodiny pro pacienty s pumpou.' ,ro: 'Reprezintă durata tipică pentru care insulina are efect. Este diferită la fiecare pacient și pentru fiecare tip de insulină' ,el: 'Αντιπροσωπευει την τυπική διάρκεια δράσης της χορηγηθείσας ινσουλίνης.' + ,es: 'Representa la duración típica durante la cual la insulina tiene efecto. Varía por paciente y por tipo de insulina. Típicamente 3-4 horas para la mayoría de la insulina bombeada y la mayoría de los pacientes. A veces también se llama insulina de por vida ' ,fr: 'Représente la durée d\'action typique de l\'insuline. Varie individuellement et selon le type d\'insuline. Typiquement 3-4 heures pour les insulines utilisées dans les pompes.' ,de: 'Entspricht der typischen Dauer in der das Insulin wirkt. Variiert je Patient und Insulintyp. Häufig 3-4 Stunden für die meisten Pumpeninsuline und die meisten Patienten. Manchmal auch Insulin-Wirkungsdauer genannt.' ,dk: 'Representerer den typiske tid hvor insulinen virker. Varierer per patient og per insulin type. Typisk 3-4 timer for de fleste pumpe insulin og for de fleste patienter. Nogle gange kaldes dette også insulin-livs-tid.' @@ -7479,6 +7552,7 @@ function init() { ,el: 'Αναλογία Ινσουλίνης/Υδατάνθρακα (I:C)' ,nb: 'IKH forhold' ,de: 'Insulin/Kohlenhydrate-Verhältnis (I:KH)' + ,es: 'Relación Insulina/Carbohidratos (I:C)' ,dk: 'Insulin til kulhydrat forhold (I:C)' ,fi: 'Insuliiniannoksen hiilihydraattisuhde (I:HH)' ,bg: 'Съотношение инсулин/въглехидратите ICR I:C И:ВХ' @@ -7497,6 +7571,7 @@ function init() { ,el: 'ώρες' ,fr: 'heures' ,de: 'Stunden' + ,es: 'horas' ,dk: 'timer' ,sv: 'timmar' ,nb: 'timer' @@ -7518,6 +7593,7 @@ function init() { ,sv: 'g/timme' ,nb: 'g/t' ,de: 'g/Std' + ,es: 'gr/hora' ,dk: 'g/time' ,fi: 'g/tunti' ,bg: 'гр/час' @@ -7536,6 +7612,7 @@ function init() { ,fr: 'g de glucides par Uninté d\'insuline. Le rapport représentant la quantité de glucides compensée par une unité d\'insuline.' ,el: 'Γραμμάρια (g) υδατάνθρακα ανά μονάδα (U) ινσουλίνης. Πόσα γραμμάρια υδατάνθρακα αντιστοιχούν σε μία μονάδα ινσουλίνης' ,sv: 'gram kolhydrater per enhet insulin. Antal gram kolhydrater varje enhet insulin sänker' + ,es: 'gr. de carbohidratos por unidad de insulina. La proporción de cuántos gramos de carbohidratos se consumen por unidad de insulina.' ,de: 'g Kohlenhydrate pro Einheit Insulin. Das Verhältnis wie viele Gramm Kohlenhydrate je Einheit Insulin verbraucht werden.' ,nb: 'g karbohydrater per enhet insulin. Beskriver hvor mange gram karbohydrater som hånderes av en enhet insulin.' ,fi: 'g hiilihydraattia / yksikkö insuliinia. Suhde, joka kertoo montako grammaa hiilihydraattia vastaa yhtä yksikköä insuliinia.' @@ -7553,6 +7630,7 @@ function init() { cs: 'Citlivost inzulínu (ISF)' ,ro: 'Factor de sensilibtate la insulină (ISF)' ,de: 'Insulinsensibilitätsfaktor (ISF)' + ,es: 'Factor Sensibilidad a la Insulina (ISF)' ,fr: 'Facteur de sensibilité à l\'insuline (ISF)' ,el: 'Ευαισθησία στην Ινοσυλίνη (ISF)' ,sv: 'Insulinkänslighetsfaktor (ISF)' @@ -7574,6 +7652,7 @@ function init() { ,fr: 'mg/dL ou mmol/l par unité d\'insuline. Le rapport représentant la modification de la glycémie résultant de l\'administration d\'une unité d\'insuline.' ,el: 'mg/dl ή mmol/L ανά μονάδα U ινσουλίνης. Το πόσες μονάδες ρίχνει τη γλυκόζη αίματος μία μονάδα U ινσουλίνης' ,de: 'mg/dL oder mmol/L pro Einheit Insulin. Verhältnis von BG-Veränderung je Einheit Korrekturinsulin.' + ,es: 'mg/dl o mmol/L por unidad Insulina. La relación de la caída de glucosa y cada unidad de insulina de corrección administrada.' ,sv: 'mg/dl eller mmol per enhet insulin. Hur varje enhet insulin sänker blodsockret' ,nb: 'mg/dl eller mmol/l per enhet insulin. Beskriver hvor mye blodsukkeret senkes per enhet insulin.' ,fi: 'mg/dL tai mmol/L / 1 yksikkö insuliinia. Suhde, joka kertoo montako yksikköä verensokeria yksi yksikkö insuliinia laskee.' @@ -7593,6 +7672,7 @@ function init() { ,el: 'Ρυθμός απορρόφησης υδατανθράκων' ,fr: 'Activité glucidique / vitesse d\'absorption' ,de: 'Kohlenhydrataktivität / Aufnahme Kohlenhydrate' + ,es: 'Actividad de carbohidratos / tasa de absorción' ,sv: 'Kolhydratstid' ,nb: 'Karbohydrattid' ,fi: 'Hiilihydraattiaktiivisuus / imeytymisnopeus' @@ -7606,13 +7686,14 @@ function init() { ,it: 'Attività carboidrati / Velocità di assorbimento' ,zh_cn: '碳水化合物活性/吸收率' } - ,'grams per unit time. Represents both the change in COB per unit of time, as well as the amount of carbs that should take effect over that time. Carb absorption / activity curves are less well understood than insulin activity, but can be approximated using an initial delay followed by a constant rate of absorption (g/hr).' : { + ,'grams peUr unit time. Represents both the change in COB per unit of time, as well as the amount of carbs that should take effect over that time. Carb absorption / activity curves are less well understood than insulin activity, but can be approximated using an initial delay followed by a constant rate of absorption (g/hr).' : { cs: 'gramy za jednotku času. Reprezentuje jak změnu COB za jednoku času, tak množství sacharidů, které se za tu dobu projevily. Křivka absorbce sacharidů je mnohem méně pochopitelná než IOB, ale může být aproximována počáteční pauzou následovanou konstantní hodnotou absorbce (g/hod).' ,el: 'Γραμμάρια ανά μονάδα χρόνου. Αναπαριστά τόσο την μεταβολή του COB στη μονάδα του χρόνου. Οι καμπύλες της απορρόφησης υδατανθράκων και της άσκησης δεν έχουν κατανοηθεί πλήρως από την επιστημονική κοινότητα, αλλά μπορούν να προσεγγιστούν βάζοντας μία αρχική καθυστέρηση ακολουθούμενη από έναν σταθερό ρυθμό απορρόφησης (g/hr).' ,fr: 'grammes par unité de temps. Représente l\'augmentation de COB par unité de temps et la quantité de glucides agissant durant cette période. L\'absorption des glucides est imprécise et est évaluée en moyenne. L\'unité est grammes par heure (g/h).' ,ro: 'grame pe unitatea de timp. Reprezintă atât schimbarea COB pe unitatea de timp, cât și cantitatea de carbohidrați care ar influența în perioada de timp. Graficele ratei de absorbție sunt mai puțin înțelese decât senzitivitatea la insulină, dar se poate aproxima folosind o întârziere implicită și apoi o rată constantă de aborbție (g/h).' ,sv: 'gram per tidsenhet. Representerar både ändring i aktiva kolhydrater per tidsenhet som mängden kolhydrater som tas upp under denna tid. Kolhydratsupptag / aktivitetskurvor är svårare att förutspå än aktivt insulin men kan beräknas genom att använda en startfördröjning följd av en konstant absorbtionsgrad (g/timme) ' ,de: 'Gramm pro Zeiteinheit. Bedeutet sowohl die Änderung in COB je Zeiteinheit, als auch die Menge an Kohlenhydraten die über diese Zeit wirken sollten. Kohlenhydrat-Absorption / Aktivitätskurven werden weniger genau verstanden als Insulinaktivität, aber sie können angenähert werden indem eine Anfangsverzögerung mit konstanter Aufnahme (g/Std.) verwendet wird.' + ,es: 'gramos por unidad de tiempo. Representa tanto el cambio en carbohidratos activos por unidad de tiempo como la cantidad de carbohidratos absorbidos durante este tiempo. Las curvas de captación / actividad de carbohidratos son más difíciles de predecir que la insulina activa, pero se pueden calcular utilizando un retraso de inicio seguido de una tasa de absorción constante (gr/h)' ,nb: 'gram per tidsenhet. Representerer både endringen i COB per tidsenhet, såvel som mengden av karbohydrater som blir tatt opp i løpet av den tiden. Carb absorpsjon / virkningskurver er mindre forstått enn insulinaktivitet, men kan tilnærmes ved hjelp av en forsinkelse fulgt av en konstant hastighet av absorpsjon ( g / time ) .' ,fi: 'grammaa / aika. Kertoo tyypillisen nopeuden, jolla hiilihydraatit imeytyvät syömisen jälkeen. Imeytyminen tunnetaan jokseenkin huonosti, mutta voidaan arvioida keskimääräisesti. Yksikkönä grammaa tunnissa (g/h).' ,bg: 'грам за единица време. Представлява както промяната в COB за единица време, така и количеството ВХ които биха се усвоили за това време.' @@ -7630,6 +7711,7 @@ function init() { ,ro: 'Rata bazală [unitate/oră]' ,el: 'Ρυθμός Βασικ΄ς ινσουλίνης [U/hour]' ,de: 'Basalraten [Einheit/h]' + ,es: 'Tasas basales [Unidad/hora]' ,fr: 'Débit basal (Unités/ heure)' ,sv: 'Basal [enhet/t]' ,nb: 'Basal [enhet/t]' @@ -7649,6 +7731,7 @@ function init() { ,ro: 'Intervalul țintă al glicemiei [mg/dL, mmol/L]' ,el: 'Στόχος Γλυκόζης Αίματος [mg/dl , mmol/l]' ,de: 'Blutzucker-Zielbereich [mg/dL, mmol/L]' + ,es: 'Intervalo glucemia dentro del objetivo [mg/dL,mmol/L]' ,fr: 'Cible d\'intervalle de glycémie' ,sv: 'Önskvärt blodsockerintervall [mg/dl,mmol]' ,nb: 'Ønsket blodsukkerintervall [mg/dl,mmmol/l]' @@ -7670,6 +7753,7 @@ function init() { ,el: 'Ισχύει από' ,sv: 'Starttid för händelse' ,de: 'Beginn der Aufzeichnungsgültigkeit' + ,es: 'Inicio de validez de datos' ,nb: 'Starttidspunkt for gyldighet' ,fi: 'Merkinnän alkupäivämäärä' ,bg: 'Начало на записа' @@ -7687,6 +7771,7 @@ function init() { ,it: 'Inverso' ,fr: 'Stalactite' ,de: 'Eiszapfen' + ,es: 'Inverso' ,ro: 'Țurțure' ,sv: 'Istapp' ,nb: 'Isfjell' @@ -7708,6 +7793,7 @@ function init() { ,ro: 'Afișează bazala' ,sv: 'Generera Basal' ,de: 'Basalraten-Darstellung' + ,es: 'Representación Basal' ,nb: 'Basalgraf' ,fi: 'Näytä basaali' ,bg: 'Базал' @@ -7724,6 +7810,7 @@ function init() { cs: 'Použitý profil' ,ro: 'Profil folosit' ,de: 'Verwendetes Profil' + ,es: 'Perfil utilizado' ,fr: 'Profil utilisé' ,el: 'Προφίλ σε χρήση' ,sv: 'Vald profil' @@ -7745,6 +7832,7 @@ function init() { ,fr: 'La valeur calculée est dans l\'intervalle cible' ,el: 'Ο υπολογισμός είναι εντός στόχου' ,de: 'Berechnung ist innerhalb des Zielbereichs' + ,es: 'El cálculo está dentro del rango objetivo' ,sv: 'Inom intervallområde' ,nb: 'Innenfor målområde' ,fi: 'Laskettu arvo on tavoitealueella' @@ -7764,6 +7852,7 @@ function init() { ,fr: 'Chargement des profils...' ,el: 'Φόρτωση δεδομένων προφίλ' ,de: 'Lade Profilaufzeichnungen ...' + ,es: 'Cargando datos perfil ....' ,ro: 'Se încarcă datele profilului...' ,sv: 'Laddar profildata ...' ,fi: 'Ladataan profiileja ...' @@ -7783,6 +7872,7 @@ function init() { ,fr: 'Valeurs chargées' ,el: 'Δεδομένα φορτώθηκαν' ,de: 'Werte geladen.' + ,es: 'Valores cargados' ,ro: 'Valorile au fost încărcate.' ,sv: 'Värden laddadr' ,fi: 'Arvot ladattu' @@ -7802,6 +7892,7 @@ function init() { ,el: 'Χρήση προκαθορισμένων τιμών' ,fr: 'Valeurs par défault utilisées' ,de: 'Standardwerte werden verwendet.' + ,es: 'Se usan valores predeterminados' ,ro: 'Se folosesc valorile implicite.' ,sv: 'Standardvärden valda' ,fi: 'Oletusarvot ladattu' @@ -7821,6 +7912,7 @@ function init() { ,fr: 'Erreur! Valeurs par défault utilisées.' ,el: 'Σφάλμα: Χρήση προκαθορισμένων τιμών' ,de: 'Fehler. Standardwerte werden verwendet.' + ,es: 'Error. Se usan valores predeterminados.' ,ro: 'Eroare. Se folosesc valorile implicite.' ,sv: 'Error. Standardvärden valda.' ,fi: 'Virhe! Käytetään oletusarvoja.' @@ -7840,6 +7932,7 @@ function init() { ,fr: 'Les intervalles de temps pour la cible glycémique supérieure et inférieure diffèrent. Les valeurs par défault sont restaurées.' ,el: 'Το χρονικό διάστημα του χαμηλού ορίου/στόχου και του υψηλού, δεν συμπίπτουν. Γίνεται επαναφορά στις προκαθορισμένες τιμές.' ,de: 'Zeitspanne vom untersten und obersten Wert wird nicht berücksichtigt. Werte auf Standard zurückgesetzt.' + ,es: 'Los marcos temporales para objetivo inferior y objetivo superior no coinciden. Los valores predeterminados son usados.' ,ro: 'Intervalele temporale pentru țintă_inferioară și țintă_superioară nu se potrivesc. Se folosesc valorile implicite.' ,sv: 'Tidsintervall för målområde låg och hög stämmer ej' ,fi: 'Matalan ja korkean tavoitteen aikarajat eivät täsmää. Arvot on vaihdettu oletuksiin.' @@ -7856,6 +7949,7 @@ function init() { ,'Valid from:' : { cs: 'Platné od:' ,de: 'Gültig ab:' + ,es: 'Válido desde:' ,fr: 'Valide à partir de:' ,nb: 'Gyldig fra:' ,el: 'Ισχύει από:' @@ -7878,6 +7972,7 @@ function init() { ,fr: 'Sauvegarder cetter entrée avant de procéder à l\'entrée suivante?' ,el: 'Αποθήκευση αλλαγών πριν γίνει εναλλαγή στο νέο προφίλ? ' ,de: 'Aktuellen Datensatz speichern?' + ,es: 'Grabar datos actuales antes cambiar a uno nuevo?' ,ro: 'Salvez valoarea curentă înainte de a trece la una nouă?' ,sv: 'Spara före byte till nytt?' ,fi: 'Tallenna nykyinen merkintä ennen vaihtamista uuteen?' @@ -7897,6 +7992,7 @@ function init() { ,fr: 'Ajouter un intervalle de temps avant' ,el: 'Προσθήκη νέου διαστήματος, πριν' ,de: 'Neues Intervall vorher hinzufügen' + ,es: 'Agregar nuevo intervalo antes' ,ro: 'Adaugă un nou interval înainte' ,sv: 'Lägg till nytt intervall före' ,fi: 'Lisää uusi aikaväli ennen' @@ -7916,6 +8012,7 @@ function init() { ,fr: 'Effacer l\'intervalle' ,el: 'Διαγραφή διαστήματος' ,de: 'Intervall löschen' + ,es: 'Borrar intervalo' ,ro: 'Șterge interval' ,sv: 'Ta bort intervall' ,fi: 'Poista aikaväli' @@ -7935,6 +8032,7 @@ function init() { ,fr: 'I:C' ,ro: 'ICR' ,de: 'I:KH' + ,es: 'I:C' ,sv: 'I:C' ,fi: 'I:HH' ,bg: 'И:ВХ' @@ -7951,6 +8049,7 @@ function init() { ,nb: 'ISF' ,ro: 'ISF' ,de: 'ISF' + ,es: 'ISF' ,fr: 'ISF' ,sv: 'ISF' ,fi: 'ISF' @@ -7967,6 +8066,7 @@ function init() { cs: 'Kombinovaný bolus' ,pl: 'Bolus złożony' ,de: 'Verzögerter Bolus' + ,es: 'Combo-Bolo' ,fr: 'Bolus Duo/Combo' ,el: '' ,ro: 'Bolus extins' @@ -7985,6 +8085,7 @@ function init() { ,'Difference' : { cs: 'Rozdíl' ,de: 'Unterschied' + ,es: 'Diferencia' ,fr: 'Différence' ,ro: 'Diferență' ,el: 'Διαφορά' @@ -8004,6 +8105,7 @@ function init() { ,'New time' : { cs: 'Nový čas' ,de: 'Neue Zeit' + ,es: 'Nueva hora' ,fr: 'Nouveau temps' ,ro: 'Oră nouă' ,el: 'Νέα ώρα' @@ -8025,6 +8127,7 @@ function init() { ,ro: 'Mod editare' ,fr: 'Mode Édition' ,de: 'Bearbeitungsmodus' + ,es: 'Modo edición' ,sv: 'Editeringsläge' ,el: 'Λειτουργία Επεξεργασίας' ,nb: 'Editeringsmodus' @@ -8046,6 +8149,7 @@ function init() { ,fr: 'Lorsqu\'activé, l\'icône du Mode Édition devient visible' ,el: 'Όταν ενεργοποιηθεί, το εικονίδιο της λειτουργίας επεξεργασίας είναι ορατό' ,de: 'Wenn aktiviert wird das Icons zum Start des Bearbeitungsmodus sichtbar' + ,es: 'Si está activado, el icono estará visible al inicio del modo de edición' ,sv: 'Ikon visas när editeringsläge är aktivt' ,nb: 'Ikon vises når editeringsmodus er aktivert' ,bg: 'Когато е активно ,иконката за редактиране ще се вижда' @@ -8065,6 +8169,7 @@ function init() { ,ro: 'Operațiune' ,fr: 'Opération' ,de: 'Operation' + ,es: 'Operación' ,el: 'Λειτουργία' ,sv: 'Operation' ,nb: 'Operasjon' @@ -8083,6 +8188,7 @@ function init() { ,ro: 'Mutați' ,fr: 'Déplacer' ,de: 'Verschieben' + ,es: 'Mover' ,el: 'Μετακίνηση' ,sv: 'Flytta' ,nb: 'Flytt' @@ -8100,6 +8206,7 @@ function init() { ,'Delete' : { cs: 'Odstranit' ,de: 'Löschen' + ,es: 'Borrar' ,fr: 'Effacer' ,el: 'Διαγραφή' ,ro: 'Ștergeți' @@ -8121,6 +8228,7 @@ function init() { ,ro: 'Mutați insulina' ,fr: 'Déplacer l\'insuline' ,de: 'Insulin verschieben' + ,es: 'Mover insulina' ,el: 'Μετακίνηση ινσουλίνης' ,sv: 'Flytta insulin' ,nb: 'Flytt insulin' @@ -8139,6 +8247,7 @@ function init() { cs: 'Přesunout sacharidy' ,ro: 'Mutați carbohidrații' ,de: 'Kohlenhydrate verschieben' + ,es: 'Mover carbohidratos' ,fr: 'Déplacer les glucides' ,el: 'Μετακίνηση υδατανθράκων' ,sv: 'Flytta kolhydrater' @@ -8158,6 +8267,7 @@ function init() { cs: 'Odstranit inzulín' ,ro: 'Ștergeți insulina' ,de: 'Insulin löschen' + ,es: 'Eliminar insulina' ,fr: 'Effacer l\'insuline' ,el: 'Αφαίρεση ινσουλίνης' ,sv: 'Ta bort insulin' @@ -8178,6 +8288,7 @@ function init() { ,ro: 'Ștergeți carbohidrații' ,fr: 'Effacer les glucides' ,de: 'Kohlenhydrate löschen' + ,es: 'Eliminar carbohidratos' ,el: 'Αφαίρεση υδατανθράκων' ,sv: 'Ta bort kolhydrater' ,nb: 'Fjern karbohydrater' @@ -8197,6 +8308,7 @@ function init() { ,ro: 'Schimbați ora acțiunii cu %1 ?' ,fr: 'Modifier l\'horaire du traitment? Nouveau: %1' ,de: 'Behandlungsdauer ändern in %1 ?' + ,es: 'Cambiar horario tratamiento a %1 ?' ,el: 'Αλλαγή του χρόνου της ενέργειας σε %1?' ,sv: 'Ändra behandlingstid till %1 ?' ,nb: 'Endre behandlingstid til %1 ?' @@ -8215,6 +8327,7 @@ function init() { cs: 'Změnit čas sacharidů na %1 ?' ,ro: 'Schimbați ora carbohidraților cu %1 ?' ,de: 'Kohlenhydrat-Zeit ändern zu %1 ?' + ,es: 'Cambiar horario carbohidratos a %1 ?' ,fr: 'Modifier l\'horaire des glucides? Nouveau: %1' ,el: 'Αλλαγή του χρόνου πρόσληψης υδατανθράκων σε %1?' ,sv: 'Ändra kolhydratstid till %1 ?' @@ -8234,6 +8347,7 @@ function init() { cs: 'Změnit čas inzulínu na %1 ?' ,ro: 'Schimbați ora insulinei cu %1 ?' ,el: 'Αλλαγή του χρόνου χορήγησης ινσουλίνης σε %1 ?' + ,es: 'Cambiar horario insulina a %1 ?' ,fr: 'Modifier l\'horaire de l\'insuline? Nouveau: %1' ,de: 'Insulinzeit ändern zu %1 ?' ,sv: 'Ändra insulintid till %1 ?' @@ -8253,6 +8367,7 @@ function init() { cs: 'Odstranit ošetření ?' ,ro: 'Ștergeți acțiunea?' ,de: 'Behandlung löschen?' + ,es: 'Eliminar tratamiento?' ,fr: 'Effacer le traitment?' ,el: 'Διαγραφή ενέργειας ?' ,sv: 'Ta bort behandling ?' @@ -8271,6 +8386,7 @@ function init() { ,'Remove insulin from treatment ?' : { cs: 'Odstranit inzulín z ošetření ?' ,de: 'Insulin der Behandlung löschen?' + ,es: 'Eliminar insulina del tratamiento?' ,fr: 'Effacer l\'insuline du traitement?' ,ro: 'Ștergeți insulina din acțiune?' ,el: 'Διαγραφή ινσουλίνης από την ενέργεια?' @@ -8291,6 +8407,7 @@ function init() { cs: 'Odstranit sacharidy z ošetření ?' ,ro: 'Ștergeți carbohidrații din acțiune?' ,de: 'Kohlenhydrate der Behandlung löschen?' + ,es: 'Eliminar carbohidratos del tratamiento?' ,fr: 'Effacer les glucides du traitement?' ,el: 'Διαγραφή των υδατανθράκων από την ενέργεια?' ,sv: 'Ta bort kolhydrater från behandling ?' @@ -8311,6 +8428,7 @@ function init() { ,ro: 'Se desenează' ,fr: 'Représentation graphique' ,de: 'Darstellung' + ,es: 'Gráfica' ,el: 'Απεικόνιση' ,sv: 'Rendering' ,nb: 'Rendering' @@ -8328,6 +8446,7 @@ function init() { ,'Loading OpenAPS data of' : { cs: 'Nahrávám OpenAPS data z' ,de: 'Lade OpenAPS Daten von' + ,es: 'Cargando datos OpenAPS de' ,fr: 'Chargement des données OpenAPS de' ,ro: 'Se încarcă datele OpenAPS pentru' ,el: 'Φόρτωση δεδομένων OpenAPS' @@ -8347,6 +8466,7 @@ function init() { ,'Loading profile switch data' : { cs: 'Nahrávám data přepnutí profilu' ,de: 'Lade Daten Profil-Wechsel' + ,es: 'Cargando el cambio de perfil de datos' ,fr: 'Chargement de données de changement de profil' ,el: 'Φόρτωση δεδομένων νέου προφίλ σε ισχύ' ,ro: 'Se încarcă datele de schimbare profil' @@ -8369,6 +8489,7 @@ function init() { ,fr: 'Le profil va être sauvegardé dans un nouveau format utilisé par Nightscout 0.9.0 et suivants, et il ne pourra plus être utilisé par les versions antérieures. \nÊtes-vous sûr?' ,ro: 'Profilul va fi salvat într-un format nou, folosit în Nightscout 0.9.0 și superior și nu va mai fi posibilă folosirea pentru versiunile mai vechi.\nSunteți de acord?' ,de: 'Profil wird in einem neuem Format für Nightscout 0.9.0 und höher gespeichert und ist in älteren Versionen nicht mehr nutzbar. Sind Sie sicher?' + ,es: 'El perfil se guarda en un nuevo formato para Nightscout 0.9.0 y superior y ya no se puede usar en versiones anteriores. Estas seguro?' ,sv: 'Profilen sparas i ett nyare format som ej kommer fungera i tidigare versioner av Nightscout (<0.9.0). \nÄr du säker?' ,nb: 'Profilen lagres i ett nyere format som ikke kommer til å fungera i tidigere versioner av Nightscout (<0.9.0). \nEr du sikker?' ,bg: 'Профилът ще бъде запаметен в нов формат, който се ползва от Nightscout 0.9.0 и нагоре и няма да бъде съвместим с по-стари версии. \nСигурен ли си ?' @@ -8387,6 +8508,7 @@ function init() { ,el: 'Λάθος προφίλ. Παρακαλώ δημιουργήστε ένα νέο προφίλ' ,fr: 'Erreur de réglage de profil. \nAucun profil défini pour indiquer l\'heure. \nRedirection vers la création d\'un nouveau profil. ' ,de: 'Falsche Profileinstellung.\nKein Profil festgelegt zur angezeigten Zeit.\n Weiter zum Profileditor um ein neues Profil zu erstellen.' + ,es: 'Configuración incorrecta del perfil. \n No establecido ningún perfil en el tiempo mostrado. \n Continuar en editor de perfil para crear perfil nuevo.' ,bg: 'Грешни настройки на профила. \nНяма определен профил към избраното време. \nПрепращане към редактора на профила, за създаване на нов профил.' ,ro: 'Setare de profil eronată.\nNu este definit niciun profil pentru perioada afișată.\nMergeți la editorul de profiluri pentru a defini unul nou.' ,sv: 'Fel profilinställning.\nIngen profil vald för vald tid.\nOmdirigerar för att skapa ny profil.' @@ -8409,6 +8531,7 @@ function init() { ,el: 'Αντλία' ,nb: 'Pumpe' ,de: 'Pumpe' + ,es: 'Bomba' ,bg: 'Помпа' ,ro: 'Pompă' ,ru: 'Помпа' @@ -8427,6 +8550,7 @@ function init() { ,el: 'Ημέρες χρήσης αισθητήρα (SAGE)' ,nb: 'Sensoralder (SAGE)' ,de: 'Sensor-Alter' + ,es: 'Días uso del sensor' ,bg: 'Възраст на сензора (ВС)' ,ro: 'Vechimea senzorului' ,ru: 'Возраст сенсора' @@ -8446,6 +8570,7 @@ function init() { ,sv: 'Insulinålder (IAGE)' ,nb: 'Insulinalder (IAGE)' ,de: 'Insulin-Alter' + ,es: 'Días uso cartucho insulina' ,bg: 'Възраст на инсулина (ВИ)' ,ro: 'Vechimea insulinei' ,ru: 'инсулин проработал' @@ -8460,6 +8585,7 @@ function init() { ,'Temporary target' : { cs: 'Dočasný cíl' ,de: 'Temporäres Ziel' + ,es: 'Objetivo temporal' ,fr: 'Cible temporaire' ,sk: 'Dočasný cieľ' ,el: 'Προσωρινός στόχος' @@ -8483,6 +8609,7 @@ function init() { ,el: 'Αιτία' ,nb: 'Årsak' ,de: 'Begründung' + ,es: 'Razonamiento' ,bg: 'Причина' ,nl: 'Reden' ,ro: 'Motiv' @@ -8500,6 +8627,7 @@ function init() { ,sv: 'Snart matdags' ,nb: 'Snart tid for mat' ,de: 'Bald essend' + ,es: 'Comer pronto' ,bg: 'Ядене скоро' ,ro: 'Mâncare în curând' ,ru: 'Скоро еда' @@ -8518,6 +8646,7 @@ function init() { ,el: 'Πάνω' ,nb: 'Øverst' ,de: 'Oben' + ,es: 'Superior' ,bg: 'Горе' ,ro: 'Deasupra' ,ru: 'Верх' @@ -8536,6 +8665,7 @@ function init() { ,el: 'Κάτω' ,nb: 'Nederst' ,de: 'Unten' + ,es: 'Inferior' ,bg: 'Долу' ,ro: 'Sub' ,ru: 'Низ' @@ -8554,6 +8684,7 @@ function init() { ,el: 'Δραστηριότητα' ,nb: 'Aktivitet' ,de: 'Aktivität' + ,es: 'Actividad' ,bg: 'Активност' ,ro: 'Activitate' ,ru: 'Активность' @@ -8570,6 +8701,7 @@ function init() { ,fr: 'Cibles' ,el: 'Στόχοι' ,de: 'Ziele' + ,es: 'Objetivos' ,sv: 'Mål' ,nb: 'Mål' ,bg: 'Граници' @@ -8588,6 +8720,7 @@ function init() { ,fr: 'Bolus d\'Insuline' ,ro: 'Insulină bolusată:' ,el: 'Ινσουλίνη' + ,es: 'Bolo de Insulina' ,ru: 'Болюс инсулин' ,sv: 'Bolusinsulin:' ,nb: 'Bolusinsulin:' @@ -8606,6 +8739,7 @@ function init() { ,fr: 'Débit basal de base' ,ro: 'Bazala obișnuită:' ,el: 'Βασική Ινσουλίνη' + ,es: 'Insulina basal básica' ,ru: 'Основной базал инсулин' ,sv: 'Basalinsulin:' ,nb: 'Basalinsulin:' @@ -8623,6 +8757,7 @@ function init() { ,bg: 'Положителен временен базален инсулин' ,fr: 'Débit basal temporaire positif' ,ro: 'Bazala temporară marită:' + ,es: 'Insulina Basal temporal positiva:' ,el: 'Θετική βασική ινσουλίνη' ,ru: 'Положит знач временн базал инс ' ,sv: 'Positiv tempbasal insulin:' @@ -8644,6 +8779,7 @@ function init() { ,el: 'Αρνητική βασική ινσουλίνη' ,ru: 'Отриц знач временн базал инс' ,sv: 'Negativ tempbasal för insulin:' + ,es: 'Insulina basal temporal negativa:' ,nb: 'Negativ midlertidig basalinsulin:' ,ko: '남은 임시 basal 인슐린' ,fi: 'Negatiivinen tilapäisbasaali:' @@ -8659,6 +8795,7 @@ function init() { ,bg: 'Общо базален инсулин' ,fr: 'Insuline basale au total:' ,ro: 'Bazala totală:' + ,es: 'Total Insulina basal:' ,el: 'Συνολική Βασική Ινσουλίνη (BASAL)' ,ru: 'Всего базал инсулина' ,sv: 'Total dagsdos basinsulin:' @@ -8684,6 +8821,7 @@ function init() { ,ko: '하루 인슐린 총량' ,fi: 'Päivän kokonaisinsuliiniannos' ,de: 'Gesamtes tägliches Insulin:' + ,es: 'Total Insulina diaria:' ,pt: 'Insulina diária total:' ,sk: 'Celkový denný inzulín:' ,it: 'Totale giornaliero d\'insulina:' @@ -8695,6 +8833,7 @@ function init() { ,bg: 'Невъзможно да %1 Роля' ,fr: 'Incapable de %1 rôle' ,ro: 'Imposibil de %1 Rolul' + ,es: 'Incapaz de %1 Rol' ,ru: 'Невозможно %1 Роль' ,sv: 'Kan inte ta bort roll %1' ,nb: 'Kan ikke %1 rolle' @@ -8714,6 +8853,7 @@ function init() { ,fr: 'Effacement de rôle impossible' ,ru: 'Невозможно удалить Роль' ,sv: 'Kan ej ta bort roll' + ,es: 'Imposible elimar Rol' ,nb: 'Kan ikke ta bort rolle' ,fi: 'Roolin poistaminen epäonnistui' ,de: 'Rolle nicht löschbar' @@ -8731,6 +8871,7 @@ function init() { ,fr: 'La base de données contient %1 rôles' ,ru: 'База данных содержит %1 Ролей' ,sv: 'Databasen innehåller %1 roller' + ,es: 'Base de datos contiene %1 Roles' ,nb: 'Databasen inneholder %1 roller' ,fi: 'Tietokanta sisältää %1 roolia' ,de: 'Datenbank enthält %1 Rollen' @@ -8751,6 +8892,7 @@ function init() { ,nb: 'Editer rolle' ,fi: 'Muokkaa roolia' ,de: 'Rolle editieren' + ,es: 'Editar Rol' ,pt: 'Editar Função' ,sk: 'Editovať rolu' ,ko: '편집 모드' @@ -8764,6 +8906,7 @@ function init() { ,fr: 'Administrateur, école, famille, etc' ,ro: 'administrator, școală, familie, etc' ,ru: 'админ, школа, семья и т д' + ,es: 'Adminitrador, escuela, família, etc' ,sv: 'Administratör, skola, familj, etc' ,nb: 'Administrator, skole, familie osv' ,fi: 'ylläpitäjä, koulu, perhe jne' @@ -8785,6 +8928,7 @@ function init() { ,nb: 'Rettigheter' ,fi: 'Oikeudet' ,de: 'Berechtigungen' + ,es: 'Permisos' ,pt: 'Permissões' ,sk: 'Oprávnenia' ,ko: '허가' @@ -8802,6 +8946,7 @@ function init() { ,nb: 'Er du sikker på at du vil slette:' ,fi: 'Oletko varmat että haluat tuhota: ' ,de: ' Sind sie sicher, das Sie löschen wollen:' + ,es: 'Seguro que quieres eliminarlo:' ,pt: 'Tem certeza de que deseja apagar:' ,sk: 'Naozaj zmazať:' ,ko: '정말로 삭제하시겠습니까: ' @@ -8819,6 +8964,7 @@ function init() { ,nb: 'Hver enkelt rolle vil ha en eller flere rettigheter. *-rettigheten er wildcard. Rettigheter settes hierarkisk med : som separator.' ,fi: 'Jokaisella roolilla on yksi tai useampia oikeuksia. * on jokeri (tunnistuu kaikkina oikeuksina), oikeudet ovat hierarkia joka käyttää : merkkiä erottimena.' ,de: 'Jede Rolle hat eine oder mehrere Berechtigungen. Die * Berechtigung ist ein Platzhalter, Berechtigungen sind hierachrchisch mit : als Separator.' + ,es: 'Cada Rol tiene uno o más permisos. El permiso * es un marcador de posición y los permisos son jerárquicos con : como separador.' ,pt: 'Cada função terá uma ou mais permissões. A permissão * é um wildcard, permissões são uma hierarquia utilizando * como um separador.' ,sk: 'Každá rola má 1 alebo viac oprávnení. Oprávnenie * je zástupný znak, oprávnenia sú hierarchie používajúce : ako oddelovač.' ,ko: '각각은 1 또는 그 이상의 허가를 가지고 있습니다. 허가는 예측이 안되고 구분자로 : 사용한 계층이 있습니다' @@ -8832,6 +8978,7 @@ function init() { ,fr: 'Ajouter un nouveau rôle' ,ro: 'Adaugă un Rol nou' ,ru: 'Добавить новую Роль' + ,es: 'Añadir nuevo Rol' ,sv: 'Lägg till roll' ,nb: 'Legg til ny rolle' ,fi: 'Lisää uusi rooli' @@ -8848,6 +8995,7 @@ function init() { ,bg: 'Роли - Група хора,устройства,т.н.' ,fr: 'Rôles - Groupe de Personnes ou d\'appareils' ,ro: 'Roluri - Grupuri de persoane, dispozitive, etc' + ,es: 'Roles - Grupos de Gente, Dispositivos, etc.' ,ru: 'Роли- группы людей, устройств и т п' ,sv: 'Roller - Grupp av användare, Enheter, etc' ,nb: 'Roller - Grupper av brukere, enheter osv' @@ -8866,6 +9014,7 @@ function init() { ,fr: 'Editer ce rôle' ,ro: 'Editează acest rol' ,ru: 'Редактировать эту роль' + ,es: 'Editar este Rol' ,sv: 'Editera denna roll' ,nb: 'Editer denne rollen' ,fi: 'Muokkaa tätä roolia' @@ -8882,6 +9031,7 @@ function init() { ,bg: 'Оторизиран като администратор' ,fr: 'Administrateur autorisé' ,ro: 'Autorizat de admin' + ,es: 'Administrador autorizado' ,ru: 'Разрешено администратором' ,sv: 'Administratorgodkänt' ,nb: 'Administratorgodkjent' @@ -8900,6 +9050,7 @@ function init() { ,bg: 'Субекти - Хора,Устройства,т.н.' ,fr: 'Utilisateurs - Personnes, Appareils, etc' ,ro: 'Subiecte - Persoane, dispozitive, etc' + ,es: 'Sujetos - Personas, Dispositivos, etc' ,ru: 'Субъекты - Люди, устройства и т п' ,sv: 'Ämnen - Användare, Enheter, etc' ,nb: 'Ressurser - Brukere, enheter osv' @@ -8918,6 +9069,7 @@ function init() { ,fr: 'Chaque utilisateur aura un identificateur unique et un ou plusieurs rôles. Cliquez sur l\'identificateur pour révéler l\'utilisateur, ce lien secret peut être partagé.' ,ro: 'Fiecare subiect va avea o cheie unică de acces și unul sau mai multe roluri. Apăsați pe cheia de acces pentru a vizualiza subiectul selectat, acest link poate fi distribuit.' ,ru: 'Каждый субъект получает уникальный код доступа и 1 или более ролей. Нажмите на иконку кода доступа чтобы открыть новое окно с выбранным субъектом, эту секретную ссылку можно переслать.' + ,es: 'Cada sujeto tendrá un identificador de acceso único y 1 o más roles. Haga clic en el identificador de acceso para abrir una nueva vista con el tema seleccionado, este enlace secreto puede ser compartido.' ,sv: 'Varje ämne får en unik säkerhetsnyckel och en eller flera roller. Klicka på accessnyckeln för att öppna en ny vy med det valda ämnet, denna hemliga länk kan sedan delas.' ,nb: 'Hver enkelt ressurs får en unik sikkerhetsnøkkel og en eller flere roller. Klikk på sikkerhetsnøkkelen for å åpne valgte ressurs, den hemmelige lenken kan så deles.' ,fi: 'Jokaisella käyttäjällä on uniikki pääsytunniste ja yksi tai useampi rooli. Klikkaa pääsytunnistetta nähdäksesi käyttäjän, jolloin saat jaettavan osoitteen tämän käyttäjän oikeuksilla.' @@ -8939,6 +9091,7 @@ function init() { ,nb: 'Legg til ny ressurs' ,fi: 'Lisää uusi käyttäjä' ,de: 'Füge ein neues Subjekt hinzu' + ,es: 'Añadir nuevo Sujeto' ,pt: 'Adicionar novo assunto' ,sk: 'Pridať nový subjekt' ,ko: '새 주제 추가' @@ -8956,6 +9109,7 @@ function init() { ,nb: 'Kan ikke %1 ressurs' ,fi: '%1 operaatio käyttäjälle epäonnistui' ,de: 'Unpassend zum %1 Subjekt' + ,es: 'Imposible poner %1 Sujeto' ,pt: 'Impossível postar %1 assunto' ,sk: 'Chyba volania %1 subjektu' ,ko: '%1 주제 비활성화' @@ -8973,6 +9127,7 @@ function init() { ,nb: 'Kan ikke slette ressurs' ,fi: 'Käyttäjän poistaminen epäonnistui' ,de: 'Kann Subjekt nicht löschen' + ,es: 'Imposible eliminar sujeto' ,pt: 'Impossível apagar assunto' ,sk: 'Subjekt sa nedá odstrániť' ,ko: '주제를 지우기 위해 비활성화' @@ -8990,6 +9145,7 @@ function init() { ,sv: 'Databasen innehåller %1 ämnen' ,nb: 'Databasen inneholder %1 ressurser' ,de: 'Datenbank enthält %1 Subjekte' + ,es: 'Base de datos contiene %1 sujetos' ,pt: 'Banco de dados contém %1 assuntos' ,sk: 'Databáza obsahuje %1 subjektov' ,ko: '데이터베이스는 %1 주제를 포함' @@ -9001,6 +9157,7 @@ function init() { cs:'Editovat subjekt' ,bg: 'Промени субект' ,ro: 'Editează Subiectul' + ,es: 'Editar sujeto' ,fr: 'Éditer l\'Utilisateur' ,ru: 'Редактировать субъекта' ,sv: 'Editera ämne' @@ -9024,6 +9181,7 @@ function init() { ,nb: 'person, enhet osv' ,fi: 'henkilö, laite jne' ,de: 'Person, Gerät, etc' + ,es: 'Persona, dispositivo, etc' ,pt: 'Pessoa, dispositivo, etc' ,sk: 'osoba, zariadenie atď...' ,ko: '사람, 기기 등' @@ -9042,6 +9200,7 @@ function init() { ,fi: 'rooli1, rooli2' ,de: 'Rolle1, Rolle2' ,pt: 'papel1, papel2' + ,es: 'Rol1, Rol2' ,sk: 'rola1, rola2' ,ko: '역할1, 역할2' ,it: 'ruolo1, ruolo2' @@ -9055,6 +9214,7 @@ function init() { ,fr: 'Éditer cet utilisateur' ,ru: 'Редактировать этого субъекта' ,sv: 'Editera ämnet' + ,es: 'Editar este sujeto' ,nb: 'Editer ressurs' ,fi: 'Muokkaa tätä käyttäjää' ,de: 'Editiere dieses Subjekt' @@ -9075,6 +9235,7 @@ function init() { ,nb: 'Slett ressurs' ,fi: 'Poista tämä käyttäjä' ,de: 'Lösche dieses Subjekt' + ,es: 'Eliminar este sujeto' ,pt: 'Apagar esse assunto' ,sk: 'Zmazať tento subjekt' ,ko: '이 주제 삭제' @@ -9090,6 +9251,7 @@ function init() { ,ru: 'Роли' ,sv: 'Roller' ,nb: 'Roller' + ,es: 'Roles' ,fi: 'Rooli' ,de: 'Rollen' ,pt: 'Papéis' @@ -9110,6 +9272,7 @@ function init() { ,fi: 'Pääsytunniste' ,de: 'Zugriffsschlüssel' ,pt: 'Token de acesso' + ,es: 'Acceso Identificador' ,sk: 'Prístupový Token' ,ko: 'Access Token' ,it: 'Gettone d\'accesso' @@ -9126,6 +9289,7 @@ function init() { ,nb: 'time siden' ,fi: 'tunti sitten' ,de: 'vor einer Stunde' + ,es: 'hora atrás' ,pt: 'hora atrás' ,sk: 'pred hodinou' ,ko: '시간 후' @@ -9143,6 +9307,7 @@ function init() { ,nb: 'timer siden' ,fi: 'tuntia sitten' ,de: 'vor mehreren Stunden' + ,es: 'horas atrás' ,pt: 'horas atrás' ,sk: 'hodín pred' ,ko: '시간 후' @@ -9161,6 +9326,7 @@ function init() { ,fi: 'Hiljennä %1 minuutiksi' ,de: 'Inaktivität für %1 Minuten' ,pt: 'Silencir por %1 minutos' + ,es: 'Silenciado por %1 minutos' ,sk: 'Stíšiť na %1 minút' ,ko: '%1 분 동안 무음' ,it: 'Silenzio per %1 minuti' @@ -9172,6 +9338,7 @@ function init() { cs:'Zkontrolovat glykémii' ,de: 'BZ kontrollieren' ,ro: 'Verificați glicemia' + ,es: 'Verificar glucemia' ,fr: 'Vérifier la glycémie' ,ru: 'Проверьте гликемию' ,sv: 'Kontrollera blodglukos' @@ -9197,6 +9364,7 @@ function init() { ,pt: 'BASAL' ,bg: 'Базал' ,ko: 'BASAL' + ,es: 'BASAL' ,it: 'BASALE' ,nl: 'Basaal' ,zh_cn: '基础率' @@ -9213,6 +9381,7 @@ function init() { ,nb: 'Gjeldende basal' ,fi: 'Nykyinen basaali' ,pt: 'Basal atual' + ,es: 'Basal actual' ,bg: 'Актуален базал' ,ko: '현재 basal' ,it: 'Basale corrente' @@ -9229,6 +9398,7 @@ function init() { ,sv: 'Insulinkönslighet (ISF)' ,nb: 'Insulinsensitivitet (ISF)' ,fi: 'Herkkyys' + ,es: 'Sensibilidad' ,pt: 'Fator de sensibilidade' ,bg: 'Инсулинова чувствителност (ISF)' ,ko: '인슐린 민감도(ISF)' @@ -9245,6 +9415,7 @@ function init() { ,sk: 'Aktuálny sacharidový pomer (I"C)' ,sv: 'Gällande kolhydratkvot' ,nb: 'Gjeldende karbohydratforhold' + ,es: 'Relación actual Insulina:Carbohidratos' ,pt: 'Relação insulina:carboidrato atual' ,fi: 'Nykyinen hiilihydraattiherkkyys' ,bg: 'Актуално Въглехидратно Съотношение' @@ -9257,6 +9428,7 @@ function init() { cs:'Časová zóna' ,de: 'Basal Zeitzone' ,ro: 'Fus orar pentru bazală' + ,es: 'Zona horaria basal' ,fr: 'Fuseau horaire' ,ru: 'Временная зона базала' ,sk: 'Časová zóna pre bazál' @@ -9280,6 +9452,7 @@ function init() { ,sv: 'Aktiv profil' ,nb: 'Aktiv profil' ,pt: 'Perfil ativo' + ,es: 'Perfil activo' ,fi: 'Aktiivinen profiili' ,bg: 'Активен профил' ,ko: '활성 프로파일' @@ -9297,6 +9470,7 @@ function init() { ,sv: 'Aktiv tempbasal' ,nb: 'Aktiv midlertidig basal' ,pt: 'Basal temporária ativa' + ,es: 'Basal temporal activa' ,fi: 'Aktiivinen tilapäisbasaali' ,bg: 'Активен временен базал' ,ko: '활성 임시 basal' @@ -9314,6 +9488,7 @@ function init() { ,sv: 'Aktiv tempbasal start' ,nb: 'Aktiv midlertidig basal start' ,pt: 'Início da basal temporária ativa' + ,es: 'Inicio Basal temporal activa' ,fi: 'Aktiivisen tilapäisbasaalin aloitus' ,bg: 'Старт на активен временен базал' ,ko: '활성 임시 basal 시작' @@ -9331,6 +9506,7 @@ function init() { ,sv: 'Aktiv tempbasal varaktighetstid' ,nb: 'Aktiv midlertidig basal varighet' ,pt: 'Duração de basal temporária ativa' + ,es: 'Duración Basal Temporal activa' ,fi: 'Aktiivisen tilapäisbasaalin kesto' ,bg: 'Продължителност на Активен временен базал' ,ko: '활성 임시 basal 시간' @@ -9348,6 +9524,7 @@ function init() { ,sv: 'Återstående tempbasaltid' ,nb: 'Gjenstående midlertidig basal tid' ,pt: 'Basal temporária ativa restante' + ,es: 'Basal temporal activa restante' ,fi: 'Aktiivista tilapäisbasaalia jäljellä' ,bg: 'Оставащ Активен временен базал' ,ko: '남아 있는 활성 임시 basal' @@ -9361,6 +9538,7 @@ function init() { ,ru: 'Значение профайла базала' ,fr: 'Valeur du débit basal' ,sv: 'Basalprofil värde' + ,es: 'Valor perfil Basal' ,nb: 'Basalprofil verdi' ,fi: 'Basaaliprofiilin arvo' ,pt: 'Valor do perfil basal' @@ -9380,6 +9558,7 @@ function init() { ,nb: 'Kombinasjonsbolus' ,fi: 'Aktiivinen yhdistelmäbolus' ,pt: 'Bolus duplo em atividade' + ,es: 'Activo combo-bolo' ,sk: 'Aktívny kombinovaný bolus' ,bg: '' ,ko: '활성 콤보 bolus' @@ -9396,6 +9575,7 @@ function init() { ,nb: 'Kombinasjonsbolus start' ,fi: 'Aktiivisen yhdistelmäboluksen alku' ,pt: 'Início do bolus duplo em atividade' + ,es: 'Inicio del combo-bolo activo' ,sk: 'Štart kombinovaného bolusu' ,bg: 'Активен комбиниран болус' ,ko: '활성 콤보 bolus 시작' @@ -9409,6 +9589,7 @@ function init() { ,fr: 'Durée du Bolus Duo/Combo' ,ru: 'Длительность активного комбо болюса' ,sv: 'Aktiv kombibolus varaktighet' + ,es: 'Duración del Combo-Bolo activo' ,nb: 'Kombinasjonsbolus varighet' ,fi: 'Aktiivisen yhdistelmäboluksen kesto' ,pt: 'Duração de bolus duplo em atividade' @@ -9425,6 +9606,7 @@ function init() { ,fr: 'Activité restante du Bolus Duo/Combo' ,ru: 'Остаток активного комбо болюса' ,sv: 'Återstående aktiv kombibolus' + ,es: 'Restante Combo-Bolo activo' ,nb: 'Gjenstående kombinasjonsbolus' ,fi: 'Aktiivista yhdistelmäbolusta jäljellä' ,pt: 'Restante de bolus duplo em atividade' @@ -9445,6 +9627,7 @@ function init() { ,nb: 'BS forskjell' ,fi: 'VS muutos' ,pt: 'Diferença de glicemia' + ,es: 'Diferencia de glucemia' ,sk: 'Zmena glykémie' ,bg: 'Изменение КЗ' ,ko: '혈당 차이' @@ -9463,6 +9646,7 @@ function init() { ,nb: 'Forløpt tid' ,fi: 'Kulunut aika' ,pt: 'Tempo transcorrido' + ,es: 'Tiempo transcurrido' ,sk: 'Uplynutý čas' ,bg: 'Изминало време' ,ko: '경과 시간' @@ -9481,6 +9665,7 @@ function init() { ,nb: 'Absolutt forskjell' ,fi: 'Absoluuttinen muutos' ,pt: 'Diferença absoluta' + ,es: 'Diferencia absoluta' ,sk: 'Absolútny rozdiel' ,bg: 'Абсолютно изменение' ,ko: '절대적인 차이' @@ -9499,6 +9684,7 @@ function init() { ,nb: 'Interpolert' ,fi: 'Laskettu' ,pt: 'Interpolado' + ,es: 'Interpolado' ,sk: 'Interpolované' ,bg: 'Интерполирано' ,ko: '삽입됨' @@ -9513,6 +9699,7 @@ function init() { ,ru: 'Предпросмотр калькулятора болюса' ,fr: 'Calculateur de bolus (BWP)' ,sv: 'Boluskalkylator' + ,es: 'VistaPreviaCalculoBolo (BWP)' ,nb: 'Boluskalkulator' ,fi: 'Annoslaskuri' ,pt: 'Ajuda de bolus' @@ -9530,6 +9717,7 @@ function init() { ,ro: 'Urgent' ,fr: 'Urgent' ,ru: 'Срочно' + ,es: 'Urgente' ,sv: 'Akut' ,nb: 'Akutt' ,fi: 'Kiireellinen' @@ -9552,6 +9740,7 @@ function init() { ,nb: 'Advarsel' ,fi: 'Varoitus' ,pt: 'Aviso' + ,es: 'Aviso' ,sk: 'Varovanie' ,bg: 'Предупреждение' ,ko: '경고' @@ -9569,6 +9758,7 @@ function init() { ,nb: 'Informasjon' ,fi: 'Info' ,pt: 'Informações' + ,es: 'Información' ,sk: 'Info' ,bg: 'Информация' ,ko: '정보' @@ -9584,6 +9774,7 @@ function init() { ,fr: 'Valeur la plus basse' ,sv: 'Lägsta' ,nb: 'Laveste' + ,es: 'Más bajo' ,fi: 'Matalin' ,pt: 'Mais baixo' ,sk: 'Najnižsie' @@ -9599,6 +9790,7 @@ function init() { ,ro: 'Ignoră alarma de hiper deoarece este suficientă insulină activă IOB' ,fr: 'Alarme haute ignorée car suffisamment d\'insuline à bord (IOB)' ,bg: 'Изключване на аларма за висока КЗ, тъй като има достатъчно IOB' + ,es: 'Ignorar alarma de Hiperglucemia al tener suficiente insulina activa' ,ru: 'Отключение предупреждение о высоком СК ввиду достаточности инсулина в организме' ,sv: 'Snoozar höglarm då aktivt insulin är tillräckligt' ,nb: 'Utsetter høyalarm siden det er nok aktivt insulin' @@ -9620,6 +9812,7 @@ function init() { ,nb: 'Sjekk blodsukker, på tide med bolus?' ,fi: 'Tarkista VS, aika bolustaa?' ,pt: 'Meça a glicemia, hora de bolus de correção?' + ,es: 'Controle su glucemia, ¿quizás un bolo Insulina?' ,sk: 'Skontrolovať glykémiu, čas na bolus?' ,it: 'Controllare BG, il tempo del bolo?' ,nl: 'Controleer BG, tijd om te bolussen?' @@ -9632,6 +9825,7 @@ function init() { ,fr: 'Notification' ,bg: 'Известие' ,sv: 'Notering' + ,es: 'Nota' ,nb: 'NB' ,fi: 'Huomio' ,pt: 'Nota' @@ -9647,6 +9841,7 @@ function init() { ,ru: 'Отсутствует необходимая информация' ,bg: 'Липсва необходима информация' ,nb: 'Nødvendig informasjon mangler' + ,es: 'Falta información requerida' ,fi: 'tarvittava tieto puuttuu' ,pt: 'Informação essencial faltando' ,sk: 'chýbajúca informácia' @@ -9665,6 +9860,7 @@ function init() { ,nb: 'Aktivt insulin (IOB)' ,fi: 'Aktiivinen insuliini' ,pt: 'Insulina ativa' + ,es: 'Insulina activa (IOB)' ,sk: 'Aktívny inzulín (IOB)' ,it: 'IOB - Insulina Attiva' ,nl: 'IOB - Inuline on board' @@ -9680,6 +9876,7 @@ function init() { ,sv: 'Aktuellt mål' ,nb: 'Gjeldende mål' ,fi: 'Tämänhetkinen tavoite' + ,es: 'Objetivo actual' ,pt: 'Meta atual' ,sk: 'Aktuálny cieľ' ,it: 'Obiettivo attuale' @@ -9697,6 +9894,7 @@ function init() { ,nb: 'Forventet effekt' ,fi: 'Oletettu vaikutus' ,pt: 'Efeito esperado' + ,es: 'Efecto previsto' ,sk: 'Očakávaný efekt' ,it: 'Effetto Previsto' ,nl: 'verwacht effect' @@ -9713,6 +9911,7 @@ function init() { ,nb: 'Forventet resultat' ,fi: 'Oletettu lopputulos' ,pt: 'Resultado esperado' + ,es: 'Resultado previsto' ,sk: 'Očakávaný výsledok' ,it: 'Risultato previsto' ,nl: 'Veracht resultaat' @@ -9728,6 +9927,7 @@ function init() { ,sv: 'Kolhydratsinnehåll' ,nb: 'Karbohydratekvivalent' ,fi: 'Hiilihydraattivastaavuus' + ,es: 'Equivalencia en Carbohidratos' ,pt: 'Equivalente em carboidratos' ,sk: 'Sacharidový ekvivalent' ,it: 'Carb equivalenti' @@ -9736,6 +9936,7 @@ function init() { ,'Excess insulin equivalent %1U more than needed to reach low target, not accounting for carbs' : { cs:'Nadbytek inzulínu: o %1U více, než na dosažení spodní hranice cíle. Nepočítáno se sacharidy.' ,de: 'Überschüssiges Insulin: %1U mehr als zum Erreichen der Untergrenze notwendig, Kohlenhydrate sind unberücksichtigt' + ,es: 'Exceso de insulina en %1U más de lo necesario para alcanzar un objetivo bajo, sin tener en cuenta los carbohidratos' ,ro: 'Insulină în exces: %1U mai mult decât este necesar pentru a atinge ținta inferioară, fără a ține cont de carbohidrați' ,fr: 'Insuline en excès: %1U de plus que nécessaire pour atteindre la cible inférieure, sans prendre en compte les glucides' ,bg: 'Излишният инсулин %1U е повече от необходимия за достигане до долната граница, ВХ не се вземат под внимание' @@ -9757,6 +9958,7 @@ function init() { ,bg: 'Излишният инсулин %1U е повече от необходимия за достигане до долната граница, ПРОВЕРИ ДАЛИ IOB СЕ ПОКРИВА ОТ ВЪГЛЕХИДРАТИТЕ' ,ru: 'Избыток инсулина, равного %1U, необходимого для достижения нижнего целевого значения, ПОКРОЙТЕ IOB ИНСУЛИН В ОРГАНИЗМЕ УГЛЕВОДАМИ' ,sv: 'Överskott av insulin motsvarande %1U mer än nödvändigt för att nå lågt målvärde, SÄKERSTÄLL ATT IOB TÄCKS AV KOLHYDRATER' + ,es: 'Exceso de insulina en %1U más de la necesaria para alcanzar objetivo inferior. ASEGÚRESE QUE LA INSULINA ACTIVA IOB ESTA CUBIERTA POR CARBOHIDRATOS' ,nb: 'Insulin tilsvarende %1U mer enn det trengs for å nå lavt mål, PASS PÅ AT AKTIVT INSULIN ER DEKKET OPP MED KARBOHYDRATER' ,fi: 'Liikaa insuliinia: %1U enemmän kuin tarvitaan tavoitteeseen pääsyyn, VARMISTA RIITTÄVÄ HIILIHYDRAATTIEN SAANTI' ,pt: 'Excesso de insulina equivalente a %1U além do necessário para atingir a meta inferior. ASSEGURE-SE DE QUE A IOB ESTEJA COBERTA POR CARBOIDRATOS' @@ -9774,6 +9976,7 @@ function init() { ,sv: '%1U minskning nödvändig i aktivt insulin för att nå lågt målvärde, för hög basal?' ,nb: '%1U reduksjon trengs i aktivt insulin for å nå lavt mål, for høy basal?' ,fi: 'Pääset tavoitteesen vähentämällä %1U aktiivista insuliinia, liikaa basaalia?' + ,es: 'Se necesita una reducción del %1U insulina activa para objetivo inferior, exceso en basal?' ,pt: 'Necessária redução de %1U na insulina ativa para atingir a meta inferior, excesso de basal?' ,sk: 'Nutné zníženie aktívneho inzulínu o %1U pre dosiahnutie spodnej cieľovej hranice. Príliš veľa bazálu?' ,it: 'Riduzione 1U% necessaria d\'insulina attiva per raggiungere l\'obiettivo basso, troppa basale?' @@ -9787,6 +9990,7 @@ function init() { ,bg: 'Корекция на базала не е възможна, добавка на въглехидрати? ' ,ru: 'Корректировка базы вне диапазона, добавить углеводов?' ,sv: 'basaländring utanför gräns, ge kolhydrater?' + ,es: 'ajuste basal fuera de rango, dar carbohidratos?' ,nb: 'basaljustering utenfor tillatt område, gi karbohydrater?' ,fi: 'säätö liian suuri, anna hiilihydraatteja?' ,pt: 'ajuste de basal fora da meta, dar carboidrato?' @@ -9805,6 +10009,7 @@ function init() { ,sv: 'basaländring utanför gräns, ge bolus?' ,nb: 'basaljustering utenfor tillatt område, gi bolus?' ,fi: 'säätö liian suuri, anna bolus?' + ,es: 'Ajuste de basal fuera de rango, corregir con insulina?' ,pt: 'ajuste de basal fora da meta, dar bolus de correção?' ,sk: 'úprava pomocou zmeny bazálu nie je možná. Podať bolus?' ,it: 'regolazione basale fuori campo, dare bolo?' @@ -9823,6 +10028,7 @@ function init() { ,fi: 'yli korkean' ,pt: 'acima do limite superior' ,sk: 'nad horným' + ,es: 'por encima límite superior' ,it: 'sopra alto' ,nl: 'boven hoog' ,zh_cn: '血糖过高' @@ -9838,6 +10044,7 @@ function init() { ,sv: 'under låg nivå' ,nb: 'under lav grense' ,fi: 'alle matalan' + ,es: 'por debajo límite inferior' ,pt: 'abaixo do limite inferior' ,sk: 'pod spodným' ,it: 'sotto bassa' @@ -9858,6 +10065,7 @@ function init() { ,pt: 'Meta de glicemia estimada %1' ,sk: 'Predpokladaná glykémia %1 cieľ' ,it: 'Proiezione BG %1 obiettivo' + ,es: 'Glucemia estimada %1 en objetivo' ,nl: 'Verwachte BG %1 doel' ,zh_cn: '预计血糖%1目标' } @@ -9871,6 +10079,7 @@ function init() { ,sv: 'önskad utgång' ,nb: 'sikter på' ,fi: 'tavoitellaan' + ,es: 'resultado deseado' ,pt: 'meta' ,sk: 'cieľom' ,it: 'puntare a' @@ -9888,6 +10097,7 @@ function init() { ,nb: 'Bolus %1 enheter' ,fi: 'Bolusta %1 yksikköä' ,pt: 'Bolus %1 unidades' + ,es: 'Bolus %1 unidades' ,sk: 'Bolus %1 jednotiek' ,it: 'Bolo %1 unità' ,nl: 'Bolus %1 eenheden' @@ -9904,6 +10114,7 @@ function init() { ,nb: 'eller justere basal' ,fi: 'tai säädä basaalia' ,pt: 'ou ajuste basal' + ,es: 'o ajustar basal' ,sk: 'alebo úprava bazálu' ,it: 'o regolare basale' ,nl: 'of pas basaal aan' @@ -9920,6 +10131,7 @@ function init() { ,nb: 'Sjekk blodsukker før korrigering!' ,fi: 'Tarkista VS mittarilla ennen korjaamista!' ,pt: 'Verifique glicemia de ponta de dedo antes de corrigir!' + ,es: 'Verifique glucemia antes de corregir!' ,sk: 'Pred korekciou skontrolujte glykémiu glukometrom!' ,it: 'Controllare BG utilizzando glucometro prima di correggere!' ,nl: 'Controleer BG met bloeddruppel voor correctie!' @@ -9935,6 +10147,7 @@ function init() { ,nb: 'Basalredusering for å nå %1 enheter' ,fi: 'Basaalin vähennys saadaksesi %1 yksikön vaikutuksen:' ,pt: 'Redução de basal para compensar %1 unidades:' + ,es: 'Reducir basal para compesar %1 unidades:' ,sk: 'Úprava bazálu pre výpočet %1 jednotiek:' ,it: 'Riduzione basale per conto %1 unità:' ,nl: 'Basaal verlaagd voor %1 eenheden' @@ -9951,6 +10164,7 @@ function init() { ,nb: '30 minutters midlertidig basal' ,fi: '30m tilapäinen basaali' ,pt: 'Basal temp 30m' + ,es: '30 min. temporal basal' ,sk: '30 minutový dočasný bazál' ,it: '30m basale temp' ,nl: '30 minuten tijdelijke basaal' @@ -9966,6 +10180,7 @@ function init() { ,sv: '60 minuters temporär basal' ,nb: '60 minutters midlertidig basal' ,fi: '1h tilapäinen basaali' + ,es: '1h temporal Basasl' ,pt: 'Basal temp 1h' ,sk: 'hodinový dočasný bazál' ,it: '1h basale temp' @@ -9983,6 +10198,7 @@ function init() { ,nb: 'Byttetid for infusjonssett overskredet' ,fi: 'Kanyylin ikä yli määräajan!' ,pt: 'Substituição de catéter vencida!' + ,es: '¡Cambio de agujas vencido!' ,sk: 'Výmena kanyli po lehote!' ,it: 'Cambio Cannula in ritardo!' ,nl: 'Cannule te oud!' @@ -9998,6 +10214,7 @@ function init() { ,sv: 'Dags att byta infusionsset' ,nb: 'På tide å bytte infusjonssett' ,fi: 'Aika vaihtaa kanyyli' + ,es:' Hora sustituir cánula' ,pt: 'Hora de subistituir catéter' ,sk: 'Čas na výmenu kanyli' ,it: 'Tempo di cambiare la cannula' @@ -10031,6 +10248,7 @@ function init() { ,nb: 'infusjonssett alder %1 timer' ,fi: 'Kanyylin ikä %1 tuntia' ,pt: 'Idade do catéter %1 horas' + ,es: 'Cánula usada %1 horas' ,sk: 'Vek kanyli %1 hodín' ,it: 'Durata Cannula %1 ore' ,nl: 'Canule leeftijd %1 uren' @@ -10046,6 +10264,7 @@ function init() { ,sv: 'Applicerad' ,nb: 'Satt inn' ,fi: 'Asetettu' + ,es: 'Insertar' ,pt: 'Inserido' ,sk: 'Zavedený' ,it: 'Inserito' @@ -10063,6 +10282,7 @@ function init() { ,nb: 'Nål alder' ,fi: 'KIKÄ' ,pt: 'ICAT' + ,es: 'Carb.desde' ,sk: 'SET' ,it: 'CAGE' ,nl: 'CAGE' @@ -10079,6 +10299,7 @@ function init() { ,nb: 'Aktive katbohydrater' ,fi: 'AH' ,pt: 'COB' + ,es: 'Carbohidratos activos' ,sk: 'SACH' ,it: 'COB' ,nl: 'COB' @@ -10095,6 +10316,7 @@ function init() { ,nb: 'Siste karbohydrater' ,fi: 'Viimeisimmät hiilihydraatit' ,pt: 'Último carboidrato' + ,es: 'último carbohidrato' ,sk: 'Posledné sacharidy' ,it: 'Ultimi carboidrati' ,nl: 'Laatse KH' @@ -10110,6 +10332,7 @@ function init() { ,nb: 'Insulinalder' ,fi: 'IIKÄ' ,pt: 'IddI' + ,es: 'Insul.desde' ,sk: 'INZ' ,it: 'IAGE' ,nl: 'IAGE' @@ -10127,6 +10350,7 @@ function init() { ,nb: 'Insulinbytestid overskrevet' ,fi: 'Insuliinisäiliö vanhempi kuin määräaika!' ,pt: 'Substituição de reservatório vencida!' + ,es: 'Excedido plazo del cambio depósito de insulina!' ,sk: 'Čas na výmenu inzulínu po lehote!' ,it: 'Cambio serbatoio d\'insulina in ritardo!' ,nl: 'Verwissel insulinereservoir nu!' @@ -10143,6 +10367,7 @@ function init() { ,nb: 'På tide å bytte insulinreservoar' ,fi: 'Aika vaihtaa insuliinisäiliö' ,pt: 'Hora de substituir reservatório' + ,es: 'Hora de sustituir depósito insulina' ,sk: 'Čas na výmenu inzulínu' ,it: 'Momento di cambiare serbatoio d\'insulina' ,nl: 'Verwissel insuline reservoir' @@ -10159,6 +10384,7 @@ function init() { ,nb: 'Bytt insulinreservoar snart' ,fi: 'Vaihda insuliinisäiliö pian' ,pt: 'Substituir reservatório em brave' + ,es: 'Sustituir depósito insulina en breve' ,sk: 'Čoskoro bude potrebné vymeniť inzulín' ,it: 'Cambiare serbatoio d\'insulina prossimamente' ,nl: 'Verwissel insuline reservoir binnenkort' @@ -10176,6 +10402,7 @@ function init() { ,fi: 'Insuliinisäiliön ikä %1 tuntia' ,pt: 'Idade do reservatório %1 horas' ,sk: 'Vek inzulínu %1 hodín' + ,es: 'Depósito insulina desde %1 horas' ,it: 'IAGE - Durata Serbatoio d\'insulina %1 ore' ,nl: 'Insuline reservoir leeftijd %1 uren' ,zh_cn: '胰岛素储液器已使用%1小时' @@ -10191,6 +10418,7 @@ function init() { ,nb: 'Byttet' ,fi: 'Vaihdettu' ,pt: 'Substituído' + ,es: 'Cambiado' ,sk: 'Vymenený' ,it: 'Cambiato' ,nl: 'veranderd' @@ -10204,6 +10432,7 @@ function init() { ,bg: 'АИ' ,sv: 'IOB' ,nb: 'Aktivt insulin' + ,es: 'Insulina Activa IOB' ,fi: 'IOB' ,pt: 'IOB' ,sk: 'IOB' @@ -10220,6 +10449,7 @@ function init() { ,sv: 'IOB i Careportal' ,nb: 'Aktivt insulin i Careportal' ,fi: 'Careportal IOB' + ,es: 'Insulina activa en Careportal' ,pt: 'IOB do Careportal' ,sk: 'IOB z portálu starostlivosti' ,it: 'IOB Somministrazioni' @@ -10237,6 +10467,7 @@ function init() { ,nb: 'Siste Bolus' ,fi: 'Viimeisin bolus' ,pt: 'Último bolus' + ,es: 'Último bolo' ,sk: 'Posledný bolus' ,it: 'Ultimo bolo' ,nl: 'Laatste bolus' @@ -10252,6 +10483,7 @@ function init() { ,nb: 'Basal Aktivt Insulin' ,fi: 'Basaalin IOB' ,pt: 'IOB basal' + ,es: 'Basal Insulina activa' ,sk: 'Bazálny IOB' ,it: 'Basale IOB' ,nl: 'Basaal IOB' @@ -10268,6 +10500,7 @@ function init() { ,nb: 'Kilde' ,fi: 'Lähde' ,pt: 'Fonte' + ,es: 'Fuente' ,sk: 'Zdroj' ,it: 'Fonte' ,nl: 'bron' @@ -10280,6 +10513,7 @@ function init() { ,fr: 'Valeurs trop anciennes, vérifier l\'uploadeur' ,ru: 'Устаревшие данные, проверьте загрузчик' ,bg: 'Стари данни, провери телефона' + ,es: 'Datos desactualizados, controlar la subida?' ,sv: 'Gammal data, kontrollera rigg?' ,nb: 'Gamle data, sjekk rigg?' ,fi: 'Tiedot vanhoja, tarkista lähetin?' @@ -10300,6 +10534,7 @@ function init() { ,nb: 'Sist mottatt:' ,fi: 'Viimeksi vastaanotettu:' ,pt: 'Último recebido:' + ,es: 'Último recibido:' ,sk: 'Naposledy prijaté:' ,it: 'Ultime ricevute:' ,nl: 'laatste ontvangen' @@ -10315,6 +10550,7 @@ function init() { ,sv: '%1m sedan' ,nb: '%1m siden' ,fi: '%1m sitten' + ,es: '%1min. atrás' ,pt: '%1m atrás' ,sk: 'pred %1m' ,it: '%1m fa' @@ -10332,6 +10568,7 @@ function init() { ,nb: '%1h siden' ,fi: '%1h sitten' ,pt: '%1h atrás' + ,es: '%1h. atrás' ,sk: 'pred %1h' ,it: '%1h fa' ,nl: '%1u geleden' @@ -10348,6 +10585,7 @@ function init() { ,nb: '%1d siden' ,fi: '%1d sitten' ,pt: '%1d atrás' + ,es: '%1d atrás' ,sk: 'pred %1d' ,it: '%1d fa' ,nl: '%1d geleden' @@ -10363,6 +10601,7 @@ function init() { ,nb: 'GAMMELT' ,fi: 'RETRO' ,pt: 'RETRO' + ,es: 'RETRO' ,sk: 'RETRO' ,it: 'RETRO' ,nl: 'RETRO' @@ -10379,6 +10618,7 @@ function init() { ,fi: 'SIKÄ' ,pt: 'IddS' ,sk: 'SENZ' + ,es: 'Sensor desde' ,it: 'SAGE' ,nl: 'SAGE' ,zh_cn: '探头' @@ -10395,6 +10635,7 @@ function init() { ,nb: 'Sensor bytte/omstart overskredet!' ,fi: 'Sensorin vaihto/uudelleenkäynnistys yli määräajan!' ,pt: 'Substituição/reinício de sensor vencido' + ,es: 'Sustituir/reiniciar, sensor vencido' ,sk: 'Čas na výmenu/reštart sensoru uplynul!' ,it: 'Cambio/riavvio del sensore in ritardo!' ,nl: 'Sensor vevang/hertstart tijd gepasseerd' @@ -10411,6 +10652,7 @@ function init() { ,nb: 'På tide å bytte/restarte sensoren' ,fi: 'Aika vaihtaa / käynnistää sensori uudelleen' ,pt: 'Hora de substituir/reiniciar sensor' + ,es: 'Hora de sustituir/reiniciar sensor' ,sk: 'Čas na výmenu/reštart senzoru' ,it: 'Tempo di cambiare/riavvio sensore' ,nl: 'Sensor vervangen of herstarten' @@ -10427,6 +10669,7 @@ function init() { ,nb: 'Bytt/restarta sensoren snart' ,fi: 'Vaihda/käynnistä sensori uudelleen pian' ,pt: 'Mudar/reiniciar sensor em breve' + ,es: 'Cambiar/Reiniciar sensor en breve' ,sk: 'Čoskoro bude potrebné vymeniť/reštartovať senzor' ,it: 'Modifica/riavvio sensore prossimamente' ,nl: 'Herstart of vervang sensor binnenkort' @@ -10443,6 +10686,7 @@ function init() { ,nb: 'Sensoralder %1 dag %2 timer' ,fi: 'Sensorin ikä %1 päivää, %2 tuntia' ,pt: 'Idade do sensor %1 dias %2 horas' + ,es: 'Sensor desde %1 días %2 horas' ,sk: 'Vek senzoru %1 dní %2 hodín' ,it: 'Durata Sensore %1 giorni %2 ore' ,nl: 'Sensor leeftijd %1 dag(en) en %2 uur' @@ -10458,6 +10702,7 @@ function init() { ,sv: 'Sensor insättning' ,nb: 'Sensor satt inn' ,fi: 'Sensorin Vaihto' + ,es: 'Insertar sensor' ,pt: 'Inserção de sensor' ,sk: 'Výmena senzoru' ,it: 'SAGE - inserimento sensore' @@ -10474,6 +10719,7 @@ function init() { ,nb: 'Sensorstart' ,fi: 'Sensorin Aloitus' ,pt: 'Início de sensor' + ,es: 'Inicio del sensor' ,sk: 'Štart senzoru' ,it: 'SAGE - partenza sensore' ,nl: 'Sensor start' @@ -10490,6 +10736,7 @@ function init() { ,nb: 'dager' ,fi: 'päivää' ,pt: 'dias' + ,es: 'días' ,sk: 'dní' ,it: 'giorni' ,nl: 'dagen' @@ -10502,6 +10749,7 @@ function init() { ,ru: 'распределение инсулина' ,fi: 'Insuliinijakauma' ,it: 'Distribuzione di insulina' + ,es: 'Distribución de la insulina' ,nl: 'Insuline verdeling' } ,'To see this report, press SHOW while in this view' : { @@ -10512,6 +10760,7 @@ function init() { ,ru: 'чтобы увидеть отчет, нажмите show/показать' ,fi: 'Nähdäksesi tämän raportin, paina NÄYTÄ tässä näkymässä' ,it: 'Per guardare questo report, premere SHOW all\'interno della finestra' + ,es: 'Presione SHOW para mostrar el informe en esta vista' ,nl: 'Om dit rapport te zien, druk op "Laat zien"' } ,'AR2 Forecast' : { @@ -10520,6 +10769,7 @@ function init() { ,ro: 'Predicție AR2' ,fr: 'Prédiction AR2' ,ru: 'прогноз AR2' + ,es: 'Pronóstico AR2' ,fi: 'AR2 Ennusteet' ,it: 'Previsione AR2' ,nl: 'AR2 Voorspelling' @@ -10530,6 +10780,7 @@ function init() { ,ro: 'Predicții OpenAPS' ,fr: 'Prédictions OpenAPS' ,ru: 'прогнозы OpenAPS' + ,es: 'Pronóstico OpenAPS' ,fi: 'OpenAPS Ennusteet' ,it: 'Previsione OpenAPS' ,nl: 'OpenAPS Voorspelling' @@ -10541,6 +10792,7 @@ function init() { ,ro: 'Țintă temporară' ,ru: 'промежуточная цель' ,fi: 'Tilapäinen tavoite' + ,es: 'Objetivo temporal' ,it: 'Obbiettivo temporaneo' ,nl: 'Tijdelijk doel' } @@ -10551,6 +10803,7 @@ function init() { ,ro: 'Renunțare la ținta temporară' ,ru: 'отмена промежуточной цели' ,fi: 'Peruuta tilapäinen tavoite' + ,es: 'Objetivo temporal cancelado' ,it: 'Obbiettivo temporaneo cancellato' ,nl: 'Annuleer tijdelijk doel' } @@ -10561,6 +10814,7 @@ function init() { ,ru: 'OpenAPS вне сети' ,fi: 'OpenAPS poissa verkosta' ,it: 'OpenAPS disconnesso' + ,es: 'OpenAPS desconectado' ,nl: 'OpenAPS Offline' } ,'Profiles' : { @@ -10571,6 +10825,7 @@ function init() { ,ru: 'профили' ,fi: 'Profiilit' ,it: 'Profili' + ,es: 'Perfil' ,nl: 'Profielen' } ,'Time in fluctuation' : { @@ -10578,6 +10833,7 @@ function init() { ,fr: 'Temps passé en fluctuation' ,it: 'Tempo in fluttuazione' ,ro: 'Timp în fluctuație' + ,es: 'Tiempo fluctuando' ,ru: 'время флуктуаций' ,nl: 'Tijd met fluctuaties' } @@ -10586,6 +10842,7 @@ function init() { ,fr: 'Temps passé en fluctuation rapide' ,it: 'Tempo in rapida fluttuazione' ,ro: 'Timp în fluctuație rapidă' + ,es: 'Tiempo fluctuando rápido' ,ru: 'время быстрых флуктуаций' ,nl: 'Tijd met grote fluctuaties' } @@ -10594,6 +10851,7 @@ function init() { ,fr: 'Ceci est seulement une estimation grossière qui peut être très imprécise et ne remplace pas une mesure sanguine adéquate. La formule est empruntée à l\'article:' ,it: 'Questa è solo un\'approssimazione che può essere molto inaccurata e che non sostituisce la misurazione capillare. La formula usata è presa da:' ,ro: 'Aceasta este doar o aproximare brută, care poate fi foarte imprecisă și nu ține loc de testare capilară. Formula matematică folosită este luată din:' + ,es: 'Esto es sólo una estimación apróximada que puede ser muy inexacta y no reemplaza las pruebas de sangre reales. La fórmula utilizada está tomada de: ' ,ru: 'Это приблизительная оценка не заменяющая фактический анализ крови. Используемая формула взята из:' ,nl: 'Dit is enkel een grove schatting die onjuist kan zijn welke geen bloedtest vervangt. De gebruikte formule is afkomstig van:' } @@ -10602,6 +10860,7 @@ function init() { ,it: 'Filtra per ore' ,fr: 'Filtrer par heures' ,ro: 'Filtrare pe ore' + ,es: 'Filtrar por horas' ,ru: 'почасовой фильтр' ,nl: 'Filter op uren' } @@ -10610,6 +10869,7 @@ function init() { ,fr: 'Le Temps passé en fluctuation et le temps passé en fluctuation rapide mesurent la part de temps durant la période examinée, pendant laquelle la glycémie a évolué relativement ou très rapidement. Les valeurs basses sont les meilleures.' ,it: 'Tempo in fluttuazione e Tempo in rapida fluttuazione misurano la % di tempo durante il periodo esaminato, durante il quale la glicemia stà variando velocemente o rapidamente. Bassi valori sono migliori.' ,ro: 'Timpul în fluctuație și timpul în fluctuație rapidă măsoară procentul de timp, din perioada examinată, în care glicemia din sânge a avut o variație relativ rapidă sau rapidă. Valorile mici sunt de preferat.' + ,es: 'Tiempo en fluctuación y Tiempo en fluctuación rápida miden el % de tiempo del período exáminado, durante la cual la glucosa en sangre ha estado cambiando relativamente rápido o rápidamente. Valores más bajos son mejores.' ,ru: 'время флуктуаций и время быстрых флуктуаций означает % времени в рассматриваемый период в течение которого СК менялся относительно быстро или просто быстро. Более низкие значения предпочтительней' ,nl: 'Tijd met fluctuaties of grote fluctuaties in % van de geevalueerde periode, waarbij de bloed glucose relatief snel wijzigde.Lagere waarden zijn beter.' } @@ -10619,6 +10879,7 @@ function init() { ,it: 'Media Totale Giornaliera Variazioni è la somma dei valori assoluti di tutte le escursioni glicemiche per il periodo esaminato, diviso per il numero di giorni. Bassi valori sono migliori.' ,ro: 'Schimbarea medie totală zilnică este suma valorilor absolute ale tuturor excursiilor glicemice din perioada examinată, împărțite la numărul de zile. Valorile mici sunt de preferat.' ,ru: 'усредненное ежедневное изменение это сумма абсолютных величин всех отклонений СК в рассматриваемый период, деленное на количество дней. Меньшая величина предпочтительней' + ,es: 'El cambio medio diario total es la suma de los valores absolutos de todas las glucémias en el período examinado, dividido por el número de días. Mejor valores bajos.' ,nl: 'Gemiddelde veranderingen per dag is een som van alle waardes die uitschieten over de bekeken periode, gedeeld door het aantal dagen in deze periode. Lager is beter.' } , 'Mean Hourly Change is a sum of the absolute value of all glucose excursions for the examined period, divided by the number of hours in the period. Lower is better.' : { @@ -10627,13 +10888,15 @@ function init() { ,it: 'Media Oraria Variazioni è la somma del valore assoluto di tutte le escursioni glicemiche per il periodo esaminato, diviso per il numero di ore. Bassi valori sono migliori.' ,ro: 'Variația media orară este suma valorilor absolute ale tuturor excursiilor glicemice din perioada examinată, împărțite la numărul de ore din aceeași perioadă. Valorile mici sunt de preferat.' ,ru: 'усредненное часовое изменение это сумма абсолютных величин всех отклонений СК в рассматриваемый период, деленное на количество часов в этот период. Более низкое предпочтительней' + ,es: 'El cambio medio por hora, es la suma del valor absoluto de todas las glucemias para el período examinado, dividido por el número de horas en el período. Más bajo es mejor.' ,nl: 'Gemiddelde veranderingen per uur is een som van alle waardes die uitschieten over de bekeken periode, gedeeld door het aantal uur in deze periode. Lager is beter.' } , 'GVI and PGS are measures developed by Dexcom, detailed here.' : { fi: 'GVI ja PGS ovat Dexcom-yrityksen kehittämiä mittaustapoja, joista voit lukea lisää täällä..' - ,fr: 'GVI et PGS sont des mesures développées par la firme Dexcom, présentées en détail ici.' - ,it: 'GVI e PGS sono misure sviluppate da Dexcom, dettagliate qui.' - ,ro: 'GVI și PGS sunt caracteristici de măsurare inventate de Dexcom, ale căror detalii le găsiți aici.' + ,it: 'GVI e PGS sono misure sviluppate da Dexcom, dettagliate qui.' + ,es: 'Variabilidad de la glucosa en sangre y el estado glucémico del paciente es un valor diseñado por Dexcom, más detalles en here.' + ,fr: 'GVI et PGS sont des mesures développées par la firme Dexcom, présentées en détail ici.' + ,ro: 'GVI și PGS sunt caracteristici de măsurare inventate de Dexcom, ale căror detalii le găsiți aici.' ,ru: 'вариабельность гликемии и статус гликемии больного это величины, разработанные декскомом, подробнее here.' ,nl: 'GVI en PGS zijn maten ontworpen door Dexcom, gedetaillieerde info here.' } @@ -10643,6 +10906,7 @@ function init() { ,it: 'Media Totale Giornaliera Variazioni' ,ro: 'Variația medie totală zilnică' ,ru: 'усредненное изменение за день' + ,es: 'Variación media total diaria' ,nl: 'Gemiddelde veranderingen per dag' } , 'Mean Hourly Change' : { @@ -10650,6 +10914,7 @@ function init() { ,fr: 'Variation Horaire Moyenne' ,it: 'Media Oraria Variazioni' ,ro: 'Variația medie orară' + ,es: 'Variación media total por horas' ,ru: 'усредненное изменение за час' ,nl: 'Gemiddelde veranderingen per uur' } @@ -10660,7 +10925,7 @@ function init() { , dk: 'slightly dropping' , el: 'slightly dropping' , en: 'slightly dropping' - , es: 'slightly dropping' + , es: 'Disminuye lentamente' , fi: 'laskee hitaasti' , fr: 'en chute lente' , he: 'slightly dropping' @@ -10685,7 +10950,7 @@ function init() { , dk: 'slightly rising' , el: 'slightly rising' , en: 'slightly rising' - , es: 'slightly rising' + , es: 'Asciende lentamente' , fi: 'nousee hitaasti' , fr: 'en montée lente' , he: 'slightly rising' @@ -10710,7 +10975,7 @@ function init() { , dk: 'holding' , el: 'holding' , en: 'holding' - , es: 'holding' + , es: 'Sin variación' , fi: 'tasainen' , fr: 'stable' , he: 'holding' @@ -10735,7 +11000,7 @@ function init() { , dk: 'rising' , el: 'rising' , en: 'rising' - , es: 'rising' + , es: 'Ascendiendo' , fi: 'nousussa' , fr: 'en montée' , he: 'rising' @@ -10760,7 +11025,7 @@ function init() { , dk: 'dropping' , el: 'dropping' , en: 'dropping' - , es: 'dropping' + , es: 'Bajando' , fi: 'laskussa' , fr: 'en chute' , he: 'dropping' @@ -10785,7 +11050,7 @@ function init() { , dk: 'rapidly dropping' , el: 'rapidly dropping' , en: 'rapidly dropping' - , es: 'rapidly dropping' + , es: 'Bajando rápido' , fi: 'laskee nopeasti' , fr: 'en chute rapide' , he: 'rapidly dropping' @@ -10810,7 +11075,7 @@ function init() { , dk: 'rapidly rising' , el: 'rapidly rising' , en: 'rapidly rising' - , es: 'rapidly rising' + , es: 'Subiendo rápido' , fi: 'nousee nopeasti' , fr: 'en montée rapide' , he: 'rapidly rising' @@ -10835,7 +11100,7 @@ function init() { , dk: '%1 and %2 as of %3.' , el: '%1 and %2 as of %3.' , en: '%1 and %2 as of %3.' - , es: '%1 and %2 as of %3.' + , es: '%1 y %2 como de %3.' , fi: '%1 ja %2 alkaen %3.' , fr: '%1 and %2 as of %3.' , he: '%1 and %2 as of %3.' @@ -10860,7 +11125,7 @@ function init() { , dk: '%1 current basal is %2 units per hour' , el: '%1 current basal is %2 units per hour' , en: '%1 current basal is %2 units per hour' - , es: '%1 current basal is %2 units per hour' + , es: '%1 basal actual es %2 unidades por hora' , fi: '%1 nykyinen basaali on %2 yksikköä tunnissa' , fr: '%1 current basal is %2 units per hour' , he: '%1 current basal is %2 units per hour' @@ -10885,7 +11150,7 @@ function init() { , dk: '%1 temp basal of %2 units per hour will end %3' , el: '%1 temp basal of %2 units per hour will end %3' , en: '%1 temp basal of %2 units per hour will end %3' - , es: '%1 temp basal of %2 units per hour will end %3' + , es: '%1 Basal temporal de %2 unidades por hora hasta el fin %3' , fi: '%1 tilapäinen basaali on %2 tunnissa, päättyy %3' , fr: '%1 temp basal of %2 units per hour will end %3' , he: '%1 temp basal of %2 units per hour will end %3' @@ -10910,7 +11175,7 @@ function init() { , dk: 'and you have %1 insulin on board.' , el: 'and you have %1 insulin on board.' , en: 'and you have %1 insulin on board.' - , es: 'and you have %1 insulin on board.' + , es: 'y tu tienes %1 insulina activa.' , fi: 'ja sinulla on %1 aktivista insuliinia.' , fr: 'and you have %1 insulin on board.' , he: 'and you have %1 insulin on board.' @@ -10935,7 +11200,7 @@ function init() { , dk: 'You have %1 insulin on board' , el: 'You have %1 insulin on board' , en: 'You have %1 insulin on board' - , es: 'You have %1 insulin on board' + , es: 'Tienes %1 insulina activa' , fi: 'Sinulla on %1 aktiivista insuliinia' , fr: 'You have %1 insulin on board' , he: 'You have %1 insulin on board' @@ -10960,7 +11225,7 @@ function init() { , dk: '%1 units of' , el: '%1 units of' , en: '%1 units of' - , es: '%1 units of' + , es: '%1 unidades de' , fi: '%1 yksikköä' , fr: '%1 units of' , he: '%1 units of' @@ -10984,7 +11249,7 @@ function init() { , dk: 'Your' , el: 'Your' , en: 'Your' - , es: 'Your' + , es: 'Tú' , fi: 'Sinun' , fr: 'Your' , he: 'Your' @@ -11008,7 +11273,7 @@ function init() { , dk: '%1 has a ' , el: '%1 has a ' , en: '%1 has a ' - , es: '%1 has a ' + , es: '%1 tiene un ' , fi: '%1 on ' , fr: '%1 has a ' , he: '%1 has a ' @@ -11052,6 +11317,7 @@ function init() { 'Fat [g]': { cs: 'Tuk [g]' ,de: 'Fett [g]' + ,es: 'Grasas [g]' ,fi: 'Rasva [g]' ,fr: 'Graisses [g]' ,ro: 'Grăsimi [g]' @@ -11059,22 +11325,25 @@ function init() { 'Protein [g]': { cs: 'Proteiny [g]' ,de: 'Proteine [g]' + ,es: 'Proteina [g]' ,fi: 'Proteiini [g]' ,fr: 'Protéines [g]' ,ro: 'Proteine [g]' }, 'Energy [kJ]': { - cs: 'Energie [kJ]' - ,de: 'Energie [kJ]' - ,fi: 'Energia [kJ]' - ,fr: 'Énergie [kJ]' - ,ro: 'Energie [g]' + cs: 'Energie [kJ]' + ,de: 'Energie [kJ]' + , fi: 'Energia [kJ]' + , es: 'Energía [Kj]' + ,fr: 'Énergie [kJ]' + ,ro: 'Energie [g]' } , 'Clock View': { - fi: 'Kellonäkymä' - ,fr: 'Vue Horloge' - ,ro: 'Vedere tip ceas' + fi: 'Kellonäkymä' + ,es: 'Vista del reloj' + ,fr: 'Vue Horloge' + ,ro: 'Vedere tip ceas' } }; From e8502955ead32ea3c1387e5718631af3e6de13b1 Mon Sep 17 00:00:00 2001 From: Jonas Hummelstrand Date: Wed, 27 Dec 2017 15:42:37 +0100 Subject: [PATCH 09/46] Updated comments to clarify available parameter options and to improve the language (#3186) * Updated comments to clarify available parameter options and to improve the language. Added that 'colorblindfriendly' is an option for THEME. Removed duplicate entries for THEME and SHOW_RAWBG in app.json --- README.md | 2 +- app.json | 52 +++++++++++++++++++++------------------------------- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 5d47832c4aa..817a2a195cd 100644 --- a/README.md +++ b/README.md @@ -228,7 +228,7 @@ To learn more about the Nightscout API, visit https://YOUR-SITE.com/api-docs.htm * `NIGHT_MODE` (`off`) - possible values `on` or `off` * `SHOW_RAWBG` (`never`) - possible values `always`, `never` or `noise` * `CUSTOM_TITLE` (`Nightscout`) - Usually name of T1 - * `THEME` (`default`) - possible values `default` or `colors` + * `THEME` (`default`) - possible values `default`, `colors`, or `colorblindfriendly` * `ALARM_TIMEAGO_WARN` (`on`) - possible values `on` or `off` * `ALARM_TIMEAGO_WARN_MINS` (`15`) - minutes since the last reading to trigger a warning * `ALARM_TIMEAGO_URGENT` (`on`) - possible values `on` or `off` diff --git a/app.json b/app.json index 63a5aa37c1c..17909419c54 100644 --- a/app.json +++ b/app.json @@ -8,7 +8,7 @@ "required": true }, "API_SECRET": { - "description": "REQUIRED: A secret passphrase that must be at least 12 characters long, required to enable POST and PUT; also required for the Care Portal", + "description": "REQUIRED: A secret passphrase that must be at least 12 characters long, required to enable POST and PUT; also required for the Care Portal.", "value": "", "required": true }, @@ -18,12 +18,12 @@ "required": false }, "ENABLE": { - "description": "Used to enable optional features, expects a space delimited list, such as: careportal rawbg iob, see https://github.com/nightscout/cgm-remote-monitor/blob/master/README.md for more info", + "description": "Used to enable optional features, expects a space delimited list, such as: careportal rawbg iob, see https://github.com/nightscout/cgm-remote-monitor/blob/master/README.md for more info.", "value": "", "required": false }, "DISABLE": { - "description": "Used to disable default features, expects a space delimited list, such as: direction upbat, see https://github.com/nightscout/cgm-remote-monitor/blob/master/README.md for more info", + "description": "Used to disable default features, expects a space delimited list, such as: direction upbat, see https://github.com/nightscout/cgm-remote-monitor/blob/master/README.md for more info.", "value": "", "required": false }, @@ -33,22 +33,22 @@ "required": false }, "BG_HIGH": { - "description": "Urgent high BG alarm. Default null value implies 260. Must be set in mg/dL. Only used with simple alarms.", + "description": "Urgent high BG alarm. Default null value implies 260. Must be set in mg/dL (multiply with 18 if you have a value in mmol/L). Only used with simple alarms.", "value": "", "required": false }, "BG_TARGET_TOP": { - "description": "Non-urgent high BG alarm, the top of your target range. Default null value implies 180. Must be set in mg/dL. Only used with simple alarms.", + "description": "Non-urgent high BG alarm, the top of your target range. Default null value implies 180. Must be set in mg/dL (multiply with 18 if you have a value in mmol/L). Only used with simple alarms.", "value": "", "required": false }, "BG_TARGET_BOTTOM": { - "description": "Non urgent low BG alarm, the bottom of your target range. Default null value implies 80. Must be set in mg/dL. Only used with simple alarms.", + "description": "Non urgent low BG alarm, the bottom of your target range. Default null value implies 80. Must be set in mg/dL (multiply with 18 if you have a value in mmol/L). Only used with simple alarms.", "value": "", "required": false }, "BG_LOW": { - "description": "Urgent Low BG alarm. Default null value implies 55. Must be set in mg/dL. Only used with simple alarms.", + "description": "Urgent Low BG alarm. Default null value implies 55. Must be set in mg/dL (multiply with 18 if you have a value in mmol/L). Only used with simple alarms.", "value": "", "required": false }, @@ -72,83 +72,73 @@ "value": "", "required": false }, - "THEME": { - "description": "Possible values default, colors or colorblindfriendly", - "value": "", - "required": false - }, - "SHOW_RAWBG": { - "description": "Possible values always, never or noise", - "value": "", - "required": false - }, "BRIDGE_USER_NAME": { - "description": "Share bridge - Your user name for the Share service. ENSURE bridge is in ENABLE if you want to use the share bridge", + "description": "Share bridge - Your user name for the Share service. ENSURE bridge is in ENABLE if you want to use the share bridge.", "value": "", "required": false }, "BRIDGE_PASSWORD": { - "description": "Share bridge - Your password for the Share service. ENSURE bridge is in ENABLE if you want to use the share bridge", + "description": "Share bridge - Your password for the Share service. ENSURE bridge is in ENABLE if you want to use the share bridge.", "value": "", "required": false }, "TIME_FORMAT": { - "description": "Browser default time mode valid settings are 12 or 24", + "description": "Browser default time mode. Valid settings are 12 or 24", "value": "12", "required": false }, "NIGHT_MODE": { - "description": "Browser defaults to night mode valid settings are on or off", + "description": "Browser defaults to night mode. Valid settings are on or off", "value": "off", "required": false }, "SHOW_RAWBG": { - "description": "Browser default raw display mode vaild settings are always never or noise", + "description": "Browser default raw display mode. Valid settings are always, never, or noise", "value": "never", "required": false }, "THEME": { - "description": "Browser default theme setting vaild settings are default or colors", + "description": "Browser default theme setting. Valid settings are default, colors, or colorblindfriendly", "value": "default", "required": false }, "ALARM_URGENT_HIGH": { - "description": "Browser default urgent high alarm enabled vaild settings are on or off", + "description": "Browser default urgent high alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_HIGH": { - "description": "Browser default high alarm enabled vaild settings are on or off", + "description": "Browser default high alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_LOW": { - "description": "Browser default low alarm enabled vaild settings are on or off", + "description": "Browser default low alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_URGENT_LOW": { - "description": "Browser default urgent low alarm enabled vaild settings are on or off", + "description": "Browser default urgent low alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_TIMEAGO_WARN": { - "description": "Browser default warn after time of last data exceeds ALARM_TIMEAGO_WARN_MINS alarm enabled vaild settings are on or off", + "description": "Browser default warn after time of last data exceeds ALARM_TIMEAGO_WARN_MINS alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_TIMEAGO_WARN_MINS": { - "description": "Browser default minutes since the last reading to trigger a warning", + "description": "Browser default minutes since the last reading to trigger a warning.", "value": "15", "required": false }, "ALARM_TIMEAGO_URGENT": { - "description": "Browser default urgent warning after time of last data exceeds ALARM_TIMEAGO_URGENT_MINS alarm enabled vaild settings are on or off", + "description": "Browser default urgent warning after time of last data exceeds ALARM_TIMEAGO_URGENT_MINS alarm enabled. Valid settings are on or off", "value": "on", "required": false }, "ALARM_TIMEAGO_URGENT_MINS": { - "description": "Browser default minutes since last reading to trigger an urgent alarm", + "description": "Browser default minutes since last reading to trigger an urgent alarm.", "value": "30", "required": false }, From 2fc201bc1d399fa8c7cf93470357c30d664ea219 Mon Sep 17 00:00:00 2001 From: PieterGit Date: Wed, 27 Dec 2017 15:56:58 +0100 Subject: [PATCH 10/46] npm update, no nodejs changes are needed because we use specify 8.9.x (#3154) --- npm-shrinkwrap.json | 1505 +++++++++---------------------------------- package.json | 12 +- 2 files changed, 293 insertions(+), 1224 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 75f0b09c9f4..defdc646064 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -59,9 +59,9 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.1.tgz", + "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -70,9 +70,9 @@ } }, "ajv-keywords": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, "align-text": { "version": "0.1.4", @@ -173,15 +173,24 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", + "requires": { + "colour": "0.7.1", + "optjs": "3.2.2" + } + }, "asn1": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=" }, "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", "requires": { "bn.js": "4.11.8", "inherits": "2.0.3", @@ -484,9 +493,9 @@ "dev": true }, "browserify-aes": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.8.tgz", - "integrity": "sha512-WYCMOT/PtGTlpOKFht0YJFYcPy6pLCR98CtWfzK13zoynLlBMvAdEMSRGmgnJCw2M2j/5qxBkinZQFobieM8dQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "requires": { "buffer-xor": "1.0.3", "cipher-base": "1.0.4", @@ -501,7 +510,7 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "browserify-aes": "1.0.8", + "browserify-aes": "1.1.1", "browserify-des": "1.0.0", "evp_bytestokey": "1.0.3" } @@ -540,11 +549,11 @@ } }, "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "pako": "0.2.9" + "pako": "1.0.6" } }, "browserslist": { @@ -748,7 +757,6 @@ "requires": { "anymatch": "1.3.0", "async-each": "1.0.1", - "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -901,9 +909,9 @@ } }, "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" }, "common": { "version": "0.2.5", @@ -1058,7 +1066,7 @@ "cipher-base": "1.0.4", "inherits": "2.0.3", "ripemd160": "2.0.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "create-hmac": { @@ -1071,7 +1079,7 @@ "inherits": "2.0.3", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "cross-spawn": { @@ -1093,9 +1101,9 @@ } }, "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { "browserify-cipher": "1.0.0", "browserify-sign": "4.0.4", @@ -1106,7 +1114,8 @@ "inherits": "2.0.3", "pbkdf2": "3.0.14", "public-encrypt": "4.0.0", - "randombytes": "2.0.5" + "randombytes": "2.0.5", + "randomfill": "1.0.3" } }, "css-color-names": { @@ -1259,7 +1268,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "d3": { @@ -1353,7 +1362,7 @@ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { "bn.js": "4.11.8", - "miller-rabin": "4.0.0", + "miller-rabin": "4.0.1", "randombytes": "2.0.5" } }, @@ -1562,21 +1571,21 @@ } }, "es5-ext": { - "version": "0.10.30", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", - "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=", + "version": "0.10.37", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", + "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", "requires": { - "es6-iterator": "2.0.1", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } }, "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", + "es5-ext": "0.10.37", "es6-symbol": "3.1.1" } }, @@ -1586,8 +1595,8 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -1604,8 +1613,8 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" } @@ -1616,7 +1625,7 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "es6-weak-map": { @@ -1625,8 +1634,8 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } }, @@ -1688,7 +1697,7 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "event-stream": { @@ -1766,9 +1775,9 @@ } }, "expose-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.3.tgz", - "integrity": "sha1-NfvTZZeJ5PqoH1nei36fw55GbVE=" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", + "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==" }, "express": { "version": "4.16.2", @@ -1879,11 +1888,6 @@ "uglify-js": "2.8.29" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -1893,17 +1897,6 @@ "uglify-to-browserify": "1.0.2", "yargs": "3.10.0" } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } } } }, @@ -2088,996 +2081,93 @@ "clone": "1.0.2", "colors": "0.6.2", "flatiron": "0.4.3", - "forever-monitor": "1.7.1", - "nconf": "0.6.9", - "nssocket": "0.5.3", - "object-assign": "3.0.0", - "optimist": "0.6.1", - "path-is-absolute": "1.0.1", - "prettyjson": "1.2.1", - "shush": "1.0.0", - "timespan": "2.3.0", - "utile": "0.2.1", - "winston": "0.8.3" - }, - "dependencies": { - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "forever-monitor": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.7.1.tgz", - "integrity": "sha1-XYIPSjp42y2BriZx8Vi56GoJG7g=", - "requires": { - "broadway": "0.3.6", - "chokidar": "1.7.0", - "minimatch": "3.0.4", - "ps-tree": "0.0.3", - "utile": "0.2.1" - } - }, - "form-data": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", - "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", - "requires": { - "async": "2.6.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - }, - "dependencies": { - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } - } - } - }, - "formidable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "optional": true - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "optional": true - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "requires": { - "safe-buffer": "5.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", - "optional": true - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "optional": true, + "forever-monitor": "1.7.1", + "nconf": "0.6.9", + "nssocket": "0.5.3", + "object-assign": "3.0.0", + "optimist": "0.6.1", + "path-is-absolute": "1.0.1", + "prettyjson": "1.2.1", + "shush": "1.0.0", + "timespan": "2.3.0", + "utile": "0.2.1", + "winston": "0.8.3" + }, + "dependencies": { + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "extsprintf": "1.0.2" + "minimist": "0.0.10", + "wordwrap": "0.0.3" } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "optional": true, + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "forever-monitor": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.7.1.tgz", + "integrity": "sha1-XYIPSjp42y2BriZx8Vi56GoJG7g=", + "requires": { + "broadway": "0.3.6", + "chokidar": "1.7.0", + "minimatch": "3.0.4", + "ps-tree": "0.0.3", + "utile": "0.2.1" + } + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "requires": { + "async": "2.6.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "string-width": "1.0.2" + "lodash": "4.17.4" } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, + "formidable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", + "dev": true + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -3265,7 +2355,7 @@ "requires": { "bluebird": "2.11.0", "chalk": "1.1.3", - "commander": "2.11.0", + "commander": "2.12.2", "is-my-json-valid": "2.16.1" } }, @@ -3394,9 +2484,9 @@ } }, "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "i": { "version": "0.3.5", @@ -3504,9 +2594,9 @@ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, "invert-kv": { "version": "1.0.0", @@ -3776,7 +2866,7 @@ "requires": { "hoek": "2.16.3", "isemail": "1.2.0", - "moment": "2.19.1", + "moment": "2.19.3", "topo": "1.1.0" } }, @@ -3804,9 +2894,9 @@ "integrity": "sha1-XoqNGTqQgZjdI9FwSCbSB7DlqPY=" }, "js-storage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-storage/-/js-storage-1.0.1.tgz", - "integrity": "sha1-O1t/z0xIDwiVsXKYlL/Ohi+PjN8=" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/js-storage/-/js-storage-1.0.4.tgz", + "integrity": "sha512-ND6iVfDo5r2PSpkzXa+s+S6TzZkRD1EaN4NvtwRWp2rrL1pmS9wdcbmv3eYZYOkBcPiQjyQUWZRcT0aQ4Wuk8g==" }, "js-tokens": { "version": "3.0.2", @@ -4300,9 +3390,9 @@ } }, "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { "bn.js": "4.11.8", "brorand": "1.1.0" @@ -4490,16 +3580,16 @@ } }, "moment": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.1.tgz", - "integrity": "sha1-VtoaLRy/AdOLfhr8McELz6GSkWc=" + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz", + "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=" }, "moment-timezone": { "version": "0.5.14", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz", "integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=", "requires": { - "moment": "2.19.1" + "moment": "2.19.3" } }, "mongodb": { @@ -4586,12 +3676,6 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "optional": true - }, "nconf": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", @@ -4645,20 +3729,20 @@ } }, "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "requires": { "assert": "1.4.1", - "browserify-zlib": "0.1.4", + "browserify-zlib": "0.2.0", "buffer": "4.9.1", "console-browserify": "1.1.0", "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", + "crypto-browserify": "3.12.0", "domain-browser": "1.1.7", "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", "path-browserify": "0.0.0", "process": "0.11.10", "punycode": "1.4.1", @@ -4666,19 +3750,12 @@ "readable-stream": "2.3.3", "stream-browserify": "2.0.1", "stream-http": "2.7.2", - "string_decoder": "0.10.31", + "string_decoder": "1.0.3", "timers-browserify": "2.0.4", "tty-browserify": "0.0.0", "url": "0.11.0", "util": "0.10.3", "vm-browserify": "0.0.4" - }, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } } }, "nopt": { @@ -4849,9 +3926,9 @@ "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "os-locale": { "version": "2.1.0", @@ -4882,17 +3959,17 @@ } }, "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" }, "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.0.8", + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", "create-hash": "1.1.3", "evp_bytestokey": "1.0.3", "pbkdf2": "3.0.14" @@ -5019,7 +4096,7 @@ "create-hmac": "1.1.6", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "performance-now": { @@ -5625,17 +4702,6 @@ "requires": { "ascli": "1.0.1", "bytebuffer": "3.1.1" - }, - "dependencies": { - "ascli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", - "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", - "requires": { - "colour": "0.7.1", - "optjs": "3.2.2" - } - } } }, "proxy-addr": { @@ -5792,6 +4858,15 @@ "safe-buffer": "5.1.1" } }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" + } + }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -6029,7 +5104,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.3.0", + "ajv": "5.5.1", "har-schema": "2.0.0" } }, @@ -6123,15 +5198,6 @@ "tough-cookie": "2.3.2" } }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6142,6 +5208,15 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.4.1" + } + }, "resolve-from": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", @@ -6330,11 +5405,12 @@ } }, "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "requires": { - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "share2nightscout-bridge": { @@ -6719,6 +5795,11 @@ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -6834,14 +5915,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -6871,6 +5944,14 @@ } } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -7119,11 +6200,11 @@ } }, "uglify-js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.8.tgz", - "integrity": "sha512-1lnTkrJWw6LJ7n43ZyYVXx0eN2PQh0c3Inb0nY/vj5fNfwykXQFif2kvNgm/Bf0ClLA8R6SKaMHFzo9io4Q+vg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.1.tgz", + "integrity": "sha512-BhZTJPmOKPSUcjnx2nlfaOQKHLyjjT4HFyzFWF1BUErx9knJNpdW94ql5o8qVxeNL+8IAWjEjnPvASH2yZnkMg==", "requires": { - "commander": "2.11.0", + "commander": "2.12.2", "source-map": "0.6.1" }, "dependencies": { @@ -7147,14 +6228,9 @@ "requires": { "source-map": "0.5.7", "uglify-js": "2.8.29", - "webpack-sources": "1.0.1" + "webpack-sources": "1.1.0" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -7164,17 +6240,6 @@ "uglify-to-browserify": "1.0.2", "yargs": "3.10.0" } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } } } }, @@ -7312,15 +6377,15 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "requires": { - "async": "2.5.0", + "async": "2.6.0", "chokidar": "1.7.0", "graceful-fs": "4.1.11" }, "dependencies": { "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { "lodash": "4.17.4" } @@ -7334,31 +6399,31 @@ "dev": true }, "webpack": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", - "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", + "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", "requires": { "acorn": "5.2.1", "acorn-dynamic-import": "2.0.2", - "ajv": "5.3.0", - "ajv-keywords": "2.1.0", + "ajv": "5.5.1", + "ajv-keywords": "2.1.1", "async": "2.6.0", "enhanced-resolve": "3.4.1", "escope": "3.6.0", - "interpret": "1.0.3", + "interpret": "1.1.0", "json-loader": "0.5.7", "json5": "0.5.1", "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", "mkdirp": "0.5.1", - "node-libs-browser": "2.0.0", + "node-libs-browser": "2.1.0", "source-map": "0.5.7", "supports-color": "4.5.0", "tapable": "0.2.8", "uglifyjs-webpack-plugin": "0.4.6", "watchpack": "1.4.0", - "webpack-sources": "1.0.1", + "webpack-sources": "1.1.0", "yargs": "8.0.2" }, "dependencies": { @@ -7375,16 +6440,38 @@ "lodash": "4.17.4" } }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", @@ -7392,6 +6479,26 @@ "requires": { "has-flag": "2.0.0" } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } } } }, @@ -7403,7 +6510,7 @@ "requires": { "acorn": "5.2.1", "chalk": "1.1.3", - "commander": "2.11.0", + "commander": "2.12.2", "ejs": "2.5.7", "express": "4.16.2", "filesize": "3.5.11", @@ -7440,18 +6547,18 @@ } }, "webpack-sources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "requires": { "source-list-map": "2.0.0", - "source-map": "0.5.7" + "source-map": "0.6.1" }, "dependencies": { "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -7599,52 +6706,14 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - } + "window-size": "0.1.0" } }, "yargs-parser": { diff --git a/package.json b/package.json index 4a9dc335515..87c9d89e8a7 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "npm": "5.2.0 || 5.3.0 || 5.0.3" }, "dependencies": { - "ajv": "^5.3.0", + "ajv": "^5.5.1", "async": "^0.9.2", "body-parser": "^1.18.2", "bootevent": "0.0.1", @@ -63,7 +63,7 @@ "errorhandler": "^1.5.0", "event-stream": "^3.3.4", "expand-braces": "^0.1.2", - "expose-loader": "^0.7.3", + "expose-loader": "^0.7.4", "express": "^4.16.2", "express-extension-to-accept": "0.0.2", "express-minify": "^0.2.0", @@ -74,13 +74,13 @@ "jquery": "^2.2.4", "jquery-ui-bundle": "^1.12.1", "jquery.tipsy": "^1.0.3", - "js-storage": "^1.0.1", + "js-storage": "^1.0.4", "jsonwebtoken": "^7.4.3", "lodash": "^4.17.4", "long": "^3.2.0", "mfb": "^0.12.0", "minimed-connect-to-nightscout": "git://github.com/mddub/minimed-connect-to-nightscout.git#v1.1.0", - "moment": "^2.19.1", + "moment": "^2.19.3", "moment-timezone": "^0.5.14", "mongodb": "^2.2.33", "mongomock": "^0.1.2", @@ -101,9 +101,9 @@ "sugar": "^1.5.0", "sync-exec": "^0.6.2", "traverse": "^0.6.6", - "uglify-js": "^3.1.8", + "uglify-js": "^3.2.1", "uuid": "^3.1.0", - "webpack": "^3.8.1" + "webpack": "^3.10.0" }, "devDependencies": { "benv": "3.3.0", From 113e64a276759b01cb3909b46caae867086c01e4 Mon Sep 17 00:00:00 2001 From: PieterGit Date: Wed, 27 Dec 2017 15:57:28 +0100 Subject: [PATCH 11/46] Upstream npm bug `Cannot read property '0' of undefined` fixed. Use npm 5.6.x when available (#3190) * npm update, no nodejs changes are needed because we use specify 8.9.x * upgrade to npm 5.6.x because upstream npm issue (issue 17858) has been fixed in npm 5.6.0 * upgrade node to 8.9.x and use npm 5.6.x for travis * node 8.9.x does not work with thravis, fixing to nodejs 8.9.3 * install npm@latest for travis and print version number of npm * upgarde .nvmrdc to 8.9.x and another go of letting travis ci use the correct node version (5.6.x) --- .nvmrc | 2 +- .travis.yml | 3 ++- package.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.nvmrc b/.nvmrc index 486db33615e..6a11a032426 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -8.9.1 +8.9.x diff --git a/.travis.yml b/.travis.yml index fb6fd879e6d..14a3dfe59d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,8 @@ language: node_js sudo: required dist: trusty node_js: - - "8.9.1" + - "8.9.3" +before_install: if [[ `npm --version` != "5.6" ]]; then npm install -g npm@latest; npm --version; fi matrix: fast_finish: true services: diff --git a/package.json b/package.json index 87c9d89e8a7..8d0db567bb4 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "engines": { "node": "8.9.x", - "npm": "5.2.0 || 5.3.0 || 5.0.3" + "npm": "5.6.x || 5.2.0 || 5.3.0 || 5.0.3" }, "dependencies": { "ajv": "^5.5.1", From cd9b8e789a5237f0add7746d95278561636fb6b7 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Wed, 27 Dec 2017 17:00:53 +0200 Subject: [PATCH 12/46] Removing last remnants of Bower, which is not used anymore --- bower.json | 17 ---- package.json | 1 - static/report/compare.html | 161 ------------------------------------- 3 files changed, 179 deletions(-) delete mode 100644 bower.json delete mode 100644 static/report/compare.html diff --git a/bower.json b/bower.json deleted file mode 100644 index 9c69a0346c5..00000000000 --- a/bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "nightscout", - "version": "0.10.3-dev-20171205"", - "dependencies": { - "colorbrewer": "~1.0.0", - "jQuery-Storage-API": "~1.7.2", - "jquery": "2.1.0", - "jquery-flot": "0.8.3", - "jquery-ui": "~1.11.3", - "swagger-ui": "~2.1.2", - "tipsy-jmalonzo": "~1.0.1", - "tone": "*" - }, - "resolutions": { - "jquery": "2.1.0" - } -} diff --git a/package.json b/package.json index 8d0db567bb4..90f51232d14 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "env": "env", "postinstall": "webpack --config webpack.config.js && npm run-script update-buster", "bundle": "webpack --config webpack.config.js && npm run-script update-buster", - "bower": "node node_modules/bower/bin/bower --allow-root install && ", "update-buster": "node bin/generateCacheBuster.js >tmp/cacheBusterToken" }, "config": { diff --git a/static/report/compare.html b/static/report/compare.html deleted file mode 100644 index 76fdcd7e528..00000000000 --- a/static/report/compare.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - Nightscout performance comparison - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Nightscout performance comparison

- -
- - - - - - - - - - - - -
-
-
-
-
-
- -
-
-
-
- - from - -
-
-
-
-
-
-
- - -
- Authentication status: - - - - - - - - - - - - - From 3e29bef5a409a080386c70bf121a6d8563ea9bb4 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Wed, 27 Dec 2017 23:06:41 +0200 Subject: [PATCH 13/46] Fixes a long-standing bug where the plugin pill visualization didn't update immediately when new data was loaded --- lib/client/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/client/index.js b/lib/client/index.js index f8ca8e56fbe..ff9a337c675 100644 --- a/lib/client/index.js +++ b/lib/client/index.js @@ -1127,6 +1127,7 @@ client.load = function load(serverSettings, callback) { chart.update(true); } else if (!inRetroMode()) { chart.update(false); + client.plugins.updateVisualisations(client.nowSBX); } } From 051576056a8cd65ac9459f83cf986080b49431ba Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Thu, 28 Dec 2017 00:15:48 +0200 Subject: [PATCH 14/46] Moved server-specific sources to their own folder. Removed some unused code as per Codacy reports --- lib/api/entries/index.js | 19 -------------- lib/authorization/storage.js | 2 +- lib/client/receiveddata.js | 7 ------ lib/client/renderer.js | 2 -- lib/plugins/direction.js | 2 -- lib/plugins/iob.js | 8 ------ lib/plugins/loop.js | 1 - lib/plugins/openaps.js | 1 - lib/report_plugins/glucosedistribution.js | 2 -- lib/report_plugins/profiles.js | 1 - lib/{ => server}/aggregate.js | 0 lib/{ => server}/booterror.js | 0 lib/{ => server}/bootevent.js | 30 +++++++++++------------ lib/{ => server}/devicestatus.js | 0 lib/{ => server}/entries.js | 0 lib/{ => server}/food.js | 0 lib/{ => server}/mqtt.js | 0 lib/{ => server}/pebble.js | 6 ++--- lib/{ => server}/profile.js | 0 lib/{ => server}/pushnotify.js | 4 +-- lib/{ => server}/query.js | 0 lib/{ => server}/treatments.js | 0 lib/{ => server}/websocket.js | 7 +++--- server.js | 6 ++--- 24 files changed, 27 insertions(+), 71 deletions(-) rename lib/{ => server}/aggregate.js (100%) rename lib/{ => server}/booterror.js (100%) rename lib/{ => server}/bootevent.js (86%) rename lib/{ => server}/devicestatus.js (100%) rename lib/{ => server}/entries.js (100%) rename lib/{ => server}/food.js (100%) rename lib/{ => server}/mqtt.js (100%) rename lib/{ => server}/pebble.js (97%) rename lib/{ => server}/profile.js (100%) rename lib/{ => server}/pushnotify.js (98%) rename lib/{ => server}/query.js (100%) rename lib/{ => server}/treatments.js (100%) rename lib/{ => server}/websocket.js (99%) diff --git a/lib/api/entries/index.js b/lib/api/entries/index.js index 425fee4f7a1..19bcfed9526 100644 --- a/lib/api/entries/index.js +++ b/lib/api/entries/index.js @@ -94,25 +94,6 @@ function configure (app, wares, ctx) { return next(); } - // check for last modified from query results - - function ifModifiedSince (req, res, next) { - - var lastEntryDate = new Date(_.last(res.entries).dateString); - res.setHeader('Last-Modified', lastEntryDate.toUTCString()); - - var ifModifiedSince = req.get('If-Modified-Since'); - - if (!ifModifiedSince) { return next(); } - - if (lastEntryDate <= new Date(ifModifiedSince)) { - res.status(304).send({status:304, message: 'Not modified', type:'internal'}); - return; - } - - return next(); - } - /** * @method format_entries * A final middleware to send payloads assembled by previous middlewares diff --git a/lib/authorization/storage.js b/lib/authorization/storage.js index 5b89f2b4177..d90c21351a2 100644 --- a/lib/authorization/storage.js +++ b/lib/authorization/storage.js @@ -5,7 +5,7 @@ var crypto = require('crypto'); var shiroTrie = require('shiro-trie'); var ObjectID = require('mongodb').ObjectID; -var find_options = require('../query'); +var find_options = require('../server/query'); function init (env, ctx) { var storage = { }; diff --git a/lib/client/receiveddata.js b/lib/client/receiveddata.js index e80b971710f..12f4da5901c 100644 --- a/lib/client/receiveddata.js +++ b/lib/client/receiveddata.js @@ -37,7 +37,6 @@ function mergeDataUpdate(isDelta, cachedDataArray, receivedDataArray, maxAge) { } // purge old data from cache before updating - var purgeCount = 0; var mAge = (isNaN(maxAge) || maxAge == null) ? TWO_DAYS : maxAge; var twoDaysAgo = new Date().getTime() - mAge; @@ -45,14 +44,8 @@ function mergeDataUpdate(isDelta, cachedDataArray, receivedDataArray, maxAge) { var element = cachedDataArray[i]; if (element !== null && element !== undefined && element.mills <= twoDaysAgo) { cachedDataArray.splice(i,0); - purgeCount += 1; } } - - //if (purgeCount > 0) { - // console.log('Purged ' + purgeCount + ' elements from cache due to age'); - //} - // If this is delta, calculate the difference, merge and sort var diff = nsArrayDiff(cachedDataArray, receivedDataArray); diff --git a/lib/client/renderer.js b/lib/client/renderer.js index e9478e4a378..f0666277715 100644 --- a/lib/client/renderer.js +++ b/lib/client/renderer.js @@ -393,8 +393,6 @@ function init (client, d3) { function calcTreatmentRadius(treatment, opts, carbratio) { var CR = treatment.CR || carbratio || 20; - var carbs = treatment.carbs || CR; - var insulin = treatment.insulin || 1; var carbsOrInsulin = CR; if ( treatment.carbs ) { carbsOrInsulin = treatment.carbs; diff --git a/lib/plugins/direction.js b/lib/plugins/direction.js index b7d93f7b80e..53dda0e5879 100644 --- a/lib/plugins/direction.js +++ b/lib/plugins/direction.js @@ -1,7 +1,5 @@ 'use strict'; -var _ = require('lodash'); - function init() { var direction = { diff --git a/lib/plugins/iob.js b/lib/plugins/iob.js index dcc0c4504a9..5468ff0700d 100644 --- a/lib/plugins/iob.js +++ b/lib/plugins/iob.js @@ -244,14 +244,6 @@ function init(ctx) { }; function alexaIOBIntentHandler (callback, slots, sbx) { - var preamble = - (slots && slots.pwd && slots.pwd.value) ? - translate('alexaPreamble3person', { - params: [ - slots.pwd.value.replace('\'s', '') - ] - }) : - translate('alexaPreamble'); var message = translate('alexaIobIntent', { params: [ diff --git a/lib/plugins/loop.js b/lib/plugins/loop.js index bf2482cfe3c..6082b6bdc00 100644 --- a/lib/plugins/loop.js +++ b/lib/plugins/loop.js @@ -8,7 +8,6 @@ var levels = require('../levels'); // var ALL_STATUS_FIELDS = ['status-symbol', 'status-label', 'iob', 'freq', 'rssi']; Unused variable function init(ctx) { - var timeago = require('./timeago')(ctx); var utils = require('../utils')(ctx); var loop = { diff --git a/lib/plugins/openaps.js b/lib/plugins/openaps.js index 267ab0b06e1..136e901c888 100644 --- a/lib/plugins/openaps.js +++ b/lib/plugins/openaps.js @@ -8,7 +8,6 @@ var levels = require('../levels'); // var ALL_STATUS_FIELDS = ['status-symbol', 'status-label', 'iob', 'meal-assist', 'freq', 'rssi']; Unused variable function init(ctx) { - var timeago = require('./timeago')(ctx); var utils = require('../utils')(ctx); var openaps = { diff --git a/lib/report_plugins/glucosedistribution.js b/lib/report_plugins/glucosedistribution.js index 38521fa4eb9..93ffc468023 100644 --- a/lib/report_plugins/glucosedistribution.js +++ b/lib/report_plugins/glucosedistribution.js @@ -414,12 +414,10 @@ glucosedistribution.report = function report_glucosedistribution(datastorage, so var timeInT1 = Math.round(100 * t1count / events).toFixed(1); var timeInT2 = Math.round(100 * t2count / events).toFixed(1); - var mac = (total / events).toFixed(1); var unitString = ' mg/dl'; if (client.settings.units == 'mmol') { - mac = (total / events / 18.0).toFixed(2); TDC = TDC / 18.0; TDCHourly = TDCHourly / 18.0; unitString = ' mmol/L'; diff --git a/lib/report_plugins/profiles.js b/lib/report_plugins/profiles.js index df055b525b3..c31b8b2fa9a 100644 --- a/lib/report_plugins/profiles.js +++ b/lib/report_plugins/profiles.js @@ -14,7 +14,6 @@ module.exports = init; profiles.html = function html(client) { var translate = client.translate; - var a = translate('Database records'); var ret = '

' + translate('Profiles') + '

' + '
' + translate('Database records') + ' ' diff --git a/lib/aggregate.js b/lib/server/aggregate.js similarity index 100% rename from lib/aggregate.js rename to lib/server/aggregate.js diff --git a/lib/booterror.js b/lib/server/booterror.js similarity index 100% rename from lib/booterror.js rename to lib/server/booterror.js diff --git a/lib/bootevent.js b/lib/server/bootevent.js similarity index 86% rename from lib/bootevent.js rename to lib/server/bootevent.js index 9806c1e08fe..e5f1e5080b1 100644 --- a/lib/bootevent.js +++ b/lib/server/bootevent.js @@ -59,7 +59,7 @@ function boot (env, language) { try { if (_.startsWith(env.storageURI, 'openaps://')) { - require('./storage/openaps-storage')(env, function ready (err, store) { + require('../storage/openaps-storage')(env, function ready (err, store) { if (err) { throw err; } @@ -70,7 +70,7 @@ function boot (env, language) { }); } else { //TODO assume mongo for now, when there are more storage options add a lookup - require('./storage/mongo-storage')(env, function ready(err, store) { + require('../storage/mongo-storage')(env, function ready(err, store) { // FIXME, error is always null, if there is an error, the storage.js will throw an exception console.log('Mongo Storage system ready'); ctx.store = store; @@ -91,7 +91,7 @@ function boot (env, language) { return next(); } - ctx.authorization = require('./authorization')(env, ctx); + ctx.authorization = require('../authorization')(env, ctx); ctx.authorization.storage.reload(function loaded (err) { if (err) { ctx.bootErrors = ctx.bootErrors || [ ]; @@ -109,13 +109,13 @@ function boot (env, language) { /////////////////////////////////////////////////// // api and json object variables /////////////////////////////////////////////////// - ctx.plugins = require('./plugins')({ + ctx.plugins = require('../plugins')({ settings: env.settings , language: ctx.language }).registerServerDefaults(); - ctx.pushover = require('./plugins/pushover')(env); - ctx.maker = require('./plugins/maker')(env); + ctx.pushover = require('../plugins/pushover')(env); + ctx.maker = require('../plugins/maker')(env); ctx.pushnotify = require('./pushnotify')(env, ctx); ctx.entries = require('./entries')(env, ctx); @@ -124,14 +124,14 @@ function boot (env, language) { ctx.profile = require('./profile')(env.profile_collection, ctx); ctx.food = require('./food')(env, ctx); ctx.pebble = require('./pebble')(env, ctx); - ctx.properties = require('./api/properties')(env, ctx); - ctx.bus = require('./bus')(env.settings, ctx); - ctx.ddata = require('./data/ddata')(); - ctx.dataloader = require('./data/dataloader')(env, ctx); - ctx.notifications = require('./notifications')(env, ctx); + ctx.properties = require('../api/properties')(env, ctx); + ctx.bus = require('../bus')(env.settings, ctx); + ctx.ddata = require('../data/ddata')(); + ctx.dataloader = require('../data/dataloader')(env, ctx); + ctx.notifications = require('../notifications')(env, ctx); if (env.settings.isEnabled('alexa')) { - ctx.alexa = require('./plugins/alexa')(env, ctx); + ctx.alexa = require('../plugins/alexa')(env, ctx); } next( ); @@ -174,7 +174,7 @@ function boot (env, language) { }); ctx.bus.on('data-loaded', function updatePlugins ( ) { - var sbx = require('./sandbox')().serverInit(env, ctx); + var sbx = require('../sandbox')().serverInit(env, ctx); ctx.plugins.setProperties(sbx); ctx.notifications.initRequests(); ctx.plugins.checkNotifications(sbx); @@ -192,7 +192,7 @@ function boot (env, language) { return next(); } - ctx.bridge = require('./plugins/bridge')(env); + ctx.bridge = require('../plugins/bridge')(env); if (ctx.bridge) { ctx.bridge.startEngine(ctx.entries); } @@ -204,7 +204,7 @@ function boot (env, language) { return next(); } - ctx.mmconnect = require('./plugins/mmconnect').init(env, ctx.entries, ctx.devicestatus); + ctx.mmconnect = require('../plugins/mmconnect').init(env, ctx.entries, ctx.devicestatus); if (ctx.mmconnect) { ctx.mmconnect.run(); } diff --git a/lib/devicestatus.js b/lib/server/devicestatus.js similarity index 100% rename from lib/devicestatus.js rename to lib/server/devicestatus.js diff --git a/lib/entries.js b/lib/server/entries.js similarity index 100% rename from lib/entries.js rename to lib/server/entries.js diff --git a/lib/food.js b/lib/server/food.js similarity index 100% rename from lib/food.js rename to lib/server/food.js diff --git a/lib/mqtt.js b/lib/server/mqtt.js similarity index 100% rename from lib/mqtt.js rename to lib/server/mqtt.js diff --git a/lib/pebble.js b/lib/server/pebble.js similarity index 97% rename from lib/pebble.js rename to lib/server/pebble.js index 12ca589553e..544aa878268 100644 --- a/lib/pebble.js +++ b/lib/server/pebble.js @@ -2,8 +2,8 @@ var _ = require('lodash'); -var sandbox = require('./sandbox')(); -var units = require('./units')(); +var sandbox = require('../sandbox')(); +var units = require('../units')(); var DIRECTIONS = { NONE: 0 @@ -169,7 +169,7 @@ function pebble (req, res) { } function configure (env, ctx) { - var wares = require('./middleware/')(env); + var wares = require('../middleware/')(env); function middle (req, res, next) { req.env = env; req.ctx = ctx; diff --git a/lib/profile.js b/lib/server/profile.js similarity index 100% rename from lib/profile.js rename to lib/server/profile.js diff --git a/lib/pushnotify.js b/lib/server/pushnotify.js similarity index 98% rename from lib/pushnotify.js rename to lib/server/pushnotify.js index 7e61fff914a..49748851659 100644 --- a/lib/pushnotify.js +++ b/lib/server/pushnotify.js @@ -4,8 +4,8 @@ var _ = require('lodash'); var crypto = require('crypto'); var NodeCache = require('node-cache'); -var levels = require('./levels'); -var times = require('./times'); +var levels = require('../levels'); +var times = require('../times'); function init(env, ctx) { diff --git a/lib/query.js b/lib/server/query.js similarity index 100% rename from lib/query.js rename to lib/server/query.js diff --git a/lib/treatments.js b/lib/server/treatments.js similarity index 100% rename from lib/treatments.js rename to lib/server/treatments.js diff --git a/lib/websocket.js b/lib/server/websocket.js similarity index 99% rename from lib/websocket.js rename to lib/server/websocket.js index 1c49c82edf9..ee60c677498 100644 --- a/lib/websocket.js +++ b/lib/server/websocket.js @@ -1,10 +1,9 @@ 'use strict'; -var levels = require('./levels'); -var times = require('./times'); -var calcData = require('./data/calcdelta'); +var levels = require('../levels'); +var times = require('../times'); +var calcData = require('../data/calcdelta'); var ObjectID = require('mongodb').ObjectID; -var profilefunctions = require('./profilefunctions')(); function init (env, ctx, server) { diff --git a/server.js b/server.js index 642fe1ed73e..27d629034a2 100644 --- a/server.js +++ b/server.js @@ -45,7 +45,7 @@ function create (app) { return transport.createServer(app); } -require('./lib/bootevent')(env, language).boot(function booted (ctx) { +require('./lib/server/bootevent')(env, language).boot(function booted (ctx) { var app = require('./app')(env, ctx); var server = create(app).listen(PORT, HOSTNAME); console.log(translate('Listening on port'), PORT, HOSTNAME); @@ -55,7 +55,7 @@ require('./lib/bootevent')(env, language).boot(function booted (ctx) { } if (env.MQTT_MONITOR) { - ctx.mqtt = require('./lib/mqtt')(env, ctx); + ctx.mqtt = require('./lib/server/mqtt')(env, ctx); var es = require('event-stream'); es.pipeline(ctx.mqtt.entries, ctx.entries.map( ), ctx.mqtt.every(ctx.entries)); } @@ -63,7 +63,7 @@ require('./lib/bootevent')(env, language).boot(function booted (ctx) { /////////////////////////////////////////////////// // setup socket io for data and message transmission /////////////////////////////////////////////////// - var websocket = require('./lib/websocket')(env, ctx, server); + var websocket = require('./lib/server/websocket')(env, ctx, server); ctx.bus.on('data-processed', function() { websocket.update(); From 635980f2bf7980947b75af5dcc71ba1a158d1115 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Thu, 28 Dec 2017 00:27:49 +0200 Subject: [PATCH 15/46] Remove the compare report (which is hidden from users, anyway) --- static/report/js/compare.js | 639 ------------------------------------ 1 file changed, 639 deletions(-) delete mode 100644 static/report/js/compare.js diff --git a/static/report/js/compare.js b/static/report/js/compare.js deleted file mode 100644 index bfa608c0358..00000000000 --- a/static/report/js/compare.js +++ /dev/null @@ -1,639 +0,0 @@ - - - -function slippy (dom, opt) { - - var svg = { }; - var chart; - var container; - var scales = { x: { }, y: { } }; - var dom_width, dom_height, width, height; - var scaleExtent = [ 0, 200 ]; - var zoomer; - - var margin = {top: 20, right: 50, bottom: 20, left: 50}; - // get_dimensions( ); - - - function frame ( ) { - get_dimensions( ); - var range = frame.getRange( ); - // var width = dom.width( ); - // var height = dom.height( ); - svg.attr('width', dom_width) - // .attr('height', height - margin.right - margin.left) - ; - var begin = scales.x.invert(0); - var end = scales.x.invert(width); - range = frame.setRange(begin, end); - var delta = moment(begin).from(moment(end)); - // .replace(' ago', ''); - opt.controls.find('.begin-input').val(delta); - opt.controls.find('.end-input').val(end.format(Date.ISO8601_DATETIME)); - opt.controls.data('range', {begin: begin, end: end}); - // console.log(width, height, delta) - - // console.log(opt); - chart.select(".x.axis").call(frame.xAxis); - dom.trigger('refocus', [range, frame]); - - } - - frame.getRange = function _getRange ( ) { - return [frame.begin, frame.end]; - } - - frame.setRange = function _setRange (begin, end) { - frame.begin = Date.create(begin); - frame.end = Date.create(end); - return frame.getRange( ); - } - - function get_dimensions( ) { - dom_width = dom.width( ); - margin = {top: 20, right: 50, bottom: 20, left: 50}; - width = dom_width - margin.left - margin.right; - dom_height = dom.height( ); - height = dom_height - margin.top - margin.bottom; - } - - function init ( ) { - get_dimensions( ); - var begin = opt.begin || opt.controls.find('INPUT.begin-input').val( ); - var end = opt.end || opt.controls.find('INPUT.end-input').val( ); - var range = frame.setRange(begin, end); - // var width = dom.width( ); - // var height = dom.height( ); - svg = d3.select(dom.get(0)).append('svg') - .attr('class', 'slippy-chart') - ; - ; - chart = svg.append('g') - .attr('class', 'widget') - .attr("tranform", "translate(" + 0 + ", " + margin.top + ")") - ; - scales.x = d3.time.scale( ) - .domain(range) - .nice(d3.time.week) - .rangeRound([0, dom.width( )]) - ; - scales.y = d3.scale.log( ) - .domain([ 40, 400 ]) - .rangeRound([1, dom.height( )]) - ; - frame.xAxis = d3.svg.axis( ) - .scale(scales.x) - .ticks(7) - .tickSize(12, 1, 1) - ; - chart.append("g") - .attr("transform", "translate(" + 0 + ", " + (height / 2) + ")") - .attr("class", "x axis") - .call(frame.xAxis) - ; - - zoomer = d3.behavior.zoom( ) - .x(scales.x) - .scaleExtent(scaleExtent) - .on('zoom', frame); - ; - svg.call(zoomer); - - // frame.setRange(begin, end); - opt.controls.on('change', 'INPUT', refocus); - frame( ); - $(window).on('resize', resize); - return frame; - } - - function adjust_sizes (ev) { - get_dimensions( ); - scales.x - .rangeRound([0, dom.width( )]) - ; - scales.y - .rangeRound([1, dom.height( )]) - ; - chart.selectAll('.x.axis') - .call(frame.xAxis) - } - - function resize (ev) { - adjust_sizes(ev); - frame( ); - } - - function refocus (ev) { - var target = $(ev.target); - if (target.is('INPUT')) { - var begin = opt.controls.find('INPUT.begin-input').val( ); - var end = opt.controls.find('INPUT.end-input').val( ); - var range = frame.setRange(begin, end); - } - scales.x.domain(range) - .nice(d3.time.week) - ; - frame( ); - } - - return init( ); - // return frame; -} - -function cached (opts) { - var storage = opts.storage || crossfilter([ ]); - var dims = { - byDate: storage.dimension(dateStringDate) - }; - function api ( ) { - } - - function within (start, end) { - start = Date.create(start); - end = Date.create(end); - return dims.byDate.filterRange([start, end]).top(Infinity); - } - - function cx ( ) { - return storage; - } - - function get ( ) { - } - - function add (records) { - storage.add(records); - } - - function dateString (d) { return d.dateString; } - function dateStringDate (d) { return Date.create(d.dateString); } - function sgv (d) { return d.sgv; } - function is_clean (d) { return sgv(d) > 39; } - function is_in_range (d) { return sgv(d) >= range.low && sgv(d) <= range.high; } - function is_high (d) { return sgv(d) > range.high; } - function is_low (d) { return sgv(d) < range.low; } - - api.dims = dims; - api.get = get; - api.add = add; - api.within = within; - api.cx = cx; - return api; -} - -function manager (view, data, opts) { - - // var colorize = d3.scale.category20b( ); - var colorize = d3.scale.ordinal( ) - .domain([0, 10]) - .range(colorbrewer.Set3[10]); - var templates = opts.templates; - var item_opts = opts.item_opts || { }; - var pools = [ ]; - var master = { }; - var cache = opts.cache || cached({ }); - function manage ( ) { - } - - function init ( ) { - rows = view.find('.reticle'); - if (rows.length > 0) { - } else { - var item = make({ }); - pools.push(item); - } - view.on('refocus', '.reticle', on_refocus); - return manage; - } - - function make (data) { - var item = templates.find('.reticle').clone(true); - var pool = templates.find('.pool').clone(true); - var end = data.end || Date.create('now').format(Date.ISO8601_DATETIME); - var begin = data.begin || Date.create(end).rewind({weeks: 6}).format(Date.ISO8601_DATETIME); - view.find('.ranges').append(item); - view.find('.observations').append(pool); - var control = slippy(item.find('.timeline'), - { controls: item.find('.controls') - , begin: begin - , end: end - } ); - var reticle = {dom: item, control: control}; - var color = colorize(pools.length); - var lense = ranger(pool, {color: color, begin: begin, end: end, cache: cache}); - var display = { dom: pool, control: lense }; - reticle.dom.find('.timeline').css('border', '1px solid ' + color); - display.dom.css('border-color', color); - reticle.dom.find("span, :input").css('color', color); - // reticle.dom.find(".x.axis line").('styl', color); - var axis = d3.select(reticle.dom.get(0)).selectAll('.x.axis'); - axis.selectAll('line').style('stroke', color); - axis.selectAll('path').style('stroke', color); - axis.selectAll('text').style('color', color); - return { reticle: reticle, display: display, color: color }; - } - - function on_refocus (ev, range) { - var target = $(ev.target); - var pool = pools.filter(function (pool) { - var timeline = pool.reticle.dom.find('.timeline'); - return timeline.is(target); - }).pop( ); - if (pool) { - pool.display.control.setRange(range[0], range[1]); - } - } - - function add_new ( ) { - var item = make({ }); - pools.push(item); - } - - manage.add_new = add_new; - - return init( ); -} - -function pager (opts) { - var query = { }; - var url = opts.url || '/api/v1/entries.json?find[type]=sgv&find[sgv][$gt]=39&count=500000&'; - query.begin = opts.begin; - query.end = opts.end; - var payload = [ ]; - var days = { }; - var cache = opts.cache; - var DATE_FMT = "{yyyy}-{MM}-{dd}"; - - var bisect = d3.bisector(function (d) { return Date.create(d.dateString); }); - function page ( ) { - } - - function refresh (start, end) { - // console.log("PAYLOAD?", payload); - var q = { - start: Date.create(Date.create(start).format(DATE_FMT)) - , end: Date.create(Date.create(end).format(DATE_FMT)) - }; - query.begin = start; - query.end = end; - var range = d3.time.days(q.start, q.end); - days = { }; - console.log('QUERY FOR', range.length, 'days', q, query); - iter_query(range); - return; - if (payload && payload.length > 0) { - console.log("NUM DAYS", range.length); - // TODO: soft update, only get deltas against the edges of the - // cursor. - // start.isBefore - // start.isBetween - // start.isAfter - // end.isBefore - // end.isBetween - // end.isAfter - var holding = { - begin: Date.create(payload[0].dateString) - , last: Date.create(payload.slice(-1).pop( ).dateString) - } - console.log("BISECT LEFT start", bisect.left(payload, { dateString: start })); - console.log("BISECT LEFT end", end, bisect.right(payload, { dateString: end })); - do_query(start, end, first_page); - } else { - do_query(start, end, first_page); - } - query.begin = start; - query.end = end; - } - - function param_string (begin, end) { - return [ - "find[dateString][$gte]=" + Date.create(begin).format(DATE_FMT) - , "find[dateString][$lte]=" + Date.create(end).format(DATE_FMT) - ].join('&') - } - - function iter (prev, current, index, tail) { - } - - function iter_query (range) { - payload = [ ]; - range.forEach(function (day, i) { - var start = day; - var end = d3.time.day.offset(start, 1); - var data = cache.within(start, end); - if (data.length < 10) { - do_query(start, end, function _iter_ (resp) { - days[Date.create(day).format(DATE_FMT)] = true; - collate(resp); - }); - } else { - days[Date.create(day).format(DATE_FMT)] = true; - payload = payload.concat(data); - if (Object.keys(days).length >= range.length) { - do_payload( ); - } - } - }); - - } - - function accrue (begin, end, cb) { - var q = { - start: Date.create(Date.create(start).format(DATE_FMT)) - , end: Date.create(Date.create(end).format(DATE_FMT)) - }; - var range = d3.time.days(q.start, q.end); - if (range.length > 3) { - var half = range.length / 2; - var head = range.slice(0, half); - var tail = range.slice(half); - // head.reduce(iter, { }); - // tail.reduce(iter, { }); - } - } - - function collate (resp) { - console.log('payload', payload.length, 'resp', resp.length); - payload = payload.concat(resp); - cache.add(resp); - payload.sort(cmp_dateString); - var range = d3.time.days(query.start, query.end); - if (Object.keys(days).length >= range.length) { - do_payload( ); - } - } - - function cmp_dateString (a, b) { - return a.dateString > b.dateString; - } - - function do_query (begin, end, cb) { - var range = d3.time.days(Date.create(begin), Date.create(end)); - var fetch = url + param_string(begin, end); - console.log('QUERY FOR', range.length, 'days', query, fetch); - $.getJSON(fetch, cb); - } - - function first_page (resp) { - // console.log('resp', resp); - payload = resp; - do_payload( ); - } - - function do_payload ( ) { - if (opts.callback && opts.callback.call) { - opts.callback(payload); - } else { - // console.log(payload); - } - } - - function init ( ) { - if (query.begin && query.end) { - refresh(query.begin, query.end); - // do_query(query.begin, query.end, first_page); - } - page( ); - return page; - } - - page.refresh = refresh; - - return init( ); -} - -function time_in_range (data, opts) { - var range = { - high: 180 - , low: 80 - }; - - function sgv (d) { return d.sgv; } - function is_clean (d) { return sgv(d) > 39; } - function is_in_range (d) { return sgv(d) >= range.low && sgv(d) <= range.high; } - function is_high (d) { return sgv(d) > range.high; } - function is_low (d) { return sgv(d) < range.low; } - var results = [ ]; - var days = d3.nest( ) - .key(function (d) { - return Date.create(d.dateString).format('{yyyy}-{MM}-{dd}') - } ) - .rollup(function (leaves) { - var clean = leaves.filter(is_clean); - var nominal = clean.filter(is_in_range); - var highs = clean.filter(is_high); - var lows = clean.filter(is_low); - return { - length: clean.length - , color: opts.color || '#eee' - , target: nominal.length / clean.length * 100 - , highs: highs.length / clean.length * 100 - , lows: lows.length / clean.length * 100 - , mean: d3.mean(clean, sgv) - , median: d3.median(clean, sgv) - }; - } ) - .entries(data); - ; - return days; -} - -function ranger (dom, opts) { - var scales = { x: { }, y: { } }; - var dimensions = {height: null, width: null }; - var margin = {top: 20, right: 50, bottom: 20, left: 50}; - var xAxis, yAxis; - var dom_width, dom_height; - var width, height; - var root = { }; - var dots = { }; - var chart = { }; - - function my ( ) { - // dots = chart.selectAll('circle') - // dots.enter( ) - // .append("circle") - // console.log('data', my.data); - var selection = dots.selectAll('.dots').data(my.data || [ ]); - // console.log('dots', dots, selection); - selection.enter( ).append('circle').attr('class', 'dots'); - selection.exit( ).remove( ); - selection.call(render_circles) - // .exit( ).remove( ); - } - - function make_x_axis ( ) { - return d3.svg.axis( ) - .scale(scales.x) - ; - } - - function make_y_axis ( ) { - return d3.svg.axis() - .scale(scales.y) - ; - } - - function gridlines (selection) { - selection.selectAll('.x.gridlines') - // .attr("transform", "translate(0," + height + ")") - .attr("transform", "translate(" + margin.left + "," + height + ")") - // .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - .call(make_x_axis( ) - .tickSize(-height, 0, 0) - .tickFormat("") - ) - - selection.selectAll('.y.gridlines') - .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - .call(make_y_axis( ) - .tickSize(-width , 0, 0) - .tickValues([40, 80, 120, 180, 240, 300, 400]) - .tickFormat("") - .orient("left") - // .ticks(6) - ) - - } - function render_circles (dots) { - dots - .transition( ) - .attr("r", 5) - .attr("title", function (d) { return d.key; }) - .attr("fill", function (d) { return d.values.color; }) - .attr("cx", function (d) { return scales.x(d.values.target); }) - .attr("cy", function (d) { return scales.y(d.values.mean); }) - return dots; - } - - function render (selection) { - console.log('selection'); - } - - my.setRange = function _setRange (begin, end) { - adjuster(begin, end); - } - - function adjust_range (begin, end) { - my.page.refresh(begin, end); - } - - var adjuster = _.debounce(adjust_range, 1000); - - function on_data (payload) { - var days = time_in_range(payload, opts); - my.data = days; - if (dots && dots.selectAll) { - my( ); - } - // console.log('got days', days); - } - - function init ( ) { - my.page = pager({begin: opts.begin, end: opts.end, callback: on_data, cache: opts.cache}); - get_dimensions( ); - - scales.x = d3.scale.linear( ) - .domain([0, 100]) - .range([0, width]) - ; - - scales.y = d3.scale.log( ) - .domain( [40, 400] ) - .rangeRound( [height - (margin.top + margin.bottom), 1] ) - .base(12) - ; - - - // Axis - xAxis = make_x_axis( ) - .ticks(10) - .tickFormat(function(d) { return parseInt(d, 10) + "%"; }) - .orient('bottom') - ; - - - yAxis = make_y_axis( ) - .tickValues([40, 60, 70, 80, 120, 160, 180, 200, 220, 260, 300, 350, 400]) - .tickFormat(d3.format("d")) - .tickSize(6, 3, 1) - .orient('left') - ; - - root = d3.select(dom.get(0)).append('svg') - .attr('class', 'ranger') - .attr('height', dom_height) - .attr('width', dom_width) - ; - - chart = root.append('g') - .attr("transform", "translate(" + 0 + ", " + (margin.top) + ")") - .attr('class', 'ranger-chart') - ; - - chart.append('g').attr('class', 'x gridlines') - .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - ; - chart.append('g').attr('class', 'y gridlines') - .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - ; - dots = chart.append("g") - .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - .attr("class", "scatter") - ; - chart.append("g") - .attr("transform", "translate(" + margin.left + ", " + (height - margin.top) + ")") - .attr("class", "x axis") - .call(xAxis) - ; - chart.append("g") - .attr("transform", "translate(" + margin.left + ", " + (margin.top) + ")") - // .attr("transform", "translate(" + dom_width + ", " + (0) + ")") - .attr("class", "y axis") - .call(yAxis) - ; - // dots = chart.selectAll(".dot"); - $(window).on('resize', resize); - adjust_frames( ); - return my; - } - - function resize (ev) { - adjust_frames(ev); - my( ); - } - function adjust_frames (ev) { - get_dimensions( ); - root - .attr('class', 'ranger') - .attr('height', dom_height) - .attr('width', dom_width) - ; - chart - .attr("transform", "translate(" + 0 + ", " + (margin.top) + ")") - .attr('class', 'ranger-chart') - ; - scales.x - // .range([0, width]) - .range([0, width]) - ; - scales.y - .rangeRound( [height - (margin.top + margin.bottom), 1] ) - ; - - chart.selectAll('.x.axis').call(xAxis); - chart.selectAll('.y.axis').call(yAxis); - chart.call(gridlines) - - } - - function get_dimensions( ) { - dom_width = dom.width( ); - margin = {top: 20, right: 50, bottom: 20, left: 50}; - width = dom_width - margin.left - margin.right; - dom_height = dom.height( ) - margin.top; - height = dom_height - margin.top - margin.bottom; - } - - return init( ); -} From 9007db0f63adb7bb8f4d77a3165749ec89fbb69d Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Thu, 28 Dec 2017 12:08:07 +0200 Subject: [PATCH 16/46] Fix tests --- tests/api.entries.test.js | 4 ++-- tests/api.status.test.js | 2 +- tests/api.treatments.test.js | 2 +- tests/api.unauthorized.test.js | 4 ++-- tests/api.verifyauth.test.js | 2 +- tests/mqtt.test.js | 2 +- tests/pebble.test.js | 6 +++--- tests/pushnotify.test.js | 6 +++--- tests/security.test.js | 2 +- tests/verifyauth.test.js | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/api.entries.test.js b/tests/api.entries.test.js index dd3e1eb2cec..ba61a2d0a21 100644 --- a/tests/api.entries.test.js +++ b/tests/api.entries.test.js @@ -2,7 +2,7 @@ var request = require('supertest'); var load = require('./fixtures/load'); -var bootevent = require('../lib/bootevent'); +var bootevent = require('../lib/server/bootevent'); var language = require('../lib/language')(); require('should'); @@ -20,7 +20,7 @@ describe('Entries REST api', function ( ) { var self = this; bootevent(env, language).boot(function booted (ctx) { self.app.use('/', entries(self.app, self.wares, ctx)); - self.archive = require('../lib/entries')(env, ctx); + self.archive = require('../lib/server/entries')(env, ctx); var creating = load('json'); creating.push({type: 'sgv', sgv: 100, date: Date.now()}); diff --git a/tests/api.status.test.js b/tests/api.status.test.js index 1da9f793a98..51730a6f078 100644 --- a/tests/api.status.test.js +++ b/tests/api.status.test.js @@ -16,7 +16,7 @@ describe('Status REST api', function ( ) { this.app = require('express')( ); this.app.enable('api'); var self = this; - require('../lib/bootevent')(env, language).boot(function booted (ctx) { + require('../lib/server/bootevent')(env, language).boot(function booted (ctx) { self.app.use('/api', api(env, ctx)); done(); }); diff --git a/tests/api.treatments.test.js b/tests/api.treatments.test.js index 34600b66cb0..6d0d5deb933 100644 --- a/tests/api.treatments.test.js +++ b/tests/api.treatments.test.js @@ -18,7 +18,7 @@ describe('Treatment API', function ( ) { this.wares = require('../lib/middleware/')(self.env); self.app = require('express')(); self.app.enable('api'); - require('../lib/bootevent')(self.env, language).boot(function booted(ctx) { + require('../lib/server/bootevent')(self.env, language).boot(function booted(ctx) { self.ctx = ctx; self.ctx.ddata = require('../lib/data/ddata')(); self.app.use('/api', api(self.env, ctx)); diff --git a/tests/api.unauthorized.test.js b/tests/api.unauthorized.test.js index 23ff9c165c0..8c804c4244f 100644 --- a/tests/api.unauthorized.test.js +++ b/tests/api.unauthorized.test.js @@ -20,9 +20,9 @@ describe('authed REST api', function ( ) { this.app.enable('api'); var self = this; self.known_key = known; - require('../lib/bootevent')(env, language).boot(function booted (ctx) { + require('../lib/server/bootevent')(env, language).boot(function booted (ctx) { self.app.use('/', entries(self.app, self.wares, ctx)); - self.archive = require('../lib/entries')(env, ctx); + self.archive = require('../lib/server/entries')(env, ctx); var creating = load('json'); // creating.push({type: 'sgv', sgv: 100, date: Date.now()}); diff --git a/tests/api.verifyauth.test.js b/tests/api.verifyauth.test.js index 6a7514a8349..a9fd681da7b 100644 --- a/tests/api.verifyauth.test.js +++ b/tests/api.verifyauth.test.js @@ -15,7 +15,7 @@ describe('Verifyauth REST api', function ( ) { this.wares = require('../lib/middleware/')(self.env); self.app = require('express')( ); self.app.enable('api'); - require('../lib/bootevent')(self.env, language).boot(function booted (ctx) { + require('../lib/server/bootevent')(self.env, language).boot(function booted (ctx) { self.app.use('/api', api(self.env, ctx)); done(); }); diff --git a/tests/mqtt.test.js b/tests/mqtt.test.js index 25d2a60614b..0790c49a1bb 100644 --- a/tests/mqtt.test.js +++ b/tests/mqtt.test.js @@ -25,7 +25,7 @@ describe('mqtt', function ( ) { self.results.write(data); setTimeout(fn, 5); } - self.mqtt = require('../lib/mqtt')(self.env, {entries: { persist: outputs, create: written }, devicestatus: { create: written } }); + self.mqtt = require('../lib/server/mqtt')(self.env, {entries: { persist: outputs, create: written }, devicestatus: { create: written } }); }); after(function () { diff --git a/tests/pebble.test.js b/tests/pebble.test.js index d26e5e64e77..e6e683f78a6 100644 --- a/tests/pebble.test.js +++ b/tests/pebble.test.js @@ -84,9 +84,9 @@ ctx.ddata.treatments = updateMills([ ctx.ddata.devicestatus = [{uploader: {battery: 100}}]; -var bootevent = require('../lib/bootevent'); +var bootevent = require('../lib/server/bootevent'); describe('Pebble Endpoint', function ( ) { - var pebble = require('../lib/pebble'); + var pebble = require('../lib/server/pebble'); before(function (done) { var env = require('../env')( ); env.settings.authDefaultRoles = 'readable'; @@ -221,7 +221,7 @@ describe('Pebble Endpoint', function ( ) { }); describe('Pebble Endpoint with Raw and IOB and COB', function ( ) { - var pebbleRaw = require('../lib/pebble'); + var pebbleRaw = require('../lib/server/pebble'); before(function (done) { var env = require('../env')( ); env.settings.enable = ['rawbg', 'iob', 'cob']; diff --git a/tests/pushnotify.test.js b/tests/pushnotify.test.js index dc0bc9151eb..01a3d385f2b 100644 --- a/tests/pushnotify.test.js +++ b/tests/pushnotify.test.js @@ -29,7 +29,7 @@ describe('pushnotify', function ( ) { } }; - ctx.pushnotify = require('../lib/pushnotify')(env, ctx); + ctx.pushnotify = require('../lib/server/pushnotify')(env, ctx); ctx.pushnotify.emitNotification(notify); @@ -61,7 +61,7 @@ describe('pushnotify', function ( ) { } }; - ctx.pushnotify = require('../lib/pushnotify')(env, ctx); + ctx.pushnotify = require('../lib/server/pushnotify')(env, ctx); ctx.pushnotify.emitNotification(notify); @@ -97,7 +97,7 @@ describe('pushnotify', function ( ) { } }; - ctx.pushnotify = require('../lib/pushnotify')(env, ctx); + ctx.pushnotify = require('../lib/server/pushnotify')(env, ctx); //first send the warning ctx.pushnotify.emitNotification(notify); diff --git a/tests/security.test.js b/tests/security.test.js index 80959cfeed3..6b612f1bc6e 100644 --- a/tests/security.test.js +++ b/tests/security.test.js @@ -10,7 +10,7 @@ describe('API_SECRET', function ( ) { var scope = this; function setup_app (env, fn) { - require('../lib/bootevent')(env, language).boot(function booted (ctx) { + require('../lib/server/bootevent')(env, language).boot(function booted (ctx) { ctx.app = api(env, ctx); scope.app = ctx.app; scope.entries = ctx.entries; diff --git a/tests/verifyauth.test.js b/tests/verifyauth.test.js index 871dd56f176..cac53090adf 100644 --- a/tests/verifyauth.test.js +++ b/tests/verifyauth.test.js @@ -8,7 +8,7 @@ describe('verifyauth', function ( ) { var scope = this; function setup_app (env, fn) { - require('../lib/bootevent')(env, language).boot(function booted (ctx) { + require('../lib/server/bootevent')(env, language).boot(function booted (ctx) { ctx.app = api(env, ctx); scope.app = ctx.app; fn(ctx); From 4cc7195d53716f9d53689e993c3bc48b4ec70f77 Mon Sep 17 00:00:00 2001 From: Sulka Haro Date: Mon, 1 Jan 2018 12:49:23 +0200 Subject: [PATCH 17/46] * Disable bundle analyzer for now * Prevent saving numeric profile names, which seems to break the profile storage and there's no obvious way to fix --- static/profile/js/profileeditor.js | 2 ++ webpack.config.js | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/static/profile/js/profileeditor.js b/static/profile/js/profileeditor.js index bcb26425414..94a8671e40f 100644 --- a/static/profile/js/profileeditor.js +++ b/static/profile/js/profileeditor.js @@ -327,6 +327,8 @@ GUIToObject(); var newname = $('#pe_profile_name').val(); + if (!isNaN(newname)) newname = 'Profile' + newname; + if (currentprofile !== newname) { // rename if already exists while (record.store[newname]) { diff --git a/webpack.config.js b/webpack.config.js index b08f3aa6deb..fd5b9beaac4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -21,11 +21,7 @@ if (process.env.NODE_ENV !== 'development') { pluginArray.push(uglify); -} - -if (process.env.NODE_ENV === 'development') { - - +/* console.log('Development environment detected, enabling Bundle Analyzer'); var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; @@ -61,6 +57,7 @@ if (process.env.NODE_ENV === 'development') { // Log level. Can be 'info', 'warn', 'error' or 'silent'. logLevel: 'info' })); +*/ } From ab3289f6d338f51ef4ca651c523d749ef1f1d470 Mon Sep 17 00:00:00 2001 From: John Weston Date: Tue, 2 Jan 2018 12:53:14 -0800 Subject: [PATCH 18/46] Add "Check for Updates" link (#3206) Link to http://nightscout.github.io/pages/update-fork/ added to the main info panel. --- views/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/views/index.html b/views/index.html index fec1c6f0f7e..c59125a9d9f 100644 --- a/views/index.html +++ b/views/index.html @@ -275,6 +275,7 @@