forked from FOSS/BangleApps
89 lines
3.5 KiB
HTML
89 lines
3.5 KiB
HTML
<html>
|
|
<head>
|
|
<link rel="stylesheet" href="../../css/spectre.min.css">
|
|
</head>
|
|
<body>
|
|
|
|
<p>Please choose a language from the following list:</p>
|
|
<div class="form-group">
|
|
<select id="languages" class="form-select">
|
|
</select>
|
|
</div>
|
|
<p>Then click <button id="upload" class="btn btn-primary">Upload</button></p>
|
|
|
|
<script src="../../lib/customize.js"></script>
|
|
<script src="locales.js"></script>
|
|
|
|
<script>
|
|
|
|
var languageSelector = document.getElementById("languages");
|
|
languageSelector.innerHTML = Object.keys(locales).map(l=>`<option value="${l}">${l}</option>`).join("\n");
|
|
|
|
document.getElementById("upload").addEventListener("click", function() {
|
|
|
|
var lang = languageSelector.options[languageSelector.selectedIndex].value;
|
|
console.log(lang);
|
|
|
|
locale = locales[lang];
|
|
if (!locale) {
|
|
alert("Language not found!");
|
|
return;
|
|
}
|
|
|
|
var replaceList = {
|
|
"%Y": "${d.getFullYear()}",
|
|
"%y": "${(d.getFullYear().toString()).substr(-2)}",
|
|
"%m": "${('0'+(d.getMonth()+1).toString()).substr(-2)}",
|
|
"%-m": "${d.getMonth()+1}",
|
|
"%d": "${('0'+d.getDate()).substr(-2)}",
|
|
"%-d": "${d.getDate()}",
|
|
"%HH": "${('0'+d.getHours()).substr(-2)}",
|
|
"%MM": "${('0'+d.getMinutes()).substr(-2)}",
|
|
"%SS": "${('0'+d.getSeconds()).substr(-2)}",
|
|
"%A": "${locale.day.split(',')[d.getDay()]}",
|
|
"%a": "${locale.abday.split(',')[d.getDay()]}",
|
|
"%B": "${locale.month.split(',')[d.getMonth()]}",
|
|
"%b": "${locale.abmonth.split(',')[d.getMonth()]}",
|
|
"%p": "${(d.getHours()<12)?locale.ampm[0].toUpperCase():locale.ampm[1].toUpperCase()}",
|
|
"%P": "${(d.getHours()<12)?locale.ampm[0].toLowerCase():locale.ampm[1].toLowerCase()}"
|
|
};
|
|
|
|
var timeN = locales[lang].timePattern[0];
|
|
var timeS = locales[lang].timePattern[1];
|
|
var dateN = locales[lang].datePattern[0];
|
|
var dateS = locales[lang].datePattern[1];
|
|
Object.keys(replaceList).forEach(e => {
|
|
timeN = timeN.replace(e,replaceList[e]);
|
|
timeS = timeS.replace(e,replaceList[e]);
|
|
dateN = dateN.replace(e,replaceList[e]);
|
|
dateS = dateS.replace(e,replaceList[e]);
|
|
});
|
|
|
|
|
|
var app = `var locale = ${JSON.stringify(locales[lang])};
|
|
exports = {
|
|
lang: locale.lang,
|
|
currencySym: locale.currency_symbol,
|
|
dow: (d,short) => {day = d.getDay();return (short) ? locale.abday.split(",")[day] : locale.day.split(",")[day];},
|
|
month: (d,short) => { month = d.getMonth(); return (short) ? locale.abmonth.split(",")[month] : locale.month.split(",")[month];},
|
|
number: n => n.toString().replace(locale.thousands_sep, locale.decimal_point),
|
|
currency: n => n.toFixed(2).replace(locale.thousands_sep, locale.decimal_point) + locale.currency_symbol,
|
|
distance: n => (n < 1000) ? Math.round(n) + locale.distance[0] : Math.round(n/1000) + locale.distance[1],
|
|
speed: s => Math.round(s) +locale.speed,
|
|
temp: t => Math.round(t) + locale.temperature,
|
|
translate: s => {s=""+s;return locale.trans[s]||locale.trans[s.toLowerCase()]||s;},
|
|
date: (d,short) => (short) ? \`${dateS}\`: \`${dateN}\`,
|
|
time: (d,short) => (short) ? \`${timeS}\`: \`${timeN}\`,
|
|
meridian: d => (d.getHours() <= 12) ? locale.ampm[0]:locale.ampm[1],
|
|
};`;
|
|
|
|
sendCustomizedApp({
|
|
storage:[
|
|
{name:"locale", content:app}
|
|
]
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|