Я искал, как использовать i18n для переводов в приложении Angular. Моя проблема связана с интерполяцией строк, кажется, это еще не реализовано в Angular.
Цель: использовать i18n для перевода интерполяции строк коллекции в приложении Angular, чтобы получить испанскую версию.
Что я сделал: я провел много исследований, и обходные пути, которые я видел, были упомянуты:
Полифилл: (https://github.com/ngx-translate/i18n-polyfill) (и ссылка здесь: angular-i18n Интернационализация Angular 6: как работать с переменными)
Скрытый раздел: (Угловая интернационализация (i18n) и *ngFor )
Подробный метод: использование n-контейнера и ngswitch. Кажется наименее чистым способом: https://github.com/angular/angular/issues/11405#issuecomment-415731284
Для коллекции, такой как массив или таблица базы данных, как эти обходные пути создают отдельные теги i18n для каждого элемента? Будет ли в конечном итоге отображаться только один тег для всех элементов коллекции?
Например: если у вас есть массив для «Пол» со значениями «Мужской» и «Женский», что произойдет?
<mat-option *ngFor = "let gender of genders" [value] = "gender.value">
{{ gender.viewVal }}
</mat-option>
В полифилле упоминаются:
test {{myVar}} !", {myVar: "^_^"})
Означает ли это, что "^_^" - это перевод? Это делается непосредственно в машинописном тексте, а не в файле xlf? Если вы используете скрытый div, как использование машинописного файла влияет на xlf? Подробный метод кажется самым простым для понимания, но не подходит для масштабирования, что, если у вас есть раскрывающийся список с более чем 10 элементами, тогда это действительно увеличивает объем кода.
Как лучше всего достичь этой цели? Я не уверен, что правильно понимаю, как работает полифилл, и документации по этим способам перевода не так много.
Мы создали некоторую структуру вокруг i18n и перевели весь сайт, который не является переменным, но я готов выслушать различные варианты, о чем вы думаете?
Вы привязаны к спросу, используя i18n-перевод со встроенными инструментами angular? Или вы сами решаете, какой сторонний инструмент использовать?