Я много читал об Angular 2+ i18n и искал лучший способ попробовать и построить динамические компоненты.
Проблема:
- i18n не может перевеститекст переменных в xlf-файл для динамических
- i18n затрудняет создание динамических компонентов с текстом с использованием атрибута i18n
Возможное решение:
Даже если мы не можемиспользовать динамические строки в переменных для i18n, чтобы выбрать их при создании файла языкового ресурса, мы все равно должны иметь возможность создавать компоненты и передавать им текст.Для примера ниже приведена одна форма, использующая <app-error>
для отображения одного сообщения об ошибке ввода, а также анимации.Будут другие формы, поэтому компонент <app-error>
должен использоваться повторно.
Учитывая возможность многократного использования для других компонентов формы, я сделал нечто похожее на следующее.Этот способ позволяет передавать текст и использовать transclusion для вставки уже переведенного текста в компонент сообщения об ошибке <app-error>
.
form.component.html
<app-error
i18n="Error | form validation">
Please enter a first name.
</app-error>
app-error.component.html
<li>
<ng-content></ng-content>
</li>
Мне удалось найти вышеупомянутое решение для правильной работы, так как i18n его подберет и переведет, а также текст будет введенправильно с <ng-content>
.Так что это похоже на отличное решение, верно?
Я думаю, что должен быть лучший способ передачи переведенного текста компонентам или возможности создания динамических компонентов с использованием i18n.Есть ли возможное решение для этого?