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 相关文章推荐
php上传图片并给图片打上透明水印的代码
Jun 07 Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
原生javascript兼容性测试实例
Jul 01 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
React Hooks的深入理解与使用
Nov 12 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 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中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python入门篇之函数
2014/10/20 Python
python基于socket实现网络广播的方法
2015/04/29 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
python2与python3共存问题的解决方法
2018/09/18 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
python小项目之五子棋游戏
2019/12/26 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
书法比赛获奖感言
2014/02/10 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
支行行长竞聘报告
2014/11/06 职场文书
2014年工程部工作总结
2014/11/25 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang