UNPKG

react-i18nify

Version:

Simple i18n translation and localization components and helpers for React.

76 lines (74 loc) 2.99 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 = function (locale) { let rerenderComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; settings.localeKey = locale; settings.getLocale = null; if (rerenderComponents) { _Base.default.rerenderAll(); } }; exports.setLocale = setLocale; const handleMissingTranslation = function () { return settings.handleMissingTranslation(...arguments); }; exports.handleMissingTranslation = handleMissingTranslation; const handleFailedLocalization = function () { return settings.handleFailedLocalization(...arguments); }; exports.handleFailedLocalization = handleFailedLocalization; const getTranslations = () => settings.getTranslations ? settings.getTranslations() : settings.translationsObject; exports.getTranslations = getTranslations; const setTranslations = function (translations) { let rerenderComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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;