ngx-translate не работает должным образом - PullRequest
0 голосов
/ 19 мая 2018

Я использую языки 'fa' и 'en' для своего приложения.есть две кнопки, которые должны менять направление и язык при нажатии: setDir (код) функция.после нажатия кнопки приложение будет перезагружено.язык и направление меняются, но ngx-перевод не работает должным образом.он всегда показывает значение файла fa.json.даже если я установил translate.setDefaultLang ('en'). app.component.ts :

import { Component } from '@angular/core';
import { Platform, ModalController } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { Storage } from '@ionic/storage';
import { TranslateService } from '@ngx-translate/core';
export class MyApp {
  constructor(public platform: Platform, private storage: Storage,
translate: TranslateService, private modalController: ModalController,
statusBar: StatusBar) {
platform.ready().then(() => {
  statusBar.styleDefault();
  this.splash = modalController.create(SplashPage);
  this.splash.present();
});
translate.setDefaultLang('en');
storage.get('languageCode').then((lang) => {
  platform.setLang(lang, true);
  translate.use(lang);
});
this.storage.get('myDir').then((dir) => {
  platform.setDir(dir, true);
});
  }
  async setDir(code) {
    if (code === "fa") {
      await this.storage.set('myDir', 'rtl');
      await this.storage.set('languageCode', 'fa');
      window.location.reload();
    } else {
      await this.storage.set('myDir', 'ltr');
      await this.storage.set('languageCode', 'en');
      window.location.reload();
    }
  }
}

app.html

<ion-item text-end color="none" menuClose="" id="lis-sell" class="mymenu">
{{'simple_sale' | translate}}
</ion-item>

fa.json

{
"simple_sale": "فروش"
}

ru.json

{
"simple_sale": "sale"
}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
...
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, 'assets/i18n/', '.json');
}
@NgModule({
...
imports: [
BrowserModule,
HttpClientModule,
IonicModule.forRoot(MyApp),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
...

1 Ответ

0 голосов
/ 20 мая 2018

вау.я чувствую себя так глуповсе отлично работаетПросто я определил два отдельных меню, и я использовал ngx-translate для значений в меню.одно меню работает в RTL.когда приложение меняет направление на ltr, меню rtl отключается и ltr one становится включенным.так что проблема была полностью из моей глупости, что я забыл, у меня есть два отдельных меню, и я просто устанавливал значения перевода для одного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...