diff --git a/package.json b/package.json index a5d6ddbe..22c5507d 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@ngx-translate/http-loader": "4.0.0", "@openstapps/api": "0.25.0", "@openstapps/configuration": "0.25.0", - "@openstapps/core": "0.36.0", + "@openstapps/core": "0.42.0", "cordova-android": "9.0.0", "cordova-browser": "6.0.0", "cordova-ios": "6.2.0", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 4e7def45..6f1e7448 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -66,10 +66,9 @@ export class AppComponent { private readonly configProvider: ConfigProvider, private readonly logger: NGXLogger) { initLogger(logger); - this.initializeApp(); - // this language will be used as a fallback when a translation isn't found in the current language - translateService.setDefaultLang('en'); + this.translateService.setDefaultLang('en'); + this.initializeApp(); } /** @@ -106,6 +105,9 @@ export class AppComponent { try { // set language from settings + if (this.configProvider.firstSession) { + await this.settingsProvider.setSettingValue('profile', 'language', this.translateService.getBrowserLang()); + } const languageCode = (await this.settingsProvider.getValue('profile', 'language')) as string; this.thingTranslateService.translator.language = languageCode as SCLanguageCode; this.translateService.use(languageCode); diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 13704a50..69316546 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -38,7 +38,6 @@ import {StorageModule} from './modules/storage/storage.module'; import {ThingTranslateModule} from './translation/thing-translate.module'; import {fakeBackendProvider} from './_helpers/fake-backend.interceptor'; -moment.locale('de'); registerLocaleData(localeDe); /** diff --git a/src/app/modules/config/config.provider.ts b/src/app/modules/config/config.provider.ts index 8304ef8f..fdd7793c 100644 --- a/src/app/modules/config/config.provider.ts +++ b/src/app/modules/config/config.provider.ts @@ -48,11 +48,14 @@ export class ConfigProvider { * App configuration as IndexResponse */ config: SCIndexResponse; + /** + * First session indicator + */ + firstSession = true; /** * Initialised status flag of config provider */ initialised = false; - /** * Version of the @openstapps/core package that app is using */ @@ -117,6 +120,7 @@ export class ConfigProvider { // load saved configuration try { this.config = await this.loadLocal(); + this.firstSession = false; this.initialised = true; this.logger.log(`initialised configuration from storage`); if (this.config.backend.SCVersion !== this.scVersion) { diff --git a/src/app/modules/data/data.provider.ts b/src/app/modules/data/data.provider.ts index f670cc92..fb0fbd53 100644 --- a/src/app/modules/data/data.provider.ts +++ b/src/app/modules/data/data.provider.ts @@ -14,7 +14,7 @@ */ import {Injectable} from '@angular/core'; import {Client} from '@openstapps/api/lib/client'; -import {SCSearchQuery, SCSearchResponse, SCThingOriginType, SCThings, SCThingType} from '@openstapps/core'; +import {SCSearchRequest, SCSearchResponse, SCThingOriginType, SCThings, SCThingType} from '@openstapps/core'; import {SCSaveableThing} from '@openstapps/core'; import {environment} from '../../../environments/environment'; import {StorageProvider} from '../storage/storage.provider'; @@ -169,7 +169,7 @@ export class DataProvider { * * @param query - query to send to the backend */ - async search(query: SCSearchQuery): Promise { + async search(query: SCSearchRequest): Promise { return (this.client.search(query)); } diff --git a/src/app/translation/thing-translate.service.ts b/src/app/translation/thing-translate.service.ts index b3fd3728..cc48b462 100644 --- a/src/app/translation/thing-translate.service.ts +++ b/src/app/translation/thing-translate.service.ts @@ -15,7 +15,7 @@ import {Injectable, OnDestroy} from '@angular/core'; import {LangChangeEvent, TranslateService} from '@ngx-translate/core'; -import {SCLanguage, SCThings, SCThingTranslator, SCThingType, SCTranslations} from '@openstapps/core'; +import {SCLanguage, SCLanguageCode, SCThings, SCThingTranslator, SCThingType, SCTranslations} from '@openstapps/core'; import moment from 'moment'; import {Subscription} from 'rxjs'; import {isDefined, ThingTranslateParser} from './thing-translate.parser'; @@ -40,14 +40,11 @@ export class ThingTranslateService implements OnDestroy { */ constructor(private readonly translateService: TranslateService, public parser: ThingTranslateParser){ - - this.translator = new SCThingTranslator('de' ?? this.translateService.currentLang as keyof SCTranslations); - moment.updateLocale(this.translator.language); - + this.translator = new SCThingTranslator(this.translateService.getBrowserLang() as SCLanguageCode ?? 'en'); /** set the default language from configuration */ this.onLangChange = this.translateService.onLangChange.subscribe((event: LangChangeEvent) => { this.translator.language = event.lang as keyof SCTranslations; - moment.updateLocale(event.lang); + moment.locale(event.lang); }); }