Подтвердить что ты не робот

Angular2 i18n для текста заполнителя

Есть ли способ перевести текст-заполнитель для ввода текстового поля с помощью Angular 2 i18n?

<input placeholder="hello world" i18n>

Я ничего не вижу в документации по этому поводу: https://angular.io/docs/ts/latest/cookbook/i18n.html

4b9b3361

Ответ 1

Был пример, но я больше не могу его найти.

Вы можете использовать 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. Я не мог заставить его работать без перевода. Поэтому вам нужно будет добавить состояние = переведенное и значение.

Даже если мы не даем значение в i18n-placeholder, то это также прекрасно. просто сделайте:

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

он будет работать нормально.

Ответ 2

Чтобы добавить к ответу @evandongen, здесь, где это задокументировано в Angular Docs:

Обновленная ссылка:

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

Добавить атрибуты перевода i18n


Чтобы пометить атрибут для перевода, добавьте атрибут в форме i18n-x, где x - имя атрибута для перевода. В следующем примере показано, как пометить атрибут title для перевода, добавив атрибут i18n-title в тег img:

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

Эта техника работает для любого атрибута любого элемента.

Вы также можете присвоить значение, описание и идентификатор с помощью синтаксиса i18n-x="<meaning>|<description>@@<id>".