当前位置: 首页 > Web前端 > HTML5

关于angular2.0的i18n国际化解决方案,分享给大家,如有错误,请指出,互相学习,..

时间:2023-04-05 18:54:42 HTML5

关于angular2的i18n,网上资料不多。正好项目需要,于是自己去查了各种资料,整理了一下,分享给大家。不废话了!直接上传代码:首先,我们要新建一个名为aaa的文件(网上有很多angular-cli的教程),打开cmd命令,在任意目录下输入:ngnewaaa--createafilenamedaaa输入命令downloaddependsnpminstall——下载依赖包node_modules,然后所有文件都可用:接下来开始我们的i18n解决方案。在aaa文件目录下输入命令安装ng2-translate:npminstallng2-translate--savenpminstall@ngx-translate/corenpminstall@ngx-translate/http-loader然后在名为assets的文件中打开我们的文件创建一个在最下面新建一个名为i18n的文件夹,assets在文件src中,然后在文件夹中创建两个json文件,名称分别为“en.json”和“zh-CN.json”,分别代表英文和中文(记得之后编辑器生成后,将编码改为utf-8,否则浏览器后面会显示中文乱码)。en.json:{"hello":"你好","language":"中英文"}zh-CN.json:{"hello":"你好","language":"中英文"}然后打开应用程序文件并在app.module.ts中添加以下代码:import{TranslateHttpLoader}from'@ngx-translate/http-loader';import{Http}from'@angular/http';import{TranslateModule,TranslateStaticLoader,TranslateLoader}来自'ng2-translate/ng2-translate';导出函数HttpLoaderFactory(http:Http){returnnewTranslateHttpLoader(http,'./assets/i18n/','.json');}@NgModule({imports:[BrowserModule,TranslateModule.forRoot({provide:TranslateLoader,useFactory:(HttpLoaderFactory),deps:[Http]})],providers:[],bootstrap:[AppComponent]})然后在app.component.ts文件中:添加这里是代码:import{TranslateService}from'ng2-翻译';导出类AppComponent{getLangs:any[];//定义一个数组构造函数(privatetranslate:TranslateService){//添加语言支持}ngOnInit(){//下拉按钮的值this.getLangs=[{label:'Chinese',value:'zh-CN'},{label:'English',value:'en'}];//添加语言this.translate.addLangs(['zh-CN','en']);//设置默认语言this.translate.setDefaultLang('zh-CN');//获取当前浏览器环境的语言如en,zh-CNletbroswerLang=this.translate.getBrowserLang();//使用语言this.translate.use(broswerLang.match(/en|zh-CN/)?broswerLang:'zh-CN');}changeLang(index){this.translate.use(index);}title='angular-Translate';}最终的html代码显示:

欢迎来到{{title}}!

{{'语言'|翻译}}
{{lang.label}}
最后一步:输入命令ngserve//启动服务