我有一个多语言的小应用程序。该应用程序的文本来自服务器。文本可以使用不同的语言。现在让我们坚持瑞典语和英语。用户可以在语言之间切换。我想要做的是当应用程序加载两种语言的文本并将其存储在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文件。
答案 0 :(得分:0)
我已成功使用Ember-I18n作为项目。它为您提供了将翻译放在模型之外的位置。然后,我根据cookie或用户模型上的设置加载当前语言。切换到另一种语言确实需要我的整页重新加载,但如果没有它,你可能能够让它工作。
答案 1 :(得分:0)
查看Isaac’s talk at the April NYC meetup以获得有关ember-i18n的精彩介绍。