arb-convert
Version:
Convert Application Resource Bundle (ARB) translation files to other translation formats and back
64 lines (63 loc) • 2.19 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseToArb = exports.convertFromArb = void 0;
var gettext_1 = require("./formats/gettext");
var xliff_1_2_1 = require("./formats/xliff-1_2");
var xliff_2_1_1 = require("./formats/xliff-2_1");
function convertFromArb(format, options) {
var defaultOptions = {
original: 'application resource bundle',
sourceLanguage: 'en-US',
};
var opts = __assign(__assign({}, defaultOptions), options);
switch (format) {
case 'xliff':
case 'xliff-1.x':
case 'xliff-1.2':
return xliff_1_2_1.convert(opts);
case 'xliff-2.x':
case 'xliff-2.0':
case 'xliff-2.1':
return xliff_2_1_1.convert(opts);
case 'gettext':
return gettext_1.convert(opts);
default:
throw new Error("Format " + format + " is not supported");
}
}
exports.convertFromArb = convertFromArb;
function parseToArb(format, options) {
switch (format) {
case 'xliff': {
var matches = options.content.match(/urn:oasis:names:tc:xliff:document:(\d\.\d)/);
var version = matches && matches[1];
if (version) {
return parseToArb("xliff-" + version, options);
}
throw new Error('Could not determine XLIFF version');
}
case 'xliff-1.x':
case 'xliff-1.2':
return xliff_1_2_1.parse(options);
case 'xliff-2.x':
case 'xliff-2.0':
case 'xliff-2.1':
return xliff_2_1_1.parse(options);
case 'gettext':
return gettext_1.parse(options);
default:
throw new Error("Format " + format + " is not supported");
}
}
exports.parseToArb = parseToArb;