问题标签 [ember-i18n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4512 浏览

ember-cli - 我在 Ember-CLI 中将 Ember-I18n 的翻译放在哪里?

我是 ember 和 ember-cli 的新手,我仍在学习一切进展如何。我正在尝试使用ember-i18n模块添加多语言支持。

我用 bower 安装了依赖项

我有我的进口工作Brocfile.js

在我的应用程序中,i18n 车把助手正在工作

{{t hello}}给我“缺少翻译:你好”

我不知道在包含翻译的 ember-cli 文件夹结构中放置或引用文件的位置。

根据 ember-i18n 文档,它看起来像这样

我试着把它粘进去app.js只是为了看它工作,但得到了错误:

0 投票
1 回答
745 浏览

ember.js - 在 ember.js 中使用 i18n 在 12 小时制和 24 小时制之间转换

我想知道是否有一种方法可以使用 i18n 和 ember.js 在 12 小时制和 24 小时制之间进行转换?

I18n 确实具有下面描述的带有经络的 DATE 对象。但我不确定是否支持 24 小时制和 12 小时制之间的转换。

var DATE = { day_names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], abbr_day_names: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], month_names: [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], abbr_month_names: [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], meridian: ["AM", "PM"] };

我已经将 i18n 用于我网站国际化的翻译部分。因此,有时不需要额外的库会很好。

0 投票
5 回答
2001 浏览

ember.js - Ember:将本地化密钥传递给组件模板

我有一个模态对话框组件模板,其中包含以下内容

因此,我正在使用 ember-i18n [1] 库为 ember 添加本地化。现在我从实际的模态对话框模板中调用该组件模板:

我在这里要做的是,在对话框模板中定义一个用于本地化的键,该键被传递给组件模板并在那里进行翻译。但是,这会导致以下错误:Missing translation: title. 所以变量标题似乎实际上被视为一个字符串而不是一个变量。

或者,我可以翻译对话框模板中的标题并将其传递给组件模板:

对话:

这会导致编译器错误:

有没有办法做到这一点?

[1] https://github.com/jamesarosen/ember-i18n

0 投票
2 回答
647 浏览

ember.js - 在 ember-cli 生产环境中使用 ember-i18n

我遇到了一个问题,ember-i18n可以与在开发环境中运行的 ember-cli 服务器一起使用。但是当我设置--environment production我得到以下错误:

Error: The default Ember.I18n.compile function requires the full Handlebars. Either include the full Handlebars or override Ember.I18n.compile.

发生错误是因为 ember-cli 在生产环境中包含 Handlebars-production。这个问题有解决方案吗?

我想我需要预编译翻译。

0 投票
0 回答
185 浏览

javascript - 如何使用 ember-i18n 插件从 ember 中的选择中翻译内容?

我有来自 ember.select 示例http://emberjs.com/api/classes/Ember.Select.html的以下代码

我将如何翻译标题“totranslate”?

Ember-i18n 插件 ( https://github.com/jamesarosen/ember-i18n ) 已设置并正在运行。

0 投票
0 回答
909 浏览

ember.js - 语言切换后在 Ember 中重新渲染页面的推荐方法

语言切换后,我需要重新渲染整个页面应用程序。由于性能问题,我不喜欢使用观察者。

语言切换由Ember.View. 我尝试parentView在更改后重新渲染,Ember.I18n.translations但遇到了一个已知的错误。它可以工作一次,但 Ember Inspector 显示 parentView 之后有自己的子视图。在另一个开关 parentView 被破坏后。就像在这个 JSFiddle中演示的那样。

这是我的观点的简化代码:

在讨论.emberjs.com 上也有关于该问题的讨论。我尝试了那里的建议,但它们不起作用。上一篇文章建议对所有视图进行映射,重新渲染它们,然后使用过渡。我不喜欢那个,因为我害怕那个 hack 会带来一些附带问题。

我很确定必须有一种方法可以在 Ember 中使用 ember-i18n 进行语言切换,但正确的方法是什么?


更新:

我试图从讨论.emberjs.com 实施黑客攻击。它有效,但非常有限。我在视图中这样实现它:

问题是模型中存储的所有数据都丢失了。我没有找到获取当前模型并在过渡中使用它的方法。查询参数也会丢失。这种限制使我的应用程序无法接受这种全面工作。


更新 App.reset():

正如评论中所建议的,我尝试使用App.reset(). 它比 transitionTo work-a-round 效果更好,但不能满足所有需求。如果调用 App.reset() queryParams 没有丢失但模型被重置。我正在寻找一种在保留当前模型和查询参数的同时重新呈现应用程序的方法。


似乎大多数这些问题是通过在语言环境更改时重新加载整页来处理的。Eq ember-i18n 的主要开发者之一在本次讨论中这样说。

0 投票
1 回答
714 浏览

ember.js - Ember:如何在视图中使用 ember i18n 翻译

在我们的项目中,我们构建了一些实际上是默认视图的组件,是否可以翻译视图属性,例如我们为每个页面传递标题。

例如

这是我的视图,每个页面都有一个动态标题 {{view.titleToShow}}

..templates/view/simple-navbar.hbs

..模板/汽车/汽车.hbs

..translations/eng.js

以及模板 {{i18n-t 'General.Save'}} 中的常规用法示例

0 投票
1 回答
882 浏览

javascript - i18n 翻译不适用于 ember - 断言失败:缺少关键翻译

ember-cli-i18n在一个ember-cli应用程序中使用..

我有menuItems返回的财产..

在模板中我menuItems用作..

现在,而不是寻找leftnav_nonfollower.. 的翻译,库实用程序t()实际上是寻找字符串的翻译menuItem.text.. 从而给出错误Assertion Failed: Missing translation for key "menuItem.text".

0 投票
1 回答
350 浏览

ember.js - 如何更新 ember-i18n 组件以在 ember 1.10 中使用 HTMLbars?

我的 ember 1.8 应用程序是使用 grunt CLI 构建的,并且无法迁移到 ember CLI,但我正在升级到 ember 1.10,因此可以使用 HTMLbars。该应用程序使用 ember-i18n,因此在转换到第一个视图时加载和解析模型后,我收到错误“找不到名为 't' 的助手”。在“vendor\ember-i18n\lib\i18n.js”中,我尝试将“Handlebars.registerHelper”更改为“Ember.HTMLBars._registerHelper”,但随后我从 i18n 组件中得到了各种“未定义”错误。我读到 ember 1.9+ 不支持 i18n,但我需要它才能工作。如何更新它以在 1.10 中工作?

0 投票
1 回答
177 浏览

javascript - ember-cli 在 javascript 中调用 makeBoundHelper 函数

我有一个 ember-cli 辅助函数:translate-i18n,我在我的 hbs 模板中很好地使用它作为造船厂 i18n 翻译库的辅助辅助函数。

我创建的助手将这个词作为参数,并且只提供了一些备用情况(例如,如果缺少翻译,它将触发空气制动错误)。

我的助手在 hbs 模板中使用时工作得非常好,但似乎不可能从 JS 文件中调用它,特别是另一个助手文件。简而言之,问题是这样的:

  • 如果我使用 Ember.Handlebars.helpers 无法访问使用助手创建的助手Ember.Handlebars.makeBoundHelper(translate); .... 所以我不能这样称呼它。我可以通过执行 this.container.lookup('helper:translate-i18n') 看到帮助程序存在,但我似乎没有能力以这种方式调用该函数。
  • 如果我使用 register(而不是 makeBound)创建助手,那么通过这样做:export default Ember.Handlebars.registerBoundHelper('translate', translate()); 然后我可以从任何地方访问我的助手,但突然容器没有定义,我不再可以在造船厂 i18n(t 助手),因为这一行会引发错误:var t = this.container.lookup('utils:t');

任何建议/指针/意见将不胜感激!