Alla ricerca di letterali per archi
-
03-07-2019 - |
Domanda
Nella ricerca della localizzazione ho bisogno di trovare tutti i letterali delle stringhe disseminati nel nostro codice sorgente. Stavo cercando un modo per scrivere questo in un controllo del repository di origine post-modifica. (IE dopo che qualcuno controlla qualcosa in avere un'impostazione di casella per controllare questa statistica) Probabilmente userò NAnt e CruiseControl o qualcosa per gestire la gestione del CVS (Beh, StarTeam nel mio caso :() Ma conosci qualche script (o riga di comando) utility per scorrere con precisione il codice sorgente alla ricerca di valori letterali di stringa? Mi rendo conto che potrei fare una ricerca di stringhe semplice basata su espressioni regolari ma voglio un po 'più di botto per il mio dollaro. (Forse analizzare la stringa o metterla in categorie ) Perché molte volte la stringa potrebbe non richiedere necessariamente una traduzione. Qualche idea?
Soluzione
Visual Studio 2010 e precedenti:
- Trova nei file (CTRL + MAIUSC + F)
- Usa: espressioni regolari
- Trova:
:q
(stringa tra virgolette) - Trova tutto
La finestra Trova risultati conterrà ora un rapporto di tutti i file, con i numeri di riga e la riga stessa con la stringa tra virgolette.
Per Visual Studio 2012 e versioni successive cercare ((\ ". +? \ ") | ('. +?'))
( riferimento , punta del cappello a @CincauHangus )
Altri suggerimenti
Utilizza il binario compilato anziché il sorgente, ma Sysinternals Strings potrebbe essere utile.
Per trovare tutte le istanze Text = " textonly "
usa la seguente espressione regolare durante la ricerca:
(Text=)(")([a-z])
Questa è una guida per trovare Text = " * "
ma escludendo il testo che è già stato convertito per utilizzare i file di risorse:
Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"
Anche (>) ([a-z])
può essere usato per trovare letterali tra i tag in questo modo:
<h1>HeaderText</h1>
Esiste un parser C # su CodePlex che probabilmente puoi usare.