Sliding text clock. Adding German language

also limiting the numer of loaded clocks to 4
pull/730/head
adrian w kirk 2021-04-21 11:09:18 +01:00
parent 7d279495df
commit dcf5765e09
2 changed files with 107 additions and 2 deletions

View File

@ -4,7 +4,7 @@
</head>
<body>
<p>Please select watch languages</p>
<p>Please select watch languages (Max 4, only the first 4 selected will be loaded)</p>
<table id="language_selection">
<tr>
@ -25,6 +25,7 @@
{name:"French",shortname:"fr"},
{name:"Japanese",shortname:"jp"},
{name:"Spanish",shortname:"es"}
{name:"German",shortname:"de"}
];
var selected_languages = ["en","es","jp"];
try{
@ -51,7 +52,7 @@
for (var i=0; i<slidingtext_languages.length; i++) {
var curr_language = slidingtext_languages[i];
var checked=document.getElementById("enabled_"+i).checked;
if (checked) {
if (checked && new_selected_languages.length < 4 ) {
new_selected_languages.push(curr_language.shortname);
}
}

View File

@ -0,0 +1,104 @@
var DateFormatter = require("slidingtext.dtfmt.js");
const germanNumberStr = [ ["ZERO",""], // 0
["EINS",""], // 1
["ZWEI",""], //2
["DREI",''], //3
["VIER",''], //4
["FÜNF",''], //5
["SECHS",''], //6
["SEIBEN",''], //7
["ACHT",''], //8
["NUEN",''], // 9,
["ZEHN",''], // 10
["ELF",''], // 11,
["ZWOLF",''], // 12
["DREI",'ZEHN'], // 13
["VIER",'ZEHN'], // 14
["FUNF",'ZEHN'], // 15
["SECH",'ZEHN'], // 16
["SIEB",'ZEHN'], // 17
["ACHT",'ZEHN'], // 18
["NEUN",'ZEHN'], // 19
["ZWANZIG",''], // 20
["EINUND",'ZWANZIG'], // 21
["ZWEIUND",'ZWANZIG'], // 22
["DREIUND",'ZWANZIG'], // 23
["VIERUND",'ZWANZIG'], // 24
["FUNFUND",'ZWANZIG'], // 25
["SECHSUND",'ZWANZIG'], // 26
["SEIBEN",'ZWANZIG'], // 27
["ACHTUND",'ZWANZIG'], // 28
["NEUNUND",'ZWANZIG'] // 29
];
const germanTensStr = ["ZERO",//0
"ZEHN",//10
"ZWANZIG",//20
"DREISSIG",//30
"VIERZIG",//40
"FUNFZIG",//50
"SECHZIG"//60
]
const germanUnit = ["",//0
"EINUND",//1
"ZWEIUND",//2
"DREIUND",//3
"VIERUND", //4
"FUNFUND", //5
"SECHSUND", //6
"SEIBENUND", //7
"ACHTUND", //8
"NEUNUND" //9
]
function germanHoursToText(hours){
hours = hours % 12;
if(hours == 0){
hours = 12;
}
return germanNumberStr[hours][0];
}
function germanMinsToText(mins) {
if (mins < 20) {
return germanNumberStr[mins];
} else {
var tens = (mins / 10 | 0);
var word1 = germanTensStr[tens];
var remainder = mins - tens * 10;
var word2 = germanUnit[remainder];
return [word2, word1];
}
}
class GermanDateFormatter extends DateFormatter {
constructor() { super();}
name(){return "German";}
formatDate(date){
var mins = date.getMinutes();
var hourOfDay = date.getHours();
var hours = germanHoursToText(hourOfDay);
//console.log('hourOfDay->' + hourOfDay + ' hours text->' + hours)
// Deal with the special times first
if(mins == 0){
var hours = germanHoursToText(hourOfDay);
return [hours,"UHR", "","",""];
} else if(mins == 30){
var hours = germanHoursToText(hourOfDay+1);
return ["", "", "HALB","", hours];
} else if(mins == 15){
var hours = germanHoursToText(hourOfDay);
return ["", "", "VIERTEL", "NACH",hours];
} else if(mins == 45) {
var hours = germanHoursToText(hourOfDay+1);
return ["", "", "VIERTEL", "VOR",hours];
} else {
var mins_txt = germanMinsToText(mins);
return [hours, "UHR", mins_txt[0],mins_txt[1]];
}
}
}
module.exports = GermanDateFormatter;