如何动态翻译html5占位符

时间:2014-01-09 16:07:43

标签: angularjs internationalization translate

我正在使用angular-translate将页面内容翻译成不同的语言。

<input  type ='text' placeholder = ' {username | translate}'>

这在页面加载时工作正常..但是当我根据语言下拉列表更改使用$translate.uses('fr')时,它无法翻译。

当语言动态变化时,任何人都可以建议翻译占位符的解决方案吗?

5 个答案:

答案 0 :(得分:88)

你有没有尝试过:

<input type="text" placeholder="{{ 'my.i18n.key' | translate }}" ng-model="myModel">

答案 1 :(得分:31)

angular-translate中有一个指令来帮助解决这个问题。 请参阅this issue

<input placeholder="Regular Placeholder" translate translate-attr-placeholder="text" translate-value-browser="{{app.browser}}">

以下是该线程中正在运行的plunkr的预览: http://plnkr.co/edit/J4Ai71puzOaA0op7kDgo?p=preview

答案 2 :(得分:3)

+ ira的解决方案适合我。

<input type ='text' placeholder = "{'USERNAME' | translate}">

其中username是翻译的关键。因此,翻译JSON行在西班牙语中可能如下所示

"USERNAME": "Nombre",

两者一起将Nombre作为占位符放在输入框

答案 3 :(得分:1)

我使用此方法:

en.json 中:

{
   "ENTER_TEXT": "{{label}} را وارد کنید",
   "DISCOUNT_CODE": "کد تخفیف"
}

模板中:

<input type="text" placeholder="{{'ENTER_TEXT' | translate: {label: 'DISCOUNT_CODE' | translate} }}" >

答案 4 :(得分:0)

我使用了占位符=“ {{'some_text'|翻译}}”“ 而不是占位符=“ {{” some_text“ |翻译}}” 对我有用的