web-dev-qa-db-ja.com

html5プレースホルダーを動的に変換する方法

角度変換を使用して、ページコンテンツをさまざまな言語に翻訳しています。

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

これはページが読み込まれたときにうまく機能しますが、言語ドロップダウンの変更に応じて$translate.uses('fr')を使用すると翻訳に失敗します。

言語が動的に変化する間にプレースホルダーを翻訳するソリューションを親切に提案できますか?

36
praveenpds

試しましたか:

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

これを支援するために、angular-translateにはディレクティブがあります。 この問題 を参照してください。

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

以下は、そのスレッドから動作するplunkrのプレビューです。 http://plnkr.co/edit/J4Ai71puzOaA0op7kDgo?p=preview

31

+ iraのソリューションは私にとっては有効です。

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

ここで、usernameは翻訳のキーです。そのため、翻訳JSON行はスペイン語で次のようになります。

"USERNAME": "Nombre",

2つを組み合わせて、Nombreを入力ボックス内のプレースホルダーとして配置します

3
Mike_Laird

私はこの方法を使用します:

en.json

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

テンプレート

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