我已成功使用GetText在三个项目中翻译
JavaScript文件.
当然,GetText本身不支持JavaScript,JavaScript也不支持GetText.我的解决方案如下.
>在JavaScript中,我用gettext(“你的文字在这里”)环绕可翻译的字符串.
>然后我有一个脚本从JavaScript文件中提取字符串并创建一个C文件,因为gettext支持C语言.
>然后我在生成的C文件和项目中的任何其他文件上使用xgettext来生成POT和PO文件.
翻译PO文件后,我必须将翻译恢复为JavaScript …
>我再次解析JavaScript文件,记住可翻译字符串列表,然后是每个语言环境:
>使用支持GetText的语言(在我的例子中是PHP)我翻译所有字符串并输出JavaScript文件.
例如,爱沙尼亚语的语言环境文件(例如et_EE.js)可能如下所示:
var LOCALE = {
"Hello": "Tere",
"My name is %s": "Minu nimi on %s",
"Enter your credit card number": "Sisesta oma krediitkaardi number"
};
function gettext(string) {
return LOCALE[string] ? LOCALE[string] : string;
}
根据所选的区域设置,您可以包含et_EE.js或en_US.js或…
en_US.js可能只包含以下内容:
function gettext(string) {
return string;
}
对于ngettext()来说有点棘手,但你应该得到一般的想法.
最棒的是我可以使用已有的所有gettext工具.特别是当我在PHP和JavaScript中都有可翻译的文本时 – 我可以使用相同的工具来翻译它们,并确保在JavaScript和PHP中以相同的方式翻译相同的字符串.
注意:如果您没有处理JavaScript密集型Web应用程序,那么在首先使用JavaScript创建页面内容之前,您应该三思而后行.