UNPKG

@zainulbr/i18n-webpack-plugin

Version:

Rewrite original embed localization into your bundle with support webpack 5

55 lines (46 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; /** * Convert the localization object into a function in case we need to support nested keys. * * @param {Object} localization the language object, * @param {Boolean} nested * * @returns {Function} */ function makeLocalizeFunction(localization, nested) { return function localizeFunction(key) { return nested ? byString(localization, key) : localization[key]; }; } /** * Find the key if the key is a path expressed with dots * * e.g. * Code: __("errors.connectionError") * Lang: {"errors": {"connectionError": "There was an error connecting."}} * New Code: "There was an error connecting." * * @param {Object} localization * @param {String} nestedKey The original key * * @returns {*} */ function byString(plocalization, nestedKey) { // remove a leading dot and split by dot var keys = nestedKey.replace(/^\./, '').split('.'); var localization = plocalization; // loop through the keys to find the nested value for (var i = 0, length = keys.length; i < length; ++i) { var key = keys[i]; if (!(key in localization)) { return; } localization = localization[key]; } return localization; } var _default = makeLocalizeFunction; exports.default = _default;