@awesome-fe/translate
Version:
Translation utils
52 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCheckerFor = void 0;
var path_1 = require("path");
var markdown_1 = require("../dom/unified/markdown");
var fs_1 = require("fs");
var MarkdownChecker = /** @class */ (function () {
function MarkdownChecker() {
}
MarkdownChecker.prototype.checkFile = function (filename) {
var ast = markdown_1.markdown.parse((0, fs_1.readFileSync)(filename, 'utf8'));
var result = [];
return markdown_1.markdown.visit(ast, undefined, function (original, translation) {
if (original && translation) {
if (original.length < translation.length) {
result.push({
filename: filename,
original: original,
translation: translation,
tokens: ['length'],
});
}
else {
var englishTokens = Array.from(translation.replace(/\bangular\.cn/g, 'angular.io').matchAll(/\w+/g))
.map(function (it) { return it[0].toLowerCase(); });
var tokens = englishTokens.filter(function (token) { return !original.toLowerCase().includes(token); });
if (tokens.length > 0) {
result.push({
filename: filename,
original: original,
translation: translation,
tokens: tokens,
});
}
}
}
return Promise.resolve(undefined);
}).then(function () { return result; });
};
return MarkdownChecker;
}());
function getCheckerFor(filename) {
var ext = (0, path_1.extname)(filename);
switch (ext) {
case '.markdown':
case '.md':
return new MarkdownChecker();
}
throw new Error("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u6269\u5C55\u540D\uFF1A".concat(ext));
}
exports.getCheckerFor = getCheckerFor;
//# sourceMappingURL=get-checker-for.js.map