web-dev-qa-db-ja.com

プレースホルダーテキストのAngular2 i18n

Angular 2のi18nを使用して、入力テキストフィールドのプレースホルダーテキストを翻訳する方法はありますか?

<input placeholder="hello world" i18n>

これに関するドキュメントには何もありません: https://angular.io/docs/ts/latest/cookbook/i18n.html

15
Simon Briggs

例はありましたが、もう見つけられないようです。

i18n-attributenameを使用できるはずです。例えば:

<input type="number" placeholder="From" i18n-placeholder="From placeholder"/>

これには次のようなエントリが必要です。

<trans-unit id="generatedId" datatype="html">
  <source>From</source>
  <target state="translated">Van</target>
  <note priority="1" from="description">From placeholder</note>
</trans-unit>

Messages.xlfファイル内。翻訳なしではうまくいきませんでした。したがって、state = translatedと値を追加する必要があります。

i18n-placeholderで値を指定しなくても問題ありません。ちょうど好きです:

<input type="number" placeholder="From" i18n-placeholder/>

正常に動作します。

34
evandongen

@evandongenからの回答に追加するには、これがAngular docsに記載されている場所です。

更新されたリンク:

https://angular.io/guide/i18n#translate-attributes

i18n翻訳属性を追加


属性を翻訳対象としてマークするには、i18n-xの形式で属性を追加します。ここで、xは翻訳する属性の名前です。次の例は、imgタグにi18n-title属性を追加して、title属性を翻訳対象としてマークする方法を示しています。

<img [src]="logo" i18n-title title="Angular logo" />

この手法は、any要素の任意の属性に対して機能します。

i18n-x="<meaning>|<description>@@<id>"構文を使用して、意味、説明、IDを割り当てることもできます。

3
Chris Halcrow