使用Javascript从动态内容更改语言

时间:2011-01-21 19:06:54

标签: javascript jquery translation

我的项目应支持GUI的不同语言(西班牙语,英语,德语等)。我正在使用CodeIgniter,因此我对使用Language Class的PHP视图没有任何问题。我可以在PHP上加载一些先前定义的变量来创建不同语言的视图。

问题出现在这里:

一些功能(实际上很多功能)使用Javascript:一些项目的个性化上下文菜单,动态创建的不同DIV等。这些功能大部分都是动态创建的,所以我不知道选择的语言(我可以创建了大量重复的代码,每种语言都有一个代码,但这太冗了了。)

我需要找到一种方法将此内容翻译成用户先前选择的新语言。

例如:

用户右键单击并且上下文菜单具有以下选项(使用Javascript动态创建):

  • 您好
  • 再见

当用户将页面语言更改为“西班牙语”时,上下文菜单应显示:

  • HOLA
  • 阿迪奥斯

有没有办法用不同语言的所有名称保存一些变量,然后加载以创建菜单?

抱歉这篇文章很重要。我希望每个人都可以帮助我或给我一点小小的提示。

2 个答案:

答案 0 :(得分:1)

当您希望i18n(“国际化”的缩写)在服务器端语言以及客户端Javascript中工作时,可以使用多个系统。

这是我在PHP和JavaScript中找到的一个例子:http://doc.silverstripe.org/sapphire/en/topics/i18n

我用PHP,Ruby和Python完成了这个。通常,有一种方法可以完成。您创建了一个文本库。这个库有指向该文本特定部分的指针。在您的代码中,您使用该指针来引用该段文本。上面的示例为您提供了一种在PHP中创建库的方法,该库可以编译为可以在JavaScript中调用的JavaScript等价物。基本上它完全将文案和其他文本与代码分开。

我希望这能帮到你。

答案 1 :(得分:0)

  

有没有办法保存一些   包含所有名称的变量   不同的语言,然后加载到   创建菜单?

我假设你问你是否可以保存这些用户偏好?

如果是这样,将其作为cookie存储在用户的计算机上


如果你不是这个意思,并且想要存储语言的所有变体,那么你可以将它存储在一个可以通过javascript加载的数组中