Angular4项目中添加i18n国际化插件ngx-translate的步骤详解


Posted in Javascript onJuly 02, 2017

前言

本文将介绍在 Angular4 项目中配置 ngx-translate i18n 国际化组件的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

npm 安装 ngx-translate 模块

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

在 Angular 项目配置

app.module.ts

添加

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

 imports: [
 TranslateModule.forRoot({
 loader: {
 provide: TranslateLoader,
 useFactory: (createTranslateHttpLoader),
 deps: [Http]
 }
 })
 ]

结果如下:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule, Http } from '@angular/http';
import { TranslateLoader, TranslateModule} from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

import { AppComponent } from './app.component';

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

@NgModule({
 declarations: [
 AppComponent
 ],
 imports: [
 BrowserModule,
 HttpModule,
 TranslateModule.forRoot({
 loader: {
 provide: TranslateLoader,
 useFactory: (createTranslateHttpLoader),
 deps: [Http]
 }
 })
 ],
 providers: [],
 bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts

添加

import { TranslateService } from "@ngx-translate/core";

 constructor(public translateService: TranslateService) {

 }
 
 ngOnInit() {
 // --- set i18n begin ---
 this.translateService.addLangs(["zh", "en"]);
 this.translateService.setDefaultLang("zh");
 const browserLang = this.translateService.getBrowserLang();
 this.translateService.use(browserLang.match(/zh|en/) ? browserLang : 'zh');
 // --- set i18n end ---
 }

结果如下:

import { Component } from '@angular/core';
import { TranslateService } from "@ngx-translate/core";

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'app';

 constructor(public translateService: TranslateService) {

 }

 ngOnInit() {
 // --- set i18n begin ---
 this.translateService.addLangs(["zh", "en"]);
 this.translateService.setDefaultLang("zh");
 const browserLang = this.translateService.getBrowserLang();
 this.translateService.use(browserLang.match(/zh|en/) ? browserLang : 'zh');
 // --- set i18n end ---
 }
}

添加多语言文件

在 src/app/assets/ 下创建 i18n 文件夹,并在文件夹内创建 en.json 和 zh.json 文件

Angular4项目中添加i18n国际化插件ngx-translate的步骤详解

测试

app.component.html

添加代码:

<div>
 <span> test the i18n module: ngx-translate</span>
 <h1>{{ 'hello' | translate }}</h1>
</div>

在 en.json 和 zh.json 文件中添加配置

en.json

{
 "hello": "the word is hello"
}

zh.json

{
 "hello": "你好"
}

测试结果

在中文下

Angular4项目中添加i18n国际化插件ngx-translate的步骤详解

在英文下

Angular4项目中添加i18n国际化插件ngx-translate的步骤详解

示例代码

Github地址:angular + ngx-translate

本地下载地址:http://xiazai.3water.com/201707/yuanma/james-blog-ui(3water.com).rar

参考文章

ngx-translate core

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript下申明对象的几种方法小结
Oct 02 Javascript
JSON 和 JavaScript eval使用说明
Jun 13 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
JavaScript File分段上传
Mar 10 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
layui prompt 设置允许空白提交的方法
Sep 24 Javascript
vue中实现回车键登录功能
Feb 19 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
React学习笔记之事件处理(二)
Jul 02 #Javascript
React学习笔记之条件渲染(一)
Jul 02 #Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 #Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 #Javascript
关于使用axios的一些心得技巧分享
Jul 02 #Javascript
React服务端渲染(总结)
Jul 01 #Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 #Javascript
You might like
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php截取字符串函数分享
2015/02/02 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
yii添删改查实例
2015/11/16 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python检测lvs real server状态
2014/01/22 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
python程序输出无内容的解决方式
2020/04/09 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
如何利用Python识别图片中的文字
2020/05/31 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
见习期自我鉴定范文
2014/03/19 职场文书
授权委托书格式模板
2014/04/03 职场文书
长城导游词400字
2015/01/30 职场文书
学雷锋日活动总结
2015/02/06 职场文书
公司更名通知函
2015/04/24 职场文书
戒赌保证书
2015/05/11 职场文书
征求意见函
2015/06/05 职场文书
安全教育主题班会总结
2015/08/14 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS