Domanda

Abbiamo un sacco di stringhe nei nostri file di risorse che contiene formato .e.g

  

“{0} è spostato a {1}”

Queste stringhe vengono passati al String.Format () dalle applicazioni, a volte il traduttori rovinare i “marcatori di formattazione” Pertanto vorrei trovare / scrivere uno strumento che controlla che tutte le stringhe del file di risorse ha un formato valido.

Lo so per ogni tasto il numero di argomenti che vengono passati al String.Format in modo che possa alimentare nelle convalide pure.

Quindi, a parte la verifica che la “{” corrisponde al “}” c'è un modo semplice per trovare maggior parte degli errori nelle stringhe di formato?

(sto usando .NET, questo controllo sarà ovviamente essere eseguita come parte del processo di generazione)

È stato utile?

Soluzione 3

Sono venuto su con una soluzione semplice che dà un risultato ragionevole, so che il numero di argomento per l'istruzione di formato, ma non il tipo di argomenti. Tuttavia la maggior parte delle argomentazioni sono stringhe.

if (numberOfArguments == 3)
{
  try
  {
    String.Format(theTranslatorString, "", "", "")
  }
  catch
  {
     // tell the translator there is a problem with the string format
  }
}

Naturalmente questo sarebbe stato scritto senza “se” per ogni numero di argomenti nella vita reale.

Altri suggerimenti

Questo suona come uno scenario di unità-test classico. Si può guidare una build / unità di test automatizzati fuori il codice sorgente impegnarsi trigger per questi? Il test unità sarebbe sufficiente verificare che ogni stringa di formato è ancora analizzare fattibile.

Sembra che si convalida una stringa in un'espressione, quindi si dovrebbe utilizzare espressioni regolari Guardate testo del link

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top