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 }}
-
+
\ 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() {