@awesome-fe/translate
Version:
Translation utils
61 lines • 2.71 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonTranslator = void 0;
var abstract_translator_1 = require("./abstract-translator");
var common_1 = require("../dom/common");
var JsonTranslator = /** @class */ (function (_super) {
__extends(JsonTranslator, _super);
function JsonTranslator() {
return _super !== null && _super.apply(this, arguments) || this;
}
JsonTranslator.prototype.parse = function (text) {
return JSON.parse(text);
};
JsonTranslator.prototype.serialize = function (doc) {
return JSON.stringify(doc, null, 2);
};
JsonTranslator.prototype.translateDoc = function (doc, options) {
var _a;
var _loop_1 = function (key) {
if (doc.hasOwnProperty(key)) {
var value_1 = doc[key];
if (((_a = options.jsonProperties) === null || _a === void 0 ? void 0 : _a.includes(key)) && typeof value_1 === 'string' &&
!(0, common_1.containsChinese)(value_1) && !(0, common_1.containsChinese)(doc["".concat(key, "Cn")])) {
this_1.translateSentence(value_1, 'markdown')
.then(function (it) { return it.trim(); })
.then(function (translation) {
if (value_1 !== translation && (0, common_1.containsChinese)(translation)) {
doc["".concat(key, "Cn")] = translation;
}
});
}
if (value_1 instanceof Object) {
this_1.translateDoc(value_1, options);
}
}
};
var this_1 = this;
for (var key in doc) {
_loop_1(key);
}
return doc;
};
return JsonTranslator;
}(abstract_translator_1.AbstractTranslator));
exports.JsonTranslator = JsonTranslator;
//# sourceMappingURL=json-translator.js.map