1 Star 2 Fork 4

桐溪漂流 / admin-angular

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
5.add-translate.md 2.70 KB
一键复制 编辑 原始数据 按行查看 历史

添加translate国际化配置

  • 添加依赖
yarn add @ngx-translate/core @ngx-translate/http-loader
// 或者
npm i @ngx-translate/core @ngx-translate/http-loader --save
  • 添加配置

provider.ts 配置 translate的loader

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

export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

export const TranslateProvider = {
  loader: {
    provide: TranslateLoader,
    useFactory: (createTranslateLoader),
    deps: [HttpClient]
  }
};

app.module.ts 引入translate的module

import { TranslateProvider } from './provider';
import { TranslateModule } from '@ngx-translate/core';

@NgModule({
  imports: [
    // ...省略
    TranslateModule.forRoot(TranslateProvider),
  ],
})
export class AppModule { }

app.component.ts 添加项目初始化语言设置以及语言切换

import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

  isCollapsed = false;
  lang: string;

  constructor(
    private translate: TranslateService,
  ) {
    // 初始化的时候进行默认语言设置
    const value = localStorage.getItem('admin-lang');
    this.lang = value || 'zh-CN';
    this.translate.setDefaultLang(this.lang);
    this.translate.use(this.lang);
  }

  // 语言切换的时候设置-当前项目只设置了中文和英文,所以是中英文切换
  changeLang() {
    const nextLang = this.lang === 'zh-CN' ? 'en' : 'zh-CN';
    localStorage.setItem('admin-lang', nextLang);
    this.translate.use(nextLang);
    this.lang = nextLang;
  }
}
  • 添加语言json文件

src/assets/i18n/en.json

{
  "app_name": "Admin",
  "more_actions": {
    "title": "More Actions"
  }
}

src/assets/i18n/zh-CN.json

{
  "app_name": "后台管理",
  "more_actions": {
    "title": "更多操作"
  }
}
  • 使用

html中

<h1>{{ 'app_name' | translate }}</h1>

ts中

import { Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-welcome',
  templateUrl: './welcome.component.html',
  styleUrls: ['./welcome.component.scss']
})
export class WelcomeComponent implements OnInit {

  moreAction: string = '';

  constructor(
    private translate: TranslateService,
  ) { }

  ngOnInit() {
    this.moreAction = this.translate.instant('more_actions.title');
  }
}
1
https://gitee.com/baoyinYang/admin-angular.git
git@gitee.com:baoyinYang/admin-angular.git
baoyinYang
admin-angular
admin-angular
master

搜索帮助