0

我们的资源文件中有很多包含格式 .eg 的字符串

“{0} 已移至 {1}”</p>

这些字符串由应用程序传递给String.Format(),有时翻译器会弄乱“格式标记”因此我希望找到/编写一个工具来检查资源文件中的所有字符串是否具有有效格式。

我知道每个键传递给 String.Format 的参数的数量,以便也可以输入验证。

那么除了检查“{”是否与“}”匹配之外,有没有一种简单的方法可以找到格式字符串中的大多数错误?

(我使用的是 .NET,此检查当然会作为构建过程的一部分进行)

4

3 回答 3

1

这听起来像是一个经典的单元测试场景。你能从源代码提交触发器中驱动自动构建/单元测试吗?单元测试将简单地检查每个格式字符串是否仍然可以解析。

于 2009-08-14T11:08:20.030 回答
1

看起来你在表达式中验证了一个字符串,所以你应该使用正则表达式 查看链接文本

于 2009-08-14T12:38:48.290 回答
1

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

所以

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

当然,对于现实生活中的每个参数数量,这将不带“如果”。

于 2009-08-25T11:15:30.680 回答