相较于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小时内与您取得联系。