【发布时间】:2020-06-25 22:07:34
【问题描述】:
我有一个 Angular9 应用。除了 app.module.ts 之外,还有一个模块 custom.module.ts。这里是
package.json
"@angular/cdk": "^9.2.4",
"@angular/common": "9.1.11",
"@angular/compiler": "9.1.11",
"@angular/core": "9.1.11",
翻译
1)我添加了@ngx-translate/core和@ngx-translate/http-loader
"@ngx-translate/core": "10.0.2",
"@ngx-translate/http-loader": "^5.0.0",
2) 然后在 app.module.ts 下 imports
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
和
// required for AOT compilation
export function HttpLoaderFactory(http: HttpClient): any {
return new TranslateHttpLoader(http, "./assets/i18n/");
}
我的 custom.module.ts 也是如此。
3) app.component.ts
// Add languages
this.translateService.addLangs(["en", "nb", "sv"]);
// Use a language
this.translateService.setDefaultLang("en");
this.translateService.use("en");
assets/i18n/en.json中的4)文件
{
"noSelectMessage": "Select to see detail."
}
现在我在 custom.moule.ts
的组件中使用 traslate 管道<span>{{'noSelectMessage' | translate}}</span>
它显示相同的 noSelectMessage
如果我在浏览器中检查源选项卡,则资产下没有 i18n 文件夹。
可能是什么问题?
【问题讨论】:
-
第一眼看不到问题。你能提供一个stackblitz.com 的例子吗?
-
stackblitz.com/edit/angular-ivy-a173ro 这里有一个工作示例。
-
@SehaxX 仍然无法正常工作,我是否还需要将其包含在自定义模块中,在导入下翻译模块以及为 app.module 翻译模块?
-
它也不会在加载时翻译,解决方案见此处:stackoverflow.com/questions/61907829/…
标签: angular angular-i18n