@react-native-localize-ext/core
Version:
make i18n in react-native much smoother
39 lines (38 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createI18n = exports.createPolyfillI18n = void 0;
const I18n_1 = require("./I18n");
const I18nPolyfill_1 = require("./I18nPolyfill");
function createPolyfillI18n(config) {
const instance = new I18nPolyfill_1.I18nPolyfill(config);
const data = {};
Object.defineProperty(data, '_', {
value: instance,
});
Object.keys(config.defaultLocale.values).forEach((property) => {
Object.defineProperty(data, property, {
get: () => {
return instance.chain()[property];
},
});
});
// @ts-ignore
return data;
}
exports.createPolyfillI18n = createPolyfillI18n;
function createI18n(config) {
if (typeof Proxy === 'function') {
const instance = new I18n_1.I18n(config);
// @ts-ignore
return new Proxy({}, {
get: (_, property) => {
if (property === '_') {
return instance;
}
return instance.chain()[property];
},
});
}
return createPolyfillI18n(config);
}
exports.createI18n = createI18n;