2009-06-05 6 views
3

Est-ce que quelqu'un connaît un bon outil pour refactoriser des ressources dans une solution Visual Studio 2008?C#: Refactoring de fichiers de ressources

Nous avons un certain nombre de fichiers de ressources avec le texte traduit dans un ensemble utilisé pour localiser notre application. Mais ils sont devenus un peu brouillon ... Je voudrais renommer certaines des clés, et déplacer certaines d'entre elles dans d'autres fichiers de ressources. Et j'aimerais que ces changements soient faits dans mon code, et les versions traduites des fichiers de ressources aussi. Peut-être une analyse sur les chaînes qui manquent dans les versions traduites, et quelles chaînes ont été supprimées de l'original ainsi ...

Est-ce que quelqu'un connaît une bonne extension de studio visuel ou un plugin ReSharper qui peut m'aider avec cette ? À l'heure actuelle, c'est un peu pénible, car je dois d'abord renommer la clé dans le fichier de ressources de base, puis dans les versions localisées. Et puis compiler pour obtenir toutes les erreurs de compilation résultant de la clé qui ont maintenant un nom différent, puis passer à travers et réparer tous les ... très ennuyeux =/

+0

J'ai pris un coup d'œil à http://safedevelop.com/Products/RGreatEx, qui semble prétendre faire la plupart de ces choses, mais il ne fonctionne pas correctement. Rompre ReSharper après avoir déplacé des chaînes dans un fichier de ressources et la boîte de dialogue de renommage n'apparaît même pas. Vous ne savez pas si vous avez la possibilité de déplacer une ressource d'un fichier vers un autre ... – Svish

Répondre

0

semble être quelques nouvelles fonctionnalités ReSharper 5 qui aide cette

Localizing your Applications with ReSharper 5

Cette démo montre comment ReSharper 5 vous aide à faire des chaînes dans votre code localisable rapidement, sans casser votre flux de travail régulier. Travailler avec des fichiers de ressources est plus le cauchemar d'un développeur avec ReSharper 5.

+0

Resharper 6. a plus de fonctionnalités pour la localisation http://www.jetbrains.com/resharper/webhelp/Resources__Index.html –

0

RGreatEx est approprié lorsque vous avez besoin de déplacer beaucoup de chaînes dans le code pour les ressources. Mais dans ce cas, cela ne peut pas aider.
Il n'y a aucun tel plugin (* cela signifie que je n'ai jamais vu tel et n'a pas trouvé dans google, mais il y a quelques localisateurs qui peuvent aider à traduire dans une nouvelle langue - http://www.peoplewords.com/download/ResxEditor.aspx et http://www.resx-localization-studio.net/ et http://madskristensen.net/post/A-NET-resource-editor-application-for-resx-files.aspx). Mais vous pouvez facilement le faire sans cela.
Tout ce dont vous avez besoin est d'écrire un petit outil qui va générer un dictionnaire commun de chaînes pour une langue sélectionnée pour plusieurs fichiers resx sélectionnés et de le stocker quelque part. Un autre outil que vous devez créer est un outil qui générera de nouveaux fichiers resx (après vos modifications) en utilisant des resx modifiés comme modèles et en utilisant le dictionnaire généré par l'outil précédent.
Bien sûr, toutes les chaînes nouvelles et modifiées seront manquantes, mais cela peut être corrigé manuellement. Cela prendra moins de temps (surtout lorsque vous ajouterez des fonctionnalités pour écrire un journal des chaînes manquantes lors de la génération du nouveau resx).

0

examinaient Sisulizer pour localiser notre logiciel, et je pense qu'il accomplit ce que vous demandez (un peu exagéré peut-être?)

1

Je viens de tombé sur cette question qui m'a poussé à bloguer à propos de ce que j'utilise pour ce problème ici Moving and renaming resource keys in a .resx file.

J'ai deux scripts PowerShell, un qui renomme une clé de ressource et un qui déplace une clé de ressource d'un fichier de ressources à un autre.

L'utilisation de ces scripts que je suis en mesure de renommer une ressource clé:

.\RenameResource.ps1 oldKey newKey 

Et je peux déplacer une ressource avec « keyName » clé d'un fichier nommé « ResourceFile1.resx » à « ResourceFile2.resx »:

.\MoveResource.ps1 ResourceFile1 ResourceFile2 keyName 
Questions connexes