next-translate-scanner
Version:
Scan next-translate code for translations and update json files.
33 lines (32 loc) • 1.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __importDefault(require("./logger"));
const pseudo_localize_1 = __importDefault(require("./pseudo-localize"));
const addPseudoLocale = (translations, baseLocale, pseudoLocale) => {
if (!translations[baseLocale]) {
logger_1.default.error(`Base locale "${baseLocale}" for pseudo locale generation not found.`);
}
translations[pseudoLocale] = {};
for (const [ns, items] of Object.entries(translations[baseLocale])) {
const temp = {};
for (const [key, value] of Object.entries(items)) {
let enabled = true;
const split = value.split('');
temp[key] = split.map((char, index) => {
if (char === '<' || (char + split[index + 1]) === '{{') {
enabled = false;
}
else if (char === '>' || (char + split[index + 1]) === '}}') {
enabled = true;
}
return enabled ? (0, pseudo_localize_1.default)(char) : char;
}).join('');
}
translations[pseudoLocale][ns] = temp;
}
return translations;
};
exports.default = addPseudoLocale;