RED-4718: use lang service from common-ui
This commit is contained in:
parent
9d21a4c162
commit
a61f753756
@ -7,7 +7,18 @@ import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common
|
||||
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
||||
import { ApiPathInterceptor } from '@utils/api-path-interceptor';
|
||||
import { MissingTranslationHandler, TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||
import { LanguageService } from '@i18n/language.service';
|
||||
import {
|
||||
BASE_HREF,
|
||||
CachingModule,
|
||||
HELP_DOCS,
|
||||
IqserHelpModeModule,
|
||||
LanguageService,
|
||||
MANUAL_BASE_URL,
|
||||
MAX_RETRIES_ON_SERVER_ERROR,
|
||||
SERVER_ERROR_SKIP_PATHS,
|
||||
ServerErrorInterceptor,
|
||||
ToastComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { ToastrModule } from 'ngx-toastr';
|
||||
import { ServiceWorkerModule } from '@angular/service-worker';
|
||||
import { environment } from '@environments/environment';
|
||||
@ -30,17 +41,6 @@ import { SpotlightSearchComponent } from '@components/spotlight-search/spotlight
|
||||
import { PruningTranslationLoader } from '@utils/pruning-translation-loader';
|
||||
import { DatePipe } from '@shared/pipes/date.pipe';
|
||||
import * as links from '../assets/help-mode/links.json';
|
||||
import {
|
||||
BASE_HREF,
|
||||
CachingModule,
|
||||
HELP_DOCS,
|
||||
IqserHelpModeModule,
|
||||
MANUAL_BASE_URL,
|
||||
MAX_RETRIES_ON_SERVER_ERROR,
|
||||
SERVER_ERROR_SKIP_PATHS,
|
||||
ServerErrorInterceptor,
|
||||
ToastComponent,
|
||||
} from '@iqser/common-ui';
|
||||
import { KeycloakService } from 'keycloak-angular';
|
||||
import { GeneralSettingsService } from '@services/general-settings.service';
|
||||
import { BreadcrumbsComponent } from '@components/breadcrumbs/breadcrumbs.component';
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import 'dayjs/locale/en';
|
||||
import 'dayjs/locale/de';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
import { DateAdapter } from '@angular/material/core';
|
||||
import arraySupport from 'dayjs/plugin/arraySupport';
|
||||
import localeData from 'dayjs/plugin/localeData';
|
||||
import { registerLocaleData } from '@angular/common';
|
||||
import localeDe from '@angular/common/locales/de';
|
||||
|
||||
dayjs.extend(arraySupport);
|
||||
dayjs.extend(localeData);
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class LanguageService {
|
||||
constructor(
|
||||
private readonly _translateService: TranslateService,
|
||||
private readonly _userPreferenceService: UserPreferenceService,
|
||||
private readonly _dateAdapter: DateAdapter<Dayjs>,
|
||||
) {
|
||||
registerLocaleData(localeDe);
|
||||
_translateService.addLangs(['en', 'de']);
|
||||
_translateService.setDefaultLang('en');
|
||||
}
|
||||
|
||||
get currentLanguage() {
|
||||
return this._translateService.currentLang;
|
||||
}
|
||||
|
||||
async setLanguage(locale: string): Promise<void> {
|
||||
dayjs.locale(locale);
|
||||
this._dateAdapter.setLocale(locale);
|
||||
await firstValueFrom(this._translateService.use(locale));
|
||||
}
|
||||
|
||||
languageAvailable(language: string): boolean {
|
||||
return this._translateService.getLangs().includes(language);
|
||||
}
|
||||
|
||||
async chooseAndSetInitialLanguage(): Promise<void> {
|
||||
let defaultLang = 'en';
|
||||
const userPreferenceLang = this._userPreferenceService.getLanguage();
|
||||
if (this.languageAvailable(userPreferenceLang)) {
|
||||
defaultLang = userPreferenceLang;
|
||||
}
|
||||
document.documentElement.lang = defaultLang;
|
||||
this._translateService.setDefaultLang(defaultLang);
|
||||
await this.setLanguage(defaultLang);
|
||||
}
|
||||
|
||||
async changeLanguage(language: string) {
|
||||
await this._userPreferenceService.saveLanguage(language);
|
||||
document.documentElement.lang = language;
|
||||
await this.setLanguage(language);
|
||||
}
|
||||
}
|
||||
@ -2,13 +2,12 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { BaseFormComponent, LoadingService } from '@iqser/common-ui';
|
||||
import { BaseFormComponent, LanguageService, LoadingService } from '@iqser/common-ui';
|
||||
import { IProfile } from '@red/domain';
|
||||
import { languagesTranslations } from '@translations/languages-translations';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { ConfigService } from '@services/config.service';
|
||||
import { LanguageService } from '../../../../../i18n/language.service';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
|
||||
@ -76,7 +75,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
|
||||
this._loadingService.start();
|
||||
|
||||
if (this.languageChanged) {
|
||||
await this._languageService.changeLanguage(this.form.get('language').value);
|
||||
await this._languageService.change(this.form.get('language').value);
|
||||
}
|
||||
|
||||
if (this.profileChanged) {
|
||||
|
||||
@ -4,7 +4,7 @@ import { Title } from '@angular/platform-browser';
|
||||
import { firstValueFrom, from, map, of, throwError } from 'rxjs';
|
||||
import { KeycloakEventType, KeycloakService } from 'keycloak-angular';
|
||||
import { GeneralSettingsService } from '@services/general-settings.service';
|
||||
import { LanguageService } from '@i18n/language.service';
|
||||
import { LanguageService } from '@iqser/common-ui';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { FeaturesService } from '@services/features.service';
|
||||
@ -51,7 +51,7 @@ export function configurationInitializer(
|
||||
tap(() => {
|
||||
lastDossierTemplateRedirect(baseHref.replace('/', ''), userPreferenceService);
|
||||
}),
|
||||
switchMap(() => languageService.chooseAndSetInitialLanguage()),
|
||||
switchMap(() => languageService.setInitialLanguage()),
|
||||
tap(() => userService.initialize()),
|
||||
switchMap(() => licenseService.loadLicense()),
|
||||
take(1),
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 884df60cb8df2af2b70e8dfc6dc8435b7cb5d260
|
||||
Subproject commit 9c2c429df35245d208705c70d97f648ea1c39ac6
|
||||
Loading…
x
Reference in New Issue
Block a user