mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Merge pull request #8313 from nightscout/wip/bewest/collaborations
Wip/bewest/collaborations
This commit is contained in:
@@ -29,7 +29,7 @@ function bootError(env, ctx) {
|
||||
return '<dt><b>' + obj.desc + '</b></dt><dd>' + message.replace(/\\n/g, '<br/>') + '</dd>';
|
||||
}).join(' ');
|
||||
|
||||
res.render('error.html', {
|
||||
res.status(500).render('error.html', {
|
||||
errors,
|
||||
locals
|
||||
});
|
||||
|
||||
+25
-3
@@ -130,14 +130,36 @@ function init (env, ctx) {
|
||||
notification.payload = payload;
|
||||
notification.interruptionLevel = "time-sensitive"
|
||||
|
||||
provider.send(notification, [loopSettings.deviceToken]).then( (response) => {
|
||||
provider.send(notification, [loopSettings.deviceToken]).then((response) => {
|
||||
if (response.sent && response.sent.length > 0) {
|
||||
completion();
|
||||
} else {
|
||||
console.log("APNs delivery failed:", response.failed)
|
||||
completion("APNs delivery failed: " + response.failed[0].response.reason);
|
||||
console.log("APNs delivery failed:", response.failed);
|
||||
|
||||
// Check if response.failed and response.failed[0] are defined
|
||||
if (response.failed && response.failed.length > 0) {
|
||||
const failedResponse = response.failed[0];
|
||||
const reason = failedResponse.response && failedResponse.response.reason
|
||||
? failedResponse.response.reason
|
||||
: 'Unknown reason';
|
||||
|
||||
// Provide detailed debugging information
|
||||
const errorMessage = `APNs delivery failed: ${reason}`;
|
||||
console.error(errorMessage, failedResponse);
|
||||
completion(errorMessage);
|
||||
} else {
|
||||
// Handle the case where response.failed is undefined or empty
|
||||
const errorMessage = 'APNs delivery failed: No failure details available.';
|
||||
console.error(errorMessage, response);
|
||||
completion(errorMessage);
|
||||
}
|
||||
}
|
||||
}).catch((error) => {
|
||||
// Catch any other unexpected errors
|
||||
console.error('Unexpected error during APNs delivery:', error);
|
||||
completion(`APNs delivery failed: ${error.message || 'Unknown error'}`);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return loop();
|
||||
|
||||
+14
-14
@@ -329,15 +329,15 @@
|
||||
"Edit treatment": "تعديل المعالجة",
|
||||
"Duration": "المدة",
|
||||
"Duration in minutes": "المدة بالدقائق",
|
||||
"Temp Basal": "درجة الحرارة القاعدية",
|
||||
"Temp Basal Start": "بداية درجة الحرارة القاعدية",
|
||||
"Temp Basal End": "نهاية درجة الحرارة القاعدية",
|
||||
"Temp Basal": "الجرعة القاعدية المؤقتة",
|
||||
"Temp Basal Start": "بداية الجرعة القاعدية المؤقتة",
|
||||
"Temp Basal End": "نهاية الجرعة القاعدية المؤقتة",
|
||||
"Percent": "بالمائة",
|
||||
"Basal change in %": "التغيير الأساسي بالمائة",
|
||||
"Basal value": "القيمة الأساسية",
|
||||
"Absolute basal value": "القيمة الأساسية المطلقة",
|
||||
"Announcement": "إعلان",
|
||||
"Loading temp basal data": "تحميل درجة حرارة البيانات القاعدية",
|
||||
"Loading temp basal data": "جارٍ تحميل بيانات الجرعة القاعدية المؤقتة",
|
||||
"Save current record before changing to new?": "حفظ السجل الحالي قبل التغيير إلى جديد؟",
|
||||
"Profile Switch": "تبديل الملف الشخصي",
|
||||
"Profile": "الملف الشخصي",
|
||||
@@ -413,8 +413,8 @@
|
||||
"Targets": "الأهداف",
|
||||
"Bolus insulin:": "جرعة أنسولين:",
|
||||
"Base basal insulin:": "الأنسولين القاعدي الأساسي:",
|
||||
"Positive temp basal insulin:": "الأنسولين القاعدي ذو درجة الحرارة الإيجابية:",
|
||||
"Negative temp basal insulin:": "الأنسولين القاعدي ذو درجة الحرارة السلبية:",
|
||||
"Positive temp basal insulin:": "الأنسولين القاعدي المؤقت الإيجابي:",
|
||||
"Negative temp basal insulin:": "الأنسولين القاعدي المؤقت السلبي:",
|
||||
"Total basal insulin:": "إجمالي الأنسولين القاعدي:",
|
||||
"Total daily insulin:": "إجمالي الأنسولين اليومي:",
|
||||
"Unable to save Role": "تعذر حفظ الدور",
|
||||
@@ -452,10 +452,10 @@
|
||||
"Current Carb Ratio": "نسبة الكربوهيدرات الحالية",
|
||||
"Basal timezone": "المنطقة الزمنية القاعدية",
|
||||
"Active profile": "ملف نشط",
|
||||
"Active temp basal": "درجة الحرارة القاعدية النشطة",
|
||||
"Active temp basal start": "بداية درجة الحرارة القاعدية النشطة",
|
||||
"Active temp basal duration": "مدة درجة الحرارة القاعدية النشطة",
|
||||
"Active temp basal remaining": "درجة الحرارة القاعدية النشطة المتبقية",
|
||||
"Active temp basal": "الجرعة القاعدية المؤقتة النشطة",
|
||||
"Active temp basal start": "بداية الجرعة القاعدية المؤقتة النشطة",
|
||||
"Active temp basal duration": "مدة الجرعة القاعدية المؤقتة النشطة",
|
||||
"Active temp basal remaining": "الوقت المتبقي للجرعة القاعدية المؤقتة النشطة",
|
||||
"Basal profile value": "قيمة الملف القاعدي",
|
||||
"Active combo bolus": "جرعة تركيبة نشطة",
|
||||
"Active combo bolus start": "بداية جرعة تركيبة نشطة",
|
||||
@@ -492,8 +492,8 @@
|
||||
"or adjust basal": "أو ضبط القاعدية",
|
||||
"Check BG using glucometer before correcting!": "-> تحقق من نسبة السكر في الدم باستخدام مقياس السكر قبل التصحيح!",
|
||||
"Basal reduction to account %1 units:": "التخفيض القاعدي لحساب%1 وحدة:",
|
||||
"30m temp basal": "30 متر من درجة الحرارة القاعدية",
|
||||
"1h temp basal": "ساعة واحدة من درجة الحرارة القاعدية",
|
||||
"30m temp basal": "جرعة قاعدية مؤقتة لمدة 30 دقيقة",
|
||||
"1h temp basal": "جرعة قاعدية مؤقتة لمدة ساعة واحدة",
|
||||
"Cannula change overdue!": "تغيير قنية متأخر!",
|
||||
"Time to change cannula": "ميعاد تغيير القنية الطبية",
|
||||
"Change cannula soon": "تغيير القنية الطبية قريبا",
|
||||
@@ -578,7 +578,7 @@
|
||||
"virtAsstTitleDelta": "دلتا جلوكوز الدم",
|
||||
"virtAsstStatus": "%1 و%2 اعتبارًا من %3.",
|
||||
"virtAsstBasal": "%1 القاعدي الحالي هو %2 وحدة في الساعة",
|
||||
"virtAsstBasalTemp": "%1 درجة الحرارة القاعدية من %2 وحدة في الساعة ستنتهي %3",
|
||||
"virtAsstBasalTemp": "%1 جرعة قاعدية مؤقتة من %2 وحدة في الساعة ستنتهي %3",
|
||||
"virtAsstIob": "ولديك %1 من الأنسولين النشط.",
|
||||
"virtAsstIobIntent": "لديك %1 من الأنسولين النشط",
|
||||
"virtAsstIobUnits": "%1 وحدة من",
|
||||
@@ -682,7 +682,7 @@
|
||||
"Previous day": "اليوم السابق",
|
||||
"Next day": "اليوم التالي",
|
||||
"Next": "التالي",
|
||||
"Temp basal delta": "درجة حرارة دلتا الأساسية",
|
||||
"Temp basal delta": "تغير الجرعة القاعدية المؤقتة",
|
||||
"Authorized by token": "مصرح به من قبل رمز",
|
||||
"Auth role": "دور المصادقة",
|
||||
"view without token": "عرض بدون رمز",
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
"View all treatments": "Visualizar todos los tratamientos",
|
||||
"Enable Alarms": "Activar las alarmas",
|
||||
"Pump Battery Change": "Cambio batería bomba",
|
||||
"Pump Battery Age": "Edad de la batería en la bomba",
|
||||
"Pump Battery Age": "Edad de la batería de la bomba",
|
||||
"Pump Battery Low Alarm": "Alarma de Bomba Baja",
|
||||
"Pump Battery change overdue!": "Cambio de batería de bomba atrasado!",
|
||||
"When enabled an alarm may sound.": "Cuando estén activas, una alarma podrá sonar",
|
||||
@@ -704,4 +704,5 @@
|
||||
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Detectada API_SECRET débil. Por favor, utilice una mezcla de letras en minúscula y en mayúscula, números y caracteres no alfanuméricos como !#%&/ para reducir el riesgo de acceso no autorizado. La longitud mínima de la API_SECRET es de 12 caracteres.",
|
||||
"less than 1": "menos de 1",
|
||||
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La contraseña de MongoDB y la API_SECRET coinciden. Esto es una muy mala idea. Por favor, cambie ambas contraseñas y no reutilice contraseñas en el sistema."
|
||||
"virtAsstLaunch":"¿Qué quieres saber de Nightscout?"
|
||||
}
|
||||
|
||||
+16
-16
@@ -102,9 +102,9 @@
|
||||
"Move to the top": "Spostare verso l'alto",
|
||||
"Hidden": "Nascosto",
|
||||
"Hide after use": "Nascondi dopo l'uso",
|
||||
"Your API secret must be at least 12 characters long": "Il tuo API segreto deve essere lungo almeno 12 caratteri",
|
||||
"Bad API secret": "API segreto non corretto",
|
||||
"API secret hash stored": "Hash API segreto memorizzato",
|
||||
"Your API secret must be at least 12 characters long": "Il tuo \"API secret\" deve essere lungo almeno 12 caratteri",
|
||||
"Bad API secret": "\"API secret\" non corretto",
|
||||
"API secret hash stored": "Hash \"API secret\" memorizzato",
|
||||
"Status": "Stato",
|
||||
"Not loaded": "Non caricato",
|
||||
"Food Editor": "Database Alimenti",
|
||||
@@ -115,8 +115,8 @@
|
||||
"Record": "Registro",
|
||||
"Quick picks": "Scelta rapida",
|
||||
"Show hidden": "Mostra nascosto",
|
||||
"Your API secret or token": "Il tuo API segreto o token",
|
||||
"Remember this device. (Do not enable this on public computers.)": "Ricorda questo dispositivo. (Da non abilitare su computer condivisi con altri.)",
|
||||
"Your API secret or token": "Il tuo token \"API secret\"",
|
||||
"Remember this device. (Do not enable this on public computers.)": "Ricorda questo dispositivo. (Da non abilitare su computer condivisi con altri)",
|
||||
"Treatments": "Somministrazioni",
|
||||
"Time": "Tempo",
|
||||
"Event Type": "Tipo di evento",
|
||||
@@ -128,7 +128,7 @@
|
||||
"Event Time": "Ora Evento",
|
||||
"Please verify that the data entered is correct": "Verificare che i dati inseriti siano corretti",
|
||||
"BG": "Glicemie",
|
||||
"Use BG correction in calculation": "Utilizza la correzione delle Glicemia nel calcolo",
|
||||
"Use BG correction in calculation": "Utilizza la correzione delle Glicemie nel calcolo",
|
||||
"BG from CGM (autoupdated)": "Glicemie da sensore (aggiornamento automatico)",
|
||||
"BG from meter": "Glicemie da glucometro",
|
||||
"Manual BG": "Inserisci Glicemia",
|
||||
@@ -424,7 +424,7 @@
|
||||
"admin, school, family, etc": "amministrazione, scuola, famiglia, etc",
|
||||
"Permissions": "Permessi",
|
||||
"Are you sure you want to delete: ": "Sei sicuro di voler eliminare:",
|
||||
"Each role will have a 1 or more permissions. The <em>*</em> permission is a wildcard, permissions are a hierarchy using <em>:</em> as a separator.": "Ogni ruolo avrà un 1 o più autorizzazioni. Il <em>*</em> il permesso è un jolly, i permessi sono una gerarchia utilizzando <em>:</em> come separatore.",
|
||||
"Each role will have a 1 or more permissions. The <em>*</em> permission is a wildcard, permissions are a hierarchy using <em>:</em> as a separator.": "Ogni ruolo avrà 1 o più autorizzazioni. Il permesso <em>*</em> è un jolly, i permessi sono una gerarchia utilizzando <em>:</em> come separatore.",
|
||||
"Add new Role": "Aggiungere un nuovo ruolo",
|
||||
"Roles - Groups of People, Devices, etc": "Ruoli - gruppi di persone, dispositivi, etc",
|
||||
"Edit this role": "Modifica questo ruolo",
|
||||
@@ -470,7 +470,7 @@
|
||||
"Warning": "Avviso",
|
||||
"Info": "Informazioni",
|
||||
"Lowest": "Minore",
|
||||
"Snoozing high alarm since there is enough IOB": "Addormenta allarme alto poiché non vi è sufficiente Insulina attiva",
|
||||
"Snoozing high alarm since there is enough IOB": "Silenzia allarme alto poiché non vi è sufficiente Insulina attiva",
|
||||
"Check BG, time to bolus?": "Controllare Glicemia, ora di bolo?",
|
||||
"Notice": "Preavviso",
|
||||
"required info missing": "richiesta informazioni mancanti",
|
||||
@@ -479,9 +479,9 @@
|
||||
"Expected effect": "Effetto Previsto",
|
||||
"Expected outcome": "Risultato previsto",
|
||||
"Carb Equivalent": "Carb equivalenti",
|
||||
"Excess insulin equivalent %1U more than needed to reach low target, not accounting for carbs": "L'eccesso d'insulina equivalente %1U più che necessari per raggiungere l'obiettivo basso, non rappresentano i carboidrati.",
|
||||
"Excess insulin equivalent %1U more than needed to reach low target, MAKE SURE IOB IS COVERED BY CARBS": "L' eccesso d'insulina equivale a %1U in più di quanto necessario per raggiungere l'obiettivo basso, ASSICURARSI CHE L'INSULINA ATTIVA SIA COPERTA DAI CARBOIDRATI",
|
||||
"%1U reduction needed in active insulin to reach low target, too much basal?": "Riduzione %1U necessaria dell'insulina attiva per raggiungere l'obiettivo basso, troppa basale?",
|
||||
"Excess insulin equivalent %1U more than needed to reach low target, not accounting for carbs": "Eccesso di insulina equivalente a %1U, più che necessaria per raggiungere l'obiettivo basso, non contando i carboidrati",
|
||||
"Excess insulin equivalent %1U more than needed to reach low target, MAKE SURE IOB IS COVERED BY CARBS": "Eccesso di insulina equivalente a %1U in più di quanto necessario per raggiungere l'obiettivo basso, ASSICURARSI CHE L'INSULINA ATTIVA SIA COPERTA DAI CARBOIDRATI",
|
||||
"%1U reduction needed in active insulin to reach low target, too much basal?": "Riduzione %1U necessaria all'insulina attiva per raggiungere l'obiettivo basso, troppa basale?",
|
||||
"basal adjustment out of range, give carbs?": "regolazione basale fuori intervallo, dare carboidrati?",
|
||||
"basal adjustment out of range, give bolus?": "regolazione basale fuori campo, dare bolo?",
|
||||
"above high": "sopra alto",
|
||||
@@ -505,7 +505,7 @@
|
||||
"IAGE": "Età Insulina",
|
||||
"Insulin reservoir change overdue!": "Cambio serbatoio d'insulina in ritardo!",
|
||||
"Time to change insulin reservoir": "Momento di cambiare serbatoio d'insulina",
|
||||
"Change insulin reservoir soon": "Cambiare serbatoio d'insulina prossimamente",
|
||||
"Change insulin reservoir soon": "Cambiare serbatoio d'insulina a breve",
|
||||
"Insulin reservoir age %1 hours": "IAGE - Durata Serbatoio d'insulina %1 ore",
|
||||
"Changed": "Cambiato",
|
||||
"IOB": "Insulina Attiva",
|
||||
@@ -521,7 +521,7 @@
|
||||
"RETRO": "RETRO",
|
||||
"SAGE": "Età Sensore",
|
||||
"Sensor change/restart overdue!": "Cambio/riavvio del sensore in ritardo!",
|
||||
"Time to change/restart sensor": "Tempo di cambiare/riavvio sensore",
|
||||
"Time to change/restart sensor": "Tempo di cambiare/riavviare sensore",
|
||||
"Change/restart sensor soon": "Modifica/riavvio sensore prossimamente",
|
||||
"Sensor age %1 days %2 hours": "Durata Sensore %1 giorni %2 ore",
|
||||
"Sensor Insert": "SAGE - inserimento sensore",
|
||||
@@ -659,7 +659,7 @@
|
||||
"Admin messages in queue": "Messaggi di amministrazione in coda",
|
||||
"Queue empty": "Coda vuota",
|
||||
"There are no admin messages in queue": "Non ci sono messaggi di amministrazione in coda",
|
||||
"Please sign in using the API_SECRET to see your administration messages": "Effettua il login utilizzando API_SECRET per vedere i messaggi di amministrazione",
|
||||
"Please sign in using the API_SECRET to see your administration messages": "Effettua il login utilizzando \"API secret\" per vedere i messaggi di amministrazione",
|
||||
"Reads enabled in default permissions": "Letture abilitate nelle autorizzazioni predefinite",
|
||||
"Data reads enabled": "Lettura dati abilitata",
|
||||
"Data writes enabled": "Scrittura dati abilitata",
|
||||
@@ -701,7 +701,7 @@
|
||||
"minutes": "minuti",
|
||||
"Last recorded %1 %2 ago.": "Ultima registrazione %1 %2 fa.",
|
||||
"Security issue": "Problema di sicurezza",
|
||||
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Rilevata API_SECRET debole. Si prega di utilizzare lettere minuscole e maiuscole, numeri e caratteri non alfanumerici come !#%&/ per ridurre il rischio di accesso non autorizzato. La lunghezza minima dell'API_SECRET è di 12 caratteri.",
|
||||
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Rilevata \"API secret\" debole. Si prega di utilizzare lettere minuscole e maiuscole, numeri e caratteri non alfanumerici come !#%&/ per ridurre il rischio di accesso non autorizzato. La lunghezza minima dell'API_SECRET è di 12 caratteri.",
|
||||
"less than 1": "meno di 1",
|
||||
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La password di MongoDB e API_SECRET coincidono. Questa è una cattiva idea. Cambiale entrambe e non riutilizzare le password in tutto il sistema."
|
||||
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La password di MongoDB e \"API secret\" coincidono. Questa è una cattiva idea. Cambiale entrambe e non riutilizzare le password in tutto il sistema."
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
"Pump Battery Age": "Idade Bateria da Bomba",
|
||||
"Pump Battery Low Alarm": "Alarme de Bateria Fraca da Bomba",
|
||||
"Pump Battery change overdue!": "Troca de Bateria da Bomba atrasada!",
|
||||
"When enabled an alarm may sound.": "Quando activado um alarme pode soar.",
|
||||
"When enabled an alarm may sound.": "Quando ativado um alarme pode soar.",
|
||||
"Urgent High Alarm": "Alarme Muito Alto",
|
||||
"High Alarm": "Alarme Hiper",
|
||||
"Low Alarm": "Alarme Hipo",
|
||||
|
||||
@@ -402,7 +402,7 @@
|
||||
"Loading profile switch data": "Загрузка данных нового профиля",
|
||||
"Redirecting you to the Profile Editor to create a new profile.": "Переход к редактору профиля для создания нового",
|
||||
"Pump": "Помпа",
|
||||
"Sensor Age": "Сенсору",
|
||||
"Sensor Age": "Сенсор проработал",
|
||||
"Insulin Age": "Инсулину",
|
||||
"Temporary target": "Временная цель",
|
||||
"Reason": "Основание",
|
||||
@@ -519,11 +519,11 @@
|
||||
"%1h ago": "%1 час назад",
|
||||
"%1d ago": "%1d назад",
|
||||
"RETRO": "ПРОШЛОЕ",
|
||||
"SAGE": "Сенсор работает",
|
||||
"SAGE": "СЕНСОРУ",
|
||||
"Sensor change/restart overdue!": "Рестарт сенсора пропущен",
|
||||
"Time to change/restart sensor": "Время замены/рестарта сенсора",
|
||||
"Change/restart sensor soon": "Приближается срок замены/рестарта сенсора",
|
||||
"Sensor age %1 days %2 hours": "Сенсору %1 дн %2 час",
|
||||
"Sensor age %1 days %2 hours": "Сенсор отработал %1 дн %2 час",
|
||||
"Sensor Insert": "Сенсор установлен",
|
||||
"Sensor Start": "Старт сенсора",
|
||||
"days": "дней",
|
||||
|
||||
@@ -557,8 +557,8 @@
|
||||
"virtAsstUnknown": "Bu değer şu anda bilinmiyor. Daha fazla ayrıntı için lütfen Nightscout sitenize bakın.",
|
||||
"virtAsstTitleAR2Forecast": "AR2 Tahmini",
|
||||
"virtAsstTitleCurrentBasal": "Geçerli Bazal",
|
||||
"virtAsstTitleCurrentCOB": "Geçerli AKRB",
|
||||
"virtAsstTitleCurrentIOB": "Geçerli AİNS",
|
||||
"virtAsstTitleCurrentCOB": "Mevcut AKRB",
|
||||
"virtAsstTitleCurrentIOB": "Mevcut AİNS",
|
||||
"virtAsstTitleLaunch": "Nightscout'a hoş geldiniz",
|
||||
"virtAsstTitleLoopForecast": "Döngü Tahmini",
|
||||
"virtAsstTitleLastLoop": "Son Döngü",
|
||||
|
||||
+583
-583
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user