From 2d3ccbaa48c53ca726e9579294130546a734768a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Mon, 17 May 2021 18:08:57 +0200 Subject: [PATCH] Ajout de la traduction sur la page d'accueil --- .../skydivelogs-app/src/app/app.component.html | 18 +++++++++--------- Front/skydivelogs-app/src/app/app.component.ts | 9 +++++++-- .../app/create-user/create-user.component.ts | 13 +++++++------ .../src/app/default/default.component.ts | 8 ++++++-- .../src/app/login-user/login-user.component.ts | 6 ++++-- Front/skydivelogs-app/src/assets/i18n/en.json | 13 ++++++++++++- Front/skydivelogs-app/src/assets/i18n/fr.json | 13 ++++++++++++- Front/skydivelogs-app/src/models/user.ts | 1 + .../src/services/authentication.service.ts | 6 +++++- 9 files changed, 63 insertions(+), 24 deletions(-) diff --git a/Front/skydivelogs-app/src/app/app.component.html b/Front/skydivelogs-app/src/app/app.component.html index 8f9c281..ca06df6 100644 --- a/Front/skydivelogs-app/src/app/app.component.html +++ b/Front/skydivelogs-app/src/app/app.component.html @@ -7,33 +7,33 @@ timeline - Summary + {{ 'App_Nav_Summary' | translate }}
list_alt - List of jumps + {{ 'App_Nav_Jumps' | translate }} add_circle - Add a new jump + {{ 'App_Nav_NewJump' | translate }}
store - List of DZs + {{ 'App_Nav_Dzs' | translate }} airplanemode_active - List of aircrafts + {{ 'App_Nav_Aircrafts' | translate }} flight_land - List of jump types + {{ 'App_Nav_JumpTypes' | translate }} settings_input_antenna - List of gears + {{ 'App_Nav_Gears' | translate }}
@@ -44,12 +44,12 @@
logout - Logout + sdfsdfsf {{ 'App_Nav_Logout' | translate }}
-
Web software to log your skydive jumps - v{{ version }} - @Séb
+
\ No newline at end of file diff --git a/Front/skydivelogs-app/src/app/app.component.ts b/Front/skydivelogs-app/src/app/app.component.ts index 5cf31a2..7cf0f5b 100644 --- a/Front/skydivelogs-app/src/app/app.component.ts +++ b/Front/skydivelogs-app/src/app/app.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from "@angular/core"; import { Router } from "@angular/router"; +import { TranslateService } from "@ngx-translate/core"; import { User } from "../models/user"; import { CacheApiKey } from "../models/cache-api-key.enum"; @@ -22,9 +23,13 @@ export class AppComponent implements OnInit { constructor(private router: Router, private authenticationService: AuthenticationService, private serviceComm: ServiceComm, - private serviceCacheApi : ServiceCacheApi) + private serviceCacheApi : ServiceCacheApi, + private translateService: TranslateService) { - this.authenticationService.currentUser.subscribe(user => { this.currentUser = user; }); + this.authenticationService.currentUser.subscribe(user => { + this.currentUser = user; + this.translateService.use(user.language); + }); ConfigurationHelper.settings.subscribe(settings => { diff --git a/Front/skydivelogs-app/src/app/create-user/create-user.component.ts b/Front/skydivelogs-app/src/app/create-user/create-user.component.ts index a3bf584..3234d21 100644 --- a/Front/skydivelogs-app/src/app/create-user/create-user.component.ts +++ b/Front/skydivelogs-app/src/app/create-user/create-user.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from "@angular/core"; import { Router, ActivatedRoute } from "@angular/router"; import { FormBuilder, FormGroup, Validators } from "@angular/forms"; +import { TranslateService } from "@ngx-translate/core"; import { first } from "rxjs/operators"; @@ -19,12 +20,11 @@ export class CreateUserComponent implements OnInit { returnUrl: string; error = ""; - constructor( - private formBuilder: FormBuilder, - private route: ActivatedRoute, - private router: Router, - private authenticationService: AuthenticationService - ) { + constructor(private formBuilder: FormBuilder, + private route: ActivatedRoute, + private router: Router, + private authenticationService: AuthenticationService, + private translateService: TranslateService) { // redirect to home if already logged in if (this.authenticationService.currentUserValue) { this.router.navigate(["/"]); @@ -69,6 +69,7 @@ export class CreateUserComponent implements OnInit { createUser.firstName = this.formCtrls.firstname.value; createUser.lastName = this.formCtrls.lastname.value; createUser.email = this.formCtrls.email.value; + createUser.language = this.translateService.currentLang; this.authenticationService.create(createUser) .pipe(first()) diff --git a/Front/skydivelogs-app/src/app/default/default.component.ts b/Front/skydivelogs-app/src/app/default/default.component.ts index 95fa531..da327ca 100644 --- a/Front/skydivelogs-app/src/app/default/default.component.ts +++ b/Front/skydivelogs-app/src/app/default/default.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from "@angular/core"; +import { TranslateService } from "@ngx-translate/core"; import { AuthenticationService } from "../../services/authentication.service"; import { ServiceComm } from "../../services/service-comm.service"; @@ -9,10 +10,13 @@ import { ServiceComm } from "../../services/service-comm.service"; }) export class DefaultComponent implements OnInit { constructor(private serviceComm: ServiceComm, - private authenticationService: AuthenticationService) {} + private authenticationService: AuthenticationService, + private translateService: TranslateService) {} ngOnInit() { - this.serviceComm.UpdatedComponentTitle("Home"); + this.translateService.get("Home").subscribe( + data => { this.serviceComm.UpdatedComponentTitle(data); } + ) this.authenticationService.alwaysLogin(); } } diff --git a/Front/skydivelogs-app/src/app/login-user/login-user.component.ts b/Front/skydivelogs-app/src/app/login-user/login-user.component.ts index 9464afe..8cba0fa 100644 --- a/Front/skydivelogs-app/src/app/login-user/login-user.component.ts +++ b/Front/skydivelogs-app/src/app/login-user/login-user.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MatInput } from '@angular/material/input'; +import { TranslateService } from '@ngx-translate/core'; import { first } from 'rxjs/operators'; @@ -31,7 +32,8 @@ export class LoginUserComponent implements OnInit, AfterViewInit { private serviceApiAircraft : AircraftService, private serviceApiJumpType : JumpTypeService, private serviceApiDropzone : DropzoneService, - private serviceApiGear : GearService) { + private serviceApiGear : GearService, + private translateService: TranslateService) { if (this.authenticationService.currentUserValue) { this.router.navigate(['/']); } @@ -71,7 +73,7 @@ export class LoginUserComponent implements OnInit, AfterViewInit { this.authenticationService.login(this.formCtrls.username.value, this.formCtrls.password.value) .pipe(first()) .subscribe( - () => { + data => { this.serviceApiAircraft.getListOfAircrafts(false).subscribe(); this.serviceApiJumpType.getListOfJumpTypes().subscribe(); this.serviceApiDropzone.getListOfDropZones(false).subscribe(); diff --git a/Front/skydivelogs-app/src/assets/i18n/en.json b/Front/skydivelogs-app/src/assets/i18n/en.json index 52d2933..7539e5b 100644 --- a/Front/skydivelogs-app/src/assets/i18n/en.json +++ b/Front/skydivelogs-app/src/assets/i18n/en.json @@ -26,5 +26,16 @@ "LoginCreateUser_Password" : "Password", "LoginCreateUser_PasswordRequired" : "Password is required", "LoginCreateUser_PasswordPattern" : "The pattern of the password ([A-Za-z0-9_-|/]{{ '{' }}8,15{{ '}' }})", - "LoginCreateUser_BtnLogin" : "Create user and login" + "LoginCreateUser_BtnLogin" : "Create user and login", + + "Default_Title" : "Home", + "App_Footer" : "Web software to log your skydive jumps - v", + "App_Nav_Summary" : "Summary", + "App_Nav_Jumps" : "List of jumps", + "App_Nav_NewJump" : "Add a new jump", + "App_Nav_Dzs" : "List of DZs", + "App_Nav_Aircrafts" : "List of aircrafts", + "App_Nav_JumpTypes" : "List of jump types", + "App_Nav_Gears" : "List of gears", + "App_Nav_Logout" : "Logout" } \ No newline at end of file diff --git a/Front/skydivelogs-app/src/assets/i18n/fr.json b/Front/skydivelogs-app/src/assets/i18n/fr.json index 4ae2c00..fbe5da7 100644 --- a/Front/skydivelogs-app/src/assets/i18n/fr.json +++ b/Front/skydivelogs-app/src/assets/i18n/fr.json @@ -26,5 +26,16 @@ "LoginCreateUser_Password" : "Mot de passe", "LoginCreateUser_PasswordRequired" : "Le mot de passe est obligatoire", "LoginCreateUser_PasswordPattern" : "Le mot de passe doit contenir lettres minuscule/majuscule et entre 8 et 15 caractères.", - "LoginCreateUser_BtnLogin" : "Créer et se connecter" + "LoginCreateUser_BtnLogin" : "Créer et se connecter", + + "Default_Title" : "Accueil", + "App_Footer" : "Application pour enregistrer ses sauts de parachutisme - v", + "App_Nav_Summary" : "Résumé", + "App_Nav_Jumps" : "Les sauts", + "App_Nav_NewJump" : "Ajouter un saut", + "App_Nav_Dzs" : "Centre de parachutisme", + "App_Nav_Aircrafts" : "Avions", + "App_Nav_JumpTypes" : "Type de saut", + "App_Nav_Gears" : "Pièges", + "App_Nav_Logout" : "Se Déconneter" } \ No newline at end of file diff --git a/Front/skydivelogs-app/src/models/user.ts b/Front/skydivelogs-app/src/models/user.ts index cd61f97..fd82954 100644 --- a/Front/skydivelogs-app/src/models/user.ts +++ b/Front/skydivelogs-app/src/models/user.ts @@ -8,6 +8,7 @@ export class User { roles: string; authdata?: string; token?: string; + language: string; public get isAdmin(): boolean { return this.roles === "admin"; diff --git a/Front/skydivelogs-app/src/services/authentication.service.ts b/Front/skydivelogs-app/src/services/authentication.service.ts index cada3e3..16cf178 100644 --- a/Front/skydivelogs-app/src/services/authentication.service.ts +++ b/Front/skydivelogs-app/src/services/authentication.service.ts @@ -64,6 +64,10 @@ export class AuthenticationService extends BaseService { private pushToken(login: string, password: string, user: User){ if (user && user.token) { user.authdata = window.btoa(login + ":" + password); + + if (!user.language) { + user.language = 'en'; + } localStorage.setItem("currentUser", JSON.stringify(user)); this.currentUserSubject.next(user); } @@ -72,7 +76,7 @@ export class AuthenticationService extends BaseService { public alwaysLogin() { this.http.get(`${this.apiUrl}/User/AlwaysLogin`, { headers: this.headers }) - .subscribe(data => { console.log(data); }); + .subscribe(); } public logout() {