Bonjour,

Dans ma page d'accueil, j'ai plusieurs langues:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 FR | NL | EN | DE | ES | IT | PT
Lorsque l'utilisateur navigue sur la page d'accueil, la page est automatiquement en français. Quand le user bascule du français en néerlandais, j'ai aucun souci, la page est bien traduite mais en revanche lorsque le user bascule du néerlandais à l'anglais. Il y a un bug, la traduction n'est pas chargée. Je dois recliquer une seconde fois pour que la traduction charge. Après quand je bascule sur les autres langues, il n'y a pas de soucis.

Le problème est uniquement quand je passe du NL -> EN.

En mettant plusieurs "console.log" j'aimerai comprendre ce qui ne va pas.

J'ai testé le clic sur chaque langue et je récupère bien le nom de la langue

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switchLanguage(lang) {
    if (lang == 'uk') {
      lang = 'en';
    }
 
    this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
      this.LS.setItem('LX_Current_Language', event.lang);
      console.log("Click on the language  => " + this.LS.getItem('LX_Current_Language')); 
    });
 
    this.translate.use(lang);
 
    this.refresh();
  }

Voici une image




Maintenant, si je veux faire un console.log pour vérifier la langue précédente et la langue actuelle.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
export class AuthLayoutComponent implements OnInit {
  supportedLangs;
 
  constructor(
    public _router: Router,
    private translate: TranslateService,
    private LS: LocalStoreService,
    public _location: Location
  ) { }
 
  ngOnInit() {
    this.supportedLangs = ['fr', 'nl', 'en', 'de', 'es', 'it', 'pt'];
  }
 
  switchLanguage(lang) {
    if (lang == 'uk') {
      lang = 'en';
    }
 
    this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
      this.LS.setItem('LX_Current_Language', event.lang);
      console.log("Click on the current language  => " + this.LS.getItem('LX_Current_Language')); 
    });
 
    console.log("Previous language : " + this.LS.getItem('LX_Current_Language'));
    this.translate.use(lang);
 
    this.refresh();
  }
 
  refresh(): void {
    this._router.navigateByUrl("/refresh", { skipLocationChange: true }).then(() => {
      this._router.navigate([decodeURI(this._location.path())]);
    });
  }
}


Le switch entre le FR -> NL est "null" , je pense que c'est à cause de ça que ça bug entre NL -> EN ?



Si vous avez une idée, je suis preneur.