json-autotranslate
Version:
Translate a folder of JSON files containing translations into multiple languages.
25 lines (24 loc) • 1.02 kB
JavaScript
;
exports.__esModule = true;
var messageformat_parser_1 = require("messageformat-parser");
exports.generateSearchRegex = function (input) {
var parts = messageformat_parser_1.parse(input);
return new RegExp(parts
.map(function (part) {
return typeof part === 'string'
? part.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
: '(.+?)';
})
.join(''));
};
exports.replaceIcu = function (input) {
var searchRegex = exports.generateSearchRegex(input);
var matches = input.match(searchRegex);
var replacements = matches.slice(1).map(function (match, index) { return ({
from: match,
to: "<" + index + ">"
}); });
var clean = replacements.reduce(function (acc, cur) { return acc.replace(cur.from, cur.to); }, input);
return { clean: clean, replacements: replacements };
};
exports.reInsertIcu = function (clean, replacements) { return replacements.reduce(function (acc, cur) { return acc.replace(cur.to, cur.from); }, clean); };