2009-01-13 8 views
0

Tous les articles que j'ai lus à propos de la localisation d'une application WinForms supposent que j'ai déjà toutes les chaînes traduites. Selon les articles, je devrais juste mettre la propriété Localizable à true et éditer tous les contrôles.Comment puis-je obtenir toutes les chaînes d'un formulaire pour la localisation?

Mais comment puis-je obtenir toutes les chaînes originales (anglaises) du formulaire? Supposons que j'ai une application complète, qui n'a pas été localisée jusqu'à présent. Dois-je analyser manuellement les chaînes du fichier Designer ou y a-t-il une autre approche plus simple?

Je dois envoyer les chaînes aux traducteurs dans Excel ou Word. Comme les traducteurs n'ont aucune expérience avec les ressources, je vais enfin ramener toutes les chaînes traduites dans mes formulaires et changer les tailles, les positions, etc., des contrôles, le cas échéant.

EDIT: grâce à la réponse et aux commentaires de Rob, la solution est d'abord de définir la propriété Localizable sur true. Ensuite, je peux facilement copier toutes les chaînes à partir des fichiers resx qui appartiennent aux formulaires.

Répondre

1

Si vous effectuez la localisation de la même manière que moi, allez dans le répertoire Propriétés de votre projet et ouvrez le fichier Resources.resx dans un éditeur de texte. En cela, les chaînes sont dans des nœuds XML qui ressemblent à ceci;

<data name="ErrorLaunching" xml:space="preserve"> 
    <value>Error launching Ivara</value> 
    <comment>MessageBox text in LogonForm</comment> 
</data> 

Une fois que vous les faire traduire, ils vont dans des fichiers de même nom comme Resources.fr.resx pour le français.

Vous pouvez également ouvrir Resources.resx dans Visual Studio, sélectionnez Chaînes et copier/coller dans Excel. Ou, selon votre description, vous effectuez peut-être la localisation sur une base par formulaire. Dans ce cas, ce qui précède s'applique, sauf que c'est le fichier Resx pour votre formulaire qui vous intéresse.

0

Rob, dans le fichier Resources.resx, je n'ai que des chaînes que je montre manuellement dans MessageBoxes etc. les chaînes peuvent être copiées dans Excel sans aucun problème.

Mais si j'ouvre le MyForm.resx qui appartient à un formulaire, ce fichier est vide (en fait, tous les fichiers resx de tous les formulaires sont vides). Comment puis-je accéder à la table des chaînes de mes formulaires? J'utilise VS2008 si cela fait une différence.

+0

Cela devrait être un commentaire. Tout ce que vous devez faire est de définir le formulaire sur Localizable et enregistrez-le. Ensuite, si vous regardez dans le concepteur, dans la méthode IntitializeComponent(), vous devriez voir une ligne comme ceci; resources.ApplyResources (this, "$ this"); Si oui, le Resx devrait contenir toutes vos données. –

+0

Je viens de le faire avec un projet de test simple dans VS2008 Team System et cela a fonctionné comme prévu. –

Questions connexes