2016-09-23 1 views
0

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?

+0

Assurez-vous que les ensembles de satellites sont déployés à proximité de l'application sur les machines clientes. –

+0

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? * –

+0

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

Répondre

1

enter image description here Vous pouvez définir et situer Langue de la forme, il affiche par langue des fenêtres

+0

Bonjour @DT, merci pour votre réponse + 1.J'ai déjà sélectionné ceux-ci. Pour mettre en œuvre de cette façon, je devrai mettre à jour chaque formulaire resx séparément? Ai-je raison? Actuellement, j'essaie d'avoir un resx sous les propriétés car il y a un certain nombre de chaînes utilisées dans les formes multipiles pour minimiser les traductions. Faire le chemin dans votre réponse exigerait la maintenance d'environ 5 dossiers resx par opposition à un. – Luke

+0

Oui, vous avez raison. –

+0

Existe-t-il un moyen d'obtenir form.resx pour référencer les fichiers resources.resx? Ou changer le référencement du formulaire afin qu'il fasse référence à resources.resx au lieu de form.resx? – Luke