Pergunta

Temos muitas cordas em nossos arquivos de recursos que contém formato .e.g

“{0} se mudou para {1}”

Essas seqüências são passadas para String.Format () pelas aplicações, por vezes, a tradutores estragar os “marcadores de formatação” Portanto Desejo encontrar / escrever uma ferramenta que verifica se todas as cadeias na arquivo de recurso tem um formato válido.

Eu sei que para cada tecla o número de argumentos que são passados ??para String.Format de modo que pudesse contribuir para as validações também.

Assim, para além da verificação de que o “{” coincidir com o “}” há uma maneira fácil de encontrar a maioria dos erros nas cadeias de formato?

(estou usando .NET, esta verificação será, naturalmente, feito como parte do processo de construção)

Foi útil?

Solução 3

Eu vim com uma solução simples que dá um resultado razoável, eu sei o número de argumento para a instrução de formato, mas não o tipo de argumentos. No entanto a maioria dos argumentos são strings.

Assim

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

Claro que isso seria escrito sem um “se” para cada número de argumentos na vida real.

Outras dicas

Isso soa como um cenário de teste de unidade clássico. você pode dirigir um / unidade-teste automatizado de construção fora do código-fonte cometer gatilho para estes? O teste de unidade seria simplesmente verificar que cada cadeia de formato ainda é de análise capaz de fazer.

Parece que você validar uma corda na expressão, então você deve usar Expressões Regulares Olhe para link de texto

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top