Angular 2 - Многоязычная поддержка

Мы используем Angular 2.0 в нашем приложении. В этом приложении мы хотим оказать многоязычную поддержку. Мы знаем, как использовать angular 1.0. но не знаю, как использовать в 2.0.

3 ответа

Я могу порекомендовать библиотеку ngx-translate, ее очень легко интегрировать и использовать.

1. Установите через npm

npm install @ngx-translate/core --save

2. Добавьте TranslateModule в импорт app.module.ts

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

@NgModule({
   declarations: [...],
   imports     : [TranslateModule.forRoot(), ...],
   exports      : [...],
   providers   : [...],
   bootstrap   : [AppComponent]
})

export class AppModule {}

3. app.components.ts

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

@Component({
  selector   : 'app',
  templateUrl: './app.component.html',
})
export class AppComponent {
  constructor(private translate: TranslateService) {
    translate.addLangs(['en', 'hy']);
    translate.setDefaultLang('en');
    translate.use('en');
  }
  changeLang(lang: string) {
    this.translate.use(lang);
  }
}

4. app.component.html

<nav>
  <a [routerLink]="['/']">    
    {{ "home" | translate }}
  </a>
  |
  <a [routerLink]="['/about']">
    {{ "about" | translate }}
  </a>
  |
  <a [routerLink]="['/contact']">
    {{ "contact" | translate }}
  </a>
</nav>
<div class="lang-bar">
  <a (click)="changeLang('en')">EN</a>
  <a (click)="changeLang('hy')">ՀՅ</a>
</div>

5. Создайте папку i18n с файлами перевода

en.json

{
    "home" : "Home",
    "about" : "About",
    "contact" : "Contact"
}

hy.json

{
    "home" : "Գլխավոր",
    "about" : "Մեր մասին",
    "contact" : "Հետադարձ կապ"
}

i18n в Angular2 все еще находится в стадии разработки и, похоже, еще не пригоден для использования.

Смотрите также https://github.com/angular/i18n/issues/28

а этот похожий вопрос Angular2 i18n на данный момент?

Я понял - Ionic 2 | Интернационализация и локализация вашего приложения с Angular 2

http://www.gajotres.net/ionic-2-internationalize-and-localize-your-app-with-angular-2/

Другие вопросы по тегам