1. 安装ngx-translate/core库:
npm install @ngx-translate/core --save
2. 创建翻译文件:
在 src/assets/i18n 目录下,创建两个翻译文件 en.json 和 fr.json:
// en.json
{
"greeting": "Hello, World!",
"language": "English"
}
// fr.json
{
"greeting": "Bonjour, le monde !",
"language": "Français"
}
3. 配置翻译服务:
在 src/app/app.module.ts 文件中配置 ngx-translate/core 模块:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClientModule, HttpClient } from '@angular/common/http';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
@NgModule({
declarations: [],
imports: [
BrowserModule,
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient],
},
}),
],
bootstrap: [],
})
export class AppModule {}
4. 在根组件中手动设置语言环境:
在 src/app/app.component.ts 文件中手动设置语言环境:
import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-root',
template: `
<h1>{{ 'greeting' | translate }}</h1>
<p>{{ 'language' | translate }}</p>
<button (click)="switchLanguage()">Switch Language</button>
`,
})
export class AppComponent {
constructor(private translate: TranslateService) {
translate.setDefaultLang('en');
translate.use('en'); // Manually set the initial language to English
}
switchLanguage() {
const lang = this.translate.currentLang === 'en' ? 'fr' : 'en';
this.translate.use(lang);
}
}
在这个例子中,应用启动时,语言环境被手动设置为英语('en')。点击 "Switch Language" 按钮时,语言环境会在英语和法语之间切换。
确保在实际应用中,你根据需要进行适当的修改,以满足你的具体需求。
转载请注明出处:http://www.pingtaimeng.com/article/detail/4975/Angular