【Angular18】国际化翻译-引入translate

  1. 安装插件
npm install @ngx-translate/core
  1. 修改配置文件app.config.ts
    app.config.ts修改的内容
    app.config.ts修改的内容
import { ApplicationConfig, importProvidersFrom, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { HttpClient, provideHttpClient } from '@angular/common/http';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';


import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

import { routes } from './app.routes';


export function HttpLoaderFactory(http: HttpClient) {
  // 指定翻译文件路径
  return new TranslateHttpLoader(http, '/assets/i18n/', '.json');
}

// 安装插件TranslateLoader
export const provideTranslation = () => ({
  defaultLanguage: 'en',
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
});

export const appConfig: ApplicationConfig = {
  // 插件注入
  providers: [
    provideZoneChangeDetection({ eventCoalescing: true }), 
    provideRouter(routes), 
    importProvidersFrom(FormsModule), 
    provideAnimationsAsync(), 
    provideHttpClient(), 
    importProvidersFrom([TranslateModule.forRoot(provideTranslation())])
  ]
};

  1. 使用的模块引入
    使用的模块引入
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';

// 引入module和service
import { TranslateModule, TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-root',
  standalone: true,
  // 注入
  imports: [RouterOutlet, TranslateModule],
  templateUrl: './app.component.html',
  styleUrl: './app.component.css'
})
export class AppComponent {
  // 引入service
  constructor(private translate: TranslateService) {
    translate.addLangs(['en', 'zh']);
  }
  handleModelChange(index: number): void {
    console.log('hahah', index);
    if(index == 0){
      // 切换语言
      this.translate.use('en')
    }else{
      this.translate.use('zh')
    }
  }
}
  1. Html页面使用translate
    Html使用
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值