J'ai de nombreux fichiers de ressources, dans de nombreuses langues différentes. P>
Permet de supposer par exemple que nous soutenons 3 langues (EN, DE, FR) et avons ce fichier: P>
commun.resx commun.de.resx commun.fr.Resx p>
Je voudrais détecter des occurrences lorsque, par exemple, une ressource est demandée dans De, mais manque et revient donc à la langue par défaut. Y a-t-il un moyen d'attraper cela? (Donc, je peux la connecter et ajouter plus tard la ressource manquante). P>
merci p>
4 Réponses :
Il n'y a rien dans l'API de lecture de ressources existante qui expose les retombées à l'extérieur. Cependant, System.Resources.resourcemanager n'est pas scellé, il n'ya donc rien de vous empêcher de la sous-classement pour soulever un événement lorsque les retombées sont nécessaires. P>
Si vous souhaitez attraper les différences, utilisez Synchronizer RESX . Il s'agit d'une application open source qui peut synchroniser toutes les différences de résex principal à localisées une (ajoute et / ou supprime des touches dans la ressource localisée).
Vous pouvez l'utiliser comme suit pour copier toutes les modifications apportées à partir de Common.Resx en commun. .de.resx: p>
resxsync /v common.resx common.de.resx
Cet outil est dicontiné. Le projet qu'il lie comme une alternative est également arrêté.
En supposant que tous les fichiers de ressources changent de développement et se dirigent vers la production, cela ressemble à un emploi pour une forme d'analyse statique. P>
J'utilise Editeur de ressources Zeta car il met en évidence les zones qui manquent des traductions et des espaces réservés (par exemple, {0} strong>). p>
RESHARPER a cette excellente fonctionnalité http://www.jetbrains.com/resShafer /Features/internationalization.html#code_inspections_for_resource_files P>
Resharper vous avertit chaque fois qu'une valeur de ressource spécifique n'est pas remplacé dans une culture spécifique p> blockQuote>