2012-07-27 2 views
0

Ceci est mon premier essai dans la mondialisation des formulaires Windows, donc j'ai créé la forme dans ma langue et définir la propriété Localizable sur la propriété true et gauche Language par défaut, tout généré dans le fichier de ressources par défaut, ce qui était bien . Après cela, j'ai ajouté un nouveau fichier de ressources appelé FormName.en.resx et renommé quelques trucs ici juste pour tester comment cela fonctionne, mais maintenant chaque fois que je lance l'application Il utilise le fichier anglais que j'ai ajouté au lieu du fichier FormName.resx par défaut, si je supprime le fichier de ressources anglais, tout revient à la normale, ai-je oublié quelque chose?Fichier de ressources par défaut non utilisé

D'abord, je pensais que Windows est à l'origine, mais mon langage est réglé correctement, j'ai même essayé de changer manuellement Thread.CurrentThread.CurrentCulture mais il reste toujours en anglais.

Répondre

0

Eh bien, c'est une façon sale de le faire, je suppose, mais ici il est si quelqu'un se cogne dans le même problème:

private void ChangeLanguage(string lang) 
     {  
      Thread.CurrentThread.CurrentCulture = new CultureInfo(lang); 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang); 

      //YourFormType should be the name of your form 
      ComponentResourceManager resources = new ComponentResourceManager(typeof(YourFormType)); 
      resources.ApplyResources(this, "$this"); 

      foreach (Control control in this.Controls) 
      { 
       resources.ApplyResources(control , control.Name); 
      } 
     } 

Si quelqu'un a une meilleure solution s'il vous plaît poster et je vais essayer

0

Le langage UI utilisé pour déterminer la langue des ressources est lié par défaut au module linguistique du système d'exploitation. Si vous utilisez Windows anglais, votre application va récupérer les ressources en anglais. Si vous souhaitez forcer une langue différente, définissez la propriété Thread.CurrentThread.CurrentUICulture. Thread.CurrentThread.CurrentCulture affecte la façon dont les dates/heures/nombres sont formatés.

+0

Merci, je vais essayer ça! – formatc

+0

Eh bien, je n'ai rien changé. Y at-il une méthode que j'ai besoin d'appeler après avoir configuré CurrentUICulture? – formatc

+0

Vous n'avez pas indiqué où vous appelez pour définir la culture d'interface utilisateur. Si vous essayez de le définir après la création de l'interface utilisateur, vous devez actualiser manuellement les valeurs localisées. Généralement, la définition de la culture d'interface utilisateur du thread en cours est effectuée au démarrage avant que toute interface utilisateur ne soit dessinée conformément à un paramètre persistant. Si vous devez autoriser l'utilisateur à définir une préférence pour la culture d'interface utilisateur dans l'application, vous pouvez envisager de redémarrer l'application après avoir persisté ce paramètre. –

Questions connexes