老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

怎么在angular中實現多語言配置

本篇文章為大家展示了怎么在angular中實現多語言配置,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

太湖網站制作公司哪家好,找創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯公司成立于2013年到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯公司

angular的國際化方案,采用ngx-translate來實現。

安裝模塊:

npm install @ngx-translate/core --save

在根模塊中導入:

// other module
import {TranslateModule} from '@ngx-translate/core';
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    // other module
    TranslateModule.forRoot(),

  ],
  providers: [
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

我們希望可以在一個固定的文件里面配置對應的翻譯文件,然后在每個用到的組件里面使用它,隨意我們需要借助TranslateHttpLoader來加載翻譯文件。首先安裝TranslateHttpLoader:

npm install @ngx-translate/http-loader --save

翻譯文件可以放在/assets/i18n/[lang].json中,[lang]代表使用的語言文件名稱。然后我們可以在跟組件中添加配置對應的加載項:

// other module
import {TranslateModule} from '@ngx-translate/core';
// 自定義加載方法
export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json?');
}
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    // other module
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient],
      }
    }),
  ],
  providers: [
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

然后我們在翻譯文件中配置一個簡單的示例:

// /asserts/il8n/en.json
{
 "Hello": "hello, {{value}}",
 "Introduce": {
  "Name": "my name is {{name}}.",
  "Today": "today is {{date}}, and now time is {{time}}"
 }
}

應用的時候我們可以使用點語法,例如:Introduce.Name。

好了,定義好之后再來看如何使用。我們可以使用服務或管道或指令的方式來達到顯示語言的效果。在使用之前,我們需要在應用中初始化TranslateService:

import { Component } from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.less']
})
export class AppComponent {
 constructor(
   public translate: TranslateService,
 ) {
   this.translate.setDefaultLang('en');
   this.translate.use('en');
 }
}

我傾向于在跟組件的construct里面初始化TranslateService,因為一個系統的翻譯是統一的,在開始應用的時候就需要設置好默認語言。這里使用translate.setDefaultLang('en')來設置默認語言為英文。然后使用translate.user('en')手動選擇使用英文。在切換語言的時候,我們使用translate.user([lang])來設置啟用哪個語言。

最后來使用翻譯,有多種使用的方式。來看看。

使用方式

使用Service的方式

在運行的時候,會先發起個請求通過Http獲取翻譯文件,通過Observable的方式應用參數上去,然后獲得翻譯的內容。

// app.compent.ts
this.translate.get(
  'Introduce.Name',
  {name: 'Jarvis'}
).subscribe((res: string) => {
  console.log('res', res); // res my name is Jarvis.
});
this.translate.get(
  'Introduce.Today',
  {
    date: new Date().getDate(),
    time: new Date().getTime()
  },
).subscribe((res: string) => {
  console.log('res', res); // res today is 22, and now time is 1534937370461
});

使用pipe的方式

{{'Hello' | translate: param

在js里定義參數param:

const param = {
  value: 'world',
};

使用指令

管道的方式雖然方便,但參數還是需要在先定義好,這樣子變量多的話也比較繁瑣。使用指令的方式可以在程序中直接傳參:

或者直接將元素的內容作為key:

Introduce.Today

應用html標簽

可以在翻譯文件中中定義簡單的行級html標簽

{
 "Hello": "hello, {{value}}",
}

要渲染它們,在任何元素上只需要將innerHTML屬性和管道一同使用即可。

常用方法

instant() 即時翻譯

有些情況下,我們要在js里面動態的獲取值和賦值,這時候沒法使用模板語法,使用subscribe的方式又不利于代碼的組織,這時候我們需要即時翻譯來搞定了。方法定義:

instant(key: string|Array), insterpolateParams?: Object):string|Object

調用的時候傳入key和對應的參數,即可返回當前key的翻譯:

this.translate.instant('HELLO', {value: 'Jarvis'});

上述內容就是怎么在angular中實現多語言配置,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。


網頁名稱:怎么在angular中實現多語言配置
地址分享:http://www.xueling.net.cn/article/jdeogg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产亚洲高清视频你懂 | 高潮到不停喷水的免费视频 | 中国xxxx真实自拍 | 色哟哟国产精品免费观看 | 久久久久免费精品国产 | 婷婷伊人久久大香线蕉av | 99精品综合加勒比在线观 | 国产成人卡2卡3卡4乱码 | 国产精品视频在线观看 | 日韩精品一区二区在线播放 | 日韩欧美一区二区三区在线视频 | 九九欧美视频 | 女人色极品影院 | 五十六十日本老熟妇乱 | 亚洲欧美在线不卡 | 国产a毛片| 欧美精品一区在线观看 | 国产99国产精偷国产黄在线欧洲 | av不卡免费在线 | 精品人妻无码av一区二区 | 国产高清在线精品 | 久久久久久伊人高潮影院 | 护士精品一区二区三区99 | 成人欧美在线 | 成人淫片| 超碰激情网| 最新大地资源网在线观看免费 | 加勒比色老久久爱综合网 | 日本一级在线观看 | 亚洲精品无码AV中文字幕 | 国产精品久久久久久久小唯西川 | www.91免费视频 | 顶级黄色片 | 免费无码一级成年片在线观看 | 国产精品99一区二区三区 | 亚洲国产一区二区波多野结衣 | 国产精品久久久久久久免费大片 | 在线观看免费一区 | 国产美女裸体无遮挡免费视频 | 欧美日韩视频在线播放 | 国产欧美日韩二区 |