我使用离子2并浏览了这个文件:
{{ 'HELLO' | translate }}
我完成了翻译工作所需的所有更改。但是,当我在html文件中写这个时:
HELLO
在我看到的页面中
{
"HELLO": "Hello there"
}
这甚至以为我在/assets/i18n/en.json上有一个文件,其中包含:
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { Http } from '@angular/http';
在app.ts中我添加了这些导入:
export function createTranslateLoader(http: Http) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
然后在进口后我有了这个:
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [Http]
}
})
还有@NgModule->导入数组:
import { HttpModule } from '@angular/http';
我意识到我的应用程序在此导入之前已经存在:
http: HttpModule
我不确定为什么我导入了它,但如果我将其删除,那么应用程序会在其他地方中断。 那是问题吗?使用两个不同的名称导入angular / http两次? 试图只使用原始的,但在导出函数中它不喜欢参数
http: Http
文档中的那个
{{1}}
我可以查看en.json是否已加载?或者这里有什么问题?
答案 0 :(得分:2)
您可以使用Inspector Web(F12)查看en.json。您是否在代码源中的某处使用这些方法?
this.translate.setDefaultLang('en');
this.translate.use('en');
在视图中,您只看到“HELLO”因为(我认为是这样)您没有配置要使用的语言。