Recherche de littéraux de chaîne
-
03-07-2019 - |
Question
Dans la quête de la localisation, je dois trouver tous les littéraux de chaîne jonchant notre code source. Je cherchais un moyen de scripter ceci dans une vérification de référentiel source post-modification. (IE après que quelqu'un vérifie quelque chose a une configuration de boîte pour vérifier cette statistique) Je vais probablement utiliser NAnt et CruiseControl ou quelque chose pour gérer la gestion du CVS (Eh bien, StarTeam dans mon cas :() Mais connaissez-vous des scripts? (ou en ligne de commande) pour naviguer avec précision dans le code source à la recherche de littéraux de chaîne? Je me rends compte que je pourrais effectuer une recherche de chaîne simple à partir d'expressions régulières, tout en voulant en avoir plus pour mon argent (peut-être analyser la chaîne ou la classer en catégories ) Parce que bien souvent, la chaîne ne nécessite pas forcément une traduction. Des idées?
La solution
Visual Studio 2010 et versions antérieures:
- Rechercher dans les fichiers (CTRL + SHIFT + F)
- Utilisation: expressions régulières
- Rechercher:
: q
(chaîne de caractères citée) - Tout rechercher
La fenêtre Résultats de la recherche contiendra désormais un rapport de tous les fichiers, avec les numéros de ligne et la ligne elle-même avec la chaîne citée.
Pour Visual Studio 2012 et versions ultérieures, recherchez ((\ ". +? \") | ('. +?'))
( référence , astuce pour @CincauHangus )
Autres conseils
Il utilise le binaire compilé au lieu de la source, mais le Strings de Sysinternals application pourrait être utile.
Pour rechercher toutes les instances Text = "textonly", utilisez les expressions régulières suivantes lors de la recherche:
(Text=)(")([a-z])
Il s'agit d'une aide pour rechercher Text = "*"
mais en excluant le texte déjà converti pour utiliser des fichiers de ressources:
Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"
De même, (>) ([a-z])
peut être utilisé pour trouver des littéraux entre les balises comme suit:
<h1>HeaderText</h1>
Il existe un analyseur C # sur CodePlex que vous pouvez probablement utiliser.