1

J'ai un grand projet écrit dans ma langue maternelle (hun) en C# avec Visual Studio 2012.Traduire un projet Visual Studio

Je voudrais traduire en anglais.

Bien sûr, si je reçois un texte en hongrois, je traduis, de sorte que le point n'est pas sur la façon de traduire un texte, mais comment faire toute la traduction plus facile. Je n'ai pas besoin du logiciel pour changer la langue pendant l'exécution, c'est aussi bien si je reçois un projet différent avec une langue différente. L'one-way est d'aller à travers le projet entier et change toutes les étiquettes, mais c'est beaucoup de travail, et parce que je modifie le projet entier, je devrais le faire encore une fois.

J'ai écrit un autre programme qui trouve des étiquettes marquées par « ... » dans les fichiers de projet (comme « Form1.cs », etc.), et je pourrais traduire ceux-ci. Cela a eu beaucoup d'erreurs. Par exemple Visual Studio scinde du texte long, donc j'ai séparé ces chaînes, donc c'était encore beaucoup de travail après toute la traduction.

Une autre idée remplaçais toutes les chaînes avec des choses de tableau, comme au lieu d'écrire « Annuler », écrit t [201] ou quelque chose comme ça, et je pourrais traduire que la variable t. Mais c'est aussi beaucoup de travail et il y a un problème si j'inclue une variable dans un texte.

Pour excample, en hongrois je pourrais écrire « 2 » masodperc maradt, mais je dois traduire à « secondes restantes: 2 », ou quelque chose comme ça. Ensuite, je dois faire attention aux variables incluses.

Alors, que pensez-vous de la façon la plus simple est de faire la traduction, et comment faire d'autres programmeurs font cela?

Pour excample TotalCommander change la langue dans une seconde, sans redémarrer ou quoi que ce soit.

Répondre

3

Il existe un build in .Net utilisant des fichiers resx.

  • Vous trouverez la brève introduction here.

  • Plus sur Programmers stackexchange

  • MSDN est assez vaste avec ses documents sur ce sujet et il est une bonne lecture. MSDN

Il y a beaucoup d'outils là-bas aide à la traduction basée sur la localisation .Net mais vous pouvez aussi le faire dans VS directement.

Les applications .Net capable de changer les traductions à la volée utilisent généralement l'internationalisation fait sur mesure par exemple chargement de fichiers texte et rafraîchissement de l'interface graphique.

Si vous voulez faire quelque chose comme ça sur votre propre être conscient que vous devez également redimensionner les contrôles afin que le texte correspond.

Pour votre problème aveC#count text text et text text #count vous pouvez utiliser string.Format like.

  1. Ajouter un fichier resx à votre projet comme Localized.resx
  2. Ajouter une propriété de chaîne "CountText" avec la valeur {0} texte texte.
  3. Ajouter une seconde resx Localized.en.resx
  4. Ajoutez la propriété de chaîne "CountText" avec du texte de texte de valeur {0}. à Localized.en.resx
  5. Lorsque vous écrivez votre progression à l'interface graphique, utilisez string.Format (Localized.CountText, myCount);
  6. Changez la langue du programme comme indiqué dans le premier lien.
  7. .Net charge automatiquement la ressource correspondante pour une langue.

Pour en savoir plus sur toutes les possibilités, en particulier la traduction avec VS, vous devriez vraiment parcourir les articles de la bibliothèque MSDN. La traduction peut devenir lourde si vous manquez quelque chose.

+0

D'accord, cela fonctionne vraiment et est incroyable. Mais y a-t-il un moyen de résoudre ce problème, qu'une variable vienne au milieu du texte dans une langue, et qu'elle se retrouve à la fin du texte dans une autre langue? – weiszam

+0

Voir mon édition ci-dessus ... – wonko79

+0

Cette dernière édition aide beaucoup. Merci beaucoup! – weiszam

Questions connexes