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 Konami Code 实现代码
Jul 29 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
高性能JavaScript DOM编程(1)
Aug 11 Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
如何开发出更好的JavaScript模块
Dec 22 Javascript
使用javascript做在线算法编程
May 25 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
es6数据变更同步到视图层的方法
Mar 04 Javascript
js实现特别简单的钟表效果
Sep 14 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP cron中的批处理
2008/09/16 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
js 学习笔记(三)
2009/12/29 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
python下读取公私钥做加解密实例详解
2017/03/29 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python学习小技巧总结
2018/06/10 Python
python3.7 sys模块的具体使用
2019/07/22 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
校友会欢迎辞
2014/01/13 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2014年终工作总结范本
2014/12/15 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
python微信智能AI机器人实现多种支付方式
2022/04/12 Python