auto set lang from local storage service

This commit is contained in:
Tykayn 2022-02-03 11:16:28 +01:00 committed by tykayn
parent 2956ef0167
commit d181578893
4 changed files with 13 additions and 4 deletions

View File

@ -1,4 +1,5 @@
# Internationalisation - i18n # Internationalisation - i18n
## Dans les templates HTML
Toutes les chaînes de texte doivent être disponible en minimum deux langues: Français et Anglais. Toutes les chaînes de texte doivent être disponible en minimum deux langues: Français et Anglais.
Pour l'ajout de nouvelles traductions voir [la documentations des traductions.md](../traductions.md) Pour l'ajout de nouvelles traductions voir [la documentations des traductions.md](../traductions.md)
@ -15,4 +16,5 @@ Faites en sorte de réutiliser au maximum les phrases identiques.
## Traduction de la documentation mkdocs ## Traduction de la documentation mkdocs
voir ici https://www.mkdocs.org/user-guide/configuration/#lang Pour traduire cette documentation (les fichiers markdwon dans le dossier /docs/) qui génère un mini site avec mkdocs avec la commande de build, il faut faire des fichiers avec un nom de langue tels que index.fr.md et index.en.md.
Plus d'infos: https://www.mkdocs.org/user-guide/configuration/#lang

View File

@ -34,9 +34,10 @@ import { AdministrationModule } from './features/administration/administration.m
import localeEn from '@angular/common/locales/en'; import localeEn from '@angular/common/locales/en';
import localeFr from '@angular/common/locales/fr'; import localeFr from '@angular/common/locales/fr';
import localeEs from '@angular/common/locales/es'; import localeEs from '@angular/common/locales/es';
// code for locale are listed by the ISO-639
registerLocaleData(localeFr, 'fr-FR'); registerLocaleData(localeFr, 'fr-FR');
registerLocaleData(localeEn, 'en-EN'); registerLocaleData(localeEn, 'en-EN');
registerLocaleData(localeEs, 'es-ES'); registerLocaleData(localeEs, 'ca-ES');
export class MyMissingTranslationHandler implements MissingTranslationHandler { export class MyMissingTranslationHandler implements MissingTranslationHandler {
public handle(params: MissingTranslationHandlerParams): string { public handle(params: MissingTranslationHandlerParams): string {
@ -45,7 +46,7 @@ export class MyMissingTranslationHandler implements MissingTranslationHandler {
} }
export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader { export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
return new TranslateHttpLoader(http); return new TranslateHttpLoader(http, './assets/i18n/', '.json');
} }
@NgModule({ @NgModule({

View File

@ -17,6 +17,7 @@
</span> </span>
</button> </button>
</label> </label>
({{ availableLanguages.length }} availableLanguages)
<select class="is-hidden" id="lang_selector" (change)="setLang()" [(ngModel)]="currentLang"> <select class="is-hidden" id="lang_selector" (change)="setLang()" [(ngModel)]="currentLang">
<option *ngFor="let language of availableLanguages" value="{{ language }}"> <option *ngFor="let language of availableLanguages" value="{{ language }}">
<!-- {{ language }} - --> <!-- {{ language }} - -->

View File

@ -11,7 +11,7 @@ import { StorageService } from '../../../../core/services/storage.service';
}) })
export class LanguageSelectorComponent implements OnInit { export class LanguageSelectorComponent implements OnInit {
public currentLang: Language; public currentLang: Language;
public availableLanguages: any = []; public availableLanguages: any = ['FR', 'EN', 'ES'];
language: string; language: string;
constructor(private languageService: LanguageService, private storageService: StorageService) {} constructor(private languageService: LanguageService, private storageService: StorageService) {}
@ -19,11 +19,16 @@ export class LanguageSelectorComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
this.availableLanguages = this.languageService.getAvailableLanguages(); this.availableLanguages = this.languageService.getAvailableLanguages();
console.log('this.availableLanguages', this.availableLanguages);
this.currentLang = this.languageService.getLangage(); this.currentLang = this.languageService.getLangage();
if (this.storageService.language && this.availableLanguages.indexOf(this.storageService.language) !== -1) {
this.languageService.setLanguage(this.storageService.language);
}
} }
setLang(): void { setLang(): void {
this.languageService.setLanguage(this.currentLang); this.languageService.setLanguage(this.currentLang);
this.storageService.language = this.currentLang;
} }
nextLang(): void { nextLang(): void {