关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

发布时间:2019-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

关于Angular2的i18n,网上的资料也不多,刚好项目需要用到,就自己去查阅各种资料,自己整理了出来,分享下出来给大家吧。废话不多说!直接上代码:

首先我们肯定要新建一个文件,叫aaa(网上angular-cli教程很多),
cmd打开命令进入到随便一个目录底下:

ng new aaa                    --创建名字叫aaa文件

输入指令下载依赖

@H_512_34@npm install --下载依赖包node_modules

这时文件全部都有了:

关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

紧接着开始我们关于i18n解决方法。
在aaa这个文件目录底下输入命令来安装ng2-translate:

npm install  ng2-translate            --save
npm install  @ngx-translate/core         
npm install  @ngx-translate/http-loader 

然后打开我们的文件在一个文件名为assets底下新建一个文件夹名字叫i18n,assets在文件src里面,然后文件夹里面再创建两个json文件,名字分别为“en.json”和“zh-CN.json”,分别代表英文和中文(记得编辑器生成后改编码utf-8,不然之后浏览器显示中文会乱码)。

en.json:

{
"hello":"Hollo",
"language":"Chinese and English"
}

zh-CN.json:

{
"hello":"你好",
"language":"中文和英文"
}

然后在打开app文件,在 app.module.ts 中添加以下代码:

import { TranslateHttpLoader } From '@ngx-translate/http-loader';
import {Http} from '@angular/http';
import { TranslateModule, TranslatestaticLoader, TranslateLoader } from 'ng2-translate/ng2-translate';


export function HttpLoaderFactory(http:Http){
    return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

@NgModule({
  imports: [
    browserModule,
    TranslateModule.forRoot({
      PRovide: TranslateLoader,
      useFactory: (HttpLoaderFactory),
      deps: [Http]
    })
  ],
  providers: [],
  bootstrap: [Appcomponent]
})

关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

然后在app.COMponent.ts文件里面:添加一下代码:

import {TranslateService} from 'ng2-translate';

export class AppComponent {
    getLangs:any[];  //定义一个数组
    constructor(private translate: TranslateService) {
    //添加语言支持
    }
    ngOnInIT(){
        //下拉按钮的值
        this.getLangs = [
            {label:'中文',value:'zh-CN'},
            {label:'英语',value:'en'}
        ];
        //添加语言
        this.translate.addLangs(['zh-CN', 'en']);

        //设置默认语言
        this.translate.setDefaultLang('zh-CN');

        //获取当前浏览器环境的语言比如en、zh-CN
        let broswerLang = this.translate.getBrowserLang();
        
        //使用语言
        this.translate.use(broswerLang.match(/en|zh-CN/) ? broswerLang : 'zh-CN');    
    }

    changeLang(index) {
         this.translate.use(index);
    }
    
      title = 'angular-Translate';
}

关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

最后htML代码呈上:

<div style="text-align:center">
    <h1>
        Welcome to {{title}}!
    </h1>
  </div>
  <div class="language">{{ 'language' | translate }}</div>
  <div>
    <select #langSelect (change)="changeLang($event.target.value)" class="selectBTn">
          <option *ngFor="let lang of getLangs" [value]="lang.value">{{lang.label}}</option>
    </select>
</div>

关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

最后一步:
输入指令

ng serve     //启动服务

关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。

脚本宝典总结

以上是脚本宝典为你收集整理的关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。全部内容,希望文章能够帮你解决关于angular2.0的i18n国际化的解决方法,分享一下给大家,有错大家指出来互相学习哈。。。所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。