アプリケーションの国際化にng2-translateライブラリを使用することを決定しました。しかし、私は以下の問題に直面しています。ここでルートコンポーネントの子コンポーネントでAngular ng2-translateが動作しない
は私のコードは次のとおりです。
app.module.ts:
import { TranslateModule } from 'ng2-translate';
@NgModule({
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot(),
appRoutes
],
app.component.ts
@Component({
selector: 'fiv-app',
templateUrl: './app.fivtemplate.html',
providers: [TranslateService]
})
.....
constructor(private _translateService: TranslateService) {
this.langs= ['fi','en'];
_translateService.addLangs(["en", "fi"]);
_translateService.setDefaultLang('fi');
let browserLang = _translateService.getBrowserLang();
_translateService.use('fi');
}
.....
app.component.html
<fiv-hello></fiv-hello>
<h2>{{ 'HOME.TITLE' | translate }}</h2>
とfivhello.component.ts
<h2>{{ 'HOME.TITLE' | translate }}</h2>
<div [translate]="'HOME.TITLE'"> Test</div>
- 私は最新バージョン、5.0.0を使用しようとしましたが、私はこのエラーを取得:
Uncaught TypeError: ctorParameters.map is not a function at ReflectionCapabilities.parameters (http://localhost:4200/main.bundle.js:40295:47)
私はそう角度-CLI、角度2.0.0およびNPM を使用しています4.2.0に切り替えました。私の設定でうまく動作しているようです。
app.component.htmlのテキストは翻訳されています。しかし、fivhelloコンポーネントからのものはローカライズされていません。 HOME.TITLEが表示されます。 デバッグ時に、TranslateServiceのget関数がレンダリング後に呼び出されることに気がつきましたが、テキストが更新されると予想していました。
使用する言語を変更すると、domも更新されません。言語を変更するために使用されるコンポーネントは、次のとおりです。
@Component({ selector: 'language-option', templateUrl: './languageoption.component.html', styleUrls: ['./languageoption.component.css'], providers: [ TranslateService ] }) export class LanguageoptionComponent implements OnInit { langs : String []; constructor(private _translateService: TranslateService) { this.langs = ['fi', 'en']; } ngOnInit() { } public changeLocale = (locale) => { this._translateService.use(locale); } }
誰も同じ問題を抱えていますか?
ありがとう。
https://github.com/ocombe/ng2-translate/issues/376 – ranakrunal9
ありがとうございました。私はそれを実際の構成で実行できるようにしたいと思っていました。しかし、私は更新しようとするとうまくいけば、他の問題が修正されます。 – csm86