media-chrome
Version:
Custom elements (web components) for making audio and video player controls that look great in your website or app.
27 lines (26 loc) • 810 B
JavaScript
var _a;
import { En } from "../lang/en.js";
const translations = {
en: En
};
let currentLang = ((_a = globalThis.navigator) == null ? void 0 : _a.language) || "en";
const setLanguage = (langCode) => {
currentLang = langCode;
};
const addTranslation = (lang, languageDictionary) => {
translations[lang] = languageDictionary;
};
const resolveTranslation = (key) => {
var _a2, _b, _c;
const [base] = currentLang.split("-");
return ((_a2 = translations[currentLang]) == null ? void 0 : _a2[key]) || ((_b = translations[base]) == null ? void 0 : _b[key]) || ((_c = translations.en) == null ? void 0 : _c[key]) || key;
};
const t = (key, vars = {}) => resolveTranslation(key).replace(
/\{(\w+)\}/g,
(_, v) => v in vars ? String(vars[v]) : `{${v}}`
);
export {
addTranslation,
setLanguage,
t
};