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获得地址栏参数的两种方法
Nov 08 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 Javascript
jQuery实现容器间的元素拖拽功能
Dec 01 jQuery
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 array的学习笔记
2012/05/10 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
PHP运行模式汇总
2016/11/06 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
BootStrap前端框架使用方法详解
2020/02/26 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
js数组的基本使用总结
2021/01/18 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
详解爬虫被封的问题
2019/04/23 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
技术经济专业求职信
2014/09/03 职场文书
个人授权委托书范本
2014/09/14 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
2015年党性分析材料
2014/12/19 职场文书
离婚协议书格式
2015/01/26 职场文书
计划生育目标责任书
2015/05/09 职场文书