110 lines
5.4 KiB
JavaScript
110 lines
5.4 KiB
JavaScript
/* Internationalization dictionary
|
|
*
|
|
* Each key is the ENGLISH text. To add a new language, just add
|
|
* a translation under the language's two-letter code (e.g. de, it, fr).
|
|
*
|
|
* Example:
|
|
* TRANSLATIONS['Sunrise'] = { en: 'Sunrise', de: 'Aufgang', it: 'Alba' };
|
|
*
|
|
* The current language is taken from window.CONFIG.language.
|
|
* Fallback order: requested language → 'en' → first available → key.
|
|
*/
|
|
|
|
window.TRANSLATIONS = {
|
|
'Sunrise': { en: 'Sunrise', de: 'Aufgang' },
|
|
'Sunset': { en: 'Sunset', de: 'Untergang' },
|
|
'Sun Zenith': { en: 'Sun Zenith', de: 'Zenit Sonne' },
|
|
'Moon Phase': { en: 'Moon Phase', de: 'Mondphase' },
|
|
'Moonrise': { en: 'Moonrise', de: 'Mond auf' },
|
|
'Moonset': { en: 'Moonset', de: 'Mond unter' },
|
|
|
|
'today': { en: 'today', de: 'heute' },
|
|
'tomorrow': { en: 'tomorrow', de: 'morgen' },
|
|
|
|
'New Moon': { en: 'New Moon', de: 'Neumond' },
|
|
'Waxing Crescent': { en: 'Waxing Crescent', de: 'Zunehm. Sichel' },
|
|
'First Quarter': { en: 'First Quarter', de: 'Erstes Viertel' },
|
|
'Waxing Gibbous': { en: 'Waxing Gibbous', de: 'Zunehm. Gibbous' },
|
|
'Full Moon': { en: 'Full Moon', de: 'Vollmond' },
|
|
'Waning Gibbous': { en: 'Waning Gibbous', de: 'Abnehm. Gibbous' },
|
|
'Last Quarter': { en: 'Last Quarter', de: 'Letztes Viertel' },
|
|
'Waning Crescent': { en: 'Waning Crescent', de: 'Abnehm. Sichel' },
|
|
|
|
'Mon': { en: 'Mon', de: 'Mo' },
|
|
'Tue': { en: 'Tue', de: 'Di' },
|
|
'Wed': { en: 'Wed', de: 'Mi' },
|
|
'Thu': { en: 'Thu', de: 'Do' },
|
|
'Fr.': { en: 'Fr.', de: 'Fr.' },
|
|
'Sat': { en: 'Sat', de: 'Sa' },
|
|
'Sun': { en: 'Sun', de: 'So' },
|
|
|
|
// 3-letter weekday short forms (for DDD token)
|
|
'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' },
|
|
|
|
// 3-letter month short forms (for MMM token)
|
|
'Jan': { en: 'Jan', de: 'Jan' },
|
|
'Feb': { en: 'Feb', de: 'Feb' },
|
|
'Mar': { en: 'Mar', de: 'Mär' },
|
|
'Apr': { en: 'Apr', de: 'Apr' },
|
|
'May': { en: 'May', de: 'Mai' },
|
|
'Jun': { en: 'Jun', de: 'Jun' },
|
|
'Jul': { en: 'Jul', de: 'Jul' },
|
|
'Aug': { en: 'Aug', de: 'Aug' },
|
|
'Sep': { en: 'Sep', de: 'Sep' },
|
|
'Oct': { en: 'Oct', de: 'Okt' },
|
|
'Nov': { en: 'Nov', de: 'Nov' },
|
|
'Dec': { en: 'Dec', de: 'Dez' },
|
|
|
|
// 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' },
|
|
|
|
// 2-letter time-of-day labels
|
|
'Morning': { en: 'Mo', de: 'Mo' },
|
|
'Noon': { en: 'No', de: 'Mi' },
|
|
'Evening': { en: 'Ev', de: 'Ab' },
|
|
'Night': { en: 'Ni', de: 'Na' }
|
|
};
|
|
|
|
window.getTranslation = function(key) {
|
|
var lang = (window.CONFIG && window.CONFIG.language) || 'en';
|
|
var entry = window.TRANSLATIONS[key];
|
|
if (!entry) return key;
|
|
// Fallback chain: requested language → 'en' → first available → key
|
|
if (entry[lang]) return entry[lang];
|
|
if (entry.en) return entry.en;
|
|
for (var k in entry) {
|
|
if (entry.hasOwnProperty(k) && entry[k]) return entry[k];
|
|
}
|
|
return key;
|
|
};
|
|
|
|
window.t = window.getTranslation; |