代码拉取完成,页面将自动刷新
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;
}
}
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');
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。