当前位置:  开发笔记 > 编程语言 > 正文

如何在JS中翻译字符串

如何解决《如何在JS中翻译字符串》经验,为你挑选了1个好方法。

我有一个项目,我想为PHP部分翻译成多种语言我使用Zend Frameworks Zend_Translate和GetText.现在我想翻译JS部分.

我正在使用jQuery JS Framework,并希望听到您对JS文件的翻译的想法



1> Rene Saarsoo..:

我已成功使用GetText在三个项目中翻译JavaScript文件.

当然,GetText本身不支持JavaScript,JavaScript也不支持GetText.我的解决方案如下.

在JavaScript中我用可翻译的字符串包围gettext("your text here").

然后我有一个脚本从JavaScript文件中提取字符串并创建一个C文件,因为gettext支持C语言.

然后我使用xgettext生成的C文件和项目中的任何其他文件来生成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.jsen_US.js或...

en_US.js 可能只包含以下内容:

function gettext(string) {
  return string;
}

有点棘手ngettext(),但你应该得到一般的想法.

最棒的是我可以使用已有的所有gettext工具.特别是当我在PHP和JavaScript中都有可翻译的文本时 - 我可以使用相同的工具来翻译它们,并确保在JavaScript和PHP中以相同的方式翻译相同的字符串.

注意:如果您没有处理JavaScript密集型Web应用程序,那么在首先使用JavaScript创建页面内容之前,您应该三思而后行.


返回LOCALE [string]?LOCALE [string]:string; - >可以简化为:return LOCALE [string] || 串;
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有