diff --git a/apps/BLEcontroller/app.js b/apps/BLEcontroller/app.js index 7f3a37ae2..c8217988c 100644 --- a/apps/BLEcontroller/app.js +++ b/apps/BLEcontroller/app.js @@ -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 diff --git a/apps/a_clock_timer/app.js b/apps/a_clock_timer/app.js index c1c31cb80..5f9a3a468 100644 --- a/apps/a_clock_timer/app.js +++ b/apps/a_clock_timer/app.js @@ -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) { diff --git a/apps/about/app-bangle1.js b/apps/about/app-bangle1.js index 04f7ff7ee..28a292376 100644 --- a/apps/about/app-bangle1.js +++ b/apps/about/app-bangle1.js @@ -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); diff --git a/apps/about/app-bangle2.js b/apps/about/app-bangle2.js index 89663a4bc..978d36193 100644 --- a/apps/about/app-bangle2.js +++ b/apps/about/app-bangle2.js @@ -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); diff --git a/apps/activepedom/app.js b/apps/activepedom/app.js index d241586f2..12969a0a0 100644 --- a/apps/activepedom/app.js +++ b/apps/activepedom/app.js @@ -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); diff --git a/apps/activepedom/widget.js b/apps/activepedom/widget.js index 11360fd61..62c2d857a 100644 --- a/apps/activepedom/widget.js +++ b/apps/activepedom/widget.js @@ -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') { diff --git a/apps/alarm/app.js b/apps/alarm/app.js index 5ef6be152..17062d44a 100644 --- a/apps/alarm/app.js +++ b/apps/alarm/app.js @@ -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 } }; diff --git a/apps/android/boot.js b/apps/android/boot.js index 5c910f5b1..eb3d26c6e 100644 --- a/apps/android/boot.js +++ b/apps/android/boot.js @@ -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) => { diff --git a/apps/antonclk/app.js b/apps/antonclk/app.js index fd6cc98c6..7b40d8eb5 100644 --- a/apps/antonclk/app.js +++ b/apps/antonclk/app.js @@ -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; } diff --git a/apps/banglerun/app.js b/apps/banglerun/app.js index 1793decef..b79255171 100644 --- a/apps/banglerun/app.js +++ b/apps/banglerun/app.js @@ -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"})}(); diff --git a/apps/breath/app.js b/apps/breath/app.js index 97e6b625f..380308739 100644 --- a/apps/breath/app.js +++ b/apps/breath/app.js @@ -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){ diff --git a/apps/bthrm/boot.js b/apps/bthrm/boot.js index 0d3b72735..6ac6382d6 100644 --- a/apps/bthrm/boot.js +++ b/apps/bthrm/boot.js @@ -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); } diff --git a/apps/bthrv/app.js b/apps/bthrv/app.js index 2faa7c200..7f6ec2d35 100644 --- a/apps/bthrv/app.js +++ b/apps/bthrv/app.js @@ -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); } diff --git a/apps/circlesclock/app.js b/apps/circlesclock/app.js index 0eb14b425..49af2a057 100644 --- a/apps/circlesclock/app.js +++ b/apps/circlesclock/app.js @@ -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; } diff --git a/apps/circlesclock/settings.js b/apps/circlesclock/settings.js index e89ddf8f2..348d187eb 100644 --- a/apps/circlesclock/settings.js +++ b/apps/circlesclock/settings.js @@ -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), }, }; diff --git a/apps/cliclockJS2Enhanced/app.js b/apps/cliclockJS2Enhanced/app.js index e20944531..b6172b497 100644 --- a/apps/cliclockJS2Enhanced/app.js +++ b/apps/cliclockJS2Enhanced/app.js @@ -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(() => {}); } diff --git a/apps/clicompleteclk/app.js b/apps/clicompleteclk/app.js index 8a4d00798..a39b37e58 100644 --- a/apps/clicompleteclk/app.js +++ b/apps/clicompleteclk/app.js @@ -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'); diff --git a/apps/configurable_clock/app.js b/apps/configurable_clock/app.js index afde21e1a..157d57741 100644 --- a/apps/configurable_clock/app.js +++ b/apps/configurable_clock/app.js @@ -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:[ diff --git a/apps/cscsensor/cscsensor.app.js b/apps/cscsensor/cscsensor.app.js index 03fc77aca..e2af0db16 100644 --- a/apps/cscsensor/cscsensor.app.js +++ b/apps/cscsensor/cscsensor.app.js @@ -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; diff --git a/apps/dane_tcr/app.js b/apps/dane_tcr/app.js index ce75c55cb..aa25379d3 100644 --- a/apps/dane_tcr/app.js +++ b/apps/dane_tcr/app.js @@ -244,7 +244,7 @@ function run(){ Bangle.setLCDMode(); g.clear(); g.flip(); - E.showMessage(/*LANG*/"Loading..."); + E.showMessage("Loading..."); load(app.src); } diff --git a/apps/daysl/app.js b/apps/daysl/app.js index 0bb11a77b..50695328e 100644 --- a/apps/daysl/app.js +++ b/apps/daysl/app.js @@ -46,7 +46,7 @@ function showMenu() { updateSettings(); } }, - /*LANG*/'Year': { + 'Year': { value: settings.year, step: 1, onchange: v => { diff --git a/apps/dsdrelay/dsdrelay.app.js b/apps/dsdrelay/dsdrelay.app.js index 4a34a47fc..18e7293aa 100644 --- a/apps/dsdrelay/dsdrelay.app.js +++ b/apps/dsdrelay/dsdrelay.app.js @@ -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; diff --git a/apps/ffcniftyb/app.js b/apps/ffcniftyb/app.js index 9456d3421..75d217ab4 100644 --- a/apps/ffcniftyb/app.js +++ b/apps/ffcniftyb/app.js @@ -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 *********************************************/ diff --git a/apps/gpsinfo/gps-info.js b/apps/gpsinfo/gps-info.js index a6e21af0d..0eca2ccf5 100644 --- a/apps/gpsinfo/gps-info.js +++ b/apps/gpsinfo/gps-info.js @@ -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, diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index 712567be5..833a816ea 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -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); diff --git a/apps/gpstime/gpstime.js b/apps/gpstime/gpstime.js index d22783e3a..8c80953fa 100644 --- a/apps/gpstime/gpstime.js +++ b/apps/gpstime/gpstime.js @@ -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() } ]}); diff --git a/apps/hardalarm/hardalarm.js b/apps/hardalarm/hardalarm.js index b9ce731d4..e33bd39cc 100644 --- a/apps/hardalarm/hardalarm.js +++ b/apps/hardalarm/hardalarm.js @@ -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) { diff --git a/apps/hidmsic/hid-music.js b/apps/hidmsic/hid-music.js index 60aa2cf08..db81744f3 100644 --- a/apps/hidmsic/hid-music.js +++ b/apps/hidmsic/hid-music.js @@ -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], () => { diff --git a/apps/hidmsicswipe/hidmsicswipe.js b/apps/hidmsicswipe/hidmsicswipe.js index 7da81900b..e0fc760a4 100644 --- a/apps/hidmsicswipe/hidmsicswipe.js +++ b/apps/hidmsicswipe/hidmsicswipe.js @@ -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) { diff --git a/apps/intervalTimer/app.js b/apps/intervalTimer/app.js index 906a8f8e0..fd57dbe2b 100644 --- a/apps/intervalTimer/app.js +++ b/apps/intervalTimer/app.js @@ -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(); } } diff --git a/apps/intervals/intervals.app.js b/apps/intervals/intervals.app.js index c0f368687..da436b104 100644 --- a/apps/intervals/intervals.app.js +++ b/apps/intervals/intervals.app.js @@ -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); diff --git a/apps/ios/boot.js b/apps/ios/boot.js index f95bd6839..50286c4a6 100644 --- a/apps/ios/boot.js +++ b/apps/ios/boot.js @@ -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; diff --git a/apps/jbm8b/app.js b/apps/jbm8b/app.js index bb77b1303..53baa32e3 100644 --- a/apps/jbm8b/app.js +++ b/apps/jbm8b/app.js @@ -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 = [ diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index f430c1c43..c020c49e8 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -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(); diff --git a/apps/lightswitch/settings.js b/apps/lightswitch/settings.js index 13fe5dc39..aac159148 100644 --- a/apps/lightswitch/settings.js +++ b/apps/lightswitch/settings.js @@ -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"], diff --git a/apps/lightswitch/widget.js b/apps/lightswitch/widget.js index c394df2e8..119a114fe 100644 --- a/apps/lightswitch/widget.js +++ b/apps/lightswitch/widget.js @@ -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 diff --git a/apps/ltherm/app.js b/apps/ltherm/app.js index 2cbf26e5f..7accae2ed 100644 --- a/apps/ltherm/app.js +++ b/apps/ltherm/app.js @@ -20,6 +20,6 @@ const avg = []; setInterval(function() { drawTemperature(); }, 2000); -E.showMessage(/*LANG*/"Loading..."); +E.showMessage("Loading..."); Bangle.loadWidgets(); Bangle.drawWidgets(); diff --git a/apps/marioclock/marioclock-app.js b/apps/marioclock/marioclock-app.js index 20dc0814f..6289a2568 100644 --- a/apps/marioclock/marioclock-app.js +++ b/apps/marioclock/marioclock-app.js @@ -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, diff --git a/apps/menuwheel/boot.js b/apps/menuwheel/boot.js index f5bfff498..deb15264d 100644 --- a/apps/menuwheel/boot.js +++ b/apps/menuwheel/boot.js @@ -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") { diff --git a/apps/messages/app.js b/apps/messages/app.js index 05a02191c..ec147daf8 100644 --- a/apps/messages/app.js +++ b/apps/messages/app.js @@ -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); diff --git a/apps/ncstart/start.js b/apps/ncstart/start.js index b34066376..d2d713cb2 100644 --- a/apps/ncstart/start.js +++ b/apps/ncstart/start.js @@ -29,7 +29,7 @@ function welcome() { setWatch(() => { clearInterval(i); clearWatch(); - E.showMessage(/*LANG*/'Loading...'); + E.showMessage('Loading...'); res(); }, BTN2, {repeat:false}); }); diff --git a/apps/numerals/numerals.settings.js b/apps/numerals/numerals.settings.js index ad56e7d04..ae321322a 100644 --- a/apps/numerals/numerals.settings.js +++ b/apps/numerals/numerals.settings.js @@ -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 diff --git a/apps/pebble/pebble.app.js b/apps/pebble/pebble.app.js index 35f700762..106e09b82 100644 --- a/apps/pebble/pebble.app.js +++ b/apps/pebble/pebble.app.js @@ -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==")); diff --git a/apps/pebbled/pebbled.app.js b/apps/pebbled/pebbled.app.js index 378a3878d..bbe98823f 100644 --- a/apps/pebbled/pebbled.app.js +++ b/apps/pebbled/pebbled.app.js @@ -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==")); diff --git a/apps/presentor/app.js b/apps/presentor/app.js index d553e4d8a..6b7450a0c 100644 --- a/apps/presentor/app.js +++ b/apps/presentor/app.js @@ -106,7 +106,7 @@ let mainLayout = new Layout({ type: 'txt', font: '15%', label: '00:00', - id: /*LANG*/'Timer', + id: 'Timer', halign: 1, pad: 3 } diff --git a/apps/ptlaunch/app.js b/apps/ptlaunch/app.js index 18d355dbf..5db3a335b 100644 --- a/apps/ptlaunch/app.js +++ b/apps/ptlaunch/app.js @@ -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]; diff --git a/apps/puzzle15/puzzle15.app.js b/apps/puzzle15/puzzle15.app.js index a19494a68..eec21933c 100644 --- a/apps/puzzle15/puzzle15.app.js +++ b/apps/puzzle15/puzzle15.app.js @@ -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(); diff --git a/apps/rebble/rebble.app.js b/apps/rebble/rebble.app.js index de6facdc6..d186ea8ec 100644 --- a/apps/rebble/rebble.app.js +++ b/apps/rebble/rebble.app.js @@ -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){ diff --git a/apps/recorder/app.js b/apps/recorder/app.js index 320f4d83d..7075563aa 100644 --- a/apps/recorder/app.js +++ b/apps/recorder/app.js @@ -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); diff --git a/apps/recorder/widget.js b/apps/recorder/widget.js index 97b4e7208..e10c99c0c 100644 --- a/apps/recorder/widget.js +++ b/apps/recorder/widget.js @@ -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; diff --git a/apps/sensible/sensible.js b/apps/sensible/sensible.js index 63b5bc9e2..8ec7d93d4 100644 --- a/apps/sensible/sensible.js +++ b/apps/sensible/sensible.js @@ -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 }, diff --git a/apps/setting/settings.js b/apps/setting/settings.js index cd8953aaa..65e076753 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -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) diff --git a/apps/simpletimer/app.js b/apps/simpletimer/app.js index 272c00f0a..e99761810 100644 --- a/apps/simpletimer/app.js +++ b/apps/simpletimer/app.js @@ -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) { diff --git a/apps/sleepphasealarm/app.js b/apps/sleepphasealarm/app.js index 5bb2c006c..39f9b59db 100644 --- a/apps/sleepphasealarm/app.js +++ b/apps/sleepphasealarm/app.js @@ -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 } } diff --git a/apps/smartibot/app.js b/apps/smartibot/app.js index 8760bc59c..88ea5e276 100644 --- a/apps/smartibot/app.js +++ b/apps/smartibot/app.js @@ -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) { diff --git a/apps/smtswch/app.js b/apps/smtswch/app.js index bab06be79..e8491a065 100644 --- a/apps/smtswch/app.js +++ b/apps/smtswch/app.js @@ -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); } diff --git a/apps/sonicclk/app.js b/apps/sonicclk/app.js index e027ed676..eddb971f8 100644 --- a/apps/sonicclk/app.js +++ b/apps/sonicclk/app.js @@ -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": { diff --git a/apps/themesetter/app.js b/apps/themesetter/app.js index 303cdba02..aa3c608cf 100644 --- a/apps/themesetter/app.js +++ b/apps/themesetter/app.js @@ -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 } ] }); diff --git a/apps/thermomF/app.js b/apps/thermomF/app.js index ac754d448..2961e1efc 100644 --- a/apps/thermomF/app.js +++ b/apps/thermomF/app.js @@ -23,6 +23,6 @@ setInterval(function() { drawTemperature(); }, 20000); drawTemperature(); -E.showMessage(/*LANG*/"Loading..."); +E.showMessage("Loading..."); Bangle.loadWidgets(); Bangle.drawWidgets(); \ No newline at end of file diff --git a/apps/timerclk/alarm.alert.js b/apps/timerclk/alarm.alert.js index 133cc5118..f4b61822a 100644 --- a/apps/timerclk/alarm.alert.js +++ b/apps/timerclk/alarm.alert.js @@ -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; diff --git a/apps/torch/app.js b/apps/torch/app.js index 071de5d46..864efb883 100644 --- a/apps/torch/app.js +++ b/apps/torch/app.js @@ -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(); diff --git a/apps/toucher/app.js b/apps/toucher/app.js index 19310592e..aab50fbda 100644 --- a/apps/toucher/app.js +++ b/apps/toucher/app.js @@ -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); } diff --git a/apps/viewstl/viewstl.min.js b/apps/viewstl/viewstl.min.js index 82975bbf9..77469042c 100644 --- a/apps/viewstl/viewstl.min.js +++ b/apps/viewstl/viewstl.min.js @@ -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(); diff --git a/apps/walkersclock/app.js b/apps/walkersclock/app.js index e18879e01..8a5e826c4 100644 --- a/apps/walkersclock/app.js +++ b/apps/walkersclock/app.js @@ -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(); } }); diff --git a/apps/widbatpc/widget.js b/apps/widbatpc/widget.js index b69ef25de..529923386 100644 --- a/apps/widbatpc/widget.js +++ b/apps/widbatpc/widget.js @@ -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);}); diff --git a/apps/widpedom/widget.js b/apps/widpedom/widget.js index 2135bea1a..cc7fdb579 100644 --- a/apps/widpedom/widget.js +++ b/apps/widpedom/widget.js @@ -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 diff --git a/bin/language_scan.js b/bin/language_scan.js index eede250de..6385caf49 100755 --- a/bin/language_scan.js +++ b/bin/language_scan.js @@ -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); diff --git a/lang/bg_BG.json b/lang/bg_BG.json new file mode 100644 index 000000000..8e7fb50bb --- /dev/null +++ b/lang/bg_BG.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/da_DA.json b/lang/da_DA.json new file mode 100644 index 000000000..59aea3068 --- /dev/null +++ b/lang/da_DA.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/el_EL.json b/lang/el_EL.json new file mode 100644 index 000000000..38ef6a01f --- /dev/null +++ b/lang/el_EL.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/et_ET.json b/lang/et_ET.json new file mode 100644 index 000000000..33be5bf6c --- /dev/null +++ b/lang/et_ET.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/index.json b/lang/index.json index 1a9c851d8..f2750cd72 100644 --- a/lang/index.json +++ b/lang/index.json @@ -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"} ] diff --git a/lang/lt_LT.json b/lang/lt_LT.json new file mode 100644 index 000000000..2ea7dca90 --- /dev/null +++ b/lang/lt_LT.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/lv_LV.json b/lang/lv_LV.json new file mode 100644 index 000000000..41525891f --- /dev/null +++ b/lang/lv_LV.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/pl_PL.json b/lang/pl_PL.json new file mode 100644 index 000000000..b83d72600 --- /dev/null +++ b/lang/pl_PL.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/ro_RO.json b/lang/ro_RO.json new file mode 100644 index 000000000..78ed27579 --- /dev/null +++ b/lang/ro_RO.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/sk_SK.json b/lang/sk_SK.json new file mode 100644 index 000000000..6d7de7398 --- /dev/null +++ b/lang/sk_SK.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/sl_SL.json b/lang/sl_SL.json new file mode 100644 index 000000000..bcf873bdd --- /dev/null +++ b/lang/sl_SL.json @@ -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" + } +} \ No newline at end of file diff --git a/lang/ja_JA.json b/lang/unicode-based/ja_JA.json similarity index 100% rename from lang/ja_JA.json rename to lang/unicode-based/ja_JA.json diff --git a/lang/zh_ZH.json b/lang/unicode-based/zh_ZH.json similarity index 100% rename from lang/zh_ZH.json rename to lang/unicode-based/zh_ZH.json