2010-02-23 7 views
1

Je dois créer une application de bureau multilingue en C# 3.5. Je sais comment ajouter du texte multilingue pour les étiquettes au moment du design.MessageBox multilingue en C#

Mais je n'arrive pas à trouver comment rendre les boîtes de dialogue Messagebox et Confirmer multilingues? Dois-je ajouter des conditions if/else dans le code pour vérifier la langue sélectionnée?

Merci d'avance!

+0

J'étais à Montréal pour travailler à MX il y a quelques semaines. La joie des fenêtres est que la langue n'était pas aussi importante que la mise en page. L'IDE était en français, mais comme les boutons ne changeaient pas de position, j'étais capable de naviguer très bien au bout d'un moment. Etes-vous sûr que quelque chose d'aussi trivial que les boîtes de message doit vraiment être bilingue? –

+2

Si l'application entière est bilingue, je pense que oui, les boîtes de message doivent aussi être. –

+0

@Steve H .: Eh bien, essayez de demander aux utilisateurs des pays arabes (ils ont généralement une mise en page de droite à gauche). De plus, les boîtes à message sont destinées à être lues et comprises (bien que les gens le fassent rarement), il est donc important que la personne comprenne la langue du texte et qu'il y ait encore des gens qui ne parlent pas anglais. pour se rappeler que les États-Unis et le Royaume-Uni ont ensemble moins de 10% de la population mondiale. – dbemerlin

Répondre

1

Vous devez utiliser les ressources. (Peut être trouvé dans Projet -> Propriétés ... -> Onglet Ressources)

Si vous utilisez l'onglet Ressources, VisualStudio crée le fichier Resources.resx dans le dossier Properties où vous pouvez stocker différents types de ressources. (par exemple Images, Audio et Chaînes) Vous pouvez ajouter des chaînes localisables là-bas et les utiliser plus tard comme Properties.Resources.MyMessageBoxTitle. Plus tard, lorsque vous souhaitez ajouter un support pour une autre langue, vous pouvez copier ce fichier Resources.resx et le renommer comme Resources.it-it.resx (ou Resources.fr.resx). Le gestionnaire de ressources charge alors automatiquement la chaîne à partir d'un fichier de ressources correspondant. (Basé sur Thread.CurrentUICulture)

+0

Je peux aussi créer des fichiers de ressources au niveau du projet et du formulaire. Si j'ajoute ces chaînes de ressources dans des fichiers de ressources de formulaire, comment puis-je y accéder? – Haris

+0

@Haris, il n'est pas recommandé d'utiliser les ressources de formulaire de cette manière, car elles sont généralement générées automatiquement par le concepteur et elles ne sont utilisées que dans la méthode 'InitializeComponent' de Form. Après cela, il n'y a pas de bonne façon de les obtenir. (En plus de créer votre propre instance de 'ComponentResourceManager' bien sûr. Alors, s'il vous plaît, préférez les ressources au niveau du projet pour votre scénario. – Regent

2

Vous devez déplacer les légendes et les chaînes de messages dans des ressources, puis y accéder via les propriétés générées automatiquement sur la classe Properties.Resources pour votre assemblage.

Le fichier de ressources principal d'un projet peut être créé en affichant les propriétés du projet et en cliquant sur l'onglet Ressources. Si vous ne disposez pas déjà d'un Resources.resx pour votre projet, il y aura un lien sur cet onglet pour en créer un. Une fois créé, vous pouvez ajouter des ressources de portée projet, telles que des images et des chaînes.

1

Dans le concepteur, le formulaire parent ou de contrôle, il y a une propriété appelée Localizable, mis à true, alors, vous pouvez le changer est Language propriété et changer les étiquettes/déplacer des contrôles autour de sorte que la la disposition correspond à cette localisation.

Cela créera des fichiers de ressources en conséquence.