如何动态翻译html5占位符

pra*_*pds 37 internationalization translate angularjs

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

<input  type ='text' placeholder = ' {username | translate}'>
Run Code Online (Sandbox Code Playgroud)

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

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

小智 93

你试过了吗:

<input type="text" placeholder="{{ 'my.i18n.key' | translate }}" ng-model="myModel">
Run Code Online (Sandbox Code Playgroud)

  • 这种方法已被弃用,请参阅@ armyofda12mnkeys的回答,有一个转换占位符的指令 (5认同)

arm*_*eys 31

angular-translate中有一个指令来帮助解决这个问题.看到这个问题.

<input placeholder="Regular Placeholder" translate translate-attr-placeholder="text" translate-value-browser="{{app.browser}}">
Run Code Online (Sandbox Code Playgroud)

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


Mik*_*ird 5

+ira 的解决方案适合我。

<input type ='text' placeholder = "{'USERNAME' | translate}">
Run Code Online (Sandbox Code Playgroud)

其中用户名是翻译的关键。因此,翻译 JSON 行可能类似于以下西班牙语版本

"USERNAME": "Nombre",
Run Code Online (Sandbox Code Playgroud)

两者一起将 Nombre 作为输入框内的占位符