博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ionic3学习之集成 ngx-translate
阅读量:7038 次
发布时间:2019-06-28

本文共 2351 字,大约阅读时间需要 7 分钟。

集成 ngx-translate

官方连接

github:

Step 1:

安装

npm install @ngx-translate/core --savenpm install @ngx-translate/http-loader --save

Step 2:

导入TranslateModule,首先导入TranslateModule 在 app.module.ts 下添加以下代码

// 导入包import { TranslateLoader, TranslateModule } from '@ngx-translate/core';import { TranslateHttpLoader } from '@ngx-translate/http-loader';// 增加方法// The translate loader needs to know where to load i18n files// in Ionic's static asset pipeline.export function createTranslateLoader(http: HttpClient) {  return new TranslateHttpLoader(http, './assets/i18n/', '.json');}@NgModule({  imports: [    BrowserModule,    TranslateModule.forRoot({      provide: TranslateLoader,      useFactory: (createTranslateLoader),      deps: [Http]    }),     IonicModule.forRoot(MyApp)  ]})

Step 3 创建国际化文件

进入下面这个目录:

cd ionicProject/src/assets新建一个目录为 i18n

进入 i18n 目录,创建json文件

  • zh-cmn-Hans.json 简体中文
{  "HOME": {   "TITLE":"首页",   "CONTENT":"你好,世界!"  }}
  • zh-cmn-Hant.json 繁体中文
{  "HOME": {   "TITLE":"首頁",   "CONTENT":"你好,世界!"  }}
  • en.json 英文
{  "HOME": {   "TITLE":"Home",   "CONTENT":"Hello word!"  }}

使用

打开文件app.component.ts,添加代码

import { TranslateService } from '@ngx-translate/core';translate.setDefaultLang('en'); // 设置默认的语言包

官方的 start demo中的源码优化

initTranslate() {    // 根据浏览器来判断字符集    this.translate.setDefaultLang('zh-cmn-Hans');    const browserLang = this.translate.getBrowserLang();    if (browserLang) {      if (browserLang === 'zh') {        const browserCultureLang = this.translate.getBrowserCultureLang();        if (browserCultureLang.match(/-CN|CHS|Hans/i)) {          this.translate.use('zh-cmn-Hans');        } else if (browserCultureLang.match(/-TW|CHT|Hant/i)) {          this.translate.use('zh-cmn-Hant');        }      } else {        this.translate.use(this.translate.getBrowserLang());      }    } else {      // 设置翻译      this.translate.use('zh-cmn-Hans');    }  }

html

{
{ 'HOME.TITLE' | translate }}

{
{ 'HOME.CONTENT' | translate }}

注意:

对于这个问题,我找了好久。最开始都不知道怎么处理了,看了好几个人的博客,病了就乱投医。最后看到官网上面的,才知道是版本问题。建议大家报错了之后,先去官网上面看看有没有说明。。。

If you're still using Angular v5, please use ngx-translate 9.x because
version 10 and above are only compatible with Angular v6. If you try
to use v10 with Angular v5 you will get an error message TypeError:
Object(...) is not a function

图示:

官方文档

转载地址:http://hgnal.baihongyu.com/

你可能感兴趣的文章
Command模式
查看>>
python的nltk中文使用和学习资料汇总帮你入门提高
查看>>
Input TableViewCell
查看>>
Passcode
查看>>
iTellAFriend
查看>>
BlockAlertsAnd-ActionSheets
查看>>
TapKu Graph
查看>>
XCode's one very useful cmd:po
查看>>
面试需要的基础知识-合并排序数组
查看>>
关于Unity 2018的实体组件系统(ECS)一
查看>>
安卓系统下安装完apk程序后,具体的文件夹位置在哪里呢
查看>>
Echarts---添加渐变功能
查看>>
常用的工具
查看>>
linux 下解压命令大全
查看>>
深入了解 Linux下安装DNS+Sendmail服务
查看>>
安装Redis完整过程
查看>>
python在类中实现swith case功能
查看>>
SpringCloud学习系列之一 ----- 搭建一个高可用的注册中心(Eureka)
查看>>
leetcode Sort List
查看>>
开源分布式存储SeaweedFS
查看>>