@khmyznikov/pwa-install
Version:
PWA install dialog provide more convenience user experience and fix lack of native dialogs in some browsers.
78 lines (72 loc) • 1.78 kB
text/typescript
import { configureLocalization } from '@lit/localize';
import {
sourceLocale,
targetLocales,
} from './locale-codes';
import * as ru from './locales/ru';
import * as tr from './locales/tr';
import * as de from "./locales/de";
import * as es from "./locales/es";
import * as nl from "./locales/nl";
import * as el from "./locales/el";
import * as fr from "./locales/fr";
import * as sr from "./locales/sr";
import * as pl from "./locales/pl";
import * as uk from "./locales/uk";
import * as zh from "./locales/zh";
import * as zhCN from "./locales/zh-CN";
import * as it from "./locales/it";
import * as cs from "./locales/cs";
import * as no from "./locales/no";
import * as pt from "./locales/pt";
import * as ja from "./locales/ja";
import * as sv from "./locales/sv";
import * as ko from "./locales/ko";
import * as km from "./locales/km";
const localizedTemplates = new Map([
['ru', ru],
['tr', tr],
['de', de],
['es', es],
['nl', nl],
['el', el],
['fr', fr],
['sr', sr],
['pl', pl],
['uk', uk],
['zh', zh],
['zh-CN', zhCN],
['it', it],
['cs', cs],
['no', no], // + nb
['pt', pt],
['ja', ja],
['sv', sv],
['ko', ko],
['km', km]
])
export const { getLocale, setLocale } = configureLocalization({
sourceLocale,
targetLocales,
// @ts-ignore
loadLocale: async (lang: string) => localizedTemplates.get(lang)
});
export const changeLocale = (lang: string) => {
// Norwegian Bokmål is same as Norwegian
switch (lang.slice(0, 2)) {
case 'nb':
lang = 'no';
break;
default:
break;
}
try {
if (localizedTemplates.get(lang))
setLocale(lang);
else
setLocale(lang.slice(0, 2));
}
catch {
console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);
}
};