【问题标题】:How to translate Typescript strings in a Angular 2 app?如何在 Angular 2 应用程序中翻译 Typescript 字符串?
【发布时间】:2017-05-04 18:49:30
【问题描述】:

我知道 Angular 2 i18n 有两个主要平台:The official wayng2-translate。我更倾向于使用官方文档推荐的内容。对我来说,如何翻译 HTML 字符串非常清楚。但有一件事我还没有得到:如何翻译 Typescript 字符串?

例如,我有以下使用内置 i18n 解决方案的组件:

import { Component } from '@angular/core';

@Component({
    moduleId: module.id,
    selector: 'hello',
    template: `
        <h1 i18n>Hello {{name}}!</h1>
        <button (click)="notify()"></button>
    `
})
export class HelloComponent {

    private name = 'John Doe';

    notify() {
        /* How do I translate this? */
        alert(`Hello ${this.name}!`);
    }
}

放置在 HTML 中的字符串将被翻译。但是如何翻译警报中显示的字符串?如果没有本地方法,那么推荐的方法是什么?

【问题讨论】:

  • 查看文档,i18n 似乎专门用于组件模板文本
  • 目前还没有正式的方法。 github.com/angular/angular/issues/11405 对此投赞成票,以便他们优先考虑!
  • @SimonBriggs 感谢您指出问题。

标签: angular typescript


【解决方案1】:

Angular 团队非常专注于创建一个核心产品,其中包含一些其他人可以选择使用的附加服务(routingtranslations 等)。所以不要诋毁任何社区制作的库,这就是 Angular 如此有用的原因!

话虽如此,我强烈推荐ng2-translate 来满足您的需求。您可以预加载翻译,同步或异步调用它们,并将其用作模板中的pipe 或通过组件类中的服务。

【讨论】:

  • 还是这样还是有什么改变?
  • 是的,仍然。你可以做一些工作,比如用字符串做一个组件并将它们放在服务中并用作常量。更多关于当前状态的信息:github.com/angular/angular/issues/11405
猜你喜欢
  • 2018-05-15
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2017-02-13
  • 2010-09-30
相关资源
最近更新 更多