我正在设置一个新的Angular 7应用程序。我想为翻译设置一个默认文本。因此,在翻译{{ 'wait‘| translate }}中,如果有任何回退,我希望将文本'Waiting Now’设置为默认文本。意味着如果正在加载数据或键丢失,则应出现传递的值(在本例中为Waiting Now)。
我试着做一些像{{ 'Intro' | translate:'localizedText' }}这样的事情
Not没有起作用
{{ 'Intro' | translate:'localizedText' }}我希望结果会是这样的
{{ ' Intro‘| translate:'localizedText’}} =>简介(如果正在加载或缺少键)
{{‘简介’| translate:'localizedText‘}} =>翻译的文本
发布于 2019-07-26 15:34:50
我按照下面的说明创建了一个缺失的翻译处理程序:https://github.com/ngx-translate/core#how-to-handle-missing-translations
但我的版本允许将默认值传递给管道,如下所示
<span>{{"MyTranslateKey" | translate: {Default: "Default Translation"} }}</span>默认值可以是如上所述的特定字符串,也可以是变量。
下面是我的处理程序:
import {MissingTranslationHandler, MissingTranslationHandlerParams} from '@ngx-translate/core';
export class MissingTranslationHelper implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams) {
if (params.interpolateParams) {
return params.interpolateParams["Default"] || params.key;
}
return params.key;
}
}发布于 2019-04-13 13:55:12
您将需要使用自定义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-创建一个对象/ json来包含默认值,该json应该包含与原始json相同的结构。
const alternativeJson = {
value1: 'default1'
}
handle(params: MissingTranslationHandlerParams): string {
return this.alternativeJson[params.key];
}https://stackoverflow.com/questions/55662448
复制相似问题