国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular2+國際化方案(ngx-translate)的示例代碼

2024-05-06 15:12:26
字體:
來源:轉載
供稿:網友

本文只針對ngx-translate/core 6.x版本,如果你使用的是5.x或者更低的版本,請參照以下鏈接。

https://github.com/ngx-translate/core/blob/fb02ca5920aae405048ebab50e09db67d5bf12a2/README.md

安裝

首先需要安裝npm依賴:

npm install @ngx-translate/core --savenpm install @ngx-translate/http-loader --save // 針對Angular>=4.3npm install @ngx-translate/http-loader@0.1.0 --save // 針對Angular<4.3

這里需要注意,如果你使用的Angular版本是 Angular <4.3,那么需要安裝http-loader@0.1.0版本。

因為0.1.0以后的版本TranslateHttpLoader構造函數的第一個參數改為HttpClient類型,而非Http類型。

用法

1、引入TranslateModule模塊

首先需要在你項目的root NgModule中引入TranslateModule.forRoot()模塊。一般在項目中默認命名為app.module.ts。

import {NgModule} from '@angular/core';import {BrowserModule} from '@angular/platform-browser';import {HttpClientModule, HttpClient} from '@angular/common/http';import {TranslateModule, TranslateLoader} from '@ngx-translate/core';import {TranslateHttpLoader} from '@ngx-translate/http-loader';import {AppComponent} from './app';export function createTranslateLoader(http: HttpClient) {  return new TranslateHttpLoader(http, './assets/i18n/', '.json');} @NgModule({  imports: [    BrowserModule,    HttpClientModule,    TranslateModule.forRoot({      loader: {        provide: TranslateLoader,        useFactory: (createTranslateLoader),        deps: [HttpClient]      }    })  ],  bootstrap: [AppComponent]})export class AppModule { }

這里使用了TranslateHttpLoader 來加載我們定義好的語言文件。"/assets/i18n/[lang].json"這里的lang就是當前正在使用的語言。

注意:如果當前采用的是AOT編譯方式或者是ionic2工程,那么useFactory對應的必須是一個export的自定義方法而非內聯方法。

 即以下這種方式是不被允許的:

@NgModule({  imports: [    BrowserModule,    HttpModule,    TranslateModule.forRoot({      provide: TranslateLoader,      useFactory: (http: HttpClient) => new TranslateStaticLoader(http, '/assets/i18n', '.json'),      deps: [HttpClient]    })  ],  bootstrap: [AppComponent]})export class AppModule { }

2、注入TranslateService 服務

在需要用到的component里面注入TranslateService。

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

然后在構造函數中定義當前應用的默認語言。

constructor(private translate: TranslateService) { // this language will be used as a fallback when a translation isn't found in the current language translate.setDefaultLang('en'); // use the brower's default lang, if the lang isn't available, it will use the 'en' let broswerLang = translate.getBrowserLang(); translate.use(broswerLang.match(/en|cn/) ? broswerLang : 'en');}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 台北县| 吉安市| 天峨县| 巴林右旗| 军事| 嘉黎县| 平南县| 塔城市| 仙桃市| 昭苏县| 和静县| 祁阳县| 桂平市| 诏安县| 湘潭市| 临沂市| 崇仁县| 阳山县| 西安市| 高要市| 兴化市| 积石山| 合水县| 区。| 察隅县| 伊春市| 陇川县| 策勒县| 金秀| 驻马店市| 墨竹工卡县| 万山特区| 六安市| 专栏| 驻马店市| 普陀区| 蓬溪县| 甘南县| 威海市| 台江县| 环江|