Angular 2/4 多语言 国际化支持
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Angular 2/4 多语言 国际化支持,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2584字,纯文字阅读大概需要4分钟。
内容图文
ngx-translate 包使用
1. 安装
npm @ngx-translate/core --save npm @ngx-translate/http-loader
2. app.module.ts
import { BrowserModule } from ‘@angular/platform-browser‘; import { NgModule } from ‘@angular/core‘; import { FormsModule } from ‘@angular/forms‘; import { HttpModule, Http } from ‘@angular/http‘; import { TranslateModule, TranslateLoader } from ‘@ngx-translate/core‘; import { TranslateHttpLoader } from ‘@ngx-translate/http-loader‘; import { AppComponent } from ‘./app.component‘; export function createTranslateLoader(http: Http) { returnnew TranslateHttpLoader(http, ‘./assets/i18n/‘, ‘.json‘); } @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: (createTranslateLoader), deps: [Http] } }), FormsModule, HttpModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
加载TranslateModule的loader, parser 或者missing translations handler
TranslateModule.forRoot();
默认的http loader
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [Http]
}
}),
实现AOT编译
export function createTranslateLoader(http: Http) { returnnew TranslateHttpLoader(http, ‘./assets/i18n/‘, ‘.json‘); }
TranslateHttpLoader 加载 "/assets/i18n/[lang].json" 文件, [lang] 为语言文件名
初始化 TranslateService
import { Component } from ‘@angular/core‘; import { TranslateService } from ‘@ngx-translate/core‘; @Component({ selector: ‘app-root‘, templateUrl: ‘./app.component.html‘, styleUrls: [‘./app.component.css‘] }) export class AppComponent { constructor(public translate: TranslateService) { // this language will be used as a fallback when a translation isn‘t found in the current language translate.addLangs(["en", "ch"]); let browserLang = translate.getBrowserLang(); console.log("browser languague: " + browserLang); translate.use(browserLang.match(/en|ch/) ? browserLang : ‘en‘); } }
语言文件 /assets/i18n/ch.json
{ "HOME": { "TITLE": "你好, Angular ngx-translate!", "SELECT": "更改语言" } }
/assets/i18n/en.json
{ "HOME": { "TITLE": "Hello Angular with ngx-translate!", "SELECT": "Change language" } }
app.component.html 文件
< div > < h2 >{{ ‘HOME.TITLE‘ | translate }}</h2><label> {{ ‘HOME.SELECT‘ | translate }} <select #langSelect (change)="translate.use(langSelect.value)"><option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="lang === translate.currentLang">{{ lang }}</option></select></label></div>
效果
原文:http://www.cnblogs.com/fangshiwei/p/7137857.html
内容总结
以上是互联网集市为您收集整理的Angular 2/4 多语言 国际化支持全部内容,希望文章能够帮你解决Angular 2/4 多语言 国际化支持所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。