Ionic4--多语言使用

1、在 app.module.ts 导入 translate 组件

import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClientModule, HttpClient } from '@angular/common/http';


//翻译加载程序需要知道在哪里加载i18n文件
//在Ionic的静态资产管道中
export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}


@NgModule({
    providers:[
        TranslateService
    ],
    imports:[
        HttpClientModule,
        ///多语言
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        }),
    ]

})

2、在 app.component.ts 设置默认语言

import { TranslateService } from '@ngx-translate/core';
constructor(
    private translate: TranslateService,
)

/**
 * 设置默认语言
 */
initTranslate() {
    /**
     * getBrowserLang() 方法获取大类,如‘zh’,中文简体中文繁体统称
     */
    //设置翻译字符串的默认语言和当前语言
    this.translate.setDefaultLang('zh-CN');
    console.log(this.translate.getBrowserLang());
    //获取系统语言
    if (this.translate.getBrowserCultureLang() == 'zh-TW') {
      this.translate.use('zh-TW');
    } else  if (this.translate.getBrowserLang() == 'en') {
      this.translate.use('en');
    } else {
      this.translate.use('zh-CN');
    }
}

3、在多语言文件定义多语言

//json文件内部
{
    "login": {
        "button": "登录",
        "title": "登录",
        "selectSchool": "请选择学校",
        "inputUserName": "请输入用户名",
        "inputPsw": "请输入密码",
        "loading": "正在登录...",
    }
}

4、使用多语言

import { TranslateService } from "@ngx-translate/core";

public translateText: any = {};//多语言

constructor(
    public translate: TranslateService){
    this.translateAction();
}

//设置多语言
translateAction() {
    this.translate.get('login').subscribe((value) => {
      this.translateText = value;
    });
}

//使用
<ion-title>{{this.translateText.title}}</ion-title>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值