Хранение SQL Lite иногда возвращает нуль-ионный 3 - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю приложение на нескольких языках Я использую SQL Storage lite для хранения выбранного языка но иногда хранилище возвращает ноль

<ion-item class="settings-items" no-border ion-item>
  <ion-icon class="img-view" item-start name="ios-globe">
  </ion-icon>
  <ion-label [ngClass]="(this.Platform.isRTL ) ? 'settings-textAr': 'settings-text' ">{{'LANG' | translate}}</ion-label>
  <ion-select mode="ios" [(ngModel)]="lang" item-end (ionChange)="switchLanguage()">
    <ion-option class="options" value="en" [selected]="lang === english">
      English
    </ion-option>
    <ion-option class="options" value="ar" [selected]="lang === arabic">
      العربية
    </ion-option>
  </ion-select>
</ion-item>

выберите язык

  switchLanguage() {
if (this.lang === 'en') {

  this.translate.use(this.lang)
  this.Platform.setDir('ltr', true)
  this.storage.set('DocLang' , JSON.stringify(this.lang))
} else {

  this.Platform.setDir('rtl', true)
  this.translate.use(this.lang);
  this.storage.set('DocLang' , JSON.stringify(this.lang))

}

получение языка и установка его по направлению

this.Storage.get('DocLang').then((val) => {
      this.lang = JSON.parse(val)

      console.log(this.lang)
      if (this.lang === 'en') {
        this.TranslateService.use('en');
        this.platform.setDir('ltr', true);

      } else if(this.lang === 'ar'){
        this.TranslateService.use('ar');
        this.platform.setDir('rtl', true);

      }
  });

1 Ответ

0 голосов
/ 11 сентября 2018

Если мы хотим сохранить пару ключ-значение, SQLite не является правильным выбором в качестве его реляционной базы данных.Пожалуйста, обратитесь к следующему вопросу:

сохранение и извлечение пар ключ-значение в базе данных sqlite android

Один простой способ - сохранить ваш язык в локальном хранилище или в хранилище сессий.,В моем приложении многоязыковая поддержка реализована следующим образом:

Поддержка нескольких языков без подключаемого модуля в ионном приложении

Для хранения языка в локальном хранилище используйте следующий код:

setLanguage(languageCode : string){
    localStorage.setItem('language',languageCode);
  }
...