UNPKG

react-i18nify

Version:

Simple i18n translation and localization components and helpers for React.

70 lines (68 loc) 2.79 kB
"use strict"; 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;