динамическая переменная в сообщении i18n - PullRequest
0 голосов
/ 12 июня 2019

У меня есть проект angular 7 с несколькими языками, и у меня также есть сообщения проверки, переведенные в файлы i18n поэтому я столкнулся с проблемой с сообщением проверки длины, которое должно быть "это поле должно быть меньше, чем ххх символов", например для некоторых полей эта длина составляет 8 символов, а для других полей - 10 символов и т. д.

поэтому я хочу найти способ сделать сообщение проверки как-то взять параметр и поместить этот параметр в сообщение, как я посылаю, что длина этого поля составляет 10 символов, и сообщение проверки будет: «это поле должно быть меньше чем 10 символов "

1 Ответ

0 голосов
/ 12 июня 2019

Вы можете использовать привязку свойств внутри ваших переводов.Таким образом, вы должны определить конкретную длину внутри компонента для этого поля или внутри глобальной настройки для каждого поля.

И затем вы можете использовать определение i18n, например:

<div i18n="@@field.max-length">max {{maxLength}} characters</div>

Затем вы можете повторно использовать это определение для всех ваших входных данных.

Сгенерированный xliff выглядит примерно так:

<trans-unit id="@@field.max-length" datatype="html">
   <source>max <x id="INTERPOLATION" equiv-text="{{maxLength}}"/> characters</source>
   <target>max <x id="INTERPOLATION" equiv-text="{{maxLength}}"/> characters</target>
   [...]
</trans-unit>
...