0

我在我的 Angular 项目中使用国际化 [i18n]。对于静态内容,它可以正常工作。但是动态内容它不起作用。

我的代码如下:

静止的:

     <div>{{ 'ADD ENTRY' | translate }} </div>

动态的:

    <div>{{ status | translate }} </div>

我从后端 API 获取状态代码,我将其映射到 ts 文件中的变量状态。就我而言,我的状态代码为404。所以我在i18n配置文件中重新配置了 404。但是,如果我尝试翻译该变量,则它不起作用。但是,如果我直接将“404”作为字符串传递,而不是传递该状态变量,那么国际化将正常工作。

我的代码如下:

    <div class="error" *ngIf="status">**{{ '404' | translate }} **</div>

对于这种国际化工作。

但我需要将变量状态国际化,但面临问题。

我的代码如下:

在 HTML 中:

  <div class="error" *ngIf="status">{{ status | translate }} </div>

在 ts 中:

    status: string;
    this.status = error.status;

我也试过:

        <div class="error" *ngIf="status">{{"'"+{{status}}+"'"}} | translate}}</div>

但它不起作用。

4

1 回答 1

0

尝试以ts这种方式翻译文件中的动态文本:

第一组TranslateService

import { TranslateService } from '@ngx-translate/core';

constructor( private translateService: TranslateService ) { }

然后,在您将接收文本的地方(在这种情况下,我假设它存储在 中error.status)执行以下操作:

this.status = this.translateService.instant(error.status)

然后不要| translate在html中使用,就放在status那里。

于 2018-05-04T10:57:56.030 回答