Removed auto /*LANG*/, Added more languages

pull/1414/head
copoer 2022-02-10 09:30:00 -04:00
parent d54fdaa9e8
commit 187821bf49
80 changed files with 1781 additions and 142 deletions

View File

@ -295,7 +295,7 @@ const SocketsMenu = new State({
const startEnd = status => status ? "start" : "end";
/* translate status into english */
const onOff= status => status ? "on" : /*LANG*/"off";
const onOff= status => status ? "on" : "off";
/* create watching functions that will change the global

View File

@ -53,7 +53,7 @@ function countDown() {
g.reset().clearRect(0, 76, 44+44, g.getHeight()/2+6);
g.setFontAlign(0, -1, 0);
g.setFont("6x8").drawString(/*LANG*/"Timer", 44, g.getHeight()/2-20);
g.setFont("6x8").drawString("Timer", 44, g.getHeight()/2-20);
g.setFont("Michroma16").drawString(timeToString(timervalue), 44, g.getHeight()/2-10);
if (timervalue <= 0) {

View File

@ -21,7 +21,7 @@ function getVersion(name,file) {
}
getVersion("Bootloader","boot.info");
getVersion("Launcher","launch.info");
getVersion(/*LANG*/"Settings","setting.info");
getVersion("Settings","setting.info");
y+=h;
g.drawString(MEM.total+" JS Variables available",0,y+=h);

View File

@ -23,7 +23,7 @@ function getVersion(name,file) {
var versions = [
getVersion("Bootloader","boot.info"),
getVersion("Launcher","launch.info"),
getVersion(/*LANG*/"Settings","setting.info")
getVersion("Settings","setting.info")
];
var logo = E.toArrayBuffer(atob("PBwBAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAD/w+AAAAQAHA4hAAAAQAMAMhAAAAQAYBmhAAAAQAYBGiAAAAQAQCD/H74+R4wGDhoKJCSEwEDgoKJCT8wFDgoKJCSAwHDhoKJCSEQHj/H6I+R4YHmAAAACAAYEGAAABCAAMEMAAAA8AAHA4AAAAAAAD/wAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/gAAAAAAAB/g"));
@ -41,7 +41,7 @@ function drawInfo() {
getVersion("Bootloader","boot.info");
getVersion("Launcher","launch.info");
getVersion(/*LANG*/"Settings","setting.info");
getVersion("Settings","setting.info");
g.drawString(MEM.total+" JS Vars",0,y+=h);
g.drawString("Storage: "+(require("Storage").getFree()>>10)+"k free",0,y+=h);

View File

@ -108,7 +108,7 @@
g.setFont("6x8", 2);
g.setColor(1,1,1);
require("graph").drawLine(g, steps, {
//title: /*LANG*/"Steps",
//title: "Steps",
axes : true,
gridy : gridyValue,
y : 60, //offset on screen
@ -118,7 +118,7 @@
// show steps and duration of the chart
g.setFont("6x8", 2);
g.setColor(0,1,0);
g.drawString(/*LANG*/"steps", 30, 24);
g.drawString("steps", 30, 24);
g.drawString(stepsLastEntry, 30, 44);
g.drawString((history/3600000) + " hrs", 30, 64);

View File

@ -69,7 +69,7 @@
'stepGoal' : 10000,
'stepLength' : 75,
'lineOne' : "Distance",
'lineTwo' : /*LANG*/"Steps",
'lineTwo' : "Steps",
};
if (!settings) { loadSettings(); }
return (key in settings) ? settings[key] : DEFAULTS[key];
@ -169,7 +169,7 @@
if (active == 1) g.setColor(0x07E0); //green
else g.setColor(0xFFFF); //white
g.setFont("6x8", 2);
if (setting('lineOne') == /*LANG*/'Steps') {
if (setting('lineOne') == 'Steps') {
g.drawString(kFormatterSteps(stepsCounted),this.x+1,this.y); //first line, big number, steps
}
if (setting('lineOne') == 'Distance') {
@ -177,7 +177,7 @@
}
g.setFont("6x8", 1);
g.setColor(0xFFFF); //white
if (setting('lineTwo') == /*LANG*/'Steps') {
if (setting('lineTwo') == 'Steps') {
g.drawString(stepsCounted,this.x+1,this.y+14); //second line, small number, steps
}
if (setting('lineTwo') == 'Distance') {

View File

@ -39,9 +39,9 @@ function showMainMenu() {
};
alarms.forEach((alarm,idx)=>{
if (alarm.timer) {
txt = /*LANG*/"TIMER "+(alarm.on?/*LANG*/"on ":/*LANG*//*LANG*/"off ")+formatMins(alarm.timer);
txt = /*LANG*/"TIMER "+(alarm.on?/*LANG*/"on ":/*LANG*/"off ")+formatMins(alarm.timer);
} else {
txt = /*LANG*/"ALARM "+(alarm.on?/*LANG*/"on ":/*LANG*//*LANG*/"off ")+formatTime(alarm.hr);
txt = /*LANG*/"ALARM "+(alarm.on?/*LANG*/"on ":/*LANG*/"off ")+formatTime(alarm.hr);
if (alarm.rp) txt += /*LANG*/" (repeat)";
}
menu[txt] = function() {
@ -82,7 +82,7 @@ function editAlarm(alarmIndex) {
},
/*LANG*/'Enabled': {
value: en,
format: v=>v?"On":/*LANG*/"Off",
format: v=>v?"On":"Off",
onchange: v=>en=v
},
/*LANG*/'Repeat': {
@ -147,7 +147,7 @@ function editTimer(alarmIndex) {
},
/*LANG*/'Enabled': {
value: en,
format: v=>v?/*LANG*/"On":/*LANG*//*LANG*/"Off",
format: v=>v?/*LANG*/"On":/*LANG*/"Off",
onchange: v=>en=v
}
};

View File

@ -29,11 +29,11 @@
},
// {t:"musicstate", state:"play/pause",position,shuffle,repeat}
"musicstate" : function() {
require("messages").pushMessage({t:"modify",id:"music",title:/*LANG*/"Music",state:event.state});
require("messages").pushMessage({t:"modify",id:"music",title:"Music",state:event.state});
},
// {t:"musicinfo", artist,album,track,dur,c(track count),n(track num}
"musicinfo" : function() {
require("messages").pushMessage(Object.assign(event, {t:"modify",id:"music",title:/*LANG*/"Music"}));
require("messages").pushMessage(Object.assign(event, {t:"modify",id:"music",title:"Music"}));
},
// {"t":"call","cmd":"incoming/end","name":"Bob","number":"12421312"})
"call" : function() {
@ -63,7 +63,7 @@
// Music control
Bangle.musicControl = cmd => {
// play/pause/next/previous/volumeup/volumedown
gbSend({ t: /*LANG*/"music", n:cmd });
gbSend({ t: "music", n:cmd });
};
// Message response
Bangle.messageResponse = (msg,response) => {

View File

@ -37,7 +37,7 @@ require('Storage').writeJSON(SETTINGSFILE, {
secondsColoured: true,
secondsWithColon: true,
dateOnMain: "Long", // "Short", "Long", "ISO8601"
dateOnSecs: "Year", // "No", /*LANG*/"Year", "Weekday", LEGACY: true/false
dateOnSecs: "Year", // "No", "Year", "Weekday", LEGACY: true/false
weekDay: true,
calWeek: true,
upperCase: true,
@ -60,7 +60,7 @@ function loadSettings() {
secondsColoured = def(settings.secondsColoured, true);
secondsWithColon = def(settings.secondsWithColon, true);
dateOnMain = def(settings.dateOnMain, "Long");
dateOnSecs = def(settings.dateOnSecs, /*LANG*/"Year");
dateOnSecs = def(settings.dateOnSecs, "Year");
weekDay = def(settings.weekDay, true);
calWeek = def(settings.calWeek, false);
upperCase = def(settings.upperCase, true);
@ -68,7 +68,7 @@ function loadSettings() {
// Legacy
if (dateOnSecs === true)
dateOnSecs = /*LANG*/"Year";
dateOnSecs = "Year";
if (dateOnSecs === false)
dateOnSecs = "No";
}
@ -153,7 +153,7 @@ function draw() {
var md;
var yearfirst;
if (dateStr2.match(/\d\d\d\d$/)) { // formatted date ends with year
year = (dateOnSecs === /*LANG*/"Year" ? dateStr2.slice(-4) : require("locale").dow(date, 1));
year = (dateOnSecs === "Year" ? dateStr2.slice(-4) : require("locale").dow(date, 1));
md = dateStr2.slice(0, -4);
if (!md.endsWith(".")) // keep separator before the year only if it is a dot (31.12. but 31/12)
md = md.slice(0, -1);
@ -161,7 +161,7 @@ function draw() {
} else { // formatted date begins with year
if (!dateStr2.match(/^\d\d\d\d/)) // if year position cannot be detected...
dateStr2 = isoStr(date); // ...use ISO date format instead
year = (dateOnSecs === /*LANG*/"Year" ? dateStr2.slice(0, 4) : require("locale").dow(date, 1));
year = (dateOnSecs === "Year" ? dateStr2.slice(0, 4) : require("locale").dow(date, 1));
md = dateStr2.slice(5); // never keep separator directly after year
yearfirst = true;
}

View File

@ -1 +1 @@
!function(){"use strict";var t;!function(t){t.Stopped="STOP",t.Paused="PAUSE",t.Running="RUN"}(t||(t={}));const n={STOP:63488,PAUSE:65504,RUN:2016};function e(t,n,e){g.setColor(0),g.fillRect(n-60,e,n+60,e+30),g.setColor(65535),g.drawString(t,n,e)}function i(i){var s;g.setFontVector(30),g.setFontAlign(0,-1,0),e((i.distance/1e3).toFixed(2),60,55),e(function(t){const n=Math.round(t),e=Math.floor(n/3600),i=Math.floor(n/60)%60,s=n%60;return(e?e+":":"")+("0"+i).substr(-2)+":"+("0"+s).substr(-2)}(i.duration),172,55),e(function(t){if(t<.1667)return"__'__\"";const n=Math.round(1e3/t),e=Math.floor(n/60),i=n%60;return("0"+e).substr(-2)+"'"+("0"+i).substr(-2)+'"'}(i.speed),60,115),e(i.hr.toFixed(0),172,115),e(i.steps.toFixed(0),60,175),e(i.cadence.toFixed(0),172,175),g.setFont("6x8",2),g.setColor(i.gpsValid?2016:63488),g.fillRect(0,216,80,240),g.setColor(0),g.drawString("GPS",40,220),g.setColor(65535),g.fillRect(80,216,160,240),g.setColor(0),g.drawString(("0"+(s=new Date).getHours()).substr(-2)+":"+("0"+s.getMinutes()).substr(-2),120,220),g.setColor(n[i.status]),g.fillRect(160,216,230,240),g.setColor(0),g.drawString(i.status,200,220),g.setFont("6x8").setFontAlign(0,0,1).setColor(-1),i.status===t.Paused?g.drawString("START",236,60,1).drawString(" CLEAR ",236,180,1):i.status===t.Running?g.drawString(" PAUSE ",236,60,1).drawString(" PAUSE ",236,180,1):g.drawString("START",236,60,1).drawString(" ",236,180,1)}function s(t){g.clear(),g.setColor(50712),g.setFont("6x8",2),g.setFontAlign(0,-1,0),g.drawString("DIST (KM)",60,32),g.drawString("TIME",180,32),g.drawString("PACE",60,92),g.drawString("HEART",180,92),g.drawString("STEPS",60,152),g.drawString("CADENCE",180,152),i(t),Bangle.drawWidgets()}function a(n){n.status===t.Stopped&&function(t){const n=(new Date).toISOString().replace(/[-:]/g,""),e=`banglerun_${n.substr(2,6)}_${n.substr(9,6)}`;t.file=require("Storage").open(e,"w"),t.fileWritten=!1}(n),n.status===t.Running?n.status=t.Paused:n.status=t.Running,i(n)}const r={fix:NaN,lat:NaN,lon:NaN,alt:NaN,vel:NaN,dop:NaN,gpsValid:!1,x:NaN,y:NaN,z:NaN,t:NaN,timeSinceLog:0,hr:60,hrError:100,file:null,fileWritten:!1,drawing:!1,status:t.Stopped,duration:0,distance:0,speed:0,steps:0,cadence:0};var o;o=r,Bangle.on("GPS",n=>function(n,e){n.lat=e.lat,n.lon=e.lon,n.alt=e.alt,n.vel=e.speed/3.6,n.fix=e.fix,n.dop=e.hdop,n.gpsValid=n.fix>0,function(n){const e=Date.now();let i=(e-n.t)/1e3;if(isFinite(i)||(i=0),n.t=e,n.timeSinceLog+=i,n.status===t.Running&&(n.duration+=i),!n.gpsValid)return;const s=6371008.8+n.alt,a=n.lat*Math.PI/180,r=n.lon*Math.PI/180,o=s*Math.cos(a)*Math.cos(r),g=s*Math.cos(a)*Math.sin(r),d=s*Math.sin(a);if(!n.x)return n.x=o,n.y=g,void(n.z=d);const u=o-n.x,l=g-n.y,c=d-n.z,f=Math.sqrt(u*u+l*l+c*c);n.x=o,n.y=g,n.z=d,n.status===t.Running&&(n.distance+=f,n.speed=n.distance/n.duration||0,n.cadence=60*n.steps/n.duration||0)}(n),i(n),n.gpsValid&&n.status===t.Running&&n.timeSinceLog>5&&(n.timeSinceLog=0,function(t){t.fileWritten||(t.file.write(["timestamp","latitude","longitude","altitude","duration","distance","heartrate",/*LANG*/"steps"].join(",")+"\n"),t.fileWritten=!0),t.file.write([Date.now().toFixed(0),t.lat.toFixed(6),t.lon.toFixed(6),t.alt.toFixed(2),t.duration.toFixed(0),t.distance.toFixed(2),t.hr.toFixed(0),t.steps.toFixed(0)].join(",")+"\n")}(n))}(o,n)),Bangle.setGPSPower(1),function(t){Bangle.on("HRM",n=>function(t,n){if(0===n.confidence)return;const e=n.bpm-t.hr,i=Math.abs(e)+101-n.confidence,s=t.hrError/(t.hrError+i)||0;t.hr+=e*s,t.hrError+=(i-t.hrError)*s}(t,n)),Bangle.setHRMPower(1)}(r),function(n){Bangle.on("step",()=>function(n){n.status===t.Running&&(n.steps+=1)}(n))}(r),function(t){Bangle.loadWidgets(),Bangle.on("lcdPower",n=>{t.drawing=n,n&&s(t)}),s(t)}(r),setWatch(()=>a(r),BTN1,{repeat:!0,edge:"falling"}),setWatch(()=>function(n){n.status===t.Paused&&function(t){t.duration=0,t.distance=0,t.speed=0,t.steps=0,t.cadence=0}(n),n.status===t.Running?n.status=t.Paused:n.status=t.Stopped,i(n)}(r),BTN3,{repeat:!0,edge:"falling"})}();
!function(){"use strict";var t;!function(t){t.Stopped="STOP",t.Paused="PAUSE",t.Running="RUN"}(t||(t={}));const n={STOP:63488,PAUSE:65504,RUN:2016};function e(t,n,e){g.setColor(0),g.fillRect(n-60,e,n+60,e+30),g.setColor(65535),g.drawString(t,n,e)}function i(i){var s;g.setFontVector(30),g.setFontAlign(0,-1,0),e((i.distance/1e3).toFixed(2),60,55),e(function(t){const n=Math.round(t),e=Math.floor(n/3600),i=Math.floor(n/60)%60,s=n%60;return(e?e+":":"")+("0"+i).substr(-2)+":"+("0"+s).substr(-2)}(i.duration),172,55),e(function(t){if(t<.1667)return"__'__\"";const n=Math.round(1e3/t),e=Math.floor(n/60),i=n%60;return("0"+e).substr(-2)+"'"+("0"+i).substr(-2)+'"'}(i.speed),60,115),e(i.hr.toFixed(0),172,115),e(i.steps.toFixed(0),60,175),e(i.cadence.toFixed(0),172,175),g.setFont("6x8",2),g.setColor(i.gpsValid?2016:63488),g.fillRect(0,216,80,240),g.setColor(0),g.drawString("GPS",40,220),g.setColor(65535),g.fillRect(80,216,160,240),g.setColor(0),g.drawString(("0"+(s=new Date).getHours()).substr(-2)+":"+("0"+s.getMinutes()).substr(-2),120,220),g.setColor(n[i.status]),g.fillRect(160,216,230,240),g.setColor(0),g.drawString(i.status,200,220),g.setFont("6x8").setFontAlign(0,0,1).setColor(-1),i.status===t.Paused?g.drawString("START",236,60,1).drawString(" CLEAR ",236,180,1):i.status===t.Running?g.drawString(" PAUSE ",236,60,1).drawString(" PAUSE ",236,180,1):g.drawString("START",236,60,1).drawString(" ",236,180,1)}function s(t){g.clear(),g.setColor(50712),g.setFont("6x8",2),g.setFontAlign(0,-1,0),g.drawString("DIST (KM)",60,32),g.drawString("TIME",180,32),g.drawString("PACE",60,92),g.drawString("HEART",180,92),g.drawString("STEPS",60,152),g.drawString("CADENCE",180,152),i(t),Bangle.drawWidgets()}function a(n){n.status===t.Stopped&&function(t){const n=(new Date).toISOString().replace(/[-:]/g,""),e=`banglerun_${n.substr(2,6)}_${n.substr(9,6)}`;t.file=require("Storage").open(e,"w"),t.fileWritten=!1}(n),n.status===t.Running?n.status=t.Paused:n.status=t.Running,i(n)}const r={fix:NaN,lat:NaN,lon:NaN,alt:NaN,vel:NaN,dop:NaN,gpsValid:!1,x:NaN,y:NaN,z:NaN,t:NaN,timeSinceLog:0,hr:60,hrError:100,file:null,fileWritten:!1,drawing:!1,status:t.Stopped,duration:0,distance:0,speed:0,steps:0,cadence:0};var o;o=r,Bangle.on("GPS",n=>function(n,e){n.lat=e.lat,n.lon=e.lon,n.alt=e.alt,n.vel=e.speed/3.6,n.fix=e.fix,n.dop=e.hdop,n.gpsValid=n.fix>0,function(n){const e=Date.now();let i=(e-n.t)/1e3;if(isFinite(i)||(i=0),n.t=e,n.timeSinceLog+=i,n.status===t.Running&&(n.duration+=i),!n.gpsValid)return;const s=6371008.8+n.alt,a=n.lat*Math.PI/180,r=n.lon*Math.PI/180,o=s*Math.cos(a)*Math.cos(r),g=s*Math.cos(a)*Math.sin(r),d=s*Math.sin(a);if(!n.x)return n.x=o,n.y=g,void(n.z=d);const u=o-n.x,l=g-n.y,c=d-n.z,f=Math.sqrt(u*u+l*l+c*c);n.x=o,n.y=g,n.z=d,n.status===t.Running&&(n.distance+=f,n.speed=n.distance/n.duration||0,n.cadence=60*n.steps/n.duration||0)}(n),i(n),n.gpsValid&&n.status===t.Running&&n.timeSinceLog>5&&(n.timeSinceLog=0,function(t){t.fileWritten||(t.file.write(["timestamp","latitude","longitude","altitude","duration","distance","heartrate","steps"].join(",")+"\n"),t.fileWritten=!0),t.file.write([Date.now().toFixed(0),t.lat.toFixed(6),t.lon.toFixed(6),t.alt.toFixed(2),t.duration.toFixed(0),t.distance.toFixed(2),t.hr.toFixed(0),t.steps.toFixed(0)].join(",")+"\n")}(n))}(o,n)),Bangle.setGPSPower(1),function(t){Bangle.on("HRM",n=>function(t,n){if(0===n.confidence)return;const e=n.bpm-t.hr,i=Math.abs(e)+101-n.confidence,s=t.hrError/(t.hrError+i)||0;t.hr+=e*s,t.hrError+=(i-t.hrError)*s}(t,n)),Bangle.setHRMPower(1)}(r),function(n){Bangle.on("step",()=>function(n){n.status===t.Running&&(n.steps+=1)}(n))}(r),function(t){Bangle.loadWidgets(),Bangle.on("lcdPower",n=>{t.drawing=n,n&&s(t)}),s(t)}(r),setWatch(()=>a(r),BTN1,{repeat:!0,edge:"falling"}),setWatch(()=>function(n){n.status===t.Paused&&function(t){t.duration=0,t.distance=0,t.speed=0,t.steps=0,t.cadence=0}(n),n.status===t.Running?n.status=t.Paused:n.status=t.Stopped,i(n)}(r),BTN3,{repeat:!0,edge:"falling"})}();

View File

@ -191,8 +191,8 @@ function btn3Pressed() {
if (settings.vibrate == "forward")
settings.vibrate = "backward";
else if (settings.vibrate == "backward")
settings.vibrate = /*LANG*/"off";
else if (settings.vibrate == /*LANG*/"off")
settings.vibrate = "off";
else if (settings.vibrate == "off")
settings.vibrate = "forward";
}
else if(status == 5){

View File

@ -503,7 +503,7 @@
if (settings.startWithHrm){
Bangle.setHRMPower = function(isOn, app) {
log("setHRMPower for " + app + ": " + (isOn?"on":/*LANG*/"off"));
log("setHRMPower for " + app + ": " + (isOn?"on":"off"));
if (settings.enabled){
Bangle.setBTHRMPower(isOn, app);
}

View File

@ -58,7 +58,7 @@ function draw(y, hrv) {
}
g.setRotation(3);
g.setFontVector(12).drawString(/*LANG*/"Reset",g.getHeight()/2, g.getWidth()-10);
g.setFontVector(12).drawString("Reset",g.getHeight()/2, g.getWidth()-10);
g.setRotation(0);
}

View File

@ -227,7 +227,7 @@ function isCircleEnabled(type) {
function getCircleColor(type) {
const pos = getCirclePosition(type);
const color = settings["circle" + (pos + 1) + /*LANG*/"color"];
const color = settings["circle" + (pos + 1) + "color"];
if (color && color != "") return color;
}

View File

@ -44,7 +44,7 @@
},
/*LANG*/'show widgets': {
value: "showWidgets" in settings ? settings.showWidgets : false,
format: () => (settings.showWidgets ? /*LANG*/'Yes' : 'No'),
format: () => (settings.showWidgets ? 'Yes' : 'No'),
onchange: x => save('showWidgets', x),
},
/*LANG*/'weather circle': {
@ -167,7 +167,7 @@
},
/*LANG*/'colorize icon': {
value: colorizeIconKey in settings ? settings[colorizeIconKey] : false,
format: () => (settings[colorizeIconKey] ? /*LANG*/'Yes' : 'No'),
format: () => (settings[colorizeIconKey] ? 'Yes' : 'No'),
onchange: x => save(colorizeIconKey, x),
},
};

View File

@ -16,7 +16,7 @@ var lasty = 0;
var lastx = 0;
if (settings.HID=="kbmedia") {
profile = /*LANG*/'Music';
profile = 'Music';
sendHid = function (code, cb) {
try {
NRF.sendHIDReport([1,code], () => {
@ -57,29 +57,29 @@ if (next) {
if(lasty > 40){
writeLine('Down', 3);
// setTimeout(drawApp, 1000);
// Bluetooth.println(JSON.stringify({t:/*LANG*/"music", n:"volumedown"}));
// Bluetooth.println(JSON.stringify({t:"music", n:"volumedown"}));
down(() => {});
}
else if(lasty < -40){
writeLine('Up', 3);
// setTimeout(drawApp, 1000);
//Bluetooth.println(JSON.stringify({t:/*LANG*/"music", n:"volumeup"}));
//Bluetooth.println(JSON.stringify({t:"music", n:"volumeup"}));
up(() => {});
} else if(lastx < -40){
writeLine('Prev', 3);
// setTimeout(drawApp, 1000);
// Bluetooth.println(JSON.stringify({t:/*LANG*/"music", n:"previous"}));
// Bluetooth.println(JSON.stringify({t:"music", n:"previous"}));
prev(() => {});
} else if(lastx > 40){
writeLine('Next', 3);
// setTimeout(drawApp, 1000);
// Bluetooth.println(JSON.stringify({t:/*LANG*/"music", n:"next"}));
// Bluetooth.println(JSON.stringify({t:"music", n:"next"}));
next(() => {});
} else if(lastx==0 && lasty==0){
writeLine('play/pause', 3);
//setTimeout(drawApp, 1000);
// Bluetooth.println(JSON.stringify({t:/*LANG*/"music", n:"play"}));
// Bluetooth.println(JSON.stringify({t:"music", n:"play"}));
toggle(() => {});
}

View File

@ -35,7 +35,7 @@ function setting(key) {
'battery': true,
'batteryLvl': 30,
'weather': true,
/*LANG*/'steps': true,
'steps': true,
'heartrate': true
};
return (key in settings) ? settings[key] : DEFAULTS[key];
@ -45,7 +45,7 @@ function setting(key) {
let showBattery = setting('battery');
let batteryWarnLevel = setting('batteryLvl');
let showWeather = setting('weather');
let showSteps = setting(/*LANG*/'steps');
let showSteps = setting('steps');
let showHeartRate = setting('heartrate');

View File

@ -710,7 +710,7 @@
{
Face:'1-12', colored:true,
Hands:'rounded', withSeconds:true,
Foreground:'Theme', Background:/*LANG*/'Theme', Seconds:'#FF0000'
Foreground:'Theme', Background:'Theme', Seconds:'#FF0000'
},
require('Storage').readJSON('configurable_clock.json', true) || {}
);
@ -855,8 +855,8 @@
activeLayout = null;
g.setTheme({
fg:(Settings.Foreground === /*LANG*/'Theme' ? Theme.fg : Settings.Foreground || '#000000'),
bg:(Settings.Background === /*LANG*/'Theme' ? Theme.bg : Settings.Background || '#FFFFFF')
fg:(Settings.Foreground === 'Theme' ? Theme.fg : Settings.Foreground || '#000000'),
bg:(Settings.Background === 'Theme' ? Theme.bg : Settings.Background || '#FFFFFF')
});
g.clear(true); // also installs the current theme
@ -872,8 +872,8 @@
/**** renderClock ****/
function renderClock () {
g.setColor (Settings.Foreground === /*LANG*/'Theme' ? Theme.fg : Settings.Foreground || '#000000');
g.setBgColor(Settings.Background === /*LANG*/'Theme' ? Theme.bg : Settings.Background || '#FFFFFF');
g.setColor (Settings.Foreground === 'Theme' ? Theme.fg : Settings.Foreground || '#000000');
g.setBgColor(Settings.Background === 'Theme' ? Theme.bg : Settings.Background || '#FFFFFF');
switch (Settings.Face) {
case 'none':
@ -951,7 +951,7 @@
let HoursAngle = (Hours+(Minutes/60))/12 * twoPi - Pi;
let MinutesAngle = (Minutes/60) * twoPi - Pi;
g.setColor(Settings.Foreground === /*LANG*/'Theme' ? Theme.fg : Settings.Foreground || '#000000');
g.setColor(Settings.Foreground === 'Theme' ? Theme.fg : Settings.Foreground || '#000000');
switch (Settings.Hands) {
case 'simple':
@ -968,10 +968,10 @@
transformPolygon(roundedMinuteHandPolygon, CenterX,CenterY, MinutesAngle);
g.fillPoly(transformedPolygon);
// g.setColor(Settings.Foreground === /*LANG*/'Theme' ? Theme.fg || '#000000');
// g.setColor(Settings.Foreground === 'Theme' ? Theme.fg || '#000000');
g.fillCircle(CenterX,CenterY, outerBoltRadius);
g.setColor(Settings.Background === /*LANG*/'Theme' ? Theme.bg : Settings.Background || '#FFFFFF');
g.setColor(Settings.Background === 'Theme' ? Theme.bg : Settings.Background || '#FFFFFF');
g.drawCircle(CenterX,CenterY, outerBoltRadius);
g.fillCircle(CenterX,CenterY, innerBoltRadius);
break;
@ -986,7 +986,7 @@
}
if (Settings.withSeconds) {
g.setColor(Settings.Seconds === /*LANG*/'Theme' ? Theme.fgH : Settings.Seconds || '#FF0000');
g.setColor(Settings.Seconds === 'Theme' ? Theme.fgH : Settings.Seconds || '#FF0000');
let Seconds = now.getSeconds();
let SecondsAngle = (Seconds/60) * twoPi - Pi;
@ -1089,9 +1089,9 @@
let Seconds = (Changes.Seconds == null ? Settings.Seconds : Changes.Seconds);
activeLayout = ColorsScreen;
activeLayout['Foreground'].bgCol = (Foreground === /*LANG*/'Theme' ? Theme.fg : Foreground);
activeLayout['Background'].bgCol = (Background === /*LANG*/'Theme' ? Theme.bg : Background);
activeLayout['Seconds'].bgCol = (Seconds === /*LANG*/'Theme' ? Theme.fgH : Seconds);
activeLayout['Foreground'].bgCol = (Foreground === 'Theme' ? Theme.fg : Foreground);
activeLayout['Background'].bgCol = (Background === 'Theme' ? Theme.bg : Background);
activeLayout['Seconds'].bgCol = (Seconds === 'Theme' ? Theme.fgH : Seconds);
activeLayout.render();
}
@ -1123,12 +1123,12 @@
activeLayout['#FF00FF'].selected = (chosenColor === '#FF00FF');
activeLayout['#00FFFF'].selected = (chosenColor === '#00FFFF');
activeLayout['#FFFFFF'].selected = (chosenColor === '#FFFFFF');
activeLayout['Theme'].selected = (chosenColor === /*LANG*/'Theme');
activeLayout['Theme'].selected = (chosenColor === 'Theme');
activeLayout.render();
}
function chooseColor (Control) { Bangle.buzz(); chosenColor = Control.id; refreshColorChoiceScreen(); }
function chooseThemeColor () { Bangle.buzz(); chosenColor = /*LANG*/'Theme'; refreshColorChoiceScreen(); }
function chooseThemeColor () { Bangle.buzz(); chosenColor = 'Theme'; refreshColorChoiceScreen(); }
function applyColor () {
Changes[ColorToChange] = chosenColor;
@ -1347,9 +1347,9 @@
Drawable(drawColorChoice, { id:'#00FFFF', common:ColorChoice, col:'#00FFFF' }),
], filly:1 },
{ type:'h', c:[
Label('use Theme:', { id:/*LANG*/'Theme', common:leftAligned, pad:4 }),
Label('use Theme:', { id:'Theme', common:leftAligned, pad:4 }),
{ width:10 },
Drawable(drawColorChoice, { id:/*LANG*/'Theme', common:ColorChoice, col:Theme.fg }),
Drawable(drawColorChoice, { id:'Theme', common:ColorChoice, col:Theme.fg }),
], filly:1, onTouch:chooseThemeColor },
{ height:4 },
{ type:'h', c:[

View File

@ -225,7 +225,7 @@ function connection_setup() {
return device.gatt.connect();
}).then(function(ga) {
gatt = ga;
E.showMessage(/*LANG*/"Connected");
E.showMessage("Connected");
return gatt.getPrimaryService("1816");
}).then(function(s) {
service = s;

View File

@ -244,7 +244,7 @@ function run(){
Bangle.setLCDMode();
g.clear();
g.flip();
E.showMessage(/*LANG*/"Loading...");
E.showMessage("Loading...");
load(app.src);
}

View File

@ -46,7 +46,7 @@ function showMenu() {
updateSettings();
}
},
/*LANG*/'Year': {
'Year': {
value: settings.year,
step: 1,
onchange: v => {

View File

@ -59,7 +59,7 @@ function parseDevice(d) {
g.clearRect(0, 60, 239, 239).setFontAlign(0, 0, 0).setColor(0, 1, 0).drawString("Found device", 120, 120).flip();
device.gatt.connect().then(function(ga) {
gatt = ga;
g.clearRect(0, 60, 239, 239).setFontAlign(0, 0, 0).setColor(0, 1, 0).drawString(/*LANG*/"Connected", 120, 120).flip();
g.clearRect(0, 60, 239, 239).setFontAlign(0, 0, 0).setColor(0, 1, 0).drawString("Connected", 120, 120).flip();
return gatt.getPrimaryService("FFE0");
}).then(function(s) {
service = s;

View File

@ -2,7 +2,7 @@ const locale = require("locale");
const storage = require('Storage');
const is12Hour = (storage.readJSON("setting.json", 1) || {})["12hour"];
const color = (storage.readJSON("ffcniftyb.json", 1) || {})[/*LANG*/"color"] || 63488 /* red */;
const color = (storage.readJSON("ffcniftyb.json", 1) || {})["color"] || 63488 /* red */;
/* Clock *********************************************/

View File

@ -5,7 +5,7 @@ function satelliteImage() {
var Layout = require("Layout");
var layout;
//Bangle.setGPSPower(1, "app");
E.showMessage(/*LANG*/"Loading..."); // avoid showing rubbish on screen
E.showMessage("Loading..."); // avoid showing rubbish on screen
var lastFix = {
fix: -1,

View File

@ -251,7 +251,7 @@ function plotTrack(info) {
g.drawString(require("locale").distance(dist),g.getWidth() / 2, g.getHeight() - 20);
g.setFont("6x8",2);
g.setFontAlign(0,0,3);
g.drawString(/*LANG*/"Back",g.getWidth() - 10, g.getHeight()/2);
g.drawString("Back",g.getWidth() - 10, g.getHeight()/2);
setWatch(function() {
viewTrack(info.fn, info);
}, global.BTN3||BTN1);
@ -335,7 +335,7 @@ function plotGraph(info, style) {
});
g.setFont("6x8",2);
g.setFontAlign(0,0,3);
g.drawString(/*LANG*/"Back",g.getWidth() - 10, g.getHeight() - 40);
g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40);
setWatch(function() {
viewTrack(info.fn, info);
}, global.BTN3||BTN1);

View File

@ -40,7 +40,7 @@ var layout = new Layout( {
{type:"txt", fillx:1, filly:1, font:"6x8:2", label:"---", id:"gpstime" }
]},{lazy:true, btns: [
{ label : "Set", cb : setGPSTime},
{ label : /*LANG*/"Back", cb : ()=>load() }
{ label : "Back", cb : ()=>load() }
]});

View File

@ -40,7 +40,7 @@ function showNumberPicker(currentGuess, randomNum) {
function showPrompt(msg, buzzCount, alarm) {
E.showPrompt(msg,{
title:"STAY AWAKE!",
buttons : {/*LANG*/"Sleep":0,"Stop":1} // default is sleep so it'll come back in 10 mins
buttons : {"Sleep":0,"Stop":1} // default is sleep so it'll come back in 10 mins
}).then(function(choice) {
buzzCount = 0;
if (choice==0) {

View File

@ -5,7 +5,7 @@ const settings = storage.readJSON('setting.json',1) || { HID: false };
var sendHid, next, prev, toggle, up, down, profile;
if (settings.HID=="kbmedia") {
profile = /*LANG*/'Music';
profile = 'Music';
sendHid = function (code, cb) {
try {
NRF.sendHIDReport([1,code], () => {

View File

@ -7,7 +7,7 @@ var lasty = 0;
var lastx = 0;
if (settings.HID=="kbmedia") {
profile = /*LANG*/'Music';
profile = 'Music';
sendHid = function (code, cb) {
try {
NRF.sendHIDReport([1,code], () => {
@ -36,8 +36,8 @@ if (settings.HID=="kbmedia") {
function drawApp() {
g.clear();
if(Bangle.isLocked()==false) E.showMessage('Swipe', /*LANG*/'Music');
else E.showMessage('Locked', /*LANG*/'Music');
if(Bangle.isLocked()==false) E.showMessage('Swipe', 'Music');
else E.showMessage('Locked', 'Music');
}
if (next) {

View File

@ -172,7 +172,7 @@ function setNumSets(){
type:"v", c: [
{type:"txt", font:"6x8:2", label:"Number Sets", id:"title" },
{type:"txt", font:"30%", pad: 20, label: numSets, id:"value" },
{type:"btn", font:"6x8:2", label:/*LANG*/"Back", cb: l => {
{type:"btn", font:"6x8:2", label:"Back", cb: l => {
setRestTime();
}
}
@ -217,7 +217,7 @@ function setRestTime(){
type:"v", c: [
{type:"txt", font:"6x8:2", label:"Rest Time", id:"title" },
{type:"txt", font:"30%", pad: 20, label: restTime, id:"value" },
{type:"btn", font:"6x8:2", label:/*LANG*/"Back", cb: l => {
{type:"btn", font:"6x8:2", label:"Back", cb: l => {
setActiveTime();
}
}

View File

@ -152,7 +152,7 @@ function showMenu()
"Work seconds" : { value : settings.workseg,min:0,max:59,step:5,onchange : v => { settings.workseg=v; } },
"Rest minutes" : { value : settings.restmin,min:0,max:59,step:1,onchange : v => { settings.restmin=v; } },
"Rest seconds" : { value : settings.restseg,min:0,max:59,step:5,onchange : v => { settings.restseg=v; } },
"Signal type" : { value : settings.buzz,format : v => v?"Buzz":/*LANG*/"Beep",onchange : v => { settings.buzz=v; }}
"Signal type" : { value : settings.buzz,format : v => v?"Buzz":"Beep",onchange : v => { settings.buzz=v; }}
};
E.showMenu(mainmenu);

View File

@ -132,7 +132,7 @@ E.on('notify',msg=>{
// Apple media service
E.on('AMS',a=>{
function push(m) {
var msg = { t : "modify", id : "music", title:/*LANG*/"Music" };
var msg = { t : "modify", id : "music", title:"Music" };
if (a.id=="artist") msg.artist = m;
else if (a.id=="album") msg.album = m;
else if (a.id=="title") msg.track = m;

View File

@ -2,12 +2,12 @@ const affirmative = [
'It is\ncertain.',
'It is\ndicededly\nso.',
'Without\na doubt.',
/*LANG*/'Yes\ndefinitely.',
'Yes\ndefinitely.',
'You may\nrely\non it.',
'As I see,\nit yes.',
'Most\nlikely.',
'Outlook\ngood.',
/*LANG*/'Yes.',
'Yes.',
'Signs point\nto yes.'
];
const nonCommittal = [

View File

@ -3,7 +3,7 @@ const locale = require('locale');
const storage = require('Storage')
let settings = {
alarm: -1,
dataRow1: /*LANG*/"Steps",
dataRow1: "Steps",
dataRow2: "Temp",
dataRow3: "Battery"
};
@ -151,7 +151,7 @@ function _drawData(key, y, c){
var value = "ERR";
var should_print= true;
if(key == /*LANG*/"STEPS"){
if(key == "STEPS"){
text = "STEP";
value = getSteps();

View File

@ -107,8 +107,8 @@
step: 1
},
unlockSide: {
title: ["off", "left", "right", "top", "bottom", "front", /*LANG*/"back"],
value: ["", "left", "right", "top", "bottom", "front", /*LANG*/"back"]
title: ["off", "left", "right", "top", "bottom", "front", "back"],
value: ["", "left", "right", "top", "bottom", "front", "back"]
},
tapOn: {
title: ["on locked", "on unlocked", "always on"],

View File

@ -21,7 +21,7 @@
area: "tr",
sortorder: 10,
width: 23,
dragStatus: /*LANG*/"off",
dragStatus: "off",
// internal function //
// write settings to storage
@ -165,7 +165,7 @@
// on touch release remove drag listener and reset drag status to indicate stopped drag action
if (!event.b) {
Bangle.removeListener("drag", w.dragListener);
w.dragStatus = /*LANG*/"off";
w.dragStatus = "off";
}
// clear variables
@ -181,7 +181,7 @@
var w = WIDGETS.lightswitch;
// skip all if drag action ongoing
if (w.dragStatus === /*LANG*/"off") {
if (w.dragStatus === "off") {
// check if inside widget area
if (!(!w || cursor.x < w.x || cursor.x > w.x + w.width ||
@ -199,7 +199,7 @@
// clear drag timeout
if (typeof w.dragStatus === "number") clearTimeout(w.dragStatus);
// reset drag status to indicate stopped drag action
w.dragStatus = /*LANG*/"off";
w.dragStatus = "off";
}, w.dragDelay, w);
}
// switch backlight

View File

@ -20,6 +20,6 @@ const avg = [];
setInterval(function() {
drawTemperature();
}, 2000);
E.showMessage(/*LANG*/"Loading...");
E.showMessage("Loading...");
Bangle.loadWidgets();
Bangle.drawWidgets();

View File

@ -73,7 +73,7 @@ let lastTemp = 0;
const phone = {
get status() {
return NRF.getSecurityStatus().connected ? /*LANG*/"Yes" : "No";
return NRF.getSecurityStatus().connected ? "Yes" : "No";
},
message: null,
messageTimeout: null,

View File

@ -14,7 +14,7 @@ E.showMenu = function(items) {
// show "< Back" item (or similar) as button instead (i.e. remove from the menu)
var back,backLbl;
for (var b of [/*LANG*/'Back', 'Exit', 'Cancel']) {
for (var b of ['Back', 'Exit', 'Cancel']) {
if (!items[b] && items['< '+b]) b = '< '+b;
back = items[b];
if (typeof back === "function") {

View File

@ -98,7 +98,7 @@ function getMessageImage(msg) {
if (s=="whatsapp") return atob("GBiBAAB+AAP/wAf/4A//8B//+D///H9//n5//nw//vw///x///5///4///8e//+EP3/APn/wPn/+/j///H//+H//8H//4H//wMB+AA==");
if (s=="wordfeud") return atob("GBgCWqqqqqqlf//////9v//////+v/////++v/////++v8///Lu+v8///L++v8///P/+v8v//P/+v9v//P/+v+fx/P/+v+Pk+P/+v/PN+f/+v/POuv/+v/Ofdv/+v/NvM//+v/I/Y//+v/k/k//+v/i/w//+v/7/6//+v//////+v//////+f//////9Wqqqqqql");
if (msg.id=="music") return atob("FhaBAH//+/////////////h/+AH/4Af/gB/+H3/7/f/v9/+/3/7+f/vB/w8H+Dwf4PD/x/////////////3//+A=");
if (msg.id==/*LANG*/"back") return getBackImage();
if (msg.id=="back") return getBackImage();
return getNotificationImage();
}
function getMessageImageCol(msg,def) {
@ -375,7 +375,7 @@ function checkMessages(options) {
if (msg && msg.new) g.setBgColor(colBg);
else g.setBgColor((idx&1) ? colSBg1 : colSBg2);
g.clearRect(r.x,r.y,r.x+r.w-1,r.y+r.h-1).setColor(g.theme.fg);
if (idx==0) msg = {id:/*LANG*/"back", title:"< Back"};
if (idx==0) msg = {id:"back", title:"< Back"};
if (!msg) return;
var x = r.x+2, title = msg.title, body = msg.body;
var img = getMessageImage(msg);

View File

@ -29,7 +29,7 @@ function welcome() {
setWatch(() => {
clearInterval(i);
clearWatch();
E.showMessage(/*LANG*/'Loading...');
E.showMessage('Loading...');
res();
}, BTN2, {repeat:false});
});

View File

@ -32,7 +32,7 @@
"Date on touch": {
value: 0|numeralsSettings.showDate,
min:0,max:1,
format: v=>v?"On":/*LANG*/"Off",
format: v=>v?"On":"Off",
onchange: v=> { numeralsSettings.showDate=v; updateSettings();}
},
"< back": back

View File

@ -12,7 +12,7 @@ const SETTINGS_FILE = "pebble.json";
let settings;
function loadSettings() {
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', /*LANG*/'color': 'Green'};
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green'};
}
var img = require("heatshrink").decompress(atob("oFAwkEogA/AH4A/AH4A/AH4A/AE8AAAoeXoAfeDQUBmcyD7A+Dh///8QD649CiAfaHwUvD4sEHy0DDYIfEICg+Cn4fHICY+DD4nxcgojOHwgfEIAYfRCIQaDD4ZAFD5r7DH4//kAfRCIZ/GAAnwD5p9DX44fTHgYSBf4ofVDAQEBl4fFUAgfOXoQzBgIfFBAIfPP4RAEAoYAB+cRiK/SG4h/WIBAfXIA7CBAAswD55AHn6fUIBMCD65AHl4gCmcziAfQQJqfQQJpiDgk0IDXxQLRAEECaBM+QgRYRYgUIA0CD4ggSQJiDCiAKBICszAAswD55AHABKBVD7BAFABIqBD5pAFABPxD55AOD6BADiIAJQAyxLABwf/gaAPAH4A/AH4ARA=="));

View File

@ -12,7 +12,7 @@ const SETTINGS_FILE = "pebbleDistance.json";
let settings;
function loadSettings() {
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', /*LANG*/'color': 'Green', 'avStep': 0.75};
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green', 'avStep': 0.75};
}
var img = require("heatshrink").decompress(atob("oFAwkEogA/AH4A/AH4A/AH4A/AE8AAAoeXoAfeDQUBmcyD7A+Dh///8QD649CiAfaHwUvD4sEHy0DDYIfEICg+Cn4fHICY+DD4nxcgojOHwgfEIAYfRCIQaDD4ZAFD5r7DH4//kAfRCIZ/GAAnwD5p9DX44fTHgYSBf4ofVDAQEBl4fFUAgfOXoQzBgIfFBAIfPP4RAEAoYAB+cRiK/SG4h/WIBAfXIA7CBAAswD55AHn6fUIBMCD65AHl4gCmcziAfQQJqfQQJpiDgk0IDXxQLRAEECaBM+QgRYRYgUIA0CD4ggSQJiDCiAKBICszAAswD55AHABKBVD7BAFABIqBD5pAFABPxD55AOD6BADiIAJQAyxLABwf/gaAPAH4A/AH4ARA=="));

View File

@ -106,7 +106,7 @@ let mainLayout = new Layout({
type: 'txt',
font: '15%',
label: '00:00',
id: /*LANG*/'Timer',
id: 'Timer',
halign: 1,
pad: 3
}

View File

@ -58,7 +58,7 @@ var showMainMenu = () => {
showScrollerContainingAppsWithPatterns().then((selected) => {
var pattern = selected.pattern;
var appName = selected.appName;
if (pattern === /*LANG*/"back") {
if (pattern === "back") {
showMainMenu();
} else {
E.showPrompt(appName + "\n\npattern:\n" + pattern, {
@ -309,7 +309,7 @@ var showScrollerContainingAppsWithPatterns = () => {
},
select: (i) => {
log("selected: " + i);
var pattern = /*LANG*/"back";
var pattern = "back";
var appName = "";
if (i > 0) {
var storedPattern = storedPatternsArray[i - 1];

View File

@ -63,7 +63,7 @@ var startWith;
/* For development purposes
require('Storage').writeJSON(SETTINGSFILE, {
splashMode: /*LANG*/"off",
splashMode: "off",
startWith: "5x5",
});
/* */
@ -622,9 +622,9 @@ function framedText(text, x, y, textcol, framecol) {
}
// Show the splash screen at program start, call afterSplash afterwards.
// If spash mode is /*LANG*/"off", call afterSplash directly.
// If spash mode is "off", call afterSplash directly.
function showSplash(afterSplash) {
if (splashMode === /*LANG*/"off")
if (splashMode === "off")
afterSplash();
else {
g.reset();

View File

@ -33,7 +33,7 @@ function loadLocation() {
}
function loadSettings() {
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', /*LANG*/'color': 'Green'};
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green'};
}
function extractTime(d){

View File

@ -305,7 +305,7 @@ function viewTrack(filename, info) {
g.drawString(require("locale").distance(dist),g.getWidth() / 2, g.getHeight() - 20);
g.setFont("6x8",2);
g.setFontAlign(0,0,3);
g.drawString(/*LANG*/"Back",g.getWidth() - 10, g.getHeight() - 40);
g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40);
setWatch(function() {
viewTrack(info.fn, info);
}, global.BTN3||BTN1);
@ -404,7 +404,7 @@ function viewTrack(filename, info) {
});
g.setFont("6x8",2);
g.setFontAlign(0,0,3);
g.drawString(/*LANG*/"Back",g.getWidth() - 10, g.getHeight() - 40);
g.drawString("Back",g.getWidth() - 10, g.getHeight() - 40);
setWatch(function() {
viewTrack(info.filename, info);
}, global.BTN3||BTN1);

View File

@ -99,8 +99,8 @@
steps:function() {
var lastSteps = 0;
return {
name : /*LANG*/"Steps",
fields : [/*LANG*/"Steps"],
name : "Steps",
fields : ["Steps"],
getValues : () => {
var c = Bangle.getStepCount(), r=[c-lastSteps];
lastSteps = c;

View File

@ -50,7 +50,7 @@ let barMenu = {
"": { "title" : "- Barometer -" },
"State": {
value: settings.isBarEnabled,
format: v => v ? "On" : /*LANG*/"Off",
format: v => v ? "On" : "Off",
onchange: v => { updateSetting('isBarEnabled', v); }
},
"Altitude": { value: null },
@ -62,7 +62,7 @@ let gpsMenu = {
"": { "title" : "- GPS -" },
"State": {
value: settings.isGpsEnabled,
format: v => v ? "On" : /*LANG*/"Off",
format: v => v ? "On" : "Off",
onchange: v => { updateSetting('isGpsEnabled', v); }
},
"Lat": { value: null },
@ -76,7 +76,7 @@ let hrmMenu = {
"": { "title" : "- Heart Rate -" },
"State": {
value: settings.isHrmEnabled,
format: v => v ? "On" : /*LANG*/"Off",
format: v => v ? "On" : "Off",
onchange: v => { updateSetting('isHrmEnabled', v); }
},
"BPM": { value: null },
@ -87,7 +87,7 @@ let magMenu = {
"": { "title" : "- Magnetometer -" },
"State": {
value: settings.isMagEnabled,
format: v => v ? "On" : /*LANG*/"Off",
format: v => v ? "On" : "Off",
onchange: v => { updateSetting('isMagEnabled', v); }
},
"x": { value: null },

View File

@ -704,7 +704,7 @@ function showAppSettings(app) {
return showError(/*LANG*/'Invalid settings');
}
try {
// pass showAppSettingsMenu as /*LANG*/"back" argument
// pass showAppSettingsMenu as "back" argument
appSettings(()=>showAppSettingsMenu());
} catch (e) {
console.log(`${app.name} settings error:`, e)

View File

@ -116,7 +116,7 @@ function drawLabels() {
g.setFont("6x8", 1);
g.drawString("Reset (re)start", 230, 120);
if (state != "started") // only when not runnung
g.drawString(/*LANG*/"Back", 230, 120);
g.drawString("Back", 230, 120);
}
function resetTimer(value) {

View File

@ -68,7 +68,7 @@ function drawApp() {
if (alarmHour < 10) alarmHour = "0" + alarmHour;
if (alarmMinute < 10) alarmMinute = "0" + alarmMinute;
const s = "Alarm at " + alarmHour + ":" + alarmMinute + "\n\n"; //# make distinct to time
E.showMessage(s, /*LANG*/"Sleep Phase Alarm");
E.showMessage(s, "Sleep Phase Alarm");
function drawTime() {
if (Bangle.isLCDOn()) {
@ -125,7 +125,7 @@ if (nextAlarm !== undefined) {
if (swest !== undefined) {
if (Bangle.isLCDOn()) {
drawString(swest ? /*LANG*/"Sleep" : "Awake", BANGLEJS2 ? 150 : 180); //# remove x, adjust height
drawString(swest ? "Sleep" : "Awake", BANGLEJS2 ? 150 : 180); //# remove x, adjust height
}
}

View File

@ -35,7 +35,7 @@ function findDevices() {
m[dev.id.substr(0,17)] = () => startConnectChoose(dev);
});
m["Search again"] = () => findDevices();
m[/*LANG*/"Back"] = () => load();
m["Back"] = () => load();
E.showMenu(m);
}
}, {timeout : 2000, filters : [{ name : "Espruino SMARTIBOT" }] });
@ -46,7 +46,7 @@ function startConnectChoose(device) {
"": {title:"Control Method"},
"Accelerometer" : () => startConnectAccel(device),
"Button" : () => startConnectBtn(device),
/*LANG*/"Back": () => load(),
"Back": () => load(),
});
}
@ -57,7 +57,7 @@ function startConnectBtn(device) {
function(gatt, write) {
function setMotors(val) { write(`\x10w(${val})\n`); }
drawBGBtn();
g.reset().setFont("6x8",2).setFontAlign(0,0,1).drawString(/*LANG*/"BACK", 230,200);
g.reset().setFont("6x8",2).setFontAlign(0,0,1).drawString("BACK", 230,200);
var state = 0;
var watches = [
setWatch(e=>setMotors(state = (state&0b0011) | (e.state<<2)), BTN4, {repeat:true, edge:0}),
@ -81,7 +81,7 @@ function startConnectAccel(device) {
"\x03\x10function w(x,y,z,v){var a=analogWrite;a(D4,x);a(D6,y);a(D10,z);a(D11,v);}\n",
function(gatt, write) {
drawBGAccel();
g.reset().setFont("6x8",2).setFontAlign(0,0,1).drawString(/*LANG*/"BACK", 230,200);
g.reset().setFont("6x8",2).setFontAlign(0,0,1).drawString("BACK", 230,200);
Bangle.on("accel", function(a) {
var v = [0,0,0,0];
if (a.z<-0.5) {

View File

@ -35,7 +35,7 @@ function loadPage(page) {
g.setFont("Vector", 15);
g.drawString(page.name, g.getWidth() / 2, 200);
g.setFont("Vector", 40);
g.drawString(page.state ? "On" : /*LANG*/"Off", g.getWidth() / 2, g.getHeight() / 2);
g.drawString(page.state ? "On" : "Off", g.getWidth() / 2, g.getHeight() / 2);
g.drawImage(storage.read(`${icon}.img`), g.getWidth() / 2 - 24, g.getHeight() / 2 - 24 - 50);
}

View File

@ -268,7 +268,7 @@ const settingsMenu = {
"": { title: "Settings" },
"Active Mode": {
value: settings.activeMode,
format: (v) => (v ? "On" : /*LANG*/"Off"),
format: (v) => (v ? "On" : "Off"),
onchange: (v) => (settings.activeMode = v),
},
"Twist Thresh": {

View File

@ -376,7 +376,7 @@
] },
{ height:4 },
{ type:'h', c:[
Button(/*LANG*/'Back', { common:halfWidthButton, onTouch:() => gotoScreen('DetailSelectionScreen') }),
Button('Back', { common:halfWidthButton, onTouch:() => gotoScreen('DetailSelectionScreen') }),
Button('Preview', { common:halfWidthButton, onTouch:() => gotoScreen('ThemePreviewScreen') })
], filly:1 },
]
@ -399,7 +399,7 @@
] },
{ height:4 },
{ type:'h', c:[
Button(/*LANG*/'Back', { common:legible, pad:4, onTouch:() => gotoScreen('ColorSelectionScreen') })
Button('Back', { common:legible, pad:4, onTouch:() => gotoScreen('ColorSelectionScreen') })
], filly:1 }
]
});

View File

@ -23,6 +23,6 @@ setInterval(function() {
drawTemperature();
}, 20000);
drawTemperature();
E.showMessage(/*LANG*/"Loading...");
E.showMessage("Loading...");
Bangle.loadWidgets();
Bangle.drawWidgets();

View File

@ -9,8 +9,8 @@ function showAlarm(alarm) {
Bangle.loadWidgets();
Bangle.drawWidgets();
Bangle.setLocked(false);
E.showPrompt(/*LANG*/"Alarm!",{
title:/*LANG*/"ALARM!",
E.showPrompt("Alarm!",{
title:"ALARM!",
buttons : {/*LANG*/"Ok":true}
}).then(function(ok) {
buzzCount = 0;

View File

@ -2,7 +2,7 @@ const SETTINGS_FILE = "torch.json";
let settings;
function loadSettings() {
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#FFFFFF', /*LANG*/'color': 'White'};
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#FFFFFF', 'color': 'White'};
}
loadSettings();

View File

@ -255,7 +255,7 @@ function run(){
if (process.env.HWVERSION == 1) Bangle.setLCDMode();
g.clear();
g.flip();
E.showMessage(/*LANG*/"Loading...");
E.showMessage("Loading...");
load(app.src);
}

View File

@ -216,7 +216,7 @@ function loadFile(fn) {
Bangle.setLCDMode("direct");
g.clear();
E.showMenu();
E.showMessage(/*LANG*/"Loading...", fn);
E.showMessage("Loading...", fn);
readSTL(fn);
zDist = 5*largestExtent(points);
g.clear();

View File

@ -203,7 +203,7 @@ function drawInfo() {
break;
case FN_MODE_GPS:
col = 0x07FF; // cyan
str = "GPS: " + (gpsPowerState ? "ON" : /*LANG*/"OFF");
str = "GPS: " + (gpsPowerState ? "ON" : "OFF");
drawModeLine(str,col);
return;
case FN_MODE_GDISP:
@ -560,7 +560,7 @@ Bangle.on('lcdPower',function(on) {
prevInfoStr = "on"; // forces are redraw
drawAll();
} else {
prevInfoStr = /*LANG*/"off"; // forces are redraw
prevInfoStr = "off"; // forces are redraw
drawInfo();
}
});

View File

@ -28,7 +28,7 @@
function loadSettings() {
settings = require('Storage').readJSON(SETTINGS_FILE, 1) || {};
const DEFAULTS = {
/*LANG*/'color': 'By Level',
'color': 'By Level',
'percentage': true,
'charger': true,
'hideifmorethan': 100,
@ -46,7 +46,7 @@
const levelColor = (l) => {
// "charging" is very bright -> percentage is hard to read, "high" is ok(ish)
const green = setting('percentage') ? COLORS.high : COLORS.charging;
switch (setting(/*LANG*/'color')) {
switch (setting('color')) {
case 'Monochrome': return COLORS.white; // no chance of reading the percentage here :-(
case 'Green': return green;
case 'By Level': // fall through
@ -64,7 +64,7 @@
}
};
const chargerColor = () => {
return (setting(/*LANG*/'color') === 'Monochrome') ? COLORS.white : COLORS.charging;
return (setting('color') === 'Monochrome') ? COLORS.white : COLORS.charging;
};
// sets width, returns true if it changed
@ -112,7 +112,7 @@
return;
}
let gfx = g;
if (setting(/*LANG*/'color') === 'Monochrome') {
if (setting('color') === 'Monochrome') {
// draw text inverted on battery level
gfx = Graphics.createCallback(g.getWidth(),g.getHeight(), 1,
(x,y) => {g.setPixel(x,y,x<=xl?0:-1);});

View File

@ -9,7 +9,7 @@
function loadSettings() {
const d = require('Storage').readJSON("wpedom.json", 1) || {};
settings = Object.assign({
/*LANG*/'goal': 10000,
'goal': 10000,
'progress': false,
'large': false,
'hide': false

View File

@ -5,14 +5,14 @@ outputs a list of strings that have been found.
See https://github.com/espruino/BangleApps/issues/1311
*/
let AUTO_TRANSLATE = false;
let translate = false;
if (process.env.DEEPL) {
// Requires translate
// npm i translate
translate = require("translate");
translate.engine = "deepl"; // Or "yandex", "libre", "deepl"
translate.key = process.env.DEEPL;
translate.url = "https://api-free.deepl.com/v2/translate";
AUTO_TRANSLATE = true;
translate.key = process.env.DEEPL; // Requires API key (which are free)
translate.url = process.env.TURL;
}
var IGNORE_STRINGS = [
@ -25,10 +25,8 @@ var IGNORE_STRINGS = [
"play","stop","pause", "volumeup", "volumedown", // music state
"${hours}:${minutes}:${seconds}", "${hours}:${minutes}",
"BANGLEJS",
"NONE",
"fgH", "bgH",
"m/s",
"undefined", "kbmedia"
"fgH", "bgH", "m/s",
"undefined", "kbmedia", "NONE",
];
var IGNORE_FUNCTION_PARAMS = [
@ -190,8 +188,11 @@ log("");
log("Maybe we should add /*LANG*/ to these automatically?");
log("");
const wordsToAdd = untranslatedStrings.filter(e => translatedStrings.find(t=>t.str==e.str));
// Uncomment to add LANG to all strings
// THIS IS EXPERIMENTAL
//wordsToAdd.forEach(e => e.files.forEach(a => applyLANG(e.str, a)));
log(wordsToAdd.map(e=>`${JSON.stringify(e.str)} (${e.uses} uses)`).join("\n"));
log("");
@ -226,7 +227,7 @@ for (let language of languages) {
let appName = m[0].replaceAll("/", "");
if (translations[appName] && translations[appName][translationItem.str]) {
console.log(` but LOCAL translation found in \"${appName}\"`);
} else if (AUTO_TRANSLATE && language.code !== "tr_TR") { // Auto Translate
} else if (translate && language.code !== "tr_TR") { // Auto Translate
translationPromises.push(new Promise(async (resolve) => {
const translation = await translate(translationItem.str, language.code.split("_")[0]);
console.log("Translating:", translationItem.str, translation);

163
lang/bg_BG.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Bulgarian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"Connected": "Свързан",
"circle 1": "кръг 1",
"week": "седмица",
"weather circle": "метеорологичен кръг",
"Timer": "Таймер",
"circle count": "брой кръгове",
"Keep Msgs": "Дръжте Msgs",
"Auto snooze": "Автоматична дрямка",
"Foreground": "На преден план",
"battery warn": "предупреждение за батерията",
"color": "цвят",
"Vibration": "Вибрации",
"New Timer": "Нов таймер",
"App Source\nNot found": "Източник на приложения\nНе е намерен",
"circle 2": "кръг 2",
"Circle": "Кръг",
"Record Run": "Записване на рекорд",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"steps": "стъпки",
"Beep": "Бип",
"Unread timer": "Непрочетен таймер",
"Delete all messages": "Изтриване на всички съобщения",
"Music": "Музика",
"minimum": "минимум",
"BLE": "BLE",
"goal": "цел",
"Save": "Запазете",
"maximum": "максимален",
"(repeat)": "(повторение)",
"circle 3": "кръг 3",
"Steps": "Стъпки",
"Bluetooth": "Bluetooth",
"Alarm": "Аларма",
"colorize icon": "оцветяване на икона",
"circle 4": "кръг 4",
"Loading": "Зареждане на",
"step length": "дължина на стъпката",
"HID": "HID",
"Heartrate": "Сърдечен ритъм",
"Dark BW": "Тъмно BW",
"Customize": "Персонализиране на",
"valid period": "валиден период",
"Sleep": "Сън",
"distance goal": "цел за разстояние",
"LCD": "LCD",
"data": "данни",
"Vector font size": "Размер на векторния шрифт",
"Mark Unread": "Маркирайте непрочетеното",
"heartrate": "сърдечен ритъм",
"Show clocks": "Показване на часовници",
"New Alarm": "Нова аларма",
"Are you sure": "Сигурни ли сте, че",
"Highlight BG": "Подчертаване на BG",
"Remove": "Премахване на",
"No Messages": "Няма съобщения",
"Delete All Messages": "Изтриване на всички съобщения",
"Foreground 2": "Преден план 2",
"Launcher Settings": "Настройки на стартера",
"Compact Storage": "Компактно съхранение",
"min. confidence": "мин. доверие",
"Connect device\nto add to\nwhitelist": "Свързване на устройството\nда добавите към\nбял списък",
"LCD Brightness": "Яркост на LCD дисплея",
"Highlight FG": "Изтъкване на FG",
"Twist Threshold": "Праг на усукване",
"Add Device": "Добавяне на устройство",
"LCD Timeout": "Време за изключване на LCD",
"Twist Timeout": "Време за завъртане",
"Log": "Log",
"Time Zone": "Часова зона",
"Clock Style": "Стил на часовника",
"Debug Info": "Информация за отстраняването на грешки",
"Wake on Touch": "Събуждане при докосване",
"View Message": "Преглед на съобщението",
"Quiet Mode": "Тих режим",
"Background 2": "Контекст 2",
"Light BW": "Светлина BW",
"show widgets": "показване на уиджети",
"Font": "Шрифт",
"Piezo": "Piezo",
"Make Connectable": "Свържете се",
"Apps": "Приложения",
"Background": "Фон",
"Twist Max Y": "Twist Max Y",
"Utils": "Услуги",
"Programmable": "Програмируем",
"Wake on BTN2": "Събуждане на BTN2",
"Utilities": "Комунални услуги",
"TAP right top/bottom": "TAP дясно отгоре/отдолу",
"Wake on BTN1": "Събуждане на BTN1",
"Passkey BETA": "Passkey BETA",
"Wake on BTN3": "Събуждане на BTN3",
"Wake on Twist": "Събуждане на Twist",
"Wake on FaceUp": "Събуждане в FaceUp",
"No Clocks Found": "Не са намерени часовници",
"Reset to Defaults": "Възстановяване на настройките по подразбиране",
"Compacting...\nTakes approx\n1 minute": "Уплътняване...\nОтнема приблизително\n1 минута",
"Rewrite Settings": "Настройки за пренаписване",
"Stay Connectable": "Останете свързани",
"Turn Off": "Изключване",
"This will remove everything": "Това ще премахне всичко",
"Flatten Battery": "Сплескайте батерията",
"Reset Settings": "Нулиране на настройките",
"Connectable": "Свързване на",
"Storage": "Съхранение",
"start&lap/reset, BTN1: EXIT": "стартиране и застъпване/ нулиране, BTN1: EXIT",
"Month": "Месец",
"App Settings": "Настройки на приложението",
"Side": "Страна",
"Invalid settings": "Невалидни настройки",
"Date": "Дата",
"No app has settings": "Няма приложение с настройки",
"on": "на",
"Left": "Вляво",
"Minute": "Минута",
"Year": "Година",
"Second": "Втори",
"Hour": "Час",
"Reset all widgets": "Нулиране на всички уиджети",
"Widgets": "Уиджети",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Сплескване на батерията - това може да отнеме часове.\nДълго натиснете бутона, за да отмените",
"TIMER": "ТАЙМЕР",
"Right": "Вдясно",
"Reset": "Нулиране на",
"Reset All": "Нулиране на всички",
"Sort Order": "Ред на сортиране",
"ALARM": "АЛАРМА",
"Minutes": "Протоколи",
"Hours": "Часове",
"Vibrate": "Вибрация",
"off": "от",
"Delete": "Изтриване на",
"Repeat": "Повторете",
"Message": "Съобщение",
"Enabled": "Разрешено",
"Settings": "Настройки",
"System": "Система",
"Alerts": "Сигнали",
"Theme": "Тема",
"Hide": "Скрий",
"Show": "Покажи",
"Messages": "Съобщения",
"Set Time": "Време за настройка",
"Whitelist": "Бял списък",
"On": "На",
"Select Clock": "Избор на часовник",
"Locale": "Местоположение",
"No": "Не",
"Error in settings": "Грешка в настройките",
"Factory Reset": "Фабрично нулиране",
"Disable": "Деактивиране на",
"Off": "Изключено",
"Yes": "Да",
"Ok": "Добре",
"Back": "Обратно"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/da_DA.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Danish language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Ny alarm",
"Alarm": "Alarm",
"New Timer": "Ny timer",
"Save": "Gem",
"(repeat)": "(gentagelse)",
"circle 1": "kreds 1",
"circle 3": "kreds 3",
"circle 2": "kreds 2",
"Auto snooze": "Automatisk slumretid",
"circle 4": "cirkel 4",
"show widgets": "vise widgets",
"Connected": "Tilsluttet",
"Keep Msgs": "Behold msgs",
"min. confidence": "min. tillid",
"heartrate": "hjertefrekvens",
"steps": "trin",
"week": "uge",
"Sleep": "Søvn",
"circle count": "antal cirkler",
"goal": "mål",
"Timer": "Timer",
"Steps": "Trin",
"valid period": "gyldighedsperiode",
"step length": "trinlængde",
"minimum": "minimum",
"weather circle": "vejrkreds",
"maximum": "maksimum",
"data": "data",
"Circle": "Cirkel",
"Heartrate": "Hjertefrekvens",
"battery warn": "batteri advarer",
"App Source\nNot found": "App-kilde\nIkke fundet",
"colorize icon": "farvelægge ikonet",
"distance goal": "mål for afstand",
"TAP right top/bottom": "TAP højre top/bund",
"color": "farve",
"View Message": "Vis besked",
"Show clocks": "Vis ure",
"Mark Unread": "Markér ulæst",
"Unread timer": "Ulæst timer",
"Loading": "Indlæsning",
"Launcher Settings": "Indstillinger for startopsætningen",
"Bluetooth": "Bluetooth",
"Music": "Musik",
"Font": "Skrifttype",
"Vector font size": "Vektor skriftstørrelse",
"BTNs 1:startlap 2:exit 3:reset": "BTN'er 1:startlap 2:exit 3:reset",
"No Messages": "Ingen meddelelser",
"Are you sure": "Er du sikker på",
"Delete All Messages": "Slet alle meddelelser",
"Record Run": "Rekordløb",
"Delete all messages": "Slet alle meddelelser",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"Vibration": "Vibrationer",
"HID": "HID",
"Make Connectable": "Gør det muligt at forbinde",
"LCD": "LCD",
"BLE": "BLE",
"Utils": "Utils",
"Piezo": "Piezo",
"Apps": "Apps",
"Background": "Baggrund",
"Customize": "Tilpas",
"Beep": "Bip",
"Quiet Mode": "Stille tilstand",
"Dark BW": "Mørk BW",
"Programmable": "Programmerbar",
"Passkey BETA": "Passkey BETA",
"Light BW": "Light BW",
"Highlight FG": "fremhæve FG",
"Background 2": "Baggrund 2",
"Foreground": "Forgrund",
"Highlight BG": "fremhæve BG",
"Foreground 2": "Forgrund 2",
"LCD Timeout": "LCD Timeout",
"Remove": "Fjern",
"Wake on BTN2": "Wake på BTN2",
"LCD Brightness": "LCD lysstyrke",
"Add Device": "Tilføj enhed",
"Wake on BTN1": "Vågn op på BTN1",
"Connect device\nto add to\nwhitelist": "Tilslut enhed\ntil at tilføje til\nwhitelist",
"Wake on BTN3": "Wake på BTN3",
"Wake on FaceUp": "Vågn op på FaceUp",
"Log": "Log",
"Debug Info": "Info om fejlfinding",
"Wake on Twist": "Vågn op på Twist",
"Wake on Touch": "Vågn op ved berøring",
"Clock Style": "Ur stil",
"Time Zone": "Tidszone",
"Twist Max Y": "Drej Max Y",
"Twist Threshold": "Twist tærskel",
"Compact Storage": "Kompakt opbevaring",
"Twist Timeout": "Twist Timeout",
"Storage": "Opbevaring",
"Utilities": "Hjælpeprogrammer",
"Rewrite Settings": "Omskrivning af indstillinger",
"No Clocks Found": "Ingen ure fundet",
"Reset to Defaults": "Nulstil til standardindstillingerne",
"Compacting...\nTakes approx\n1 minute": "Komprimering...\nTager ca.\n1 minut",
"Connectable": "Tilslutbar",
"Reset Settings": "Nulstil indstillinger",
"Stay Connectable": "Forbliv forbundet",
"Flatten Battery": "Flade batterier",
"Minute": "Minut",
"This will remove everything": "Dette vil fjerne alt",
"Turn Off": "Sluk for",
"Hour": "Timer",
"Month": "Måned",
"Second": "Anden",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Udfladning af batteriet - dette kan tage flere timer.\nTryk længe på knappen for at annullere",
"Year": "År",
"Widgets": "Widgets",
"Date": "Dato",
"Side": "Side",
"Left": "Venstre",
"App Settings": "App-indstillinger",
"No app has settings": "Ingen app har indstillinger",
"Invalid settings": "Ugyldige indstillinger",
"Reset All": "Nulstil alt",
"on": "på",
"TIMER": "TIMER",
"Right": "Højre",
"Sort Order": "Sorteringsrækkefølge",
"Reset": "Nulstil",
"Reset all widgets": "Nulstil alle widgets",
"ALARM": "ALARM",
"Settings": "Indstillinger",
"Alerts": "Advarsler",
"System": "System",
"Theme": "Tema",
"Locale": "Lokale",
"Vibrate": "Vibrere",
"Enabled": "Aktiveret",
"Hours": "Timer",
"Delete": "Slet",
"Minutes": "Protokol",
"Message": "Besked",
"Repeat": "Gentag",
"off": "off",
"Whitelist": "Whitelist",
"Show": "Vis",
"Messages": "Meddelelser",
"On": "På",
"Hide": "Skjul",
"Set Time": "Indstil tid",
"Factory Reset": "Fabriksnulstilling",
"Disable": "Deaktivere",
"Error in settings": "Fejl i indstillingerne",
"Select Clock": "Vælg ur",
"No": "Nej",
"Yes": "Ja",
"Ok": "Ok",
"Off": "Off",
"Back": "Tilbage"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/el_EL.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Greek language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"Save": "Αποθήκευση",
"week": "εβδομάδα",
"Keep Msgs": "Κρατήστε τα Msgs",
"New Alarm": "Νέος συναγερμός",
"Connected": "Συνδεδεμένο",
"Circle": "Κύκλος",
"maximum": "μέγιστο",
"Heartrate": "Καρδιακός ρυθμός",
"step length": "μήκος βήματος",
"valid period": "περίοδος ισχύος",
"(repeat)": "(επανάληψη)",
"min. confidence": "ελάχιστη εμπιστοσύνη",
"New Timer": "Νέος χρονοδιακόπτης",
"Sleep": "Ύπνος",
"Timer": "Χρονοδιακόπτης",
"Alarm": "Συναγερμός",
"goal": "γκολ",
"distance goal": "στόχος απόστασης",
"Steps": "Βήματα",
"minimum": "ελάχιστο",
"circle 4": "κύκλος 4",
"steps": "βήματα",
"circle 2": "κύκλος 2",
"circle 1": "κύκλος 1",
"weather circle": "κύκλος καιρού",
"circle count": "Αριθμός κύκλων",
"heartrate": "καρδιακός ρυθμός",
"circle 3": "κύκλος 3",
"show widgets": "Εμφάνιση widgets",
"battery warn": "προειδοποίηση μπαταρίας",
"Vector font size": "Μέγεθος γραμματοσειράς διανύσματος",
"Font": "Γραμματοσειρά",
"colorize icon": "χρωματισμός εικονιδίου",
"Show clocks": "Εμφάνιση ρολογιών",
"color": "χρώμα",
"Launcher Settings": "Ρυθμίσεις εκτοξευτή",
"App Source\nNot found": "Πηγή εφαρμογής\nΔεν βρέθηκε",
"Loading": "Φόρτωση",
"data": "δεδομένα",
"View Message": "Προβολή μηνύματος",
"Delete all messages": "Διαγραφή όλων των μηνυμάτων",
"Mark Unread": "Mark Unread",
"Are you sure": "Είσαι σίγουρος",
"Delete All Messages": "Διαγραφή όλων των μηνυμάτων",
"Unread timer": "Χρονοδιακόπτης χωρίς ανάγνωση",
"Apps": "Εφαρμογές",
"Record Run": "Τρέξιμο ρεκόρ",
"No Messages": "Δεν υπάρχουν μηνύματα",
"Music": "Μουσική",
"Bluetooth": "Bluetooth",
"LCD": "LCD",
"Piezo": "Piezo",
"Quiet Mode": "Αθόρυβη λειτουργία",
"Make Connectable": "Κάντε Connectable",
"Utils": "Utils",
"Vibration": "Δονήσεις",
"Programmable": "Προγραμματιζόμενο",
"Beep": "Μπιπ",
"Passkey BETA": "Passkey BETA",
"Wake on Touch": "Αφύπνιση στο άγγιγμα",
"Twist Max Y": "Twist Max Y",
"Time Zone": "Ζώνη ώρας",
"Remove": "Αφαιρέστε το",
"Add Device": "Προσθήκη συσκευής",
"LCD Brightness": "Φωτεινότητα LCD",
"LCD Timeout": "Χρονικό όριο LCD",
"Twist Timeout": "Twist Timeout",
"Highlight BG": "Επισημάνετε το BG",
"Highlight FG": "Επισημάνετε το FG",
"Light BW": "Ελαφρύ BW",
"Foreground 2": "Πρόσθιο πεδίο 2",
"Background": "Ιστορικό",
"Background 2": "Ιστορικό 2",
"HID": "HID",
"Dark BW": "Σκούρο BW",
"BLE": "BLE",
"Customize": "Προσαρμογή",
"Debug Info": "Πληροφορίες εντοπισμού σφαλμάτων",
"Rewrite Settings": "Ρυθμίσεις επανεγγραφής",
"Storage": "Αποθήκευση",
"Flatten Battery": "Επίπεδη μπαταρία",
"Clock Style": "Στυλ ρολογιού",
"Compact Storage": "Συμπαγής αποθήκευση",
"Utilities": "Υπηρεσίες κοινής ωφέλειας",
"Log": "Ημερολόγιο",
"Right": "Δεξιά",
"Month": "Μήνας",
"Side": "Πλευρά",
"No app has settings": "Καμία εφαρμογή δεν έχει ρυθμίσεις",
"Widgets": "Widgets",
"Left": "Αριστερά",
"Reset All": "Επαναφορά όλων",
"Invalid settings": "Μη έγκυρες ρυθμίσεις",
"Reset": "Επαναφορά",
"Sort Order": "Σειρά ταξινόμησης",
"TAP right top/bottom": "TAP δεξιά πάνω/κάτω",
"Wake on BTN2": "Wake στο BTN2",
"Connect device\nto add to\nwhitelist": "Σύνδεση συσκευής\nγια να προσθέσετε\nλευκή λίστα",
"Wake on FaceUp": "Wake στο FaceUp",
"Wake on BTN1": "Wake στο BTN1",
"Wake on BTN3": "Wake στο BTN3",
"Foreground": "Πρόσφατα στοιχεία",
"Wake on Twist": "Wake on Twist",
"Auto snooze": "Αυτόματη επαναφορά",
"Twist Threshold": "Κατώφλι συστροφής",
"Compacting...\nTakes approx\n1 minute": "Συμπίεση...\nΠαίρνει περίπου\n1 λεπτό",
"Connectable": "Συνδεόμενο",
"Repeat": "Επανάληψη",
"No Clocks Found": "Δεν βρέθηκαν ρολόγια",
"TIMER": "TIMER",
"App Settings": "Ρυθμίσεις εφαρμογής",
"Stay Connectable": "Μείνετε συνδεδεμένοι",
"Second": "Δεύτερο",
"Minute": "Λεπτό",
"Date": "Ημερομηνία",
"This will remove everything": "Αυτό θα αφαιρέσει τα πάντα",
"Reset to Defaults": "Επαναφορά στις προεπιλογές",
"Vibrate": "Δονήσεις",
"Hour": "Ώρα",
"Turn Off": "Απενεργοποίηση",
"Reset Settings": "Επαναφορά ρυθμίσεων",
"Year": "Έτος",
"Message": "Μήνυμα",
"Locale": "Τοπική τοποθεσία",
"Alerts": "Ειδοποιήσεις",
"Theme": "Θέμα",
"Error in settings": "Σφάλμα στις ρυθμίσεις",
"Disable": "Απενεργοποίηση",
"Factory Reset": "Επαναφορά εργοστασιακών ρυθμίσεων",
"System": "Σύστημα",
"Ok": "Εντάξει",
"Yes": "Ναι",
"On": "Στο",
"Settings": "Ρυθμίσεις",
"Select Clock": "Επιλέξτε Ρολόι",
"Off": "Off",
"Back": "Πίσω",
"No": "Όχι",
"Delete": "Διαγραφή",
"Enabled": "Ενεργοποιημένο",
"Hours": "Ώρες",
"ALARM": "ALARM",
"on": "στο",
"off": "off",
"Minutes": "Πρακτικά",
"Reset all widgets": "Επαναφορά όλων των widgets",
"Hide": "Απόκρυψη",
"Messages": "Μηνύματα",
"Show": "Εμφάνιση",
"Set Time": "Ρύθμιση χρόνου",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"start&lap/reset, BTN1: EXIT": "εκκίνηση&γύρος/επαναφορά, BTN1: ΕΞΟΔΟΣ",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Εξομάλυνση της μπαταρίας - αυτό μπορεί να διαρκέσει ώρες.\nΠατήστε παρατεταμένα το κουμπί για ακύρωση",
"Whitelist": "Λευκή λίστα"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/et_ET.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Estonian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Uus häire",
"Alarm": "Häire",
"Save": "Salvesta",
"Timer": "Taimer",
"(repeat)": "(kordus)",
"New Timer": "Uus taimer",
"circle 2": "ring 2",
"week": "nädal",
"circle 4": "ring 4",
"circle count": "ringide arv",
"Sleep": "Sleep",
"circle 3": "ring 3",
"Keep Msgs": "Hoidke Msgs",
"heartrate": "südame löögisagedus",
"circle 1": "ring 1",
"Connected": "Ühendatud",
"steps": "sammud",
"battery warn": "aku hoiatus",
"show widgets": "Näita vidinaid",
"minimum": "minimaalne",
"Heartrate": "Südame löögisagedus",
"weather circle": "ilmastikuring",
"Loading": "Laadimine",
"Launcher Settings": "Käivitajate seaded",
"color": "värv",
"Font": "Font",
"colorize icon": "värvida ikooni",
"Steps": "Sammud",
"step length": "sammu pikkus",
"Auto snooze": "Automaatne snooze",
"TAP right top/bottom": "TAP paremal üleval/alla",
"maximum": "maksimaalne",
"distance goal": "kauguse eesmärk",
"valid period": "kehtivusaeg",
"min. confidence": "min. usaldus",
"data": "andmed",
"Circle": "Ring",
"goal": "eesmärk",
"Delete all messages": "Kustuta kõik sõnumid",
"Are you sure": "Oled sa kindel, et",
"App Source\nNot found": "Rakenduse allikas\nEi leitud",
"Show clocks": "Näita kellasid",
"View Message": "Vaata sõnumit",
"Vector font size": "Vektori kirjasuurus",
"Mark Unread": "Märgi lugemata",
"Delete All Messages": "Kustuta kõik sõnumid",
"No Messages": "Sõnumid puuduvad",
"Bluetooth": "Bluetooth",
"LCD": "LCD",
"Unread timer": "Lugemata taimer",
"Record Run": "Record Run",
"Music": "Muusika",
"Beep": "Helisema",
"Piezo": "Piezo",
"Apps": "Rakendused",
"Utils": "Utils",
"Vibration": "Vibratsioon",
"BLE": "BLE",
"Make Connectable": "Tee ühendatavaks",
"Programmable": "Programmeeritav",
"Light BW": "Kerge BW",
"Passkey BETA": "Passkey BETA",
"HID": "HID",
"Quiet Mode": "Vaikne režiim",
"Background": "Taustaks",
"Customize": "Kohandada",
"Dark BW": "Tume BW",
"LCD Timeout": "LCD Timeout",
"Background 2": "Taust 2",
"Highlight FG": "FG esiletõstmine",
"Add Device": "Seadme lisamine",
"Highlight BG": "Rõhutage BG",
"Remove": "Eemaldage",
"LCD Brightness": "LCD heledus",
"Foreground 2": "Teadmised 2",
"Time Zone": "Ajavöönd",
"Debug Info": "Debug-info",
"Twist Max Y": "Twist Max Y",
"Twist Timeout": "Twist Timeout",
"Foreground": "Esialgsed teadmised",
"Wake on BTN3": "Wake on BTN3",
"Connect device\nto add to\nwhitelist": "Seadme ühendamine\nlisada\nvalimisnimekirja",
"Wake on BTN2": "Wake on BTN2",
"Wake on Touch": "Wake on Touch",
"Wake on FaceUp": "FaceUp'i ärkamine",
"Compact Storage": "Kompaktne ladustamine",
"Wake on Twist": "Wake on Twist",
"Clock Style": "Kella stiil",
"Wake on BTN1": "Wake on BTN1",
"Utilities": "Kommunaalteenused",
"Twist Threshold": "Twist künnis",
"Log": "Logi",
"Reset Settings": "Seadete lähtestamine",
"Rewrite Settings": "Ümberkirjutamise seaded",
"Hour": "Tund",
"Stay Connectable": "Jääge ühendatavaks",
"Flatten Battery": "Aku tasandamine",
"This will remove everything": "See eemaldab kõik",
"Minute": "Hetk",
"App Settings": "Rakenduse seaded",
"No app has settings": "Ühelgi rakendusel ei ole seadeid",
"Invalid settings": "Väärad seaded",
"Date": "Kuupäev",
"Year": "Aasta",
"Side": "Side",
"Turn Off": "Lülita välja",
"Storage": "Ladustamine",
"Second": "Teine",
"Right": "Õigus",
"Left": "Vasakpoolne",
"Month": "Kuu",
"TIMER": "TIMER",
"Reset to Defaults": "Lähtestamine vaikimisi seadistustele",
"Compacting...\nTakes approx\n1 minute": "Tihendamine...\nKulub umbes\n1 minut",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Aku tasandamine - see võib võtta tunde.\nTühistamiseks vajutage pikalt nuppu",
"ALARM": "ALARM",
"Reset All": "Reset All",
"Hours": "Tunnid",
"off": "välja",
"Widgets": "Vidinad",
"Reset all widgets": "Nullida kõik vidinad",
"on": "aadressil",
"Connectable": "Ühendatav",
"No Clocks Found": "Kellasid ei leitud",
"BTNs 1:startlap 2:exit 3:reset": "BTNid 1:startlap 2:exit 3:reset",
"Sort Order": "Sorteerimisjärjekord",
"Reset": "Reset",
"System": "Süsteem",
"Message": "Sõnum",
"Settings": "Seaded",
"Locale": "Locale",
"Alerts": "Hoiatused",
"Enabled": "Lubatud",
"Theme": "Teema",
"Minutes": "Protokoll",
"Delete": "Kustuta",
"Set Time": "Määratud aeg",
"Select Clock": "Valige kell",
"Hide": "Peida",
"Messages": "Sõnumid",
"Ok": "Ok",
"Show": "Näita",
"On": "Veebilehel",
"Factory Reset": "Tehase lähtestamine",
"Error in settings": "Viga seadetes",
"Disable": "Lülita välja",
"Repeat": "Kordus",
"Vibrate": "Vibreerima",
"Whitelist": "Valge nimekiri",
"No": "Ei",
"Yes": "Jah",
"Off": "Väljaspool",
"Back": "Tagasi"
},
"alarm": {
"//": "App-specific overrides"
}
}

View File

@ -10,8 +10,16 @@
{"code":"nl_NL","name":"Dutch","url":"nl_NL.json"},
{"code":"sv_SE","name":"Swedish","url":"sv_SE.json"},
{"code":"tr_TR","name":"Turkish","url":"tr_TR.json"},
{"code":"zh_ZH","name":"Chinese","url":"zh_ZH.json"},
{"code":"ru_RU","name":"Russian","url":"ru_RU.json"},
{"code":"pt_PT","name":"Portuguese","url":"pt_PT.json"},
{"code":"ja_JA","name":"Japanese","url":"ja_JA.json"}
{"code":"bg_BG","name":"Bulgarian","url":"bg_BG.json"},
{"code":"da_DA","name":"Danish","url":"da_DA.json"},
{"code":"el_EL","name":"Greek","url":"el_EL.json"},
{"code":"et_ET","name":"Estonian","url":"et_ET.json"},
{"code":"lt_LT","name":"Lithuanian","url":"lt_LT.json"},
{"code":"lv_LV","name":"Latvian","url":"lv_LV.json"},
{"code":"pl_PL","name":"Polish","url":"pl_PL.json"},
{"code":"ro_RO","name":"Romanian","url":"ro_RO.json"},
{"code":"sk_SK","name":"Slovak","url":"sk_SK.json"},
{"code":"sl_SL","name":"Slovenian","url":"sl_SL.json"}
]

163
lang/lt_LT.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Lithuanian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Naujas žadintuvas",
"(repeat)": "(pakartoti)",
"Alarm": "Signalizacija",
"Save": "Išsaugoti",
"New Timer": "Naujas laikmatis",
"Sleep": "Miegas",
"circle count": "ratų skaičius",
"Timer": "Laikmatis",
"week": "savaitė",
"Connected": "Prijungta",
"circle 2": "2 ratas",
"Auto snooze": "Automatinis snaudimas",
"circle 1": "1 ratas",
"show widgets": "rodyti valdiklius",
"Keep Msgs": "Laikyti Msgs",
"weather circle": "orų ratas",
"step length": "žingsnio ilgis",
"steps": "žingsniai",
"circle 3": "3 ratas",
"battery warn": "įspėjimas apie akumuliatorių",
"min. confidence": "min. pasitikėjimas",
"maximum": "didžiausias",
"valid period": "galiojantis laikotarpis",
"minimum": "minimalus",
"heartrate": "širdies ritmas",
"circle 4": "4 ratas",
"goal": "tikslas",
"data": "duomenys",
"distance goal": "atstumo tikslas",
"Steps": "Žingsniai",
"Heartrate": "Širdies ritmas",
"Show clocks": "Rodyti laikrodžius",
"View Message": "Peržiūrėti žinutę",
"color": "",
"colorize icon": "nuspalvinti piktogramą",
"Circle": "Apskritimas",
"Delete all messages": "Ištrinti visus pranešimus",
"Font": "Šriftas",
"TAP right top/bottom": "TAP dešinėje viršuje / apačioje",
"No Messages": "Jokių pranešimų",
"Launcher Settings": "Paleidimo programos nustatymai",
"App Source\nNot found": "Programėlės šaltinis\nNerastas",
"Loading": "Pakrovimas",
"Vector font size": "Vektorinio šrifto dydis",
"Music": "Muzika",
"Are you sure": "Ar tikrai",
"Delete All Messages": "Ištrinti visus pranešimus",
"Mark Unread": "Pažymėti Neskaityta",
"LCD": "LCD",
"Apps": "Programėlės",
"Record Run": "Rekordinis paleidimas",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"Unread timer": "Neperskaitytas laikmatis",
"Bluetooth": "\"Bluetooth\"",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"Dark BW": "Tamsus BW",
"Programmable": "Programuojamas",
"Make Connectable": "Sukurkite \"Connectable",
"BLE": "BLE",
"Passkey BETA": "Passkey BETA",
"HID": "HID",
"Utils": "Paslaugos",
"Quiet Mode": "Tylusis režimas",
"Beep": "Pyptelėjimas",
"Piezo": "Piezo",
"Vibration": "Vibracija",
"Background": "Pagrindinė informacija",
"Customize": "Tinkinti",
"Foreground": "Naujos žinios",
"Light BW": "Šviesus BW",
"Add Device": "Pridėti įrenginį",
"Remove": "Pašalinti",
"Wake on BTN1": "Pabusti dėl BTN1",
"Wake on BTN3": "Pabusti dėl BTN3",
"Highlight FG": "Pabrėžti FG",
"Highlight BG": "Išryškinti BG",
"Twist Max Y": "Twist Max Y",
"Foreground 2": "Pirmas planas 2",
"Background 2": "Pagrindinė informacija 2",
"Clock Style": "Laikrodžio stilius",
"Log": "Žurnalas",
"Debug Info": "Derinimo informacija",
"Time Zone": "Laiko juosta",
"Wake on Touch": "Pabudimas palietus",
"Twist Threshold": "Sukimo slenkstis",
"Wake on FaceUp": "Atsibusti \"FaceUp",
"Wake on BTN2": "Pabusti dėl BTN2",
"Wake on Twist": "Pabusti dėl Twist",
"LCD Brightness": "LCD ekrano ryškumas",
"Twist Timeout": "Twist Timeout",
"Compact Storage": "Kompaktiškas saugojimas",
"Storage": "Saugykla",
"Utilities": "Komunalinės paslaugos",
"Compacting...\nTakes approx\n1 minute": "Suspaudžiant...\nUžtrunka maždaug\n1 minutė",
"No Clocks Found": "Laikrodžių nerasta",
"Reset Settings": "Nustatymų atstatymas",
"Flatten Battery": "Išlyginti akumuliatorių",
"Connect device\nto add to\nwhitelist": "Prijungti įrenginį\npridėti prie\nbaltąjį sąrašą",
"LCD Timeout": "LCD ekrano laiko limitas",
"Hour": "Valanda",
"Second": "Antrasis",
"Date": "Data",
"Turn Off": "Išjungti",
"This will remove everything": "Tai pašalins viską.",
"Connectable": "Prijungiama",
"Stay Connectable": "Palaikykite ryšį",
"Left": "Kairėje pusėje",
"Right": "Dešinė",
"Side": "Šoninė pusė",
"Invalid settings": "Netinkami nustatymai",
"Month": "Mėnuo",
"Year": "Metai",
"App Settings": "Programėlės nustatymai",
"Sort Order": "Rūšiavimo tvarka",
"Minute": "Minutė",
"No app has settings": "Jokia programa neturi nustatymų",
"Rewrite Settings": "Perrašymo nustatymai",
"Reset All": "Iš naujo nustatyti viską",
"Reset": "Iš naujo nustatyti",
"Reset to Defaults": "Iš naujo nustatyti numatytąsias reikšmes",
"Hours": "Valandos",
"ALARM": "ALARMAS",
"TIMER": "LAIKMATIS",
"Widgets": "Valdikliai",
"Reset all widgets": "Iš naujo nustatyti visus valdiklius",
"Minutes": "Protokolas",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Akumuliatoriaus išlyginimas - tai gali užtrukti kelias valandas.\nIlgai paspauskite mygtuką, kad atšauktumėte",
"on": "svetainėje",
"off": "iš",
"Message": "Žinutė",
"Repeat": "Pakartokite",
"Delete": "Ištrinti",
"Enabled": "Įjungta",
"System": "Sistema",
"Theme": "Tema",
"Vibrate": "Vibruoti",
"Settings": "Nustatymai",
"Alerts": "Įspėjimai",
"Error in settings": "Klaida nustatymuose",
"Messages": "Žinutės",
"Set Time": "Nustatytas laikas",
"Locale": "Vietovė",
"Select Clock": "Pasirinkite laikrodį",
"Whitelist": "Baltasis sąrašas",
"Disable": "Išjungti",
"Factory Reset": "Gamyklinis atstatymas",
"Show": "Rodyti",
"Hide": "Paslėpti",
"Yes": "Taip",
"Ok": "Gerai",
"No": "Ne",
"On": "Svetainėje",
"Off": "Išjungta",
"Back": "Atgal"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/lv_LV.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Latvian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"Save": "Saglabāt",
"Auto snooze": "Automātiskā snaudiena atlikšana",
"circle 1": "1 aplis",
"New Timer": "Jauns taimeris",
"New Alarm": "Jauns modinātājs",
"Sleep": "Miega režīms",
"circle count": "apļu skaits",
"Keep Msgs": "Glabāt Msgs",
"Timer": "Taimeris",
"week": "nedēļa",
"Connected": "Savienots",
"(repeat)": "(atkārtot)",
"circle 3": "aplis 3",
"circle 4": "4 aplis",
"Alarm": "Trauksmes signāls",
"steps": "soļi",
"heartrate": "sirdsdarbības ātrums",
"weather circle": "laikapstākļu aplis",
"circle 2": "2. aplis",
"minimum": "minimālais",
"battery warn": "brīdinājums par akumulatoru",
"min. confidence": "min. uzticēšanās",
"show widgets": "parādīt logrīkus",
"step length": "soļa garums",
"goal": "mērķis",
"distance goal": "attāluma mērķis",
"valid period": "derīguma termiņš",
"Circle": "Aplis",
"data": "dati",
"Steps": "Soļi",
"color": "krāsa",
"colorize icon": "iekrāsot ikonu",
"maximum": "maksimālais",
"Heartrate": "Sirdsdarbība",
"View Message": "Skatīt ziņojumu",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"TAP right top/bottom": "TAP pa labi augšā/apakšā",
"Mark Unread": "Atzīmēt Neizlasīts",
"Delete all messages": "Dzēst visus ziņojumus",
"Vector font size": "Vektora fonta lielums",
"Loading": "Iekraušana",
"Show clocks": "Rādīt pulksteņus",
"Font": "Fonts",
"App Source\nNot found": "Lietotņu avots\nNav atrasts",
"Launcher Settings": "Palaidēja iestatījumi",
"Delete All Messages": "Dzēst visus ziņojumus",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:izeja 3:resetēšana",
"Bluetooth": "Bluetooth",
"Are you sure": "Vai esat pārliecināts, ka",
"Utils": "Utils",
"Unread timer": "Neizlasīts taimeris",
"LCD": "LCD",
"Music": "Mūzika",
"No Messages": "Nav ziņojumu",
"Record Run": "Rekorda skrējiens",
"HID": "HID",
"Quiet Mode": "Klusais režīms",
"Highlight FG": "Izcelt FG",
"Programmable": "Programmējams",
"Passkey BETA": "Passkey BETA",
"Light BW": "Gaismas BW",
"Piezo": "Piezo",
"Make Connectable": "Padarīt savienojamu",
"Beep": "Pīkstiens",
"Dark BW": "Tumšs BW",
"Background": "Pamatinformācija",
"Vibration": "Vibrācija",
"Apps": "Aplikācijas",
"Foreground 2": "Priekšplāns 2",
"Background 2": "Pamatinformācija 2",
"Foreground": "Priekšplāns",
"Customize": "Pielāgojiet",
"Highlight BG": "Izcelt BG",
"BLE": "BLE",
"LCD Timeout": "LCD displeja laika ierobežojums",
"Twist Max Y": "Twist Max Y",
"Add Device": "Pievienot ierīci",
"Connect device\nto add to\nwhitelist": "Savienot ierīci\nlai pievienotu\nbalto sarakstu",
"Wake on Touch": "Pamosties pēc pieskāriena",
"Time Zone": "Laika josla",
"Wake on BTN3": "Wake par BTN3",
"Wake on BTN1": "Pamosties par BTN1",
"Wake on BTN2": "Wake par BTN2",
"LCD Brightness": "LCD ekrāna spilgtums",
"Remove": "Noņemt",
"Clock Style": "Pulksteņa stils",
"Debug Info": "Dzesēšanas informācija",
"Twist Timeout": "Twist laika ierobežojums",
"Wake on FaceUp": "Pamosties FaceUp",
"Twist Threshold": "Pagrieziena slieksnis",
"This will remove everything": "Tādējādi tiks noņemts viss",
"Utilities": "Komunālie pakalpojumi",
"Connectable": "Savienojams",
"Minute": "Minūtes",
"Stay Connectable": "Palieciet savienojami",
"Storage": "Uzglabāšana",
"Log": "Log",
"Wake on Twist": "Wake on Twist",
"Flatten Battery": "Izlīdzināt akumulatoru",
"Rewrite Settings": "Pārrakstīšanas iestatījumi",
"Compact Storage": "Kompakta uzglabāšana",
"Compacting...\nTakes approx\n1 minute": "Blīvēšanas...\nAizņem aptuveni\n1 minūte",
"Second": "Otrais",
"Reset Settings": "Iestatījumu atiestatīšana",
"Turn Off": "Izslēgt",
"Date": "Datums",
"Right": "Tiesības",
"Sort Order": "Kārtot pēc kārtas",
"No Clocks Found": "Nav atrasti pulksteņi",
"Reset to Defaults": "Atiestatīt noklusējuma iestatījumus",
"No app has settings": "Nevienā lietotnē nav iestatījumu",
"ALARM": "ALARM",
"Widgets": "Logrīki",
"off": "izslēgts",
"Invalid settings": "Nederīgi iestatījumi",
"Month": "Mēnesis",
"Side": "Sānu",
"Reset": "Atiestatīt",
"Reset All": "Atiestatīt visu",
"Hours": "Stundas",
"Repeat": "Atkārtojiet",
"Enabled": "Ieslēgts",
"Settings": "Iestatījumi",
"Message": "Ziņa",
"Minutes": "Protokols",
"App Settings": "Lietotņu iestatījumi",
"System": "Sistēma",
"Locale": "Vietne",
"Theme": "Tēma",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Akumulatora saplacināšana - tas var aizņemt vairākas stundas.\nIlgi nospiediet pogu, lai atceltu",
"Select Clock": "Izvēlieties pulksteni",
"Set Time": "Iestatītais laiks",
"Vibrate": "Vibrēt",
"Reset all widgets": "Visu logrīku atiestatīšana",
"Hour": "Stunda",
"Left": "Kreisā",
"TIMER": "TIMER",
"Year": "Gads",
"on": "vietnē",
"Alerts": "Brīdinājumi",
"Delete": "Dzēst",
"Whitelist": "Baltais saraksts",
"Messages": "Ziņojumi",
"Disable": "Atslēgt",
"Hide": "Paslēpt",
"Show": "Rādīt",
"On": "Uz",
"Factory Reset": "Rūpnīcas atiestatīšana",
"Error in settings": "Kļūda iestatījumos",
"Ok": "Labi",
"Yes": "Jā",
"No": "Nē",
"Back": "Atpakaļ",
"Off": "Izslēgts"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/pl_PL.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Polish language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Nowy Alarm",
"(repeat)": "(powtórzenie)",
"Connected": "Podłączony",
"Timer": "Timer",
"Alarm": "Alarm",
"New Timer": "Nowy zegar",
"Sleep": "Sen",
"Save": "Zapisz",
"circle 1": "krąg 1",
"circle 3": "krąg 3",
"circle count": "liczenie okręgów",
"week": "tydzień",
"circle 2": "krąg 2",
"Keep Msgs": "Keep Msgs",
"weather circle": "koło klimatyczne",
"circle 4": "krąg 4",
"heartrate": "częstość akcji serca",
"Heartrate": "Heartrate",
"maximum": "maksimum",
"min. confidence": "min. pewność siebie",
"valid period": "okres ważności",
"distance goal": "cel odległościowy",
"Circle": "Koło",
"step length": "długość kroku",
"Steps": "Kroki",
"show widgets": "wyświetlać widżety",
"steps": "kroki",
"battery warn": "ostrzeżenie o akumulatorze",
"minimum": "minimum",
"data": "dane",
"color": "kolor",
"goal": "bramka",
"Auto snooze": "Automatyczna drzemka",
"TAP right top/bottom": "TAP prawy górny/dolny",
"Font": "Czcionka",
"Launcher Settings": "Ustawienia programu uruchamiającego",
"Mark Unread": "Zaznacz nieprzeczytane",
"Loading": "Ładowanie",
"Vector font size": "Rozmiar czcionki wektorowej",
"Show clocks": "Pokaż zegary",
"App Source\nNot found": "Źródło aplikacji\nNie znaleziono",
"colorize icon": "ubarwiać ikonę",
"Delete all messages": "Usuń wszystkie wiadomości",
"No Messages": "Brak komunikatów",
"Delete All Messages": "Usuń wszystkie wiadomości",
"Are you sure": "Czy jesteś pewien, że",
"View Message": "Wyświetl wiadomość",
"Music": "Muzyka",
"Record Run": "Rekordowy bieg",
"Bluetooth": "Bluetooth",
"Unread timer": "Nieprzeczytany zegar",
"Quiet Mode": "Tryb cichy",
"Make Connectable": "Spraw, aby można było się połączyć",
"Utils": "Narzędzia",
"Beep": "Beep",
"Apps": "Aplikacje",
"Piezo": "Piezo",
"BLE": "BLE",
"LCD": "LCD",
"Vibration": "Wibracje",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: WYJŚCIE",
"Foreground": "Foreground",
"Light BW": "Światło BW",
"HID": "HID",
"Dark BW": "Ciemna BW",
"Customize": "Dostosuj",
"Passkey BETA": "Passkey BETA",
"Background": "Tło",
"Background 2": "Tło 2",
"Highlight BG": "Podświetlenie BG",
"Foreground 2": "Nowa wiedza 2",
"Highlight FG": "Highlight FG",
"LCD Brightness": "Jasność LCD",
"Wake on Touch": "Wake on Touch",
"LCD Timeout": "LCD Timeout",
"Remove": "Usuń",
"Wake on Twist": "Wake on Twist",
"Wake on BTN3": "Wake na BTN3",
"Wake on BTN2": "Wake na BTN2",
"Connect device\nto add to\nwhitelist": "Podłącz urządzenie\ndodać do\nwhitelist",
"Wake on BTN1": "Wake na BTN1",
"Add Device": "Dodaj urządzenie",
"Programmable": "Programowalna strona",
"Wake on FaceUp": "Wake on FaceUp",
"Clock Style": "Styl zegara",
"Twist Threshold": "Próg skrętu",
"Time Zone": "Strefa czasowa",
"Twist Max Y": "Twist Max Y",
"Twist Timeout": "Twist Timeout",
"Utilities": "Narzędzia",
"Debug Info": "Debug Info",
"This will remove everything": "To spowoduje usunięcie wszystkiego",
"Compact Storage": "Kompaktowe przechowywanie",
"Flatten Battery": "Spłaszcz baterię",
"Log": "Dziennik Ustaw",
"Rewrite Settings": "Ustawienia przepisywania",
"Storage": "Przechowywanie",
"Reset Settings": "Resetuj ustawienia",
"Turn Off": "Wyłączyć",
"Minute": "Minuta",
"Stay Connectable": "Pozostań w kontakcie",
"Date": "Data",
"App Settings": "Ustawienia aplikacji",
"No app has settings": "Żadna aplikacja nie ma ustawień",
"Connectable": "Możliwość podłączenia",
"Year": "Rok",
"Second": "Drugi",
"No Clocks Found": "Nie znaleziono zegarów",
"Hour": "Godzina",
"Reset to Defaults": "Resetuj do ustawień domyślnych",
"Compacting...\nTakes approx\n1 minute": "Zagęszczanie...\nTrwa ok.\n1 minuta",
"Reset all widgets": "Wyzeruj wszystkie widżety",
"Right": "Prawo",
"Side": "Strona",
"TIMER": "TIMER",
"Sort Order": "Kolejność sortowania",
"Reset": "Reset",
"Invalid settings": "Nieprawidłowe ustawienia",
"Month": "Miesiąc",
"Widgets": "Widżety",
"Left": "Lewa",
"on": "na stronie",
"Delete": "Usuń",
"Hours": "Godziny",
"ALARM": "ALARM",
"Message": "Wiadomość",
"off": "poza",
"Reset All": "Resetuj wszystko",
"Minutes": "Protokół",
"Repeat": "Powtórz",
"Enabled": "Włączone",
"Vibrate": "Vibrate",
"Whitelist": "Whitelist",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Rozładowanie baterii - może to trwać godzinami.\nNaciśnij długo przycisk, aby anulować",
"Select Clock": "Wybierz zegar",
"Theme": "Temat",
"Locale": "Locale",
"Error in settings": "Błąd w ustawieniach",
"Disable": "Wyłącz",
"Settings": "Ustawienia",
"On": "Na stronie",
"Hide": "Ukryj",
"Messages": "Wiadomości",
"Factory Reset": "Reset fabryczny",
"System": "System",
"Alerts": "Wpisy",
"Set Time": "Ustawianie czasu",
"Ok": "Ok",
"Yes": "Tak",
"Show": "Pokaż",
"No": "Nie",
"Back": "Powrót",
"Off": "Poza"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/ro_RO.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Romanian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Alarma nouă",
"New Timer": "Noul cronometru",
"(repeat)": "(repetă)",
"Save": "Salvați",
"Auto snooze": "Repaus automat",
"Timer": "Cronometru",
"Alarm": "Alarma",
"circle 2": "cercul 2",
"circle 1": "cercul 1",
"Sleep": "Somnul",
"week": "săptămâna",
"circle count": "număr de cercuri",
"Connected": "Conectat",
"steps": "etape",
"battery warn": "avertizare baterie",
"heartrate": "ritmul cardiac",
"show widgets": "arată widget-uri",
"Keep Msgs": "Păstrați Msgs",
"circle 4": "cercul 4",
"circle 3": "cercul 3",
"minimum": "minim",
"Heartrate": "Ritmul cardiac",
"min. confidence": "încredere minimă",
"distance goal": "obiectivul de distanță",
"Steps": "Pași",
"color": "culoare",
"Circle": "Cerc",
"step length": "lungimea pasului",
"data": "date",
"maximum": "maxim",
"valid period": "perioada de valabilitate",
"weather circle": "cercul meteorologic",
"goal": "obiectiv",
"App Source\nNot found": "Sursa aplicației\nNu a fost găsit",
"Vector font size": "Dimensiunea fontului vectorial",
"colorize icon": "colorați pictograma",
"Show clocks": "Arată ceasuri",
"Loading": "Încărcare",
"Launcher Settings": "Setări lansator",
"Font": "Font",
"TAP right top/bottom": "TAP dreapta sus/jos",
"View Message": "Vezi mesajul",
"LCD": "LCD",
"Beep": "Beep",
"Vibration": "Vibrații",
"Bluetooth": "Bluetooth",
"Utils": "Utils",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"BTNs 1:startlap 2:exit 3:reset": "BTN-uri 1:startlap 2:exit 3:reset",
"Piezo": "Piezoelectrice",
"Customize": "Personalizați",
"Delete all messages": "Ștergeți toate mesajele",
"Apps": "Aplicații",
"Are you sure": "Ești sigur că",
"Music": "Muzică",
"Record Run": "Record Run",
"Mark Unread": "Marcați Unread",
"Foreground": "Prim-plan",
"Foreground 2": "Prim-plan 2",
"Background": "Fond",
"Passkey BETA": "Passkey BETA",
"Light BW": "Lumină BW",
"Dark BW": "Dark BW",
"Make Connectable": "Asigurați conectabilitatea",
"HID": "HID",
"Delete All Messages": "Ștergeți toate mesajele",
"No Messages": "Nu există mesaje",
"Unread timer": "Cronometru necitit",
"Quiet Mode": "Modul silențios",
"Programmable": "Programabil",
"BLE": "BLE",
"Highlight BG": "Evidențiați BG",
"Background 2": "Context 2",
"Highlight FG": "Evidențiați FG",
"Remove": "Eliminați",
"Connect device\nto add to\nwhitelist": "Conectați dispozitivul\npentru a adăuga la\nlista albă",
"LCD Brightness": "Luminozitatea LCD",
"Wake on FaceUp": "Trezirea pe FaceUp",
"LCD Timeout": "Timeout LCD",
"Add Device": "Adăugați dispozitiv",
"Wake on Touch": "Trezire la atingere",
"Wake on BTN1": "Trezirea pe BTN1",
"Wake on BTN3": "Trezirea pe BTN3",
"Debug Info": "Informații de depanare",
"Log": "Jurnal",
"Clock Style": "Stilul ceasului",
"Utilities": "Utilități",
"Wake on Twist": "Trezirea pe Twist",
"Wake on BTN2": "Trezirea pe BTN2",
"Twist Threshold": "Pragul de răsucire",
"Time Zone": "Fusul orar",
"Twist Timeout": "Twist Timeout",
"Twist Max Y": "Twist Max Y",
"Minute": "Minute",
"Month": "Luna",
"Second": "Al doilea",
"Hour": "Ora",
"Flatten Battery": "Aplatizare baterie",
"Storage": "Depozitare",
"Compact Storage": "Depozitare compactă",
"Reset Settings": "Resetare setări",
"Rewrite Settings": "Resetare Setări de rescriere",
"Stay Connectable": "Rămâneți conectați",
"No Clocks Found": "Nu s-au găsit ceasuri",
"Turn Off": "Oprire",
"This will remove everything": "Acest lucru va elimina totul",
"App Settings": "Setări aplicație",
"Year": "Anul",
"Connectable": "Conectabil",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Baterie de aplatizare - acest lucru poate dura ore.\nApăsați lung butonul pentru a anula",
"Compacting...\nTakes approx\n1 minute": "Compactarea...\nDurează aproximativ\n1 minut",
"Reset to Defaults": "Resetare la valorile implicite",
"Reset": "Resetare",
"Widgets": "Widgeturi",
"Reset all widgets": "Resetați toate widget-urile",
"No app has settings": "Nici o aplicație nu are setări",
"Left": "Stânga",
"Side": "Lateral",
"Date": "Data",
"Sort Order": "Ordinea de sortare",
"Invalid settings": "Setări nevalabile",
"Right": "Dreapta",
"Reset All": "Resetați toate",
"on": "pe",
"TIMER": "TIMER",
"off": "off",
"Message": "Mesaj",
"Vibrate": "Vibrare",
"ALARM": "ALARMĂ",
"Delete": "Ștergeți",
"Repeat": "Repetați",
"Enabled": "Activat",
"Settings": "Setări",
"Minutes": "Proces-verbal",
"Hours": "Ore",
"Theme": "Tema",
"Messages": "Mesaje",
"Hide": "Ascundeți",
"Alerts": "Alerte",
"Error in settings": "Eroare în setări",
"System": "Sistem",
"Disable": "Dezactivați",
"Set Time": "Set Time",
"Factory Reset": "Resetare din fabrică",
"Yes": "Da",
"Select Clock": "Selectați ceasul",
"Whitelist": "Lista albă",
"Locale": "Locale",
"Ok": "Ok",
"Show": "Arată",
"On": "Pe",
"No": "Nu",
"Off": "Off",
"Back": "Înapoi"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/sk_SK.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Slovak language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"New Alarm": "Nový alarm",
"New Timer": "Nový časovač",
"(repeat)": "(opakovanie)",
"Alarm": "Alarm",
"Save": "Uložiť",
"week": "týždeň",
"circle count": "počet kruhov",
"Timer": "Časovač",
"Sleep": "Spánok",
"circle 1": "okruh 1",
"Connected": "Pripojené",
"Auto snooze": "Automatické odloženie",
"circle 4": "kruh 4",
"heartrate": "srdcová frekvencia",
"steps": "kroky",
"circle 2": "kruh 2",
"Keep Msgs": "Uchovávajte správy Msgs",
"goal": "cieľ",
"circle 3": "kruh 3",
"distance goal": "cieľ vzdialenosti",
"show widgets": "zobraziť widgety",
"maximum": "maximum",
"minimum": "minimálne",
"Circle": "Kruh",
"valid period": "obdobie platnosti",
"Steps": "Kroky",
"data": "údaje",
"min. confidence": "min. dôvera",
"battery warn": "upozornenie na batériu",
"Heartrate": "Srdcová frekvencia",
"weather circle": "kruh počasia",
"step length": "dĺžka kroku",
"colorize icon": "vyfarbenie ikony",
"color": "farba",
"TAP right top/bottom": "TAP vpravo hore/dole",
"App Source\nNot found": "Zdroj aplikácie\nNenájdené",
"Loading": "Načítavanie",
"Font": "Písmo",
"Unread timer": "Neprečítaný časovač",
"Music": "Hudba",
"Mark Unread": "Označiť neprečítané",
"View Message": "Zobraziť správu",
"Launcher Settings": "Nastavenia spúšťača",
"Delete All Messages": "Odstránenie všetkých správ",
"Vector font size": "Veľkosť vektorového písma",
"Delete all messages": "Odstránenie všetkých správ",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"Are you sure": "Ste si istý, že",
"Show clocks": "Zobraziť hodiny",
"No Messages": "Žiadne správy",
"Record Run": "Rekordný beh",
"Apps": "Aplikácie",
"Piezo": "Piezoelektrické zariadenie",
"LCD": "LCD",
"Programmable": "Programovateľné",
"Utils": "Utils",
"Foreground 2": "Popredie 2",
"HID": "HID",
"Vibration": "Vibrácie",
"Make Connectable": "Urobiť pripojiteľné",
"Bluetooth": "Bluetooth",
"Quiet Mode": "Tichý režim",
"Beep": "Pípnutie",
"Passkey BETA": "Passkey BETA",
"Dark BW": "Tmavá BW",
"Light BW": "Light BW",
"Foreground": "Prvé miesto",
"Customize": "Prispôsobenie stránky",
"Background": "Pozadie",
"BLE": "BLE",
"LCD Brightness": "Jas LCD displeja",
"LCD Timeout": "Časový limit LCD displeja",
"Add Device": "Pridať zariadenie",
"Connect device\nto add to\nwhitelist": "Pripojenie zariadenia\npridať do\nwhitelist",
"Remove": "Odstránenie stránky",
"Highlight FG": "Zvýraznenie FG",
"Wake on Touch": "Prebudenie na dotyk",
"Background 2": "Pozadie 2",
"Wake on BTN1": "Prebuďte sa na BTN1",
"Wake on BTN2": "Prebuďte sa na BTN2",
"Wake on BTN3": "Prebuďte sa na BTN3",
"Highlight BG": "Zvýraznenie BG",
"Wake on FaceUp": "Prebudiť sa na FaceUp",
"Wake on Twist": "Prebudiť sa na Twiste",
"Utilities": "Komunálne služby",
"Rewrite Settings": "Nastavenia prepísania",
"Log": "Prihlásiť sa",
"Debug Info": "Informácie o ladení",
"Storage": "Úložisko",
"Compact Storage": "Kompaktné úložisko",
"Twist Max Y": "Twist Max Y",
"Twist Timeout": "Twist Timeout",
"Time Zone": "Časové pásmo",
"Reset Settings": "Obnovenie nastavení",
"Clock Style": "Štýl hodín",
"Compacting...\nTakes approx\n1 minute": "Zhutňovanie...\nTrvá približne\n1 minúta",
"Twist Threshold": "Prahová hodnota Twist",
"Stay Connectable": "Zostaňte pripojení",
"Flatten Battery": "Sploštenie batérie",
"This will remove everything": "Tým sa odstráni všetko.",
"Connectable": "Pripojiteľné",
"Turn Off": "Vypnúť",
"Reset to Defaults": "Obnovenie predvolených nastavení",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Sploštenie batérie - môže trvať niekoľko hodín.\nDlhým stlačením tlačidla zrušíte",
"No Clocks Found": "Nenašli sa žiadne hodiny",
"Side": "Strana",
"Date": "Dátum",
"Second": "Druhý",
"Hour": "Hodina",
"Minute": "Minúta",
"Left": "Vľavo",
"Year": "Rok",
"App Settings": "Nastavenia aplikácie",
"Widgets": "Widgety",
"Month": "Mesiac",
"No app has settings": "Žiadna aplikácia nemá nastavenia",
"Invalid settings": "Neplatné nastavenia",
"Sort Order": "Poradie triedenia",
"Reset All": "Obnoviť všetky",
"Reset": "Obnovenie",
"TIMER": "ČASOVAČ",
"Right": "Vpravo",
"Reset all widgets": "Obnovenie všetkých widgetov",
"ALARM": "ALARM",
"Minutes": "Zápisnica",
"Delete": "Odstrániť",
"off": "mimo",
"on": "na stránke .",
"Repeat": "Opakujte",
"System": "Systém",
"Enabled": "Povolené",
"Vibrate": "Vibrovať",
"Hours": "Hodiny",
"Settings": "Nastavenia",
"Select Clock": "Vybrať hodiny",
"Alerts": "Upozornenia",
"Message": "Správa",
"Theme": "Téma",
"Set Time": "Nastavený čas",
"Locale": "Lokalita",
"Disable": "Zakázať",
"Messages": "Správy",
"Error in settings": "Chyba v nastaveniach",
"Hide": "Skryť",
"Show": "Zobraziť",
"On": "Na stránke",
"Whitelist": "Biela listina",
"Yes": "Áno",
"Ok": "Ok",
"Factory Reset": "Obnovenie továrenského nastavenia",
"No": "Nie",
"Off": "Vypnuté",
"Back": "Späť"
},
"alarm": {
"//": "App-specific overrides"
}
}

163
lang/sl_SL.json Normal file
View File

@ -0,0 +1,163 @@
{
"//": "Slovenian language translations",
"GLOBAL": {
"//": "Translations that apply for all apps",
"Alarm": "Alarm",
"(repeat)": "(ponovitev)",
"New Timer": "Nov časovnik",
"New Alarm": "Nov alarm",
"Timer": "Časomer",
"Save": "Shrani",
"Connected": "Povezano",
"Keep Msgs": "Hranite sporočila Msgs",
"circle 4": "krog 4",
"circle 3": "krog 3",
"Auto snooze": "Samodejni dremež",
"circle 1": "krog 1",
"week": "teden",
"circle 2": "krog 2",
"Sleep": "Spanje",
"circle count": "štetje krogov",
"steps": "koraki",
"show widgets": "prikaži gradnike",
"heartrate": "srčni utrip",
"valid period": "veljavno obdobje",
"maximum": "največ",
"battery warn": "opozorilo o bateriji",
"weather circle": "vremenski krog",
"data": "podatki",
"goal": "cilj",
"step length": "dolžina koraka",
"minimum": "najmanjši",
"min. confidence": "min. zaupanje",
"Heartrate": "Srčni utrip",
"distance goal": "ciljna razdalja",
"Steps": "Koraki",
"color": "barva",
"colorize icon": "obarvanje ikone",
"App Source\nNot found": "Vir aplikacije\nNi najden",
"Show clocks": "Prikaži ure",
"TAP right top/bottom": "TAP desno zgoraj/spodaj",
"View Message": "Ogled sporočila",
"Circle": "Krog",
"Launcher Settings": "Nastavitve zaganjalnika",
"Vector font size": "Velikost vektorske pisave",
"Font": "Pisava",
"Loading": "Nalaganje",
"Delete all messages": "Brisanje vseh sporočil",
"No Messages": "Brez sporočil",
"BTNs 1:startlap 2:exit 3:reset": "BTNs 1:startlap 2:exit 3:reset",
"Are you sure": "Ste prepričani, da",
"start&lap/reset, BTN1: EXIT": "start&lap/reset, BTN1: EXIT",
"Mark Unread": "Označi neprebrano",
"Utils": "Utils",
"Record Run": "Rekordna vožnja",
"Delete All Messages": "Brisanje vseh sporočil",
"Unread timer": "Neprebrani časovnik",
"Music": "Glasba",
"LCD": "LCD",
"Apps": "Aplikacije",
"Bluetooth": "Bluetooth",
"Dark BW": "Temna BW",
"Vibration": "Vibracije",
"Quiet Mode": "Tihi način",
"Beep": "Beep",
"Passkey BETA": "Passkey BETA",
"Piezo": "Piezo",
"HID": "HID",
"Make Connectable": "Povežite se",
"BLE": "BLE",
"Programmable": "Programirljiv",
"Light BW": "Light BW",
"Background": "Ozadje",
"Customize": "Prilagodite",
"Background 2": "Ozadje 2",
"LCD Brightness": "Svetlost LCD-ja",
"Wake on BTN2": "Zbudi se na BTN2",
"Wake on BTN1": "Zbudite se na BTN1",
"LCD Timeout": "Časovna omejitev LCD",
"Twist Max Y": "Twist Max Y",
"Wake on Twist": "Prebudite se na Twist",
"Twist Threshold": "Prag zasuka",
"Foreground 2": "V ospredju 2",
"Foreground": "Novo okolje",
"Remove": "Odstranite",
"Time Zone": "Časovni pas",
"Wake on BTN3": "Wake na BTN3",
"Highlight FG": "Poudarite FG",
"Wake on Touch": "Zbujanje na dotik",
"Clock Style": "Stil ure",
"Highlight BG": "Poudarite BG",
"Add Device": "Dodajanje naprave",
"Connect device\nto add to\nwhitelist": "Povežite napravo\nza dodajanje v\nbeli seznam",
"Utilities": "Storitve",
"Wake on FaceUp": "Prebudite se v aplikaciji FaceUp",
"Compact Storage": "Kompaktno shranjevanje",
"Log": "Dnevnik",
"Debug Info": "Informacije o odpravljanju napak",
"Turn Off": "Izklopite",
"Flatten Battery": "Sploščena baterija",
"Reset to Defaults": "Ponastavitev na privzete nastavitve",
"Reset Settings": "Ponastavitev nastavitev",
"Twist Timeout": "Twist Timeout",
"This will remove everything": "To bo odstranilo vse",
"Rewrite Settings": "Nastavitve prepisovanja",
"Storage": "Shranjevanje",
"Compacting...\nTakes approx\n1 minute": "Zgoščevanje...\nVzame približno\n1 minuta",
"No Clocks Found": "Ure niso bile najdene",
"Stay Connectable": "Ostanite povezljivi",
"Minute": "Minuta",
"Connectable": "Povezljivost",
"Hour": "Ura",
"Flattening battery - this can take hours.\nLong-press button to cancel": "Ploščati baterijo - to lahko traja več ur.\nDolgo pritisnite gumb za preklic",
"Second": "Drugi",
"Month": "Mesec",
"Date": "Datum",
"ALARM": "ALARM",
"Reset all widgets": "Ponastavitev vseh gradnikov",
"Reset All": "Ponastavi vse",
"TIMER": "TIMER",
"Widgets": "Pripomočki",
"Hours": "Ure",
"Minutes": "Zapisnik",
"Year": "Leto",
"No app has settings": "Nobena aplikacija nima nastavitev",
"App Settings": "Nastavitve aplikacije",
"Repeat": "Ponovite",
"Invalid settings": "Neveljavne nastavitve",
"Enabled": "Omogočeno",
"Reset": "Ponastavitev",
"off": "izklop",
"Side": "Stran",
"Sort Order": "Vrstni red",
"Left": "Leva stran",
"Right": "Desno",
"on": "na spletni strani .",
"Theme": "Tema",
"Locale": "Lokacija",
"Alerts": "Opozorila",
"Select Clock": "Izberite uro",
"System": "Sistem",
"Settings": "Nastavitve",
"Set Time": "Čas nastavitve",
"Whitelist": "Bela lista",
"Message": "Sporočilo",
"Vibrate": "Vibriranje",
"Delete": "Izbriši",
"Error in settings": "Napaka v nastavitvah",
"Messages": "Sporočila",
"Disable": "Onemogočite",
"Show": "Prikaži",
"Ok": "Ok",
"On": "Na spletni strani",
"Hide": "Skrij",
"Factory Reset": "Ponastavitev tovarniške nastavitve",
"Yes": "Da",
"No": "Ne",
"Off": "Izklopljeno",
"Back": "Nazaj"
},
"alarm": {
"//": "App-specific overrides"
}
}