全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angular2中如何使用ngx-translate进行国际化

相较于AngularJS中的ng-translate, angular2也有适合自己的国际化模块,就是ngx-translate。

项目地址:https://github.com/ngx-translate/core

使用angular-cli初始化项目:

ng new my-project 

使用npm安装ngx-translate模块

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

在项目的根模块app.module.ts中引入该模块

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function HttpLoaderFactory(http:Http){
 return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
 declarations: [
  AppComponent
 ],
 imports: [
  ...
  TranslateModule.forRoot({
   loader:{
    provide:TranslateLoader,
    useFactory:HttpLoaderFactory,
    deps:[Http]
   }
  }

  )
 ],
 providers: [],
 bootstrap: [AppComponent]
})

在assets文件夹下新建i18n文件夹,并且新建两个语言的json文件。(比如zh-CN.json和en.json)

json文件是key-value形式的,key值代表要翻译的字符串,value值为特定语言的翻译结果,不用语言的文件一般key值是相同的,只是value值不同。

//zh-CN.json
{
  "welcome":"欢迎使用本应用",
  "hello":"你好",
  "get-lang":"获取语言类型"
}

//en.json
{
  "welcome":"welcome to this app",
  "hello":"Hola"
}

然后在相应的组件中使用Translate服务

import { TranslateService } from '@ngx-translate/core'
@Component({
 ...
})
export class AppComponent {
 constructor(private translate: TranslateService) {
  //添加语言支持
  translate.addLangs(['zh-CN', 'en']);
  //设置默认语言,一般在无法匹配的时候使用
  translate.setDefaultLang('zh-CN');

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

 changeLang(lang) {
  console.log(lang);
  this.translate.use(lang);
 }
 toggleLang() {
  console.log(this.translate.getBrowserLang());
  //获取语言风格,相当于更详细的语言类型,比如zh-CN、zh-TW、en-US
  console.log(this.translate.getBrowserCultureLang());
 }
}

示例模板:

<div>
 <h2>{{ title | translate }}</h2>
 <label>
  {{ 'hello' | translate }}
  <select #langSelect (change)="changeLang(langSelect.value)">
   <option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="lang === translate.currentLang">{{ lang }}</option>
  </select>
 </label>
</div>
<button (click)="toggleLang()">{{'get-lang' | translate}}</button>

使用方式和angularjs中的ng-translate类似,使用translate管道。

效果:

源码地址:https://github.com/justforuse/angular2-demo/tree/master/angular-translate

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ngx  # translate  # ngxtranslate  # ngx-translate  # 国际化  # Angular2+国际化方案(ngx-translate)的示例代码  # Angular4项目中添加i18n国际化插件ngx-translate的步骤详解  # 浅析如何利用angular结合translate为项目实现国际化  # AngularJs 国际化(I18n/L10n)详解  # AngularJS国际化详解及示例代码  # Angular 项目实现国际化的方法  # 自己的  # 也有  # 值为  # 大家多多  # 相较  # 你好  # TranslateHttpLoader  # TranslateLoader  # HttpLoaderFactory  # function  # export  # ts  # module  # app  # TranslateModule  # import  # js  # AppComponent  # declarations  # imports 


相关文章: 青岛网站建设如何选择本地服务器?  北京制作网站的公司,北京铁路集团官方网站?  建站之星如何修改网站生成路径?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站主机CVM配置优化、SEO策略与性能提升指南  代购小票制作网站有哪些,购物小票的简要说明?  如何快速上传建站程序避免常见错误?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何在云虚拟主机上快速搭建个人网站?  建站之星如何防范黑客攻击与数据泄露?  网站制作模板下载什么软件,ppt模板免费下载网站?  在线制作视频网站免费,都有哪些好的动漫网站?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星如何优化SEO以实现高效排名?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  小建面朝正北,A点实际方位是否存在偏差?  宝塔建站助手安装配置与建站模板使用全流程解析  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站之星如何保障用户数据免受黑客入侵?  如何在腾讯云服务器快速搭建个人网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何高效生成建站之星成品网站源码?  家具网站制作软件,家具厂怎么跑业务?  如何基于云服务器快速搭建网站及云盘系统?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何生成腾讯云建站专用兑换码?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  音响网站制作视频教程,隆霸音响官方网站?  寿县云建站:智能SEO优化与多行业模板快速上线指南  昆明高端网站制作公司,昆明公租房申请网上登录入口?  ,柠檬视频怎样兑换vip?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  香港服务器如何优化才能显著提升网站加载速度?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何通过老薛主机一键快速建站?  宝塔新建站点为何无法访问?如何排查?  c++怎么用jemalloc c++替换默认内存分配器【性能】  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何自定义建站之星模板颜色并下载新样式?  如何用VPS主机快速搭建个人网站?  如何在Golang中使用replace替换模块_指定本地或远程路径  建站之星代理如何优化在线客服效率? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。