Угловой i18n - интерполяция для уточнения коллекций? - PullRequest
0 голосов
/ 23 января 2019

Я изучал, как использовать i18n для переводов в приложении Angular.Моя борьба с интерполяцией строк, кажется, это еще не реализовано в Angular.

Цель: Используйте i18n, чтобы перевести интерполяцию строк коллекции в приложении Angular, чтобы иметь испанскую версию.

Что я сделал: я провел много исследований, и я видел упомянутые обходные пути:

  1. Polyfill : (https://github.com/ngx-translate/i18n-polyfill) (и ссылка здесь: angular-i18n Angular 6 Интернационализация: как работать с переменными )

  2. Скрытоdiv : ( Угловая интернационализация (i18n) и * ngFor )

  3. Подробный метод : с использованием n-container и ngswitch.Кажется, наименее чистый способ: https://github.com/angular/angular/issues/11405#issuecomment-415731284

Для коллекции, такой как массив или таблица базы данных, как эти обходные пути создают отдельные теги i18n для каждого элемента?Будет ли в итоге отображаться только один тег для всех элементов коллекции?

Например: если у вас есть массив для "Gender" со значениями "Male" и "Female", что произойдет?

<mat-option *ngFor="let gender of genders" [value]="gender.value">
             {{ gender.viewVal }}
</mat-option>

В полифиле они упоминают:

test {{myVar}} !", {myVar: "^_^"})

Значит ли это, что "^ _ ^" перевод?Это делается прямо в машинописи, а не в xlf-файле?Если вы используете скрытый div, как использование файла машинописного текста влияет на xlf?Детальный метод кажется наиболее простым для понимания, но не подходит для масштабируемого. Что, если у вас выпадающий список с более чем 10 элементами, тогда это действительно набирает код.

Каков наилучший способ достижения этой цели?Я не уверен, что правильно понимаю, как работает полифилл, и не так много документации по этим способам перевода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...