2016-08-12 56 views

回答

0

这样在模板(它不无管参数为我工作):

{{ 'Hello world!' | translate:'' }} 

组件:

@Component({ 
    template: ` 
    <ion-header> 
     <ion-navbar> 
     <button menuToggle> 
      <ion-icon name="menu"></ion-icon> 
     </button> 
     <ion-title>My page</ion-title> 
     </ion-navbar> 
    </ion-header> 

    <ion-content > 
     <h1>{{ 'Hello world!' | translate:'' }}</h1> 
    </ion-content > 
    `, 
    directives: [], 
    providers: [], 
    pipes: [TranslatePipe] 
}) 
export class MyPage { 
    constructor(private translate:Translate) { 
     this.translate.translations('fr', { 
      'Hello world!': 'Salut les gens!' 
     }); 
     this.translate.translations('de', { 
      'Hello world!': 'Hallo zusammen!' 
     }); 

     this.translate.setLanguage('fr'); 
    } 
} 

当然,我应该已经安装在全球的翻译服务app.ts.

希望它能为你工作。

0

尝试关注this文档。

顺便说一句,你需要在你的app.module补充:

import { TranslateStaticLoader, TranslateModule, TranslateLoader} from 'ng2-translate'; 

export function createTranslateLoader(http: Http) { 
    return new TranslateStaticLoader(http, './assets/i18n', '.json'); 
} 

而在进口部分(后IonicModule.forRoot(...)):

TranslateModule.forRoot({ 
    provide: TranslateLoader, 
    useFactory: (createTranslateLoader), 
    deps: [Http] 
}) 

现在,在您的应用程序.component添加在您的初始化函数:

this.translate.setDefaultLang('en'); 
this.translate.use('en'); 

现在,你需要在资产/ i18n中/ * JSON用于es.json或en.json文件。翻译和在你的HTML你可以使用:

{{ 'notifications' | translate }} 

希望这会帮助你。