我面临的问题是我必须将更大的html和javascript项目翻译成多种语言。 html内容没有问题,但是大量的javascript文件都有问题,因为我在开发过程中有点懒惰。例如,如果我需要一个消息文本,我只是将其添加到相关位置。
我现在的方法是,我正在使用内置文件搜索(Eclipse)来查找"
和'
的每一次出现,我正在按行进行搜索。这将是非常耗时的,并且错误是不可避免的。
以下是文件中出现的一些示例:
var d = "Datum: " + d.getDate()+"."+(d.getMonth()+1)+"."+d.getFullYear();
showYesNoDialog("heading text","Are you sure?",function(){};
有时我混合"
和'
,有时字符串会超过几行:
var list="";
list+='<li data-role="list-divider">';
list+='Text To Translate';
list+='</li>';
我不想得到的东西,是jquery选择器,例如:
$("input[name^=checkbox]").each(function () {};
您是否看到任何时间保存方法来获取我想要翻译的所有字符串? 正则表达式?一个java解释器? grep的?
我知道,这是一个不寻常的问题。 所以任何建议都会很棒。
提前致谢!
答案 0 :(得分:2)
最好使用某种词法扫描程序将代码转换为令牌,然后遍历令牌列表(或语法树)。有很多这样的工具(我甚至自己创建了其中一个 - 在这里你可以找到一些例子https://github.com/AlexAtNet/spelljs/blob/master/test/scan.js)。
有了它,您可以扫描JS文件并迭代令牌:
var scan = require('./..../scan.js');
scan(text).forEach(function (item) {
if (item.str) {
console.log(item);
}
});