J'ai une winform, une application C# que je voudrais lancer dans des langues localisées. La cible .Net est 3.0 car beaucoup de mes utilisateurs utilisent encore XP. L'application est une application de la barre d'état système.Pourquoi mon application ne se traduit pas par CurrentUICulture locale?
J'ai placé toutes les chaînes dans un fichier Resources.resx et j'ai généré des fichiers Resources.XX.resx pour les différentes langues dont j'ai besoin, en utilisant ResX Resource Manager.
Si je mets le CurrentUICulture dans une autre langue (par exemple finnois) en utilisant le code:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI");
Il fonctionne comme prévu et montre toutes les formes en finnois.
Toutefois, si j'installe l'application sur une machine avec la langue définie comme la Finlande tous les WinForms viennent avec chaînes en anglais te (l'anglais est également la chaîne neutre)
J'ai vérifié que les formulaires ont la propriété localizable défini sur true.
Pourquoi ça marche quand je l'hardcode CurrentUICulture mais pas quand je ne le fais pas? Y at-il une autre façon de vérifier la langue de l'interface utilisateur du PC et de mettre à jour l'application CurrentUICulture?
Assurez-vous que les ensembles de satellites sont déployés à proximité de l'application sur les machines clientes. –
Si vous définissez 'Thread.CurrentThread.CurrentUICulture' sur' new CultureInfo ("fi-FI") 'Qu'est-ce que cela signifie: * Pourquoi cela fonctionne-t-il lorsque je code dur le' CurrentUICulture' mais pas quand je ne le fais pas? * –
Je teste sur mon PC de développement en tapant: Thread.CurrentThread.CurrentUICulture = new CultureInfo ("fi-FI"); au début du programme.cs Cependant, lorsque je supprime la ligne ci-dessus et que je mets un PC fonctionnant en finnois, le texte apparaît en anglais. – Luke