我正在使用ngx-translate和ngx-translate / http-loader来翻译我的离子/角度项目。我在app.module.ts导入文件中包含以下代码:
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpBackend]
}
})
和此加载器函数在同一文件中:
export function createTranslateLoader(handler: HttpBackend) {
const http = new HttpClient(handler);
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
这使我有机会在组件的html中使用这种翻译语法:{{ 'TEXT' | translate }}
,我也可以编写类似的内容在组件的ts文件中进行翻译:{{1}}
现在,我想在命令var text = this.translateService.instant("TEXT");
生成的服务中使用translateService.instant
,但我尝试了一下,但它不起作用,它本身返回了"ng generate s"
。那是什么问题呢?
答案 0 :(得分:1)
尝试func viewControllersForPagerTabStrip(_ pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
}
请参阅:https://github.com/ngx-translate/core#4-use-the-service-the-pipe-or-the-directive
instant(键:字符串|数组,interpolateParams ?:对象):字符串|对象:获取键(或键数组)的即时转换值。 /!\此方法是同步的,默认文件加载器是异步的。您有责任知道何时加载翻译,使用此方法是安全的。如果不确定,则应改用get方法。
答案 1 :(得分:0)
如果我理解正确,那么在您新生成的服务中,您只需注入翻译服务:
constructor(translateService: TranslateService) {}
答案 2 :(得分:0)
首先将翻译服务注入您的服务构造函数中:
constructor(public translateService: TranslateService) {}
然后使用它来获取当前语言的翻译:
this.translateService.getTranslation(this.translateService.currentLang).subscribe((translation: string) => { this.translationText= translation.text; });