none
Changer la langue de l'application en choisissant la langue via un menuItem RRS feed

  • Question

  • Bonjour à tous,

     

    En faite je suis toujours dans le souci de Localisation de l'application, j'ai essayé cette méthode mais il manque quelque chose pour que ça marche nikel

    au début j'ai crée les fichiers ressources anglais et j'ai laissé le fichier par défaut comme français (Resources.resx et Resources.en.resx)

    après je fais ça dans le XAML pour tester si la langue est changée ou non:

     

     <MenuItem Name="_newfile" Header="{x:Static res:Resources.Menu_New_File}"/>
    

     

    et enfin je mets ce code dans App.xaml.cs:

     

    public partial class App : Application
    	{
      public App()
      {
       CultureInfo ci = new CultureInfo("en");
       Thread.CurrentThread.CurrentCulture = ci;
       Thread.CurrentThread.CurrentUICulture = ci;
      }
    	}
    

     


    quand je lance l'application il prends bien l'anglais comme langue.

    il me manque alors comment gérer ça dynamiquement c.a.d quand je click sur le menuItem français il prends la langue française et si je click sur menuItem anglais il prends anglais.

    je suis vraiment bloqué l'autre fois j'ai réussi à générer le fichier resx via un excel et là il me reste comment détecter quelle langue via un menuItem_click

    voici le code pour les 2 langues :

     

     <MenuItem Name="_fr" Header="{x:Static res:Resources.Menu_Language_FR}" Click="_fr_Click"></MenuItem>
         <MenuItem Name="_eng" Header="{x:Static res:Resources.Menu_Language_EN}" Click="_eng_Click"></MenuItem>
    

     


    alors là je mets quoi dans le .cs ? et App.Xaml.cs comment je peux le changer ?

     

    Merci d'avance


    mercredi 3 août 2011 15:29

Réponses

  • Tu vas avoir beaucoup de mal à changer la langue de facon dynamique (sans redémarrer l'application),je te conseille donc vivement de proposer à l'utilisateur de redemarrer. Il faut juste sauvegarder le paramètre

     

    Donc dans ton _fr_Click

     

    Properties.Settings.Default.Lang="fr-FR";
    
    Properties.Settings.Default.Save();
    
    MessageBox("veuiller demarrer pour prendre en compte le changement de langue");
    
    

     


    et dans ton app.cs.xaml

     

     public App()
     {
      CultureInfo ci = new CultureInfo(Properties.Settings.Default.Lang);
      Thread.CurrentThread.CurrentCulture = ci;
      Thread.CurrentThread.CurrentUICulture = ci;
     }
    



    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    • Marqué comme réponse mimo85 jeudi 4 août 2011 09:22
    mercredi 3 août 2011 18:33
    Modérateur
  • Bonjour,

     

    J'aime bien cette solution complétement dynamique aussi: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/10/30/wpf-localization-on-the-fly-language-selection.aspx

     

    Bon courage,


    Jonathan ANTOINE - http://wpf-france.fr - http://blog.lexique-du-net.com
    jeudi 4 août 2011 07:44
    Modérateur

Toutes les réponses

  • Tu vas avoir beaucoup de mal à changer la langue de facon dynamique (sans redémarrer l'application),je te conseille donc vivement de proposer à l'utilisateur de redemarrer. Il faut juste sauvegarder le paramètre

     

    Donc dans ton _fr_Click

     

    Properties.Settings.Default.Lang="fr-FR";
    
    Properties.Settings.Default.Save();
    
    MessageBox("veuiller demarrer pour prendre en compte le changement de langue");
    
    

     


    et dans ton app.cs.xaml

     

     public App()
     {
      CultureInfo ci = new CultureInfo(Properties.Settings.Default.Lang);
      Thread.CurrentThread.CurrentCulture = ci;
      Thread.CurrentThread.CurrentUICulture = ci;
     }
    



    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    • Marqué comme réponse mimo85 jeudi 4 août 2011 09:22
    mercredi 3 août 2011 18:33
    Modérateur
  • Bonjour,

     

    J'aime bien cette solution complétement dynamique aussi: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/10/30/wpf-localization-on-the-fly-language-selection.aspx

     

    Bon courage,


    Jonathan ANTOINE - http://wpf-france.fr - http://blog.lexique-du-net.com
    jeudi 4 août 2011 07:44
    Modérateur
  • Bonjour,

    ça marche en faite il prends bien en compte le changement de la langue ,

    Jonathan Merci pour le lien je vais le voir

     

    Cdt,

    jeudi 4 août 2011 09:22