Programming/JavaScript & TypeScript
[Angular5] translate 번역 값이 안나오고 번역 키가 대신 나오는 현상 해결
Bonita SY
2020. 9. 11. 23:13
728x90
app.module.ts 파일에서
아래 모듈, 함수 추가
import { NgModule, Injector, APP_INITIALIZER } from '@angular/core';
import { LOCATION_INITIALIZED } from '@angular/common';
import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
export function appInitializerFactory(
translate: TranslateService,
injector: Injector
) {
return () =>
new Promise<any>((resolve: any) => {
const locationInitialized = injector.get(
LOCATION_INITIALIZED,
Promise.resolve(null)
);
locationInitialized.then(() => {
const langToSet = 'ko';
translate.setDefaultLang(langToSet);
translate.use(langToSet).subscribe(
() => {
console.info(`Successfully initialized '${langToSet}' language.'`);
},
(err) => {
console.error(
`Problem with '${langToSet}' language initialization.'`
);
},
() => {
resolve(null);
}
);
});
});
}
providers 부분에 만든 factory 추가
providers: [
// ...
{
provide: APP_INITIALIZER,
useFactory: appInitializerFactory,
deps: [TranslateService, Injector],
multi: true,
}
]
728x90