在动易系统中如何简便快捷地制作英文版?
虽然我们系统并没有占对这块做特别优化。虽然我们会把模板中的中文都变成英文,但还有大量的通用标签里面残留中文信息,例如:分页标签、热点信息、日期标签,位置导航、内容审核、上下一条等等等。以前的做法我们通常会复制大量公共标签来修改,但这样一来给版本升级会带来非常不便。
其实还有一种更为方便的办法,就是通过脚本映射。这样,完善好这个脚本,待下一个需求来临时只需要把这脚本一放,就十分方便了。
英文版映射脚本
// 中文转英文映射
const zh2en = {
"年": "-",
"月": "-",
"日": "",
"星期一": "Monday",
"星期二": "Tuesday",
"星期三": "Wednesday",
"星期四": "Thursday",
"星期五": "Friday",
"星期六": "Saturday",
"星期日": "Sunday",
"站点导航": "Site Navigation",
"站群导航": "Site Group",
"搜索": "Search",
"您的位置": "Your Location",
"首页": "Home",
"详细内容": "Details",
"上一页": "Previous",
"下一页": "Next",
"尾页": "Last",
"共": "Total",
"条": "",
"信息": "Items",
"页": "Pages",
"转到": "Go to",
"第": "No.",
"发布时间": "Published Time",
"作者": "Author",
"浏览次数": "Views",
"次": "",
"字体": "Font",
"大": "Large",
"小": "Small",
"热点资讯": "Hot News",
"终审": "Final Review",
"打印正文": "Print Content",
"打印": "Print",
"上一条": "Previous Item",
"下一条": "Next Item",
"没有了": "No More",
":": ":",
"!": "!"
};
function translateTextNodes(node) {
if (node.nodeType === 3) { // Text node
let text = node.nodeValue;
Object.keys(zh2en).forEach(function (zh) {
if (text.indexOf(zh) !== -1) {
text = text.replace(new RegExp(zh, 'g'), zh2en[zh]);
}
});
node.nodeValue = text;
} else if (node.nodeType === 1 && node.childNodes) {
node.childNodes.forEach(translateTextNodes);
}
}
document.addEventListener("DOMContentLoaded", function () {
translateTextNodes(document.body);
});效果如下
