angular - ngx-translate 只加载 i18n 文件夹中的一个文件
问题描述
我试图在我的网络应用程序中添加翻译机制,但只加载了 en.json 文件。fr.json 不是。
1-我安装了
"@ngx-translate/core": "^13.0.0", "@ngx-translate/http-loader": "^6.0.0",
HttpClientModule
2-我用and配置 app.moduleTranslateModule
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
SplashScreenModule,
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
HighlightModule,
ClipboardModule,
AppRoutingModule,
InlineSVGModule.forRoot(),
NgbModule,
],
providers: [
CookieService,
{
provide: APP_INITIALIZER,
useFactory: appInitializer,
multi: true,
deps: [AuthService],
},
{
provide: HIGHLIGHT_OPTIONS,
useValue: {
coreLibraryLoader: () => import('highlight.js/lib/core'),
languages: {
xml: () => import('highlight.js/lib/languages/xml'),
typescript: () => import('highlight.js/lib/languages/typescript'),
scss: () => import('highlight.js/lib/languages/scss'),
json: () => import('highlight.js/lib/languages/json')
},
},
},
],
bootstrap: [AppComponent],
})
export class AppModule { }
export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
return new TranslateHttpLoader(http);
}
3-我在页脚中配置翻译
languageList: object[] = [{ name: 'French' , code: 'fr'}, { name: 'English', code: 'en'}];
constructor(private layout: LayoutService,
public translateService: TranslateService) {
// translation initialisation
translateService.addLangs(['en', 'fr']);
translateService.setDefaultLang('fr');
let browserLang = translateService.getBrowserLang();
if (localStorage.getItem('lang')) {
browserLang = localStorage.getItem('lang');
}
translateService.use(browserLang.match(/en|fr/) ? browserLang : 'en');
}
并在 html 文件中
<select class='select-option language-btn language-change-select' #languageSelected (change)='selectLanguage(languageSelected.value)'>
<option class='option'
*ngFor='let language of languageList'
[value]="language.code">{{ language.name }}</option>
</select>
对于英语,它运行良好,但是当我选择法语时,文件未加载。我的 en.json
{
"footer":{
"language":"Language",
"change-language":"Change language"
},
"header":{
},
"home":{
},
"menu": {
"home": "Home",
"apps": "Apps",
"games": "Games",
"ebooks": "Ebooks"
},
"creators":{
}
}
和 fr.json 文件
{
"footer":{
"language":"Langue",
"change-language":"Changer de langue"
},
"header":{
},
"home":{
},
"menu": {
"home": "Accueil",
"apps": "Applis",
"games": "Jeux",
"ebooks": "Livres"
},
"creators":{
}
}
请问你知道做错了什么吗?
解决方案
推荐阅读
- javascript - 尝试在 Facebook 上上传图片时出现“(#324)需要上传文件”错误
- node.js - firebase 部署后的“array.forEach 不是功能”,但适用于 firebase 服务
- java - 如何指定应用使用 WiFi 而不是 3G/4G?
- angular - Angular 在 div 可见时显示图表
- php - Codeigniter XSS 过滤忽略 % 符号
- java - 如何在不替换先前数据的情况下将每个循环实例的新行中的数据写入 Excel 表,即如何为每个循环实例附加行?
- spring-boot - 抛出异常spring boot webflux
- mysql - 从 SUM 中取最大值
- javascript - 如何将 JS 文件链接到 PHP 页面模板?
- c# - ____ 类型与导入类型冲突