2017-11-19 8 views
0

국제화로 Nativescript/Angular 응용 프로그램을 빌드하려고합니다. 내 옵션을 조사한 결과 ng2-translate가 번역 파일로드를 처리해야하는 nativescript-ng2-translate와 함께 트릭을 수행해야한다는 것을 알게되었습니다.Nativescript/Angular 응용 프로그램에서 ng2-translate를 사용하여 볼을 재생할 수 없습니다.

그러나 이것은 효과가없는 것 같습니다. 내 프로젝트와 기본 구조가 같은 예제 프로젝트를 만들었습니다. 그것은 탭 템플릿에서 늪지 표준 nativescript/각진 프로젝트 빌드.

번역 파이프는 아무 것도 수행하지 않습니다. 번역 서비스를 직접 호출해도 결과가 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

코드는 여기에 있습니다 : https://github.com/JuergenSimon/translation-test

답변

1

난으로 두드리는 머리를 많이했다 그러나 그들 중 하나가 동작하지 않습니다 수 NGX-번역 플러그인을 nativescript - NG2는-번역뿐만 아니라 함께. NativeScript http 모듈과 함께 ng2-translate를 사용하는 것이 현재 작동하는 유일한 방법 인 것 같습니다. 최소한 나에게 도움이되었습니다. 나는 그것이 작동하도록 this를 언급했다. 희망이 당신을 돕는다!

0

사실 나는 결국 작동하도록했습니다. 제가 놓친 부분은 app.component.ts에 기본 언어를 설정하는 것입니다. 그래서 궁극적으로는 다음과 같습니다

app.module.ts :

import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; 
import { NativeScriptModule } from "nativescript-angular/nativescript.module"; 

import { BrowseComponent } from "./browse/browse.component"; 
import { HomeComponent } from "./home/home.component"; 
import { SearchComponent } from "./search/search.component"; 
import { TabsRoutingModule } from "./tabs-routing.module"; 
import { TabsComponent } from "./tabs.component"; 
import { TranslateModule, TranslateLoader } from "ng2-translate"; 
import { TNSTranslateLoader } from "nativescript-ng2-translate"; 

@NgModule({ 
    imports: [ 
     NativeScriptModule, 
     TabsRoutingModule, 
     TranslateModule 
    ], 
    declarations: [ 
     TabsComponent, 
     HomeComponent, 
     BrowseComponent, 
     SearchComponent 
    ], 
    schemas: [ 
     NO_ERRORS_SCHEMA 
    ] 
}) 
export class TabsModule { 
} 

그리고 설정 :

import { NgModule, NgModuleFactoryLoader, NO_ERRORS_SCHEMA } from "@angular/core"; 
import { NativeScriptModule } from "nativescript-angular/nativescript.module"; 
import { NSModuleFactoryLoader } from "nativescript-angular/router"; 

import { AppRoutingModule } from "./app-routing.module"; 
import { AppComponent } from "./app.component"; 
import { TranslateModule, TranslateLoader, TranslateService } from "ng2-translate"; 
import { TNSTranslateLoader } from "nativescript-ng2-translate"; 

@NgModule({ 
    bootstrap: [ 
     AppComponent 
    ], 
    imports: [ 
     NativeScriptModule, 
     AppRoutingModule, 
     TranslateModule.forRoot({ 
      provide: TranslateLoader, 
      useFactory:() => new TNSTranslateLoader("/assets/i18n") 
     }) 
    ], 
    exports: [ 
     TranslateModule 
    ], 
    declarations: [ 
     AppComponent 
    ], 
    providers: [ 
     {provide: NgModuleFactoryLoader, useClass: NSModuleFactoryLoader}, 
     TranslateService 
    ], 
    schemas: [ 
     NO_ERRORS_SCHEMA 
    ] 
}) 
export class AppModule { 
} 

그런 다음 tabs.module.ts에 다시 TranslateModule 수입 의 기본 언어 tab.component.ts :

import { Component, OnInit } from "@angular/core"; 
import { isAndroid } from "platform"; 
import { SelectedIndexChangedEventData, TabView, TabViewItem } from "tns-core-modules/ui/tab-view"; 
import { TranslateService } from "ng2-translate"; 

@Component({ 
    selector: "TabsComponent", 
    moduleId: module.id, 
    templateUrl: "./tabs.component.html", 
    styleUrls: ["./tabs.component.css"] 
}) 
export class TabsComponent implements OnInit { 
    private _title: string; 

    constructor(private translate: TranslateService) { 
     translate.setDefaultLang('en'); 
    } 
    ... 

마지막 단계는 apps.component.ts에서도 가능했을 수 있습니다. 그 후 파이프와 번역 서비스가 잘 작동했습니다.