【发布时间】:2012-11-01 14:32:53
【问题描述】:
我正在创建一个国际化的 Ember.js 应用程序,为此我使用 Ember-I18n。这在大多数情况下都可以正常工作,但现在考虑语言字符串:
'To do some action {{link}}'
其中{{link}} 需要替换为某个链接。翻译字符串不能分解,因为{{link}} 的位置可能因语言而异。因此,我需要找到一种方法来获取链接;这当然是另一个带有翻译的模板,例如:
<a {{action someAction}}>{{t click_here}}</a>
到目前为止,我已经尝试了几件事:使用自定义块助手为链接创建自定义视图;但我还没有得到任何工作。
这样做的最佳方法是什么?换句话说,如何将渲染的模板作为变量插入到 Ember.js 中的另一个模板中?
【问题讨论】:
-
您是否可以将链接放在固定位置,但有“文本前”和“文本后”,如果语言需要,其中一个可能是空的?跨度>
-
我目前正在开发一个具有类似场景的应用程序。我已经在单独的文件中创建了所有模板,然后手动将每个模板的把手标记复制到我的资源文件中的一个键(我正在做 .net,所以我为我支持的每种语言都有一个 .resx 文件。我相信 rails 使用.yml 文件,对吗?)。这可能不是最好的方法,因为我每次更改模板时都必须手动将整个模板复制到资源键,并处理空格和所有问题。然后在运行时,我将模板源注入
Ember.TEMPLATES。同样,可能不是最好的方法,只是把它扔在那里 -
@Jasper 这可能是可能的,但是我已经想到了一些这还不够的场景(想象有多个链接,顺序 可能甚至不准确)。作为一种解决方法,我可能可以使用它(并希望我永远不会遇到这种异常情况),但我希望有更好的方法。
-
@MilkyWayJoe 问题之一是 Ember.js 实际上有点劫持 Handlebars.js 并且模板的工作方式似乎略有不同。因此,此场景所需的 Ember 助手(例如操作)在语言“模板”中不可用;所以不幸的是我不能只使用整个标记。
-
不确定我是否理解 Ember.js 实际上有点劫持 Handlebars.js 并且模板的工作方式似乎略有不同
标签: javascript internationalization ember.js handlebars.js