Bangle.js: Added built-in 'locale' module to handle common conversions - this can be overwritten by a Storage File to change language

This commit is contained in:
Gordon Williams 2020-02-28 16:53:12 +00:00
parent e36bcd8826
commit 2ffd1274ec
5 changed files with 28 additions and 0 deletions

View File

@ -109,6 +109,7 @@
Storage.list() can now take a RegEx/string to filter returned results
MDBT42Q: Remove AES encryption libs by default to free up more flash memory
Microbit: Add SAVE_ON_FLASH_EXTREME flag to ensure builds keep working
Bangle.js: Added built-in 'locale' module to handle common conversions - this can be overwritten by a Storage File to change language
2v04 : Allow \1..\9 escape codes in RegExp
ESP8266: reading storage is not working for boot from user2 (fix #1507)

View File

@ -46,6 +46,7 @@ info = {
'WRAPPERSOURCES += libs/banglejs/jswrap_bangle.c',
'SOURCES += libs/misc/nmea.c',
'JSMODULESOURCES += libs/js/graphical_menu.min.js',
'JSMODULESOURCES += libs/js/banglejs/locale.min.js',
'NRF_BL_DFU_INSECURE=1',
'LINKER_BOOTLOADER=targetlibs/nrf5x_12/nrf5x_linkers/banglejs_dfu.ld',
'LINKER_ESPRUINO=targetlibs/nrf5x_12/nrf5x_linkers/banglejs_espruino.ld'

View File

@ -0,0 +1,24 @@
exports = { name : "en_GB", currencySym:"£",
translate : str=>str, // as-is
date : (d,short) => short?("0"+d.getDate()).substr(-2)+"/"+("0"+(d.getMonth()+1)).substr(-2)+"/"+d.getFullYear():d.toString().substr(4,11), // Date to "Feb 28 2020" or "28/02/2020"(short)
time : (d,short) => { // Date to "4:15.28 pm" or "15:42.59"(short)
if (short)
return d.toString().substr(16,5)+"."+d.toString().substr(22,2);
else {
var h = d.getHours(), m = d.getMinutes(), r = "am";
if (h==0) { h=12; }
else if (h>=12) {
if (h>12) h-=12;
r = "pm";
}
return (" "+h).substr(-2)+":"+("0"+m).substr(-2)+"."+("0"+d.getSeconds()).substr(-2)+" "+r;
}
},
dow : (d,short) => short?d.toString().substr(0,3):"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(",")[d.getDay()], // Date to "Monday" or "Mon"(short)
month : (d,short) => short?d.toString().substr(4,3):"January,February,March,April,May,June,July,August,September,October,November,December".split(",")[d.getMonth()], // Date to "February" or "Feb"(short)
number : n => n.toString(), // more fancy?
currency : n => "£"+n.toFixed(2), // number to "£1.00"
distance : m => (m<1000)?Math.round(m)+"m":Math.round(m/160.934)/10+"mi", // meters to "123m" or "1.2mi" depending on size
speed : s => Math.round(s)+"mph",// kph to "123mph"
temp : t => Math.round(t)+"'C" // degrees C to degrees C
};

1
libs/js/banglejs/locale.min.js vendored Normal file
View File

@ -0,0 +1 @@
exports={name:'en_GB',currencySym:'£',translate:a=>a,date:(a,b)=>b?('0'+a.getDate()).substr(-2)+'/'+('0'+(a.getMonth()+1)).substr(-2)+'/'+a.getFullYear():a.toString().substr(4,11),time:(b,e)=>{if(e)return b.toString().substr(16,5)+'.'+b.toString().substr(22,2);else{var a=b.getHours(),d=b.getMinutes(),c='am';return a==0?a=12:a>=12&&(a>12&&(a-=12),c='pm'),(' '+a).substr(-2)+':'+('0'+d).substr(-2)+'.'+('0'+b.getSeconds()).substr(-2)+' '+c}},dow:(a,b)=>b?a.toString().substr(0,3):'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(',')[a.getDay()],month:(a,b)=>b?a.toString().substr(4,3):'January,February,March,April,May,June,July,August,September,October,November,December'.split(',')[a.getMonth()],number:a=>a.toString(),currency:a=>'£'+a.toFixed(2),distance:a=>a<1e3?Math.round(a)+'m':Math.round(a/160.934)/10+'mi',speed:a=>Math.round(a)+'mph',temp:a=>Math.round(a)+"'C"}

View File

@ -42,5 +42,6 @@ node ../../../EspruinoDocs/bin/minify.js banglejs/LED2.js banglejs/LED2.min.js
node ../../../EspruinoDocs/bin/minify.js banglejs/Bangle_drawWidgets.js banglejs/Bangle_drawWidgets.min.js
node ../../../EspruinoDocs/bin/minify.js banglejs/Bangle_loadWidgets.js banglejs/Bangle_loadWidgets.min.js
node ../../../EspruinoDocs/bin/minify.js banglejs/Bangle_showLauncher.js banglejs/Bangle_showLauncher.min.js
node ../../../EspruinoDocs/bin/minify.js banglejs/locale.js banglejs/locale.min.js