EXJS 6

时间:2017-05-23 13:25:53

标签: extjs extjs6

根据文档,app.json只允许定义一个区域设置。

  

locale:" fr"

如果我有多语言应用程序并且我希望用户动态选择他们的语言会怎样?

如何添加多个区域设置?

然后,如何通过更改Ext变量动态加载语言环境?类似的东西:

  

Ext.setLocale(" ES&#34);

1 个答案:

答案 0 :(得分:0)

ExtJs本身无法做到这一点。

在我的应用程序中,我通过定义一个与gettext类似的语言类来解决这个问题。

这允许我使用默认语言的代码库,每个字符串都包含在函数Lang。中('我的文本')。然后翻译独立于ExtJs(在我的例子中,翻译界面是用ExtJ编写的,但翻译本身是独立的。)

我仍然无法动态更改语言。为此,我需要在浏览器中重新呈现应用程序。就我而言,翻译被编译为app.js,因此无需从服务器重新加载app.js

我只有两种语言,所以这种方法还可以。如果需要支持多种语言,最好的方法是在呈现应用程序之前加载转换字符串。要切换语言,您需要加载翻译并重新呈现UI。

Saki's ExtJs site上有一篇关于此的好文章。