Angular开发(二十一)-关于国际化的处理
来源:互联网 发布:日本服务业知乎 编辑:程序博客网 时间:2024/06/15 07:01
angular2中开发国际化(一个页面中来回切换几种语言)
实现国际化基本步骤
- 1、使用
angular-cli
创建一个项目工程 - 2、创建一个组件
page3
的demo
来展现国际化功能 - 3、使用
npm
安装ngx-translate
模块npm install --save @ngx-translate/core
npm install --save @ngx-translate/http-loader
4、在根模块中
app.module.ts
中引入上面安装的模块import { TranslateModule, TranslateLoader } from '@ngx-translate/core';import { TranslateHttpLoader } from '@ngx-translate/http-loader';
- 5、在
assets
文件夹中新建i18n
文件夹新增两个json文件- zh-CN.json
- en.json
- 6、
zh-CN.json
文件表示中文内容
{ "title": "我是需要翻译的", "hello": "你好", "get-lang": "获取语言类型", "content": "你好世界" }
- 7、
en.json
文件表示英文下内容
{ "title": "title", "hello": "Hi", "get-lang": "getlang", "content": "hello word"}
- 8、继续在app.module.ts文件中添加内容
.... export function HttpLoaderFactory(http:Http){ return new TranslateHttpLoader(http, './assets/i18n/', '.json'); } .... @NgModule:({ ... imports:[ TranslateModule.forRoot({ loader:{ provide:TranslateLoader, useFactory:HttpLoaderFactory, deps:[Http] } }) ] ... })
- 9、在
Page3Component.ts
文件中添加引入
import { TranslateService } from '@ngx-translate/core'
- 10、在
Page3Component.ts
书写中英文切换
export class Page3Component implements OnInit { constructor(private translate: TranslateService) { //添加语言支持 translate.addLangs(['zh-CN', 'en']); //设置默认语言,一般在无法匹配的时候使用 translate.setDefaultLang('zh-CN'); //获取当前浏览器环境的语言比如en、 zh let broswerLang = translate.getBrowserLang(); translate.use(broswerLang.match(/en|zh-CN/) ? broswerLang : 'zh-CN'); } //定义在select上下拉获取值的方法 changeLang(lang) { console.log(`我是下拉框获取的值:${lang}`); //设置当前使用什么语言 this.translate.use(lang); } //点击按钮获取当前是什么语音 toggleLang() { console.log("我是点击按钮的:",this.translate.getBrowserLang()); //获取语言风格,相当于更详细的语言类型,比如zh-CN、zh-TW、en-US console.log("我是点击按钮的:",this.translate.getBrowserCultureLang()); } ngOnInit() { } }
- 11、在
Page3Component.html
书写页面
<div> <h2>{{ 'title' | translate }}</h2> <label>{{ 'hello' | translate }} <select #langSelect (change)="changeLang(langSelect.value)"> <option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="lang === translate.currentLang">{{ lang }}</option> </select> </label> <p>{{'content' | translate}}</p> </div> <button (click)="toggleLang()">{{'get-lang' | translate}}</button>
- 12、项目文件下载地址
阅读全文
1 0
- Angular开发(二十一)-关于国际化的处理
- Angular开发(二十二)-angular处理复选框选值的问题
- Angular开发(十一)-关于响应式表单及表单的校验
- Angular开发(二十八)-angular开发中分页的使用
- 关于struts2+displaytag的国际化处理
- Angular开发(二十四)-angular表单的校验
- Struts国际化处理 二
- Angular 2 原生国际化支持(二)
- Angular开发(二)-关于angular2的整体架构与大致介绍
- 网站开发进阶(二十一)Angular项目信息错位显示问题解决
- Angular开发(七)-关于组件的生命周期
- Angular国际化
- #angular 国际化
- SQLSERVER开发的二十一条规则
- ionic开发笔记二:ionic2开发的Angular 2语法
- angular国际化angular-translate中语言包的两种形式
- 利用ngx-angular实现angular2的国际化
- 关于Android app 国际化 中英文翻译的细节处理
- 【Hibernate】映射配置
- nginx配置url重写
- spark学习笔记之spark core 取topN
- Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
- c++中new和delete的使用方法
- Angular开发(二十一)-关于国际化的处理
- java变量分类
- 在Ubuntu上安装PPTP VPN服务
- ssh相关命令使用
- 搭建zoopker+hbase 环境
- ORACLE密码错误验证延迟
- react-native-0.16.1 自定义Android组件部分的源码初探
- Uva 10048 噪音恐惧症——Floyd变形
- tomcat热部署插件jerbel