epn-ui
Version:
Дизайн система кабинета ВМ
34 lines (31 loc) • 917 B
JavaScript
import templite from 'templite';
import { useState } from 'react';
import ruLocale from '../locales/ru.json.js';
import enLocale from '../locales/en.json.js';
var translationObj = {
en: enLocale,
ru: ruLocale,
};
var LOCALE_TYPES = {
ru: 'ru',
en: 'en',
};
function useI18n() {
var _a = useState(LOCALE_TYPES.ru), locale = _a[0], setLocale = _a[1];
var changeLanguage = function (language) { return setLocale(language); };
var t = function (key) {
var _a;
if (typeof locale !== 'string') {
return key;
}
var translation = (_a = translationObj[locale]) === null || _a === void 0 ? void 0 : _a[key];
if (!translation)
return key;
return templite(translation, {});
};
return {
t: t,
changeLanguage: changeLanguage,
};
}
export { LOCALE_TYPES, useI18n as default };