我们有很多在我们的资源文件的字符串包含格式.e.g

  

“{0}已经移动到{1}”

这些字符串传递到的的String.Format()的被应用,有时译者乱了“格式标记”,所以我希望能够找到/写一个工具来检查,在所有字符串资源文件有一个有效的格式。

我知道每个密钥被传递到的String.Format使得可以送入验证以及args来编号。

因此,从检查的“{”匹配“}”与众不同的是有一个简单的方法来找到在格式字符串错误最多?

(我使用.NET,该检查当然可以进行作为生成过程的一部分)

有帮助吗?

解决方案 3

我想出了一个简单的解决方案,给出了一个合理的结果,我知道说法在格式语句的数量,但没有的参数的类型。然而,大多数参数都是字符串。

所以

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

当然,这将不被写入一个“if”为在现实生活中的参数的每个号码。

其他提示

这听起来像一个经典单元测试场景。可以带动一个自动构建/单元测试断源代码提交触发这些?单元测试将简单地检查每个格式字符串仍然语法分析

看起来你在表达验证串,所以应使用正则表达式链接文本

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top