Delphi以各种语言本地化(我认为英语,日语,德语,法语)。命令行编译器(dcc32)也已本地化,因此德语版本向控制台写入“Fehler”而不是“Error”和“Warnung”而不是“Warning”。
我编写了一个解析此输出的程序,并且(作为其功能之一)计算错误和警告。这与本地化字符串失败。
我可以调整程序以检测本地化文本但感觉不对。我宁愿强迫编译器使用英语作为输出。是否有命令行开关或任何其他选项来执行此操作?
我想支持使用msbuild的所有Delphi版本,即> = 2007。
编辑:
至于阅读错误代码而不是消息,请考虑以下错误:
$stmt->bindValue()
错误代码是E2029,但程序很难检测到它。检测文本“错误:”更简单,更不容易出错。
答案 0 :(得分:5)
与大多数Delphi应用程序一样,使用的语言环境在HKEY_CURRENT_USER\Software\Embarcadero\Locales
下的注册表中设置。旧版本可能会使用HKEY_CURRENT_USER\Software\Borland\Locales
。
答案 1 :(得分:1)
我使用正则表达式来解析这些语句并抓取各个部分 - 在这种情况下的错误号。 (我意识到很多人讨厌正则表达式,但是当你有一个或两个格式语句用于创建完全相同模板之后的所有输出时,正则表达式是完美的。)