Я создал свою собственную частную библиотеку angular с несколькими компонентами, чтобы облегчить себе жизнь. Я создал эту библиотеку, следуя этому руководству. Все получилось отлично, я даже добавил это в другой проект, чтобы проверить.
Теперь наступает момент, когда я должен поддерживать несколько языков, потому что я живу в Бельгии ????. Раньше я без проблем пользовался пакетом 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
]
})
Это усугубило ситуацию: не только этикетки все еще не переводились, но и мои основные приложения даже не использовали свои собственные переводы. У основного приложения не было проблем с переводами до тех изменений в модулях библиотеки ...
Так что да, вы догадались, я застрял ... Кажется, я не могу найти правильного решения.