在Ember中编写把手

时间:2014-05-13 07:14:05

标签: javascript ember.js

我有一个多语言的小应用程序。该应用程序的文本来自服务器。文本可以使用不同的语言。现在让我们坚持瑞典语和英语。用户可以在语言之间切换。我想要做的是当应用程序加载两种语言的文本并将其存储在Ember中的模型中时。

然后我正在尝试编写Handlebars帮助程序,这将允许我在语言之间切换。例如,我得到的服务器数据就是这种形式。

langData: {
 sv_SE: {
  start_page: "..."
 },
 en_US: {
  start_page: "..."
 }

我的模型是language.js,就像这样

App.Language = DS.Model.extend({
    language: DS.attr('string'),
    start_page: DS.attr('string'),
});

在我的句柄栏中,我正在尝试做这样的事情

Ember.Handlebars.helper('__', function(key, lang, options) {
   // get the text specified for the language. A function which will check the language model and
   // fetch data for the particular key from it
});

我正在调用这样的句柄栏

{{__ start_page en_US}}

我在想,这将以英语返回我的起始页文本。

这是正确的方法吗?如果不是正确的方式是什么?此外,我将有不同的文本字符串,将用于不同的hbs文件。

2 个答案:

答案 0 :(得分:0)

我已成功使用Ember-I18n作为项目。它为您提供了将翻译放在模型之外的位置。然后,我根据cookie或用户模型上的设置加载当前语言。切换到另一种语言确实需要我的整页重新加载,但如果没有它,你可能能够让它工作。

答案 1 :(得分:0)

查看Isaac’s talk at the April NYC meetup以获得有关ember-i18n的精彩介绍。