如果缺少密钥或正在加载翻译文件,则ngx-translate默认文本

问题描述 投票:0回答:1

我正在建立一个新的Angular 7应用程序。我想为翻译设置默认文本。所以在翻译{{'wait'|翻译}},如果有任何后备,我想将文本'正在等待'设置为默认文本。表示如果正在加载数据或键丢失,则应显示传递的值(在本例中为Waiting Now)。

我试图做像{{ 'Intro' | translate:'localizedText' }}这样的事情

没有工作

{{ 'Intro' | translate:'localizedText' }}

我希望结果应该如此

{{'简介'|翻译:'localizedText'}} =>简介(如果加载或丢失密钥)

{{'简介'|翻译:'localizedText'}} =>翻译文本

angular typescript translation ngx-translate
1个回答
0
投票

你将需要使用自定义MissingTranslationHandler像这样:

在你的app.module或任何你加载TranslateModule.forRoot的地方这样做:

@Injectable()
export class MyMissingTranslationHandler implements MissingTranslationHandler {
    handle(params: MissingTranslationHandlerParams): string {
        return `**MISSING KEY: ${params.key}**`;
    }
}

并在你的providers:[]添加这个:(导入MissingTranslationHandler后)

{
    provide: MissingTranslationHandler,
    useClass: MyMissingTranslationHandler
},

有关详细信息,请参阅此链接:

https://github.com/ngx-translate/core#how-to-handle-missing-translations

要返回缺失的默认值,可以尝试以下操作:

1-创建一个object / json以包含默认值,json应该包含与原始json相同的结构。

const alternativeJson = {  
       value1: 'default1'
}

handle(params: MissingTranslationHandlerParams): string {
        return this.alternativeJson[params.key];
}
© www.soinside.com 2019 - 2024. All rights reserved.