我正在建立一个新的Angular 7应用程序。我想为翻译设置默认文本。所以在翻译{{'wait'|翻译}},如果有任何后备,我想将文本'正在等待'设置为默认文本。表示如果正在加载数据或键丢失,则应显示传递的值(在本例中为Waiting Now)。
我试图做像{{ 'Intro' | translate:'localizedText' }}
这样的事情
没有工作
{{ 'Intro' | translate:'localizedText' }}
我希望结果应该如此
{{'简介'|翻译:'localizedText'}} =>简介(如果加载或丢失密钥)
{{'简介'|翻译:'localizedText'}} =>翻译文本
你将需要使用自定义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];
}