Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
75 changes: 73 additions & 2 deletions lib/language.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
'use strict';

var _ = require('lodash');

function init() {
var lang;

Expand Down Expand Up @@ -763,7 +765,7 @@ function init() {
,he: 'גודל'
}
,'(none)' : {
cs: '(Prázdný)'
cs: '(žádný)'
,de: '(nichts)'
,es: '(ninguno)'
,fr: '(aucun)'
Expand All @@ -778,6 +780,19 @@ function init() {
,nb: '(ingen)'
,he: '(ללא)'
}
,'None' : {
cs: 'Žádný'
,de: 'Nichts'
,es: 'Ninguno'
,fr: 'Aucun'
,pt: 'Nenhum'
,sv: 'Tom'
,ro: 'Fără'
,bg: 'няма'
,hr: 'Prazno'
,it: 'Nessuno'
,dk: 'Ingen'
}
,'Result is empty' : {
cs: 'Prázdný výsledek'
,de: 'Leeres Ergebnis'
Expand Down Expand Up @@ -4083,16 +4098,72 @@ function init() {
cs: 'nejnovější nahoře'
,bg: 'Новите най-отгоре'
}
,'15m' : { // 15 minuts
cs: '15min'
}
,'Check BG' : {
cs: 'Kontrola glykémie'
}
,'predicted' : {
cs: 'předpovídaná'
}
,'w/raw' : {
cs: 'včetně RAW'
}
,'Unknown' : { // Message level
cs: 'Neznámý'
}
,'Urgent' : { // Message level
cs: 'Urgentní'
}
,'Warning' : { // Message level
cs: 'Varování'
}
,'Info' : { // Message level
cs: 'Informativní'
}
,'Lowest' : { // Message level
cs: 'Nejnižší'
}

};

language.translate = function translate(text) {
// case sensitive
language.translateCS = function translateCaseSensitive(text) {
if (translations[text] && translations[text][lang]) {
return translations[text][lang];
}
return text;
};

// case insensitive
language.translateCI = function translateCaseInsensitive(text) {
var utext = text.toUpperCase();
_.forEach(translations, function (ts, key) {
var ukey = key.toUpperCase();
if (ukey === utext && ts[lang]) {
text = ts[lang];
}
});
return text;
};

language.translate = function translate(text, options) {
var translated;
if (options && options.ci) {
translated = language.translateCI(text);
} else {
translated = language.translateCS(text);
}
if (options && options.params) {
for (var i = 0; i < options.params.length; i++) {
var r = new RegExp('\%' + (i+1), 'g');
translated = translated.replace(r, options.params[i]);
}
}
return translated;
};

language.DOMtranslate = function DOMtranslate($) {
// do translation of static text on load
$('.translate').each(function () {
Expand Down
3 changes: 2 additions & 1 deletion lib/levels.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';

var translate = require('./language')().translate;

var levels = {
URGENT: 2
Expand All @@ -25,7 +26,7 @@ levels.isAlarm = function isAlarm(level) {

levels.toDisplay = function toDisplay(level) {
var key = level !== undefined && level.toString();
return key && level2Display[key] || 'Unknown';
return key && translate(level2Display[key]) || translate('Unknown');
};

levels.toLowerCase = function toLowerCase(level) {
Expand Down
9 changes: 5 additions & 4 deletions lib/plugins/ar2.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var levels = require('../levels');
var times = require('../times');
var rawbg = require('./rawbg')();
var delta = require('./delta')();
var translate = require('../language')().translate;

var BG_REF = 140; //Central tendency
var BG_MIN = 36; //Not 39, but why?
Expand Down Expand Up @@ -46,7 +47,7 @@ function init() {
var scaled = predicted && _.map(predicted, function(p) { return sbx.scaleEntry(p) } );

if (scaled && scaled.length >= 3) {
prop.displayLine = (prop.usingRaw ? 'Raw BG' : 'BG') + ' 15m: ' + scaled[2] + ' ' + sbx.unitsLabel;
prop.displayLine = (prop.usingRaw ? translate('Raw BG') : translate('BG')) + ' ' + translate('15m') + ': ' + scaled[2] + ' ' + sbx.unitsLabel;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe just translate the 'm'?

}


Expand Down Expand Up @@ -220,15 +221,15 @@ function selectEventType (prop, sbx) {
}

function buildTitle(prop, sbx) {
var rangeLabel = prop.eventName ? prop.eventName.toUpperCase() : 'Check BG';
var rangeLabel = prop.eventName ? translate(prop.eventName, { ci: true }).toUpperCase() : translate('Check BG');
var title = levels.toDisplay(prop.level) + ', ' + rangeLabel;

var sgv = sbx.lastScaledSGV();
if (sgv > sbx.scaleMgdl(sbx.settings.thresholds.bgTargetBottom) && sgv < sbx.scaleMgdl(sbx.settings.thresholds.bgTargetTop)) {
title += ' predicted';
title += ' ' + translate('predicted');
}
if (prop.usingRaw) {
title += ' w/raw';
title += ' ' + translate('w/raw');
}
return title;
}
Expand Down
6 changes: 6 additions & 0 deletions tests/language.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,10 @@ describe('language', function ( ) {
language.translate('Carbs').should.equal('Sacharidy');
});

it('translate to Czech uppercase', function () {
var language = require('../lib/language')();
language.set('cs');
language.translate('carbs', { ci: true }).should.equal('Sacharidy');
});

});