@allakando/allakando-i18n
Version:
Allakando's internationalization library
35 lines (34 loc) • 1.3 kB
JavaScript
/** @preserve @license @cc_on
* ----------------------------------------------------------
* @allakando/allakando-i18n version 0.0.4
* Allakando's internationalization library
* Copyright (c) 2023 Allakando
* All Rights Reserved. MIT License
* https://mit-license.org/
* ----------------------------------------------------------
*/
class s {
constructor(a, t) {
this.translationsByLocale = a, this.language = t, this.defaultLanguage = t, this.isDebugMode = !1;
}
setLanguage(a) {
this.language = a;
}
translate(a) {
return this.isDebugMode ? () => a : this.translationsByLocale[this.language] ? this.translationsByLocale[this.language][a] : this.translationsByLocale[this.defaultLanguage][a];
}
getTranslations() {
return this.isDebugMode ? Object.keys(this.translationsByLocale[this.defaultLanguage]).reduce((a, t) => (a[t] = () => t, a), {}) : this.translationsByLocale[this.language] ? this.translationsByLocale[this.language] : this.translationsByLocale[this.defaultLanguage];
}
enableDebugMode() {
this.isDebugMode = !0;
}
disableDebugMode() {
this.isDebugMode = !1;
}
}
const n = () => navigator.languages && navigator.languages.length > 1 ? navigator.languages[1] : navigator.language;
export {
s as TranslatorAPI,
n as getUserLocale
};