Add full weekday/month names; evaluate \n and \t escapes in format

This commit is contained in:
Richard Zink committed 2026-10-07 13:19:59 +02:00
1 parent 90730af49d
commit 86b2714b21
2 files changed
+57 -10

No files matched your search

+30 -7
View File
@@ -30,13 +30,36 @@ window.TRANSLATIONS = {
'Last Quarter': { en: 'Last Quarter', de: 'Letztes Viertel' },
'Waning Crescent': { en: 'Waning Crescent', de: 'Abnehm. Sichel' },
'Mo.': { en: 'Mo.', de: 'Mo.' },
'Tu.': { en: 'Tu.', de: 'Di.' },
'We.': { en: 'We.', de: 'Mi.' },
'Th.': { en: 'Th.', de: 'Do.' },
'Fr.': { en: 'Fr.', de: 'Fr.' },
'Sa.': { en: 'Sa.', de: 'Sa.' },
'Su.': { en: 'Su.', de: 'So.' },
'Mon': { en: 'Mon', de: 'Mo' },
'Tue': { en: 'Tue', de: 'Di' },
'Wed': { en: 'Wed', de: 'Mi' },
'Thu': { en: 'Thu', de: 'Do' },
'Fri': { en: 'Fri', de: 'Fr' },
'Sat': { en: 'Sat', de: 'Sa' },
'Sun': { en: 'Sun', de: 'So' },
// Full weekday names
'Monday': { en: 'Monday', de: 'Montag' },
'Tuesday': { en: 'Tuesday', de: 'Dienstag' },
'Wednesday': { en: 'Wednesday', de: 'Mittwoch' },
'Thursday': { en: 'Thursday', de: 'Donnerstag' },
'Friday': { en: 'Friday', de: 'Freitag' },
'Saturday': { en: 'Saturday', de: 'Samstag' },
'Sunday': { en: 'Sunday', de: 'Sonntag' },
// Full month names
'January': { en: 'January', de: 'Januar' },
'February': { en: 'February', de: 'Februar' },
'March': { en: 'March', de: 'März' },
'April': { en: 'April', de: 'April' },
'May': { en: 'May', de: 'Mai' },
'June': { en: 'June', de: 'Juni' },
'July': { en: 'July', de: 'Juli' },
'August': { en: 'August', de: 'August' },
'September': { en: 'September', de: 'September' },
'October': { en: 'October', de: 'Oktober' },
'November': { en: 'November', de: 'November' },
'December': { en: 'December', de: 'Dezember' },
'Humidity': { en: 'Humidity', de: 'Feuchte' },
'Wind': { en: 'Wind', de: 'Wind' },
+27 -3
View File
@@ -824,27 +824,51 @@ var effect = (VANTA.CLOUDS2 || VANTA.CLOUDS)({
// Any other character is a literal (including whitespace).
//
// Non-standard extension tokens (lookup in i18n dict):
// DDD weekday short name (Mon., Tue., ...) from i18n
// MMM month short name (January, February, ...) from i18n
// DDD weekday short name (Mo., Tu., ...) from i18n
// dddd weekday full name (Monday, Tuesday,...) from i18n
// MMM month short name (Jan., Feb., ...) from i18n
// MMMM month full name (January, ...) from i18n
//
// Escape sequences are also evaluated:
// \n newline
// \t tab
// \\ literal backslash
var result = '';
var i = 0;
var weekdayKeys = ['Su.', 'Mo.', 'Tu.', 'We.', 'Th.', 'Fr.', 'Sa.'];
var weekdayFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var monthKeys = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
while (i < format.length) {
var ch = format.charAt(i);
// Handle escape sequences \n, \t, \\
if (ch === '\\' && i + 1 < format.length) {
var next = format.charAt(i + 1);
if (next === 'n') result += '\n';
else if (next === 't') result += '\t';
else if (next === '\\') result += '\\';
else result += ch + next;
i += 2;
continue;
}
if (ch === 'Y' && format.substr(i, 4) === 'YYYY') {
result += date.getFullYear();
i += 4;
} else if (ch === 'Y') {
result += date.getFullYear();
i += 1;
} else if (ch === 'M' && format.substr(i, 3) === 'MMM') {
} else if (ch === 'M' && format.substr(i, 4) === 'MMMM') {
result += t(monthKeys[date.getMonth()]);
i += 4;
} else if (ch === 'M' && format.substr(i, 3) === 'MMM') {
result += t(monthKeys[date.getMonth()].substring(0, 3) + '.');
i += 3;
} else if (ch === 'M' && format.substr(i, 2) === 'MM') {
result += pad2(date.getMonth() + 1);
i += 2;
} else if (ch === 'D' && format.substr(i, 4) === 'dddd') {
result += t(weekdayFull[date.getDay()]);
i += 4;
} else if (ch === 'D' && format.substr(i, 3) === 'DDD') {
result += t(weekdayKeys[date.getDay()]);
i += 3;