相较于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
相关文章:
如何用低价快速搭建高质量网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
,怎么用自己头像做动态表情包?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
如何配置FTP站点权限与安全设置?
如何在云主机上快速搭建多站点网站?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何高效配置香港服务器实现快速建站?
如何在阿里云部署织梦网站?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
制作网页的网站有哪些,电脑上怎么做网页?
C++如何使用std::optional?(处理可选值)
如何在服务器上三步完成建站并提升流量?
临沂网站制作企业,临沂第三中学官方网站?
建设网站制作价格,怎样建立自己的公司网站?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
家具网站制作软件,家具厂怎么跑业务?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
建站主机与虚拟主机有何区别?如何选择最优方案?
建站之星如何助力网站排名飙升?揭秘高效技巧
c# 在ASP.NET Core中管理和取消后台任务
简单实现Android文件上传
如何制作网站标识牌,动态网站如何制作(教程)?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
高端网站建设与定制开发一站式解决方案 中企动力
建站之星如何取消后台验证码生成?
大型企业网站制作流程,做网站需要注册公司吗?
招贴海报怎么做,什么是海报招贴?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
TestNG的testng.xml配置文件怎么写
如何设计高效校园网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何快速搭建FTP站点实现文件共享?
如何快速选择适合个人网站的云服务器配置?
制作农业网站的软件,比较好的农业网站推荐一下?
建站之星伪静态规则如何设置?
建站168自助建站系统:快速模板定制与SEO优化指南
网站制作报价单模板图片,小松挖机官方网站报价?
教程网站设计制作软件,怎么创建自己的一个网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
代购小票制作网站有哪些,购物小票的简要说明?
如何在云主机快速搭建网站站点?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何通过cPanel快速搭建网站?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
建站主机无法访问?如何排查域名与服务器问题
如何快速搭建高效可靠的建站解决方案?
建站VPS推荐:2025年高性能服务器配置指南
*请认真填写需求信息,我们会在24小时内与您取得联系。