react-i18nify
Version:
Simple i18n translation and localization components and helpers for React.
70 lines (68 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setTranslationsGetter = exports.setTranslations = exports.setLocaleGetter = exports.setLocale = exports.setHandleMissingTranslation = exports.setHandleFailedLocalization = exports.handleMissingTranslation = exports.handleFailedLocalization = exports.getTranslations = exports.getLocale = void 0;
var _Base = _interopRequireDefault(require("../components/Base"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/* eslint no-console: "off" */
const settings = {
localeKey: 'en',
translationsObject: {},
getTranslations: null,
getLocale: null,
handleMissingTranslation: text => text.split('.').pop(),
handleFailedLocalization: () => null
};
const getLocale = () => settings.getLocale ? settings.getLocale() : settings.localeKey;
exports.getLocale = getLocale;
const setLocale = (locale, rerenderComponents = true) => {
settings.localeKey = locale;
settings.getLocale = null;
if (rerenderComponents) {
_Base.default.rerenderAll();
}
};
exports.setLocale = setLocale;
const handleMissingTranslation = (...args) => settings.handleMissingTranslation(...args);
exports.handleMissingTranslation = handleMissingTranslation;
const handleFailedLocalization = (...args) => settings.handleFailedLocalization(...args);
exports.handleFailedLocalization = handleFailedLocalization;
const getTranslations = () => settings.getTranslations ? settings.getTranslations() : settings.translationsObject;
exports.getTranslations = getTranslations;
const setTranslations = (translations, rerenderComponents = true) => {
settings.translationsObject = translations;
settings.getTranslations = null;
if (rerenderComponents) {
_Base.default.rerenderAll();
}
};
exports.setTranslations = setTranslations;
const setLocaleGetter = fn => {
if (typeof fn !== 'function') {
throw new Error('Locale getter must be a function');
}
settings.getLocale = fn;
};
exports.setLocaleGetter = setLocaleGetter;
const setTranslationsGetter = fn => {
if (typeof fn !== 'function') {
throw new Error('Translations getter must be a function');
}
settings.getTranslations = fn;
};
exports.setTranslationsGetter = setTranslationsGetter;
const setHandleMissingTranslation = fn => {
if (typeof fn !== 'function') {
throw new Error('Handle missing translation must be a function');
}
settings.handleMissingTranslation = fn;
};
exports.setHandleMissingTranslation = setHandleMissingTranslation;
const setHandleFailedLocalization = fn => {
if (typeof fn !== 'function') {
throw new Error('Handle failed localization must be a function');
}
settings.handleFailedLocalization = fn;
};
exports.setHandleFailedLocalization = setHandleFailedLocalization;