我正在使用ngx-translate,我有一个静态文件,我在其中定义了键及其含义。但是当我使用这样的翻译时{{“app.key”|如果密钥不存在,它会在屏幕上打印“app.key”,但我希望能够检查它是否存在,我该怎么办呢?提前谢谢。
答案 0 :(得分:2)
您可以通过两种方式处理该问题:
由于我找不到安全检查翻译是否存在的方法,所以我最好的办法是同步检查是否相等:
if (this.translateService.instant(myKey) === myKey) {
// key is not present
}
但是,I filed an issue with ngx-translate正在请求检查方法。
如果您只想查找一般缺少的翻译,则可以设置missingTranslationHandler
:
@NgModule({
imports: [
...
TranslateModule.forRoot({
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: MyMissingTranslationHandler,
},
}),
],
})
export class myModule {
...
}
class MyMissingTranslationHandler implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams): any {
console.warn(`Missing translation: ${params.key}`);
return '[MISSING]: ' + params.key;
}
}
答案 1 :(得分:0)
您需要使用API中的get函数,如果它返回您要检查的密钥而不是翻译,则表示没有可用的翻译。
this._translateService.get("app.key").subscribe(res=>{
if(res === "app.key") {
// message does not exist
}
else {
// message exists
}
})