@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
37 lines (34 loc) • 1.71 kB
JavaScript
import { __assign } from 'tslib';
import { useState, useEffect } from 'react';
import { defaultDateTimeParser, isLanguageSupported } from '../../../context/TranslationContext.js';
import '../../../context/UIKitContext.js';
import '../../../context/ComponentContext.js';
import '../../../context/ChatActionContext.js';
import '../../../context/MessageInputContext.js';
import '../../../context/UIMessageContext.js';
import '../../../context/ChatStateContext.js';
import { defaultTranslatorFunction, Uimi18n } from '../../../i18n/uimi18n.js';
function useTranslators(_a) {
var defaultLanguage = _a.defaultLanguage, i18nInstance = _a.i18nInstance;
var _b = useState({
t: defaultTranslatorFunction,
tDateTimeParser: defaultDateTimeParser,
userLanguage: 'zh',
}), translators = _b[0], setTranslators = _b[1];
useEffect(function () {
var browserLanguage = window.navigator.language.slice(0, 2); // just get language code, not country-specific version
var userLanguage = isLanguageSupported(browserLanguage) ? browserLanguage : defaultLanguage;
var uimi18n = i18nInstance || new Uimi18n({ language: userLanguage });
uimi18n.registerSetLanguageCallback(function (t) {
return setTranslators(function (prevTranslator) { return (__assign(__assign({}, prevTranslator), { t: t })); });
});
uimi18n.getTranslators().then(function (translator) {
setTranslators(__assign(__assign({}, translator), { userLanguage: userLanguage || defaultLanguage }));
});
}, [i18nInstance]);
return {
translators: translators,
};
}
export { useTranslators };
//# sourceMappingURL=useTranslators.js.map