1
Webpack에서 ng2-translate 패키지를 사용하려고합니다. 개발 모드에서는 모두 잘 작동합니다. 빌드를 시작할 때 언어 파일을 "dist"디렉토리에 복사하지 않습니다.ng2-translate + 생산 용 웹팩
누군가가 나에게 출력 경로를 변경하는 방법을 몇 가지 조언을 줄 수, 나는 https://github.com/ocombe/ng2-translate 지침을 따르려고 노력하지만 생산 웹팩을 위해 어떤 작업 예제를 제공 나던, 그되지 TranslateStaticLoader
를 사용하고 18n/*.json
을 변경하는 방법을 명확. 나는이를 추가 할 경우
나는 도서관
@NgModule({
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'),
deps: [Http]
})
],
bootstrap: [AppComponent]
})
이 내 app.module.ts
import {BrowserModule} from "@angular/platform-browser";
import { NgModule } from '@angular/core';
import {HttpModule} from '@angular/http';
import { AppComponent } from './app.component';
import {TranslateModule} from 'ng2-translate';
@NgModule({
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot()
],
declarations: [
AppComponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
내 app.component.ts입니다 함께 오류가 발생
import { Component } from '@angular/core';
import {TranslateService} from 'ng2-translate';
import '../../public/css/styles.css';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
param: string = "world";
constructor(translate: TranslateService) {
// this language will be used as a fallback when a translation isn't found in the current language
translate.setDefaultLang('en');
// the lang to use, if the lang isn't available, it will use the current loader to get them
translate.use('en');
}
}
내 app.component.html
당신의 도움에 대한개 내 JSON
{
"HELLO": "hello {{value}}"
}
감사합니다.
또한이 작업을 개발 중이므로 'TranslateService, TranslateLoader, TranslateStaticLoader}를'ng2-translate '에서 가져 오기 작업을 할 수있었습니다.하지만 문제가 끝나지 않습니다. AppComponent에서 생성자가 생성자가되어야합니다 (private translate : TranslateService), 예제에서 private를 추가하는 것은 이와 같지 않습니다. 그것은 끝내지만, 응용 프로그램을 구축하는 또 다른 이야기입니다, 나는 거기에 붙어 있어요. – Dimitri
btw 나는 angular2localization을 사용하여 끝내고 완벽하게 작동합니다. 문서가 더 광범위하고 쉽게 앱에 통합 될 수 있습니다. – Dimitri