首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngx-如果密钥缺失或正在加载翻译文件,则翻译默认文本

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

Stack Overflow用户
提问于 2019-04-13 13:47:41
回答 2查看 11K关注 0票数 7

我正在设置一个新的Angular 7应用程序。我想为翻译设置一个默认文本。因此,在翻译{{ 'wait‘| translate }}中,如果有任何回退,我希望将文本'Waiting Now’设置为默认文本。意味着如果正在加载数据或键丢失,则应出现传递的值(在本例中为Waiting Now)。

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

Not没有起作用

代码语言:javascript
复制
{{ 'Intro' | translate:'localizedText' }}

我希望结果会是这样的

{{ ' Intro‘| translate:'localizedText’}} =>简介(如果正在加载或缺少键)

{{‘简介’| translate:'localizedText‘}} =>翻译的文本

EN

回答 2

Stack Overflow用户

发布于 2019-07-26 15:34:50

我按照下面的说明创建了一个缺失的翻译处理程序:https://github.com/ngx-translate/core#how-to-handle-missing-translations

但我的版本允许将默认值传递给管道,如下所示

代码语言:javascript
复制
<span>{{"MyTranslateKey" | translate: {Default: "Default Translation"} }}</span>

默认值可以是如上所述的特定字符串,也可以是变量。

下面是我的处理程序:

代码语言:javascript
复制
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;
  }
}
票数 13
EN

Stack Overflow用户

发布于 2019-04-13 13:55:12

您将需要使用自定义MissingTranslationHandler,如下所示:

在您的app.module中或您加载TranslateModule.forRoot的任何位置,执行以下操作:

代码语言:javascript
复制
@Injectable()
export class MyMissingTranslationHandler implements MissingTranslationHandler {
    handle(params: MissingTranslationHandlerParams): string {
        return `**MISSING KEY: ${params.key}**`;
    }
}

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

代码语言:javascript
复制
{
    provide: MissingTranslationHandler,
    useClass: MyMissingTranslationHandler
},

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

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

要返回缺少的默认值,您可以尝试执行以下操作:

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

代码语言:javascript
复制
const alternativeJson = {  
       value1: 'default1'
}

handle(params: MissingTranslationHandlerParams): string {
        return this.alternativeJson[params.key];
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55662448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档