diff --git a/.eslintrc.js b/.eslintrc.js index 904bcc17..ec01d048 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,12 +1,13 @@ module.exports = { parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], + plugins: ['@typescript-eslint', 'json'], extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', 'prettier/@typescript-eslint', + 'plugin:json/recommended', ], parserOptions: { ecmaVersion: 2018, diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 2501be93..e71c0a0a 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -6,15 +6,12 @@ import { environment } from '../environments/environment'; import { Theme } from './core/enums/theme.enum'; import { LanguageService } from './core/services/language.service'; import { ThemeService } from './core/services/theme.service'; -import { NavigationEnd, Route, Router, RouterOutlet } from '@angular/router'; +import { NavigationEnd, Route, Router } from '@angular/router'; import { slideInAnimation } from './shared/animations/main'; import { FramaKeyboardShortcuts } from './shared/shortcuts/main'; import { ShortcutEventOutput, ShortcutInput } from 'ng-keyboard-shortcuts'; import { PollService } from './core/services/poll.service'; -import { Poll } from './core/models/poll.model'; -import { PollDTO } from './core/models/poll.DTO.model'; import { PrimeNGConfig } from 'primeng/api'; -import { Language } from './core/enums/language.enum'; import { ApiService } from './core/services/api.service'; import { DOCUMENT } from '@angular/common'; diff --git a/src/app/core/enums/language.enum.ts b/src/app/core/enums/language.enum.ts index b09cf498..9da7c2fa 100644 --- a/src/app/core/enums/language.enum.ts +++ b/src/app/core/enums/language.enum.ts @@ -2,7 +2,7 @@ * liste des fichiers JSON de traduction des textes dans l'appli à charger par ngx-translate et prposer aux utilisateurs et utilisatrices de Framdate. * Cette enum est utilisé dans le composant de sélection de langue. */ -export enum Language { +export enum LanguageEnum { FR = 'fr', BR = 'br', CA = 'ca', diff --git a/src/app/core/services/api.service.ts b/src/app/core/services/api.service.ts index a38f0d19..c8bf3704 100644 --- a/src/app/core/services/api.service.ts +++ b/src/app/core/services/api.service.ts @@ -72,7 +72,7 @@ export class ApiService { 'Content-Type': 'application/json', // mode: 'no-cors', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', - 'Access-Control-Allow-Headers': 'Accept,Accept-Language,Content-Language,Content-Type', + 'Access-Control-Allow-Headers': 'Accept,Accept-LanguageEnum,Content-LanguageEnum,Content-Type', }; const headersAxios = { headers: headerDict, diff --git a/src/app/core/services/language.service.ts b/src/app/core/services/language.service.ts index d13f559e..733fec8c 100644 --- a/src/app/core/services/language.service.ts +++ b/src/app/core/services/language.service.ts @@ -1,10 +1,8 @@ import { Injectable } from '@angular/core'; -import { TranslateService, LangChangeEvent } from '@ngx-translate/core'; +import { LangChangeEvent, TranslateService } from '@ngx-translate/core'; -import { Language } from '../enums/language.enum'; +import { LanguageEnum } from '../enums/language.enum'; import { StorageService } from './storage.service'; -import { type } from 'os'; -import { isString } from 'util'; @Injectable({ providedIn: 'root', @@ -12,11 +10,11 @@ import { isString } from 'util'; export class LanguageService { constructor(private translate: TranslateService, private storageService: StorageService) {} - public getLangage(): Language { - return this.translate.currentLang as Language; + public getLangage(): LanguageEnum { + return this.translate.currentLang as LanguageEnum; } - public setLanguage(language: Language): void { + public setLanguage(language: LanguageEnum): void { this.translate.use(language.toString()); } @@ -27,11 +25,11 @@ export class LanguageService { public configureAndInitTranslations(): void { // always save in storage the currentLang used this.translate.onLangChange.subscribe((event: LangChangeEvent) => { - this.storageService.language = event.lang as Language; + this.storageService.language = event.lang as LanguageEnum; }); // set all languages available - this.translate.addLangs(Object.keys(Language)); + this.translate.addLangs(Object.keys(LanguageEnum)); // set language this.setLanguageOnInit(); @@ -54,7 +52,7 @@ export class LanguageService { // set default language if (!this.translate.currentLang) { - this.setLanguage(Language.FR); + this.setLanguage(LanguageEnum.FR); } } @@ -64,8 +62,9 @@ export class LanguageService { this.setLanguage(this.storageService.language); } } + private setLanguageFromBrowser(): void { - const currentBrowserLanguage: Language = this.translate.getBrowserLang().toUpperCase() as Language; + const currentBrowserLanguage: LanguageEnum = this.translate.getBrowserLang().toUpperCase() as LanguageEnum; console.log('currentBrowserLanguage', currentBrowserLanguage); if (this.translate.getLangs().includes(currentBrowserLanguage)) { this.setLanguage(currentBrowserLanguage); diff --git a/src/app/core/services/storage.service.ts b/src/app/core/services/storage.service.ts index fd9259a3..f7671f1a 100644 --- a/src/app/core/services/storage.service.ts +++ b/src/app/core/services/storage.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { LocalStorage } from 'ngx-webstorage'; -import { Language } from '../enums/language.enum'; +import { LanguageEnum } from '../enums/language.enum'; import { Theme } from '../enums/theme.enum'; import { Stack } from '../models/stack.model'; import { Choice } from '../models/choice.model'; @@ -28,7 +28,7 @@ export class StorageService { public theme: Theme; @LocalStorage() - public language: Language; + public language: LanguageEnum; @LocalStorage() public userPolls: Poll[] = []; diff --git a/src/app/shared/components/selectors/language-selector/language-selector.component.html b/src/app/shared/components/selectors/language-selector/language-selector.component.html index edf389b4..ec4f2275 100644 --- a/src/app/shared/components/selectors/language-selector/language-selector.component.html +++ b/src/app/shared/components/selectors/language-selector/language-selector.component.html @@ -17,7 +17,6 @@ - ({{ availableLanguages.length }} availableLanguages)