Я создал собственную частную угловую библиотеку с несколькими компонентами, чтобы облегчить мне жизнь.Я сделал эту библиотеку, следуя этому учебнику .Все прошло отлично, я даже добавил его в другой проект, чтобы проверить его.
Теперь наступает момент, когда мне приходится поддерживать несколько языков, потому что я живу в Бельгии ?.В прошлом я использовал пакет ngx-translate без каких-либо проблем, поэтому я подумал, что это будет легко.
Я добавил папку assets / i18n с переводом json в моем проекте.
Я обнаружил, что angular cli не включает ресурсы при сборке, поэтому вы должны добавить их вручную или с помощью gulp в папку dist перед созданием пакета.После этого я заметил, что метки не переводились, если я не включил перевод в файлы json Основного приложения.
Каждый компонент в моей библиотеке имеет свой собственный модуль, поэтому я подумал, что мне просто нужно добавитьмодуль перевода в этих модулях.Поэтому я сделал следующее.
export function httpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
imports: [
CommonModule,
FormsModule,
DirectivesModule,
ButtonModule,
IconModule,
PillModule,
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (httpLoaderFactory),
deps: [HttpClient]
},
isolate: true
})
],
declarations: [
FilterComponent
],
exports: [
FilterComponent
]
})
Это еще более усугубило ситуацию: не только этикетки не переводились, но мои основные приложения даже не использовали свои собственные переводы.У основного приложения не было проблем с его переводами до этих изменений в библиотечных модулях ...
Так что, да, вы догадались, я застрял ... Кажется, я не могу найти правильное решение.