首页
学习
活动
专区
圈层
工具
发布

扶手i18n
EN

Stack Overflow用户
提问于 2014-05-12 03:43:59
回答 3查看 2.2K关注 0票数 3

如果我使用内置于helper input中的input

代码语言:javascript
复制
{{input value=query class="form-input" placeholder="Search"}}

我想用该字符串的翻译版本替换占位符字符串"Search“。

通常,如果我还没有使用input助手,我会像这样访问已翻译的字符串:

代码语言:javascript
复制
{{ t "home.search" }}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-12 03:54:53

通过使用子表达式:http://handlebarsjs.com/expressions.html解决了这个问题

代码语言:javascript
复制
{{input value=query class="form-input" placeholder=(t "home.search") }}
票数 8
EN

Stack Overflow用户

发布于 2014-06-27 01:07:18

我无法让dylanjha的解决方案起作用,因为Ember.I18n的t助手返回包装在翻译文本周围的span,而不是翻译文本本身。我通过编写自己的助手直接调用翻译来解决这个问题:

代码语言:javascript
复制
Ember.Handlebars.registerHelper('ts', function (key) {
  return Em.I18n.t(key);
});

然后我就能像这样使用我的助手了:

代码语言:javascript
复制
{{input value=login placeholder=(ts 'signin.login') }}
票数 2
EN

Stack Overflow用户

发布于 2014-05-12 11:06:21

我在我的应用程序中使用这个:

代码语言:javascript
复制
// This is a custom text field that allows i18n placeholders
App.TextField = Ember.TextField.extend({
    attributeBindings: ['autofocus', 'z-index', 'autocomplete'],

    placeholder: function () {
        if (this.get('placeholderKey')) {
            return I18n.t(this.get('placeholderKey'));
        } else {
            return ''; //or this.get('placeholder')
        }
    }.property('placeholderKey')
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23600717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档