/* 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' }, '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' }, // 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;