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 5 新增 Array 方法实现介绍
Feb 06 Javascript
JavaScript将数据转换成整数的方法
Jan 04 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
js实现千分符和保留几位小数的简单实例
Aug 01 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
vux uploader 图片上传组件的安装使用方法
May 15 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
npm 语义版本控制详解
Sep 10 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
原生js实现自定义滚动条组件
Jan 20 Javascript
JavaScript实现贪吃蛇游戏
Jun 16 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
PHP之变量、常量学习笔记
2008/03/27 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
javascript 写类方式之十
2009/07/05 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
几种响应式文字详解
2017/05/19 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python多线程学习资料
2012/12/19 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
儿童学习python的一些小技巧
2018/05/27 Python
python 以16进制打印输出的方法
2018/07/09 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
Collection和Collections的区别
2016/05/02 面试题
和睦家庭事迹
2014/05/14 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
CAD实训总结范文
2015/08/03 职场文书
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers