UNPKG

@awesome-fe/translate

Version:
52 lines 2.15 kB
"use strict"; 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