IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Cliquer 2 fois sur la langue pour afficher le contenu de celle-ci


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut Cliquer 2 fois sur la langue pour afficher le contenu de celle-ci
    Bonjour,

    Je bloque sur le switch de langue, j'ai 7 langues dans le header de ma page.



    Je suis en français, lorsque je clique en NL, la page s'affiche correctement en néerlandais. Par contre, lorsque je bascule du NL à EN, il ne se passe rien après le clique, je dois donc recliquer une seconde fois pour afficher la page en Anglais.

    Si je clique après sur DE ça fonctionne parfaitement, puis si je clique sur ES, j'ai de nouveau le même problème, il faut que je clique 2 fois sur ES pour afficher le contenu en Espagnole.



    Dans le fichier auth-layout.component.html j'ai ceci (je pense qu'il n'y a pas de problème ci dessous?)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="languageSelect">
                <a href="#" *ngFor="let l of supportedLangs; let i = index" (click)="switchLanguage(l); false; ">
                    {{ l | uppercase}}  <!-- FR | NL | EN | DE | ES | IT | PT -->
                </a>
     </div>

    Par contre, je pense que le soucis est plutôt au niveau de auth-layout.component.ts

    Je pense que le problème est au niveau du changement de langue, mais je ne vois pas trop ce qui peut poser problème?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
            this.LS.setItem('LX_Current_Language', event.lang);
            console.log("LELOG OK X : " + this.LS.getItem('LX_Current_Language'));
        });
        console.log("LELOG OK A : " + this.LS.getItem('LX_Current_Language'));
        this.translate.use(lang);
        this.refresh();
      }
    Voici le code en entier si ça peut aider

    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
    37
    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("LELOG OK X : " + this.LS.getItem('LX_Current_Language'));
        });
        console.log("LELOG OK A : " + 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())]);
        });
      }
     
    }
    D'avance merci pour votre aide.

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    essaye comme ça pour voir :

    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
    37
    38
    39
    40
    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'];
    
        this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
            this.LS.setItem('LX_Current_Language', event.lang);
            console.log("LELOG OK X : " + this.LS.getItem('LX_Current_Language'));
        });
      }
     
     
      switchLanguage(lang){
        if(lang == 'uk'){
          lang = 'en';
        }
     
    
        console.log("LELOG OK A : " + 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())]);
        });
      }
     
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Bonjour Krakaotoa,

    Merci pour ton aide, j'ai toujours le même soucis. Je me demande s'il n'est pas mieux de recommencer tout le code?

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    je ne sais pas.
    si tu pouvais mettre cette partie sur stackblitz
    parceque là, c'est difficile de voir le problème


    j'ai mis des blocs en commentaire
    regarde si le probleme du double clic arrive encore ?

    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
     
     
      switchLanguage(lang){
        if(lang == 'uk'){
          lang = 'en';
        }
     /*
        this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
            this.LS.setItem('LX_Current_Language', event.lang);
            console.log("LELOG OK X : " + this.LS.getItem('LX_Current_Language'));
        });
        console.log("LELOG OK A : " + 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())]);
    */
        });
      }

  5. #5
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Merci pour ton aide, j'ai recommencé le truc c'est plus simple. Le code était affreux.

    Merci encore pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2015, 13h32
  2. Réponses: 2
    Dernier message: 09/11/2012, 15h45
  3. je dois cliquer 2 fois sur le bouton de mon formulaire !
    Par intik dans le forum Zend Framework
    Réponses: 4
    Dernier message: 11/10/2011, 19h34
  4. Je dois cliquer 2 fois sur le bouton pour valider mon formulaire !
    Par intik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/10/2011, 11h34
  5. Réponses: 6
    Dernier message: 14/04/2009, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo