我们的资源文件中有很多字符串,包含格式.e.g
“{0}已移至{1}”
应用程序将这些字符串传递给 String.Format(),有时翻译器会弄乱“格式化标记”因此我希望找到/编写一个工具来检查所有字符串资源文件具有有效格式。
我知道每个键传递给String.Format的args数量,以便也可以输入验证。
除了检查“{”是否匹配“}”之外,还有一种简单的方法可以找到格式字符串中的大多数错误吗?
(我正在使用.NET,这个检查当然是作为构建过程的一部分完成的)
答案 0 :(得分:1)
这听起来像是一个经典的单元测试场景。你可以从源代码提交触发器驱动自动构建/单元测试吗?单元测试只会检查每个格式字符串是否仍然可解析。
答案 1 :(得分:1)
看起来您在表达式中验证字符串,因此您应该使用正则表达式 看link text
答案 2 :(得分:1)
我提出了一个简单的解决方案,它给出了一个合理的结果,我知道格式语句的参数个数,但不知道参数的类型。但是大多数参数都是字符串。
所以
if (numberOfArguments == 3)
{
try
{
String.Format(theTranslatorString, "", "", "")
}
catch
{
// tell the translator there is a problem with the string format
}
}
当然,对于现实生活中的每一个论点,这都是没有“if”的。