mirror of https://github.com/espruino/BangleApps
add more /*LANG*/ to some of the most installed apps
parent
1bb9b68e6a
commit
481ddb6a22
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
0.02: Add support for 30-minute timezones.
|
||||
0.03: Add support for Welcome app
|
||||
0.04: Add setting to disable log messages
|
||||
0.05: Fix Settings json
|
||||
0.06: Remove distance setting as there's a separate app for Locale now
|
||||
0.07: Added vibrate as beep workaround
|
||||
0.08: Add support for app/widget settings
|
||||
0.09: Move Welcome into App/widget settings
|
||||
0.10: Added LCD wake-up settings
|
||||
Adds LCD brightness setting
|
||||
0.11: Make LCD brightness work after leaving settings
|
||||
0.12: Fix memory leak (#206)
|
||||
Bring App settings nearer the top
|
||||
Move LCD Timeout to wakeup menu
|
||||
0.13: Fix memory leak for App settings
|
||||
Make capitalization more consistent
|
||||
Move LCD Brightness menu into more general LCD menu
|
||||
0.14: Reduce memory usage when running app settings page
|
||||
0.15: Reduce memory usage when running default clock chooser (#294)
|
||||
0.16: Reduce memory usage further when running app settings page
|
||||
0.17: Remove need for "settings" in appid.info
|
||||
0.18: Don't overwrite existing settings on app update
|
||||
0.19: Allow BLE HID settings, add README.md
|
||||
0.20: Fix set time menu, allow dates to roll over
|
||||
0.21: Add passkey pairing option (BETA)
|
||||
Add whitelist option (fix #78)
|
||||
0.22: Move HID to BLE menu
|
||||
0.23: Change max time offset to 13 for NZ summer daylight time (NZDT)
|
||||
0.24: Add Quiet Mode settings
|
||||
0.25: Move boot.js code into 'boot' app itself
|
||||
0.26: Use Bangle.softOff if available as this keeps the time
|
||||
0.27: Add Theme menu
|
||||
0.28: Update Quiet Mode widget (if present)
|
||||
0.29: Add Customize to Theme menu
|
||||
0.30: Move '< Back' to the top of menus
|
||||
0.31: Remove Bangle 1 settings when running on Bangle 2
|
||||
0.32: Fix 'beep' menu on Bangle.js 2
|
||||
0.33: Really fix 'beep' menu on Bangle.js 2 this time
|
||||
0.34: Remove Quiet Mode LCD settings: now handled by Quiet Mode Schedule app
|
||||
0.35: Change App/Widget settings to 'App Settings' so it fits on Bangle screen
|
||||
0.36: Added 'Utils' menu with helpful utilities for restoring Bangle.js
|
||||
0.37: Going into passkey menu now saves settings with passkey
|
||||
0.38: Restructed menus as per forum discussion
|
||||
0.39: Fix misbehaving debug info option
|
||||
0.40: Moved off into Utils, put System after Apps
|
||||
0.41: Stop users disabling all wake-up methods and locking themselves out (fix #1272)
|
||||
0.42: Fix theme customizer on new Bangle 2 firmware
|
||||
0.43: Add some Bangle 1 colours to theme customizer
|
||||
0.44: Add "Start Week On X" option (#1780)
|
||||
UI improvements to Locale and Date & Time menu
|
||||
0.45: Add calibrate battery option
|
||||
0.46: Fix regression after making 'calibrate battery' only for Bangle.js 2
|
||||
0.47: Allow colors to be translated
|
||||
Improve "Turn Off" user experience
|
||||
0.48: Allow reading custom themes from files
|
||||
0.49: Now reloads settings properly after 'Calibrate Battery'
|
||||
0.50: Add Bangle.js 2 touchscreen calibration - for 2v16 or 2v15 cutting edge builds
|
||||
0.51: Add setting for configuring a launcher
|
||||
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.
|
|
@ -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.
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue