2017-10-06 112 views
0

我用这个教程没有翻译

https://ionicframework.com/docs/developer-resources/ng2-translate/

运行的一切,我可以把JSON格式,但不能打印输出

en.json

{ 
    "HELLO": "hola", 
    "hi":"sa" 
    } 

NGX-转换输出的回报。 ts构造函数;

constructor(public navCtrl: NavController, public navParams: NavParams, public translate: TranslateService) { 
    translate.setDefaultLang('en'); 
    } 

.html block;

<div style="width: 100%;">   
     <p class="baslik">ACCOUNT</p> 
     <button ion-item> 
      <ion-label>{{ 'hi' | translate }}</ion-label> 
     </button> 
     <button ion-item> 
      <ion-label>{{ 'hi' | translate }}</ion-label> 
     </button> 
    </div> 

但是输出;

当添加按钮点击事件,该代码块;

this.translate.use('en').subscribe(
     value => { 
     // value is our translated string 
     console.log(value); 
     } 

en.json return log;

enter image description here

回答

1

我跟着你提供,并可能重现你的问题的教程。

我也有在GitHub上NGX-翻译存储库的正式文件一看,有到教程的差异。

在本教程中,他们使用的HTTP类角的HTTP模块的加载文件:

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

在正式文件,他们正在使用HttpClient的类角通用模块的。更改你的应用程序模块如下:

import { HttpClientModule, HttpClient } from '@angular/common/http'; 

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

@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    HttpClientModule, 
    TranslateModule.forRoot({ 
     loader: { 
     provide: TranslateLoader, 
     useFactory: (createTranslateLoader), 
     deps: [HttpClient] 
     } 
    }) 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

还有就是官方文档

NB的评论:如果你仍然对角< 4.3,请使用HTTP从@角/ HTTP与[email protected]

+0

我已经添加了教程中的所有代码,但返回的是输出 –

+0

您正在使用哪个角度版本? – Daniomi

+0

4.1.3 ---------------- –

1

我不熟悉您使用的翻译框架,但它要使用自定义翻译的载文看,但你永远不叫:

translate.setTranslation('en', myTranslation); 

其中myTranslation是你的对象。

在你的代码,你设置为默认的'en'是一个字符串(它在引号),看起来是某种标识符,翻译服务使用决定什么后备语言是:

方法:

setDefaultLang(郎咸平:字符串):设置默认语言为 后备

你想使用:

setTranslation(郎咸平:字符串,翻译:对象,shouldMerge:布尔= FALSE):手动,如果你想翻译附加替换它们

,而不是设置翻译给定的语言,设置shouldMerge为true的对象