【问题标题】:ngx-translate: Translate strings in htmlngx-translate:翻译 html 中的字符串
【发布时间】:2018-04-25 16:38:29
【问题描述】:

我正在使用 ngx-translate lib 在我的 Angular 应用程序中支持 I18N。 谁能帮我标记下面的 html sn-p 进行翻译?

<span *ngIf="Days < 0 && !shortSentence">
      Follow-up is <span [class.font-bold]="highlightContent">{{ InDays | positiveNumber }} days</span> past due
    </span>

我只想标记 span 标签内的文本内容。 如何将其设为参数化翻译?

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: angular ngx-translate angular-i18n


    【解决方案1】:

    这是您可以通过过滤器使用参数翻译的方式:

    // define translation with parameter
    'TRANSLATION_KEY': '{{days}} days'
    
    // use it in template
    <span>{{ 'TRANSLATION_KEY' | translate: { days: followUpInDays | positiveNumber } }}</span>
    

    如果您想将整个句子作为翻译(包括 HTML),则需要使用innerHTML 属性绑定:

    // define translation with parameter
    'TRANSLATION_KEY': 'Follow-up is <span class="{{className}}">{{days}} days</span> past due'
    
    // use it in template
    <span *ngIf="Days < 0 && !shortSentence"
          [innerHTML]="'TRANSLATION_KEY' | translate: { className: (highlightContent ? 'font-bold' : ''), days: followUpInDays | positiveNumber }">
    </span>
    

    【讨论】:

    • 我在 UI 中得到以下输出:“”跟进已逾期 {days} 天“”。表达式 {days} 未得到评估。如何解决?
    • 定义翻译参数时需要使用双大括号(我的错,我在后台使用messageformat,所以单大括号也适用于我)。
    • 显然 innerHTML 属性在 IE11 中不起作用 - 显然......微软和他们损坏的浏览器......
    猜你喜欢
    • 2018-03-30
    • 2018-08-16
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多