Ionic+Angular实现中英国际化(附代码下载)
场景
Ionic介绍以及搭建环境、新建和运行项目:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166
在上面搭建起来项目的基础上,实现中英国际化的切换。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
安装ngx-translate模块
使用VSCode打开项目并打开package.json,没有安装ngx-translate模块是这样
在项目下打开命令行或者在VSCode中打开终端
npm install --save @ngx-translate/core
npm install --save @ngx-translate/http-loader
安装完这两个模块后再打开package.json就可以看到已经添加成功这两个模块
模块源码地址:https://github.com/ngx-translate/core
模块app.module.ts中引入该模块
打开项目的app.module.ts
引入模块
//HttpClient
import {HttpClient, HttpClientModule} from '@angular/common/http';
//引入国际化资源
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
export function HttpLoaderFactory(httpClient: HttpClient) {return new TranslateHttpLoader(httpClient);
}
然后声明
@NgModule({declarations: [AppComponent],entryComponents: [],imports: [BrowserModule,IonicModule.forRoot(),AppRoutingModule,HttpClientModule,TranslateModule.forRoot({loader: {provide: TranslateLoader,useFactory: HttpLoaderFactory,deps: [HttpClient]}})],providers: [StatusBar,SplashScreen,{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }],bootstrap: [AppComponent]
})
export class AppModule {}
具体添加位置见下图
新建国际化资源
在项目的assets下新建文件夹i18n在文件夹下新建两个json文件en.json和zh-CN.json存储中英两个资源文件
zn-CN.json
{"badao": "霸道的","liumang": "程序猿"
}
en.json
{"badao": "Domineering","liumang": "Code Monkey"
}
添加并设置国际化资源
打开项目的app.component.ts
引入并声明TranslateService
import { TranslateService } from '@ngx-translate/core';export class AppComponent {constructor(private platform: Platform,private splashScreen: SplashScreen,private statusBar: StatusBar,public translate:TranslateService) {this.initializeApp();}
然后在初始化的方法initializeApp中加载国际化文件并设置当前的国际化文件
设置选择中文
initializeApp() {this.platform.ready().then(() => {this.statusBar.styleDefault();this.splashScreen.hide();//装载国际化资源文件this.translate.addLangs(['en', 'zh-CN']);//设置默认国际化资源文件this.translate.setDefaultLang('zh-CN');//获取当前浏览器环境的语言const browserLang = this.translate.getBrowserLang();this.translate.use(browserLang.match(/en|zh-CN/) ? browserLang : 'zh-CN');});
在相应的组件中使用Translate服务
比如我想在tab1这个模块中使用国际化服务,打开tab1.module.ts,引入并声明模块
import { TranslateModule } from '@ngx-translate/core' ;@NgModule({imports: [IonicModule,CommonModule,FormsModule,ExploreContainerComponentModule,Tab1PageRoutingModule,TranslateModule],declarations: [Tab1Page]
})
export class Tab1PageModule {}
然后打开tab1.page.html
<div><h1>公众号:</h1>{{ 'badao' | translate }}{{ 'liumang' | translate }}
</div>
然后运行项目查看tab1的页面
如果想要修改为英文的话,只需要打开app.component.ts,修改为
initializeApp() {this.platform.ready().then(() => {this.statusBar.styleDefault();this.splashScreen.hide();//装载国际化资源文件this.translate.addLangs(['en', 'zh-CN']);//设置默认国际化资源文件this.translate.setDefaultLang('en');//获取当前浏览器环境的语言const browserLang = this.translate.getBrowserLang();this.translate.use(browserLang.match(/en|zh-CN/) ? browserLang : 'en');});}
运行看效果
示例代码下载
见下面文章末尾
Ionic+Angular实现中英国际化(附代码下载)
Ionic+Angular实现中英国际化(附代码下载)相关推荐
- Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)
场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...
- ASP.NET的MVC中使用Cookie做身份验证(附代码下载)
场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...
- JPA中实现双向多对多的关联关系(附代码下载)
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- Dubbo与SpringBoot整合流程(从实例入手,附代码下载)
场景 Dubbo环境搭建-管理控制台dubbo-admin实现服务监控: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10362 ...
- javax.servlet-api 简介、中文文档、中英对照文档 下载
javax.servlet-api 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 javax.servlet-api-3.1.0.jar 暂无 ...
- easyexcel 简介、中文文档、中英对照文档 下载
easyexcel 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 easyexcel-3.0.5.jar easyexcel-3.0.5-API ...
- commons-lang3 简介、中文文档、中英对照文档 下载
commons-lang3 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 commons-lang3-3.10.jar commons-lang ...
- itext 简介、中文文档、中英对照文档 下载
itext 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 itext-2.1.7.jar itext-2.1.7-API文档-中文版.zip i ...
- docx4j 简介、中文文档、中英对照文档 下载
docx4j 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 docx4j-3.3.5.jar docx4j-3.3.5-API文档-中文版.zi ...
最新文章
- Android输出签名的 SHA1 值
- FFmpeg代码导读系列(一,下半部)----HEVC在RTMP中的扩展
- 转储的mysql如何导入,如何将大型(14 GB)MySQL转储文件导入新的MySQL数据库?
- skywalking 安装_如何使用skywalking 进行全链路监控
- storm spout mysql_storm+mysql集成
- php keep user login,php5.4安装dedecms登录后台空白解决办法(session_register函数已废弃)...
- 一文学会 Prometheus:开源系统监视和警报工具包!
- @程序员,如何在买房时不被宰?
- 22解析函数的级数表示(一)
- apache poi教程_Apache POI教程
- Linux slab分配器【转】
- ArcView GIS 应用与开发技术(2)-Tables
- 【SOEM主站】一、SOEM主站环境搭建及连接板子测试
- java中类加载器ClassLoader,双亲加载机制,启动类加载器,应用类加载器,线程上下文类加载器
- 2个最好的中文图标搜索引擎
- 过来人的经验:给Java初学者的10个学习经验
- docker安装UnlockMusic(音乐格式转换工具 )
- 2018省赛第九届蓝桥杯真题C语言B组第十题题解 乘积最大
- 外贸型网站,应该如何做好SEO优化?
- uni-app day02
热门文章
- 快递打印云服务器_企业微信支持寄快递查快递,实现员工寄件自由
- oracle别名作用范围,在Oracle的Where子句子查询中使用别名或表名,
- oracle的获取年月日时间,获取5年前日期
- 去除字符串中的指定字符
- JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西
- 30岁学python编程_朋友问我,你都30岁了学编程来得及吗
- 鲜为人知的DC-DC外围电感选型方法
- html5的交互式微课,浅谈交互式微课的几个特征
- 大师兄科研网vasp_【回顾】第三临床学院2020年新生科研交流会
- java io null异常,java.io.IOException:所有收集器的初始化失败。最后一个收集器中的错误是:null...