6
votes

Comment faire une application de console multilingue C #?

Je souhaite créer une application de console dans Microsoft Visual C # 2010 Express, qui aura une prise en charge de quelques langues: il affichera les messages dans une langue sélectionnée. Quel est le moyen le plus simple et pratique de la rendre internationale?


0 commentaires

3 Réponses :


0
votes

Utiliser des assemblages satellites, comme indiqué dans cet article de la SP:

https://docs.microsoft.com / FR-US / DOTNET / Core / Extensions / Création-Satellite-Assemblys


2 commentaires

Où puis-je télécharger cet exemple?


Je ne suis pas sûr pour VS2010, pour certaines versions précédentes, les échantillons utilisés pour être inclus sur le support d'installation pour VS ou MSDN, mais je ne sais pas si c'est le cas plus. Le seul lien en ligne que je peux trouver est celui-ci Microsoft.com/downloads/... Où vous pouvez télécharger une ancienne version de l'échantillon au moins



0
votes

Principalement, vous souhaitez utiliser des fichiers de ressources. Ce lien devrait vous mettre sur le chemin droit:

http://www.jelovic.com/articles/resources_in_visual_studio.htm

Une fois que vous avez des fichiers RESX pour vos différentes langues, la classe ResourceManager a une méthode getString qui prend un objet de cultureInfo, il renvoie donc la bonne traduction pour la culture actuelle, ou la valeur de secours s'il n'y a pas de ressource de ce nom dans le fichier RESX traduit.


0 commentaires

6
votes

Votre meilleur pari est d'utiliser des fichiers de ressources d'assemblage à l'aide du menu Projet, puis ajoutez des ressources à votre fichier.

Pour utiliser les ressources spécifiques à la langue dans votre programme: P>

System.Resources.ResourceManager mgr = new
    System.Resources.ResourceManager("MyConsoleApp.MyResource",
    System.Reflection.Assembly.GetExecutingAssembly()) ;

Console.WriteLine ( mgr.GetString ("resourceName"));

Console.ReadLine ();


3 commentaires

Maintenant, il charge ma langue système. Comment puis-je le changer pour vérifier d'autres langues?


Vous pouvez définir la culture du fil actuel en utilisant thread.CurrentThread.CurrentUculture = nouveau cultureinfo ("fr-US") où en-US est le code RFC3066. Ce lien possède un didacticiel complet pour aider CodeGuru.com /vb/gen/vb_misc/multi-languagesupport/article.ph P / ...


De plus: la méthode getString () de ResourceManager est surchargée. La méthode prend un objet de cultureInfo comme deuxième argument.