Pregunta

Tenemos un montón de cadenas en nuestros archivos de recursos que contiene el formato .e.g

  

“{0} ha movido a {1}”

Estas cuerdas se pasan a String.Format () por las aplicaciones, a veces los traductores estropear los “marcadores de formato” Por ello, deseo de encontrar / escribir una herramienta que comprueba que todas las cadenas en el archivo de recursos tiene un formato válido.

Sé que para cada tecla del número de argumentos que se pasan a String.Format por lo que puede contribuir a las validaciones también.

Así que además de comprobar que el “{” coincide con la “}” hay una manera fácil de encontrar la mayoría de los errores en las cadenas de formato?

(estoy usando .NET, esta comprobación Por supuesto, se realiza como parte del proceso de construcción)

¿Fue útil?

Solución 3

He llegado a una solución simple que da un resultado razonable, sé el número de argumento para la instrucción de formato, pero no del tipo de los argumentos. Sin embargo la mayoría de los argumentos son cadenas.

Entonces

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

Por supuesto, esto sería escrito sin un “si” para cada número de argumentos en la vida real.

Otros consejos

Esto suena como un escenario de prueba de la unidad clásica. Se puede conducir un / unidad de prueba automático de generación de la fuente de código cometer detonante de estos? La prueba de la unidad simplemente comprobar que cada cadena de formato todavía se analiza factible.

Parece que validar una cadena de expresión, por lo que debe utilizar expresiones regulares Mira texto del enlace

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top