场景

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实现中英国际化(附代码下载)相关推荐

  1. Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  2. ASP.NET的MVC中使用Cookie做身份验证(附代码下载)

    场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...

  3. JPA中实现双向多对多的关联关系(附代码下载)

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  4. Dubbo与SpringBoot整合流程(从实例入手,附代码下载)

    场景 Dubbo环境搭建-管理控制台dubbo-admin实现服务监控: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10362 ...

  5. javax.servlet-api 简介、中文文档、中英对照文档 下载

    javax.servlet-api 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 javax.servlet-api-3.1.0.jar 暂无 ...

  6. easyexcel 简介、中文文档、中英对照文档 下载

    easyexcel 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 easyexcel-3.0.5.jar easyexcel-3.0.5-API ...

  7. commons-lang3 简介、中文文档、中英对照文档 下载

    commons-lang3 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 commons-lang3-3.10.jar commons-lang ...

  8. itext 简介、中文文档、中英对照文档 下载

    itext 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 itext-2.1.7.jar itext-2.1.7-API文档-中文版.zip i ...

  9. docx4j 简介、中文文档、中英对照文档 下载

    docx4j 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 docx4j-3.3.5.jar docx4j-3.3.5-API文档-中文版.zi ...

最新文章

  1. Android输出签名的 SHA1 值
  2. FFmpeg代码导读系列(一,下半部)----HEVC在RTMP中的扩展
  3. 转储的mysql如何导入,如何将大型(14 GB)MySQL转储文件导入新的MySQL数据库?
  4. skywalking 安装_如何使用skywalking 进行全链路监控
  5. storm spout mysql_storm+mysql集成
  6. php keep user login,php5.4安装dedecms登录后台空白解决办法(session_register函数已废弃)...
  7. 一文学会 Prometheus:开源系统监视和警报工具包!
  8. @程序员,如何在买房时不被宰?
  9. 22解析函数的级数表示(一)
  10. apache poi教程_Apache POI教程
  11. Linux slab分配器【转】
  12. ArcView GIS 应用与开发技术(2)-Tables
  13. 【SOEM主站】一、SOEM主站环境搭建及连接板子测试
  14. java中类加载器ClassLoader,双亲加载机制,启动类加载器,应用类加载器,线程上下文类加载器
  15. 2个最好的中文图标搜索引擎
  16. 过来人的经验:给Java初学者的10个学习经验
  17. docker安装UnlockMusic(音乐格式转换工具 )
  18. 2018省赛第九届蓝桥杯真题C语言B组第十题题解 乘积最大
  19. 外贸型网站,应该如何做好SEO优化?
  20. uni-app day02

热门文章

  1. 快递打印云服务器_企业微信支持寄快递查快递,实现员工寄件自由
  2. oracle别名作用范围,在Oracle的Where子句子查询中使用别名或表名,
  3. oracle的获取年月日时间,获取5年前日期
  4. 去除字符串中的指定字符
  5. JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西
  6. 30岁学python编程_朋友问我,你都30岁了学编程来得及吗
  7. 鲜为人知的DC-DC外围电感选型方法
  8. html5的交互式微课,浅谈交互式微课的几个特征
  9. 大师兄科研网vasp_【回顾】第三临床学院2020年新生科研交流会
  10. java io null异常,java.io.IOException:所有收集器的初始化失败。最后一个收集器中的错误是:null...