Question

Nous avons beaucoup de chaînes dans nos fichiers de ressources qui contient le format .e.g

  

« {0} a déplacé {1} »

Ces chaînes sont transmises à String.Format () par les applications, parfois le mess des traducteurs les « formatage des marqueurs » Je souhaite donc trouver / écrire un outil qui vérifie que toutes les chaînes dans la fichier de ressources a un format valide.

Je sais que pour chaque touche le nombre de args qui sont passés à String.Format pour que puisse alimenter les validations ainsi.

Donc, en dehors de vérifier que le « { » correspond au « } » est-il un moyen facile de trouver la plupart des erreurs dans les chaînes de format?

(j'utilise .NET, cette vérification sera évidemment fait dans le cadre du processus de construction)

Était-ce utile?

La solution 3

Je suis venu avec une solution simple qui donne un résultat raisonnable, je sais que le nombre d'argument à l'instruction de format, mais pas le type des arguments. Cependant, la plupart des arguments sont des chaînes.

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

Bien sûr, ce serait écrit sans « si » pour chaque nombre d'arguments dans la vie réelle.

Autres conseils

Cela ressemble à un scénario de test d'unité classique. Pouvez-vous chasser le code source d'une construction automatique / unité test déclencheur pour engager ceux-ci? Le test unitaire serait tout simplement vérifier que chaque chaîne de format est parse-mesure encore.

On dirait que vous validez une chaîne dans l'expression, vous devez donc utiliser Expressions rationnelles Regardez texte du lien

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top