@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
38 lines (37 loc) • 1.56 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadLocaleData = void 0;
const tslib_1 = require("tslib");
const Locale_1 = require("../constants/Locale");
const react_i18n_1 = tslib_1.__importDefault(require("@selfcommunity/react-i18n"));
const react_intl_1 = require("react-intl");
const utils_1 = require("@selfcommunity/utils");
const Errors_1 = require("../constants/Errors");
/**
* Load Locale Data
*/
function loadLocaleData(locale, settings) {
let _locale = locale;
let locales = settings.locale && settings.locale.messages ? settings.locale.messages : react_i18n_1.default;
if (!locales[_locale]) {
_locale = Locale_1.DEFAULT_LANGUAGE_UI;
if (settings.messages) {
utils_1.Logger.warn(Errors_1.SCOPE_SC_CORE, `Locale ${_locale} not found in messages configuration. Fallback to 'en'.`);
}
else {
utils_1.Logger.warn(Errors_1.SCOPE_SC_CORE, `Locale ${_locale} not found in sc-i18n package. Fallback to 'en'.`);
}
}
try {
return { messages: locales[_locale], locale: _locale };
}
catch (e) {
if (settings.messages) {
locales = react_i18n_1.default;
utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, `Configuration Locale.messages doesn't contains ${_locale}. Fallback to 'en' of 'sc-i18n'`);
}
return { messages: locales[Locale_1.LOCALE_EN], locale: Locale_1.DEFAULT_LANGUAGE_UI };
}
}
exports.loadLocaleData = loadLocaleData;
exports.default = react_intl_1.createIntl;
;