Merge pull request #2343 from thyttan/lang

[Multiple apps] add more /*LANG*/ to some of the most installed apps
pull/2352/head
Gordon Williams 2022-12-02 08:46:02 +00:00 committed by GitHub
commit b52fa430a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 39 additions and 33 deletions

View File

@ -11,3 +11,4 @@
0.11: Bangle.js2: New pixels, btn1 to exit
0.12: Actual pixels as of 29th Nov 2021
0.13: Bangle.js 2: Use setUI to add software back button
0.14: Add automatic translation of more strings

View File

@ -11,8 +11,8 @@ g.drawString("BANGLEJS.COM",120,y-4);
} else {
y=-(4+h); // small screen, start right at top
}
g.drawString("Powered by Espruino",0,y+=4+h);
g.drawString("Version "+ENV.VERSION,0,y+=h);
g.drawString(/*LANG*/"Powered by Espruino",0,y+=4+h);
g.drawString(/*LANG*/"Version "+ENV.VERSION,0,y+=h);
g.drawString("Commit "+ENV.GIT_COMMIT,0,y+=h);
function getVersion(name,file) {
var j = s.readJSON(file,1);
@ -24,9 +24,9 @@ getVersion("Launcher","launch.info");
getVersion("Settings","setting.info");
y+=h;
g.drawString(MEM.total+" JS Variables available",0,y+=h);
g.drawString("Storage: "+(require("Storage").getFree()>>10)+"k free",0,y+=h);
if (ENV.STORAGE) g.drawString(" "+(ENV.STORAGE>>10)+"k total",0,y+=h);
g.drawString(MEM.total+/*LANG*/" JS Variables available",0,y+=h);
g.drawString("Storage: "+(require("Storage").getFree()>>10)+/*LANG*/"k free",0,y+=h);
if (ENV.STORAGE) g.drawString(" "+(ENV.STORAGE>>10)+/*LANG*/"k total",0,y+=h);
if (ENV.SPIFLASH) g.drawString("SPI Flash: "+(ENV.SPIFLASH>>10)+"k",0,y+=h);
g.setFontAlign(0,-1);
g.flip();

View File

@ -35,17 +35,17 @@ function drawInfo() {
g.setFont("4x6").setFontAlign(0,0).drawString("BANGLEJS.COM",W-30,56);
var h=8, y = 24-h;
g.setFont("6x8").setFontAlign(-1,-1);
g.drawString("Powered by Espruino",0,y+=4+h);
g.drawString("Version "+ENV.VERSION,0,y+=h);
g.drawString(/*LANG*/"Powered by Espruino",0,y+=4+h);
g.drawString(/*LANG*/"Version "+ENV.VERSION,0,y+=h);
g.drawString("Commit "+ENV.GIT_COMMIT,0,y+=h);
getVersion("Bootloader","boot.info");
getVersion("Launcher","launch.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);
if (ENV.STORAGE) g.drawString(" "+(ENV.STORAGE>>10)+"k total",0,y+=h);
g.drawString(MEM.total+/*LANG*/" JS Vars",0,y+=h);
g.drawString("Storage: "+(require("Storage").getFree()>>10)+/*LANG*/"k free",0,y+=h);
if (ENV.STORAGE) g.drawString(" "+(ENV.STORAGE>>10)+/*LANG*/"k total",0,y+=h);
if (ENV.SPIFLASH) g.drawString("SPI Flash: "+(ENV.SPIFLASH>>10)+"k",0,y+=h);
imageTop = y+h;
imgScroll = imgHeight-imageTop;

View File

@ -1,7 +1,7 @@
{
"id": "about",
"name": "About",
"version": "0.13",
"version": "0.14",
"description": "Bangle.js About page - showing software version, stats, and a collaborative mural from the Bangle.js KickStarter backers",
"icon": "app.png",
"tags": "tool,system",

View File

@ -35,4 +35,5 @@
Add option for auto-delete a timer after it expires
0.33: Allow hiding timers&alarms
0.34: Add "Confirm" option to alarm/timer edit menus
0.35: Add automatic translation of more strings

View File

@ -183,7 +183,7 @@ function decodeDOW(alarm) {
.map((day, index) => alarm.dow & (1 << (index + firstDayOfWeek)) ? day : "_")
.join("")
.toLowerCase()
: "Once"
: /*LANG*/"Once"
}
function showEditRepeatMenu(repeat, dow, dowChangeCallback) {

View File

@ -2,7 +2,7 @@
"id": "alarm",
"name": "Alarms & Timers",
"shortName": "Alarms",
"version": "0.34",
"version": "0.35",
"description": "Set alarms and timers on your Bangle",
"icon": "app.png",
"tags": "tool,alarm,widget",

View File

@ -15,3 +15,4 @@
0.14: Move settings
0.15: Fix charts (fix #1366)
0.16: Code tidyup, add back button in top left of health app graphs
0.17: Add automatic translation of bar chart labels

View File

@ -41,7 +41,7 @@ function stepsPerHour() {
var data = new Uint16Array(24);
require("health").readDay(new Date(), h=>data[h.hr]+=h.steps);
setButton(menuStepCount);
barChart("HOUR", data);
barChart(/*LANG*/"HOUR", data);
}
function stepsPerDay() {
@ -49,7 +49,7 @@ function stepsPerDay() {
var data = new Uint16Array(31);
require("health").readDailySummaries(new Date(), h=>data[h.day]+=h.steps);
setButton(menuStepCount);
barChart("DAY", data);
barChart(/*LANG*/"DAY", data);
}
function hrmPerHour() {
@ -62,7 +62,7 @@ function hrmPerHour() {
});
data.forEach((d,i)=>data[i] = d/cnt[i]);
setButton(menuHRM);
barChart("HOUR", data);
barChart(/*LANG*/"HOUR", data);
}
function hrmPerDay() {
@ -75,7 +75,7 @@ function hrmPerDay() {
});
data.forEach((d,i)=>data[i] = d/cnt[i]);
setButton(menuHRM);
barChart("DAY", data);
barChart(/*LANG*/"DAY", data);
}
function movementPerHour() {
@ -83,7 +83,7 @@ function movementPerHour() {
var data = new Uint16Array(24);
require("health").readDay(new Date(), h=>data[h.hr]+=h.movement);
setButton(menuMovement);
barChart("HOUR", data);
barChart(/*LANG*/"HOUR", data);
}
function movementPerDay() {
@ -91,7 +91,7 @@ function movementPerDay() {
var data = new Uint16Array(31);
require("health").readDailySummaries(new Date(), h=>data[h.day]+=h.movement);
setButton(menuMovement);
barChart("DAY", data);
barChart(/*LANG*/"DAY", data);
}
// Bar Chart Code
@ -163,7 +163,7 @@ function setButton(fn) {
swipe:(lr,ud) => {
if (lr == 1) {
// HOUR data starts at index 0, DAY data starts at index 1
chart_index = Math.max((chart_label == "DAY") ? -3 : -4, chart_index - 1);
chart_index = Math.max((chart_label == /*LANG*/"DAY") ? -3 : -4, chart_index - 1);
} else if (lr<0) {
chart_index = Math.min(data_len - 5, chart_index + 1);
} else {

View File

@ -1,7 +1,7 @@
{
"id": "health",
"name": "Health Tracking",
"version": "0.16",
"version": "0.17",
"description": "Logs health data and provides an app to view it",
"icon": "app.png",
"tags": "tool,system,health",

View File

@ -15,3 +15,4 @@
Fix wrong fallback for buzz pattern
0.13: Ask to delete a timer after stopping it
0.14: Added clkinfo for alarms and timers
0.15: Automatic translation of some string in clkinfo

View File

@ -31,7 +31,7 @@
function getAlarmText(a){
if(a.timer) {
if(!a.on) return "off";
if(!a.on) return /*LANG*/"off";
let time = Math.round(alarm.getTimeToAlarm(a)/(60*1000));
if(time > 60)
time = Math.round(time / 60) + "h";
@ -52,7 +52,7 @@
var img = iconAlarmOn;
//get only alarms not created by other apps
var alarmItems = {
name: "Alarms",
name: /*LANG*/"Alarms",
img: img,
dynamic: true,
items: alarm.getAlarms().filter(a=>!a.appid)

View File

@ -1,7 +1,7 @@
{
"id": "sched",
"name": "Scheduler",
"version": "0.14",
"version": "0.15",
"description": "Scheduling library for alarms and timers",
"icon": "app.png",
"type": "scheduler",

View File

@ -59,3 +59,4 @@
0.52: Add option for left-handed users
0.53: Ensure that when clock is set, clockHasWidgets is set correctly too
0.54: If setting.json is corrupt, ensure it gets re-written
0.55: More strings tagged for automatic translation.

View File

@ -1,7 +1,7 @@
{
"id": "setting",
"name": "Settings",
"version": "0.54",
"version": "0.55",
"description": "A menu for setting up Bangle.js",
"icon": "settings.png",
"tags": "tool,system",

View File

@ -146,7 +146,7 @@ function showAlertsMenu() {
},
/*LANG*/"Quiet Mode": {
value: settings.quiet|0,
format: v => ["Off", "Alarms", "Silent"][v%3],
format: v => [/*LANG*/"Off", /*LANG*/"Alarms", /*LANG*/"Silent"][v%3],
onchange: v => {
settings.quiet = v%3;
updateSettings();
@ -162,9 +162,9 @@ function showAlertsMenu() {
function showBLEMenu() {
var hidV = [false, "kbmedia", "kb", "com", "joy"];
var hidN = ["Off", "Kbrd & Media", "Kbrd", "Kbrd & Mouse" ,"Joystick"];
var hidN = [/*LANG*/"Off", /*LANG*/"Kbrd & Media", /*LANG*/"Kbrd", /*LANG*/"Kbrd & Mouse", /*LANG*/"Joystick"];
E.showMenu({
'': { 'title': 'Bluetooth' },
'': { 'title': /*LANG*/'Bluetooth' },
'< Back': ()=>showMainMenu(),
/*LANG*/'Make Connectable': ()=>makeConnectable(),
/*LANG*/'BLE': {
@ -193,11 +193,11 @@ function showBLEMenu() {
}
},
/*LANG*/'Passkey BETA': {
value: settings.passkey?settings.passkey:"none",
value: settings.passkey?settings.passkey:/*LANG*/"none",
onchange: () => setTimeout(showPasskeyMenu) // graphical_menu redraws after the call
},
/*LANG*/'Whitelist': {
value: settings.whitelist?(settings.whitelist.length+" devs"):"off",
value: settings.whitelist?(settings.whitelist.length+/*LANG*/" devs"):/*LANG*/"off",
onchange: () => setTimeout(showWhitelistMenu) // graphical_menu redraws after the call
}
});
@ -606,7 +606,7 @@ function showUtilMenu() {
menu[/*LANG*/'Reset Settings'] = () => {
E.showPrompt(/*LANG*/'Reset to Defaults?',{title:/*LANG*/"Settings"}).then((v) => {
if (v) {
E.showMessage('Resetting');
E.showMessage(/*LANG*/'Resetting');
resetSettings();
setTimeout(showMainMenu, 50);
} else showUtilMenu();
@ -824,6 +824,7 @@ function showAppSettings(app) {
function showTouchscreenCalibration() {
Bangle.setUI();
require('widget_utils').hide();
// disable touchscreen calibration (passed coords right through)
Bangle.setOptions({touchX1: 0, touchY1: 0, touchX2: g.getWidth(), touchY2: g.getHeight() });
@ -847,7 +848,7 @@ function showTouchscreenCalibration() {
g.drawLine(spot[0],spot[1]-32,spot[0],spot[1]+32);
g.drawCircle(spot[0],spot[1], 16);
var tapsLeft = (1-currentTry)*4+(4-currentCorner);
g.setFont("6x8:2").setFontAlign(0,0).drawString(tapsLeft+" taps\nto go", g.getWidth()/2, g.getHeight()/2);
g.setFont("6x8:2").setFontAlign(0,0).drawString(tapsLeft+/*LANG*/" taps\nto go", g.getWidth()/2, g.getHeight()/2);
}
function calcCalibration() {
@ -870,7 +871,7 @@ function showTouchscreenCalibration() {
var s = storage.readJSON("setting.json",1)||{};
s.touch = calib;
storage.writeJSON("setting.json",s);
g.setFont("6x8:2").setFontAlign(0,0).drawString("Calibrated!", g.getWidth()/2, g.getHeight()/2);
g.setFont("6x8:2").setFontAlign(0,0).drawString(/*LANG*/"Calibrated!", g.getWidth()/2, g.getHeight()/2);
// now load the main menu again
setTimeout(showLCDMenu, 500);
}