Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wip/bewest/collaborations #8313

Merged
merged 35 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a37970c
New translations en.json (Italian)
sulkaharo Oct 30, 2023
3ee6565
New translations en.json (Italian)
sulkaharo Oct 30, 2023
776ab04
Update es_ES.json
antoniomuniz Feb 14, 2024
6e8e161
New translations en.json (Turkish)
sulkaharo Mar 25, 2024
d437f5a
New translations en.json (Portuguese)
sulkaharo May 20, 2024
422f30c
New translations en.json (Russian)
sulkaharo Aug 8, 2024
0566859
New translations en.json (Arabic)
sulkaharo Aug 24, 2024
3567ae1
New translations en.json (Chinese Traditional)
sulkaharo Aug 29, 2024
b88b505
New translations en.json (Chinese Traditional)
sulkaharo Sep 2, 2024
00f5aa1
New translations en.json (Chinese Traditional)
sulkaharo Sep 2, 2024
698dfdd
New translations en.json (Chinese Traditional)
sulkaharo Sep 5, 2024
86419e8
New translations en.json (Chinese Traditional)
sulkaharo Sep 6, 2024
0c9cf90
New translations en.json (Chinese Traditional)
sulkaharo Sep 7, 2024
198b857
New translations en.json (Chinese Traditional)
sulkaharo Sep 7, 2024
dc22695
New translations en.json (Chinese Traditional)
sulkaharo Sep 7, 2024
14509e4
New translations en.json (Chinese Traditional)
sulkaharo Sep 9, 2024
2b68a0b
New translations en.json (Chinese Traditional)
sulkaharo Sep 9, 2024
c455867
New translations en.json (Chinese Traditional)
sulkaharo Sep 15, 2024
9edf90a
New translations en.json (Chinese Traditional)
sulkaharo Sep 15, 2024
6f04c9e
New translations en.json (Chinese Traditional)
sulkaharo Sep 17, 2024
b3ea91a
New translations en.json (Chinese Traditional)
sulkaharo Sep 17, 2024
475c551
New translations en.json (Chinese Traditional)
sulkaharo Sep 19, 2024
274a80a
New translations en.json (Chinese Traditional)
sulkaharo Sep 19, 2024
fa0905b
New translations en.json (Chinese Traditional)
sulkaharo Sep 23, 2024
cd1c54b
New translations en.json (Chinese Traditional)
sulkaharo Sep 23, 2024
dc4a051
return generic '500' status on bootError page
daaanosaur Sep 24, 2024
cec3eeb
Update sensorage.js for 10 day sensors
Nightfoxy Oct 5, 2024
a350207
New translations en.json (Spanish)
sulkaharo Oct 25, 2024
b5f5ed2
Update loop.js
AndyLow91 Sep 14, 2024
e0b0d6f
nice error handling, @AndyLow91
bewest Nov 25, 2024
bf70405
Merge remote-tracking branch 'Nightfoxy/Nightfoxy-SAGE-Defaults' into…
bewest Nov 25, 2024
d7c93b4
Merge remote-tracking branch 'daaanosaur/return-boot-error-status-cod…
bewest Nov 25, 2024
61d1471
Merge remote-tracking branch 'antoniomuniz/patch-2' into wip/bewest/c…
bewest Nov 25, 2024
c6dfaa1
Merge remote-tracking branch 'official/crowdin_incoming' into wip/bew…
bewest Nov 25, 2024
558927b
Revert "Update sensorage.js for 10 day sensors"
bewest Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/server/booterror.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
});
Expand Down
28 changes: 25 additions & 3 deletions lib/server/loop.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
28 changes: 14 additions & 14 deletions translations/ar_SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "الملف الشخصي",
Expand Down Expand Up @@ -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": "تعذر حفظ الدور",
Expand Down Expand Up @@ -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": "بداية جرعة تركيبة نشطة",
Expand Down Expand Up @@ -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": "تغيير القنية الطبية قريبا",
Expand Down Expand Up @@ -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 وحدة من",
Expand Down Expand Up @@ -682,7 +682,7 @@
"Previous day": "اليوم السابق",
"Next day": "اليوم التالي",
"Next": "التالي",
"Temp basal delta": "درجة حرارة دلتا الأساسية",
"Temp basal delta": "تغير الجرعة القاعدية المؤقتة",
"Authorized by token": "مصرح به من قبل رمز",
"Auth role": "دور المصادقة",
"view without token": "عرض بدون رمز",
Expand Down
3 changes: 2 additions & 1 deletion translations/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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?"
}
32 changes: 16 additions & 16 deletions translations/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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."
}
2 changes: 1 addition & 1 deletion translations/pt_PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
6 changes: 3 additions & 3 deletions translations/ru_RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "Основание",
Expand Down Expand Up @@ -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": "дней",
Expand Down
4 changes: 2 additions & 2 deletions translations/tr_TR.json
Original file line number Diff line number Diff line change
Expand Up @@ -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ü",
Expand Down
Loading
Loading