diff --git a/lib/language.js b/lib/language.js index 3216c53dadb..0c9d7103d26 100644 --- a/lib/language.js +++ b/lib/language.js @@ -49,7 +49,6 @@ function init() { ,bg: 'Активиране на порта' ,hr: 'Slušanje na portu' ,it: 'Porta in ascolto' - ,dk: 'Lytter på port' ,fi: 'Kuuntelen porttia' ,nb: 'Lytter på port' ,he: 'מקשיב על פתחה' @@ -2041,7 +2040,6 @@ 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' @@ -6603,7 +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' + ,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' @@ -7654,7 +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.' + ,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.' @@ -8184,7 +8182,7 @@ function init() { ,sk: 'Operácia' ,pl: 'Operacja' ,pt: 'Operação' - ,nl: 'Operatie' + ,nl: 'Operatie' ,ko: '동작' ,it: 'Operazione' ,zh_cn: '操作' @@ -9796,7 +9794,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' + ,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' @@ -9818,7 +9816,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?' + ,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?' @@ -11326,6 +11324,46 @@ function init() { , sv: 'no' , zh_cn: 'no' , zh_tw: 'no' + }, + 'alexaUploadBattery': { + en: 'Your uploader battery is at %1' + , de: 'Der Akku deines Uploader Handys ist bei %1' + }, + 'alexaReservoir': { + en: 'You have %1 units remaining' + , de: 'Du hast %1 Einheiten übrig' + }, + 'alexaPumpBattery': { + en: 'Your pump battery is at %1 %2' + , de: 'Der Batteriestand deiner Pumpe ist bei %1 %2' + }, + 'alexaLastLoop': { + en: 'The last successful loop was %1' + , de: 'Der letzte erfolgreiche Loop war vor %1' + }, + 'alexaLoopNotAvailable': { + en: 'Loop plugin does not seem to be enabled' + , de: 'Das Loop Plugin scheint nicht aktiviert zu sein' + }, + 'alexaLoopForecast': { + en: 'According to the loop forecast you are expected to be %1 over the next %2' + , de: 'Entsprechend der Loop Vorhersage landest du bei %1 während der nächsten %2' + }, + 'alexaForecastUnavailable': { + en: 'Unable to forecast with the data that is available', + de: 'Mit den verfügbaren Daten ist eine Loop Vorhersage nicht möglich' + }, + 'alexaRawBG': { + en: 'Your raw bg is %1' + , de: 'Dein Rohblutzucker ist %1' + }, + 'alexaOpenAPSForecast': { + en: 'The OpenAPS Eventual BG is %1' + , de: 'Der von OpenAPS vorhergesagte Blutzucker ist %1' + }, + 'alexaCOB': { + en: '%1 %2 carbohydrates on board' + , de: '%1 %2 Gramm Kohlenhydrate wirkend.' }, 'Fat [g]': { cs: 'Tuk [g]' diff --git a/lib/plugins/openaps.js b/lib/plugins/openaps.js index 136e901c888..e43af9bff25 100644 --- a/lib/plugins/openaps.js +++ b/lib/plugins/openaps.js @@ -9,13 +9,12 @@ var levels = require('../levels'); function init(ctx) { var utils = require('../utils')(ctx); - var openaps = { name: 'openaps' , label: 'OpenAPS' , pluginType: 'pill-status' }; - + var translate = ctx.language.translate; var firstPrefs = true; openaps.getPrefs = function getPrefs(sbx) { @@ -450,14 +449,22 @@ function init(ctx) { function alexaForecastHandler (next, slots, sbx) { if (sbx.properties.openaps && sbx.properties.openaps.lastEventualBG) { - var response = 'The OpenAPS Eventual BG is ' + sbx.properties.openaps.lastEventualBG; + var response = translate('alexaOpenAPSForecast', { + params: [ + sbx.properties.openaps.lastEventualBG + ]} + ); next('Loop Forecast', response); } } function alexaLastLoopHandler (next, slots, sbx) { console.log(JSON.stringify(sbx.properties.openaps.lastLoopMoment)); - var response = 'The last successful loop was ' + moment(sbx.properties.openaps.lastLoopMoment).from(moment(sbx.time)); + var response = translate('alexaLastLoop', { + params: [ + moment(sbx.properties.openaps.lastLoopMoment).from(moment(sbx.time)) + ] + }); next('Last loop', response); } diff --git a/lib/plugins/pump.js b/lib/plugins/pump.js index 1f8dd958005..ff9e4f98e6c 100644 --- a/lib/plugins/pump.js +++ b/lib/plugins/pump.js @@ -136,14 +136,23 @@ function init (ctx) { }; function alexaReservoirHandler (next, slots, sbx) { - var response = 'You have ' + sbx.properties.pump.pump.reservoir + ' units remaining'; + var response = translate('alexaReservoir', { + params: [ + sbx.properties.pump.pump.reservoir + ] + }); next('Remaining insulin', response); } function alexaBatteryHandler (next, slots, sbx) { var battery = _.get(sbx, 'properties.pump.data.battery'); if (battery) { - var response = 'Your battery is at ' + battery.value + ' ' + battery.unit; + var response = translate('alexaPumpBattery', { + params: [ + battery.value, + battery.unit + ] + }); next('Pump battery', response); } else { next(); diff --git a/tests/cob.test.js b/tests/cob.test.js index 9f917cb4639..dbbecda0b67 100644 --- a/tests/cob.test.js +++ b/tests/cob.test.js @@ -8,6 +8,7 @@ describe('COB', function ( ) { var ctx = {}; ctx.settings = {}; ctx.language = require('../lib/language')(); + ctx.language.set('en'); var cob = require('../lib/plugins/cob')(ctx); diff --git a/tests/loop.test.js b/tests/loop.test.js index 78580470430..ca2d33a8fa7 100644 --- a/tests/loop.test.js +++ b/tests/loop.test.js @@ -7,6 +7,7 @@ var moment = require('moment'); var ctx = { language: require('../lib/language')() }; +ctx.language.set('en'); var env = require('../env')(); var loop = require('../lib/plugins/loop')(ctx); var sandbox = require('../lib/sandbox')(); diff --git a/tests/openaps.test.js b/tests/openaps.test.js index 798e3519960..296caf2939a 100644 --- a/tests/openaps.test.js +++ b/tests/openaps.test.js @@ -7,6 +7,7 @@ var moment = require('moment'); var ctx = { language: require('../lib/language')() }; +ctx.language.set('en'); var env = require('../env')(); var openaps = require('../lib/plugins/openaps')(ctx); var sandbox = require('../lib/sandbox')(); diff --git a/tests/pump.test.js b/tests/pump.test.js index deb2b359a5a..3907acbcb5e 100644 --- a/tests/pump.test.js +++ b/tests/pump.test.js @@ -7,6 +7,7 @@ var moment = require('moment'); var ctx = { language: require('../lib/language')() }; +ctx.language.set('en'); var env = require('../env')(); var pump = require('../lib/plugins/pump')(ctx); var sandbox = require('../lib/sandbox')(); @@ -253,7 +254,7 @@ describe('pump', function ( ) { , notifications: require('../lib/notifications')(env, ctx) , language: require('../lib/language')() }; - + ctx.language.set('en'); var sbx = sandbox.clientInit(ctx, now.valueOf(), {devicestatus: statuses}); pump.setProperties(sbx); @@ -265,7 +266,7 @@ describe('pump', function ( ) { pump.alexa.intentHandlers[1].intentHandler(function next(title, response) { title.should.equal('Pump battery'); - response.should.equal('Your battery is at 1.52 volts'); + response.should.equal('Your pump battery is at 1.52 volts'); done(); }, [], sbx); diff --git a/tests/rawbg.test.js b/tests/rawbg.test.js index 4697bea900a..017fcf9d6df 100644 --- a/tests/rawbg.test.js +++ b/tests/rawbg.test.js @@ -3,10 +3,13 @@ require('should'); describe('Raw BG', function ( ) { - var rawbg = require('../lib/plugins/rawbg')({ - settings: {} - , language: require('../lib/language')() - }); + var ctx = { + settings: {} + , language: require('../lib/language')() + }; + ctx.language.set('en'); + + var rawbg = require('../lib/plugins/rawbg')(ctx); var now = Date.now(); var data = { diff --git a/tests/upbat.test.js b/tests/upbat.test.js index 0d70e581721..8585d0d8f9c 100644 --- a/tests/upbat.test.js +++ b/tests/upbat.test.js @@ -9,7 +9,9 @@ describe('Uploader Battery', function ( ) { var sandbox = require('../lib/sandbox')(); var ctx = { settings: {} + , language: require('../lib/language')() }; + ctx.language.set('en'); var sbx = sandbox.clientInit(ctx, Date.now(), data); sbx.offerProperty = function mockedOfferProperty (name, setter) { @@ -22,7 +24,7 @@ describe('Uploader Battery', function ( ) { done(); }; - var upbat = require('../lib/plugins/upbat')(); + var upbat = require('../lib/plugins/upbat')(ctx); upbat.setProperties(sbx); }); @@ -38,11 +40,13 @@ describe('Uploader Battery', function ( ) { done(); } } + , language: require('../lib/language')() }; + ctx.language.set('en'); var sandbox = require('../lib/sandbox')(); var sbx = sandbox.clientInit(ctx, Date.now(), data); - var upbat = require('../lib/plugins/upbat')(); + var upbat = require('../lib/plugins/upbat')(ctx); upbat.setProperties(sbx); upbat.updateVisualisation(sbx); @@ -57,11 +61,13 @@ describe('Uploader Battery', function ( ) { done(); } } + , language: require('../lib/language')() }; + ctx.language.set('en'); var sandbox = require('../lib/sandbox')(); var sbx = sandbox.clientInit(ctx, Date.now(), {}); - var upbat = require('../lib/plugins/upbat')(); + var upbat = require('../lib/plugins/upbat')(ctx); upbat.setProperties(sbx); upbat.updateVisualisation(sbx); }); @@ -74,12 +80,13 @@ describe('Uploader Battery', function ( ) { options.hide.should.equal(true); done(); } - } + }, language: require('../lib/language')() }; + ctx.language.set('en'); var sandbox = require('../lib/sandbox')(); var sbx = sandbox.clientInit(ctx, Date.now(), {devicestatus: [{uploader: {battery: -1}}]}); - var upbat = require('../lib/plugins/upbat')(); + var upbat = require('../lib/plugins/upbat')(ctx); upbat.setProperties(sbx); upbat.updateVisualisation(sbx); }); @@ -88,11 +95,13 @@ describe('Uploader Battery', function ( ) { var ctx = { settings: {} + , language: require('../lib/language')() }; + ctx.language.set('en'); var sandbox = require('../lib/sandbox')(); var sbx = sandbox.clientInit(ctx, Date.now(), data); - var upbat = require('../lib/plugins/upbat')(); + var upbat = require('../lib/plugins/upbat')(ctx); upbat.setProperties(sbx); upbat.alexa.intentHandlers.length.should.equal(1);