Frage

Wir haben viele Strings in unserer Ressourcendatei, das Format enthält .e.g

  

„{0} wird verschoben auf {1}“

Diese Strings übergeben zu String.Format () von den Anwendungen, manchmal die Übersetzer Chaos daher die „Formatierung Marker“ up Ich möchte ein Werkzeug finden / schreiben, die alle Strings in der überprüft, ob Ressourcendatei hat ein gültiges Format.

Ich weiß, für jede die Zahl der args Taste, die String.Format übergeben werden, so dass auch in die Validierungen einspeisen kann.

Also abgesehen von der Überprüfung, dass die „{“ die Ergebnisse „}“ gibt es eine einfache Möglichkeit, die meisten Fehler in den Format-Strings zu finden?

(I .NET verwenden, diese Überprüfung wird natürlich als Teil des Build-Prozesses durchgeführt werden)

War es hilfreich?

Lösung 3

Ich habe mit einer einfachen Lösung zu kommen, die ein vernünftiges Ergebnis gibt, weiß ich die Anzahl des Arguments der Format-Anweisung aber nicht die Art der Argumente. Doch die meisten Argumente sind Strings.

So

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

Natürlich ist dies ohne einer geschrieben werden würde „wenn“ für jede Anzahl von Argumenten im wirklichen Leben.

Andere Tipps

Das klingt wie ein klassisches Unit-Test-Szenario. Können Sie ein automatisiertes Build / Unit-Test aus den Source-Code verpflichten Auslöser für diese Fahrt? Der Unit-Test würde einfach überprüfen, dass jedes Format-String noch analysieren-fähig.

Es sieht aus wie Sie eine Zeichenfolge in Ausdruck zu validieren, so dass Sie Reguläre Ausdrücke verwenden sollten Schauen Sie sich Link-Text

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top