2017-03-22 13 views
0

我正在使用ng2-translate節點包在Angular SPA應用程序中實現翻譯。如何使用TranslationService.setTranslation方法手動定義翻譯

https://www.npmjs.com/package/ng2-translate發現該指令(見第3號定義的翻譯),我在組件的一個定義翻譯如下:

import { Component, } from '@angular/core'; 
import { TranslateService } from 'ng2-translate'; 


@Component({ 
    selector: 'home', 
    templateUrl: './home.component.html' 
}) 
export class HomeComponent { 


    constructor(private translate: TranslateService) { 


     this.translate.setTranslation('en', { 
      "HELLO": "Hello World from TranslateServiceLand" 
     }, true); 

     this.translate.setTranslation('fr', { 
      "HELLO": "Bonjour tout le moonde d'TranslateServiceLand" 
     }, true); 
    } 
} 

但是,這是行不通的。有人能給我一個例子嗎?

回答

0

使用最新版本ngx-translate/core

其實setTranslation()用於手動設置翻譯特定語言的對象。

* @param lang 
* @param translations 
* @param shouldMerge 
*/ 
setTranslation(lang: string, translations: Object, shouldMerge?: boolean): void; 

在組件文件夾中創建文件夾i18n的

-componentfolder 
-i18nfolder 
-component.html 
-component.ts 

component.ts

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

     @Component({ 
      selector: 'home', 
      templateUrl: './home.component.html' 
     }) 

     export class HomeComponent { 

     constructor(translate: TranslateService) { } 

     changeLanguage(lang) { 
      this.translate.use(lang); 
      let i18n = require(`./i18n/${lang}.json`); 

      this.translate.setTranslation(lang, i18n, true); 
      } 
     } 

component.html看起來像

<ul class="dropdown-menu" role="menu"> 
        <li> 
         <a class="dropdown-item" (click)="changeLanguage('en')">{{"Language.english" | translate}}</a> 
        </li> 
        <li> 
         <a class="dropdown-item"(click)="changeLanguage('es')">{{"Language.spanish" | translate}}</a> 
        </li> 
</ul> 

希望能,你知道如何創建JSON文件在i18中n文件夾。