3

Delphi 以多种语言本地化(我认为是英语、日语、德语、法语)。命令行编译器 (dcc32) 也已本地化,因此德语版本将“Fehler”而不是“Error”和“Warnung”而不是“Warning”写入控制台。

我编写了一个程序来解析这个输出并(作为它的一个特性)计算错误和警告。本地化字符串失败。

我可以调整程序以检测本地化文本,但感觉不对。我宁愿强制编译器使用英语作为输出。是否有命令行开关或任何其他选项可以做到这一点?

我想支持所有使用 msbuild 的 Delphi 版本,即 >=2007。

编辑:

至于读取错误代码而不是消息,请考虑以下错误:

C:\[...]\Borland.Delphi.Targets(113,3): error : blub.pas(56) Error: E2029 ',' expected but identifier 'bla' found

错误代码是 E2029,但程序很难检测到它。检测文本“错误:”要简单得多且不易出错。

4

2 回答 2

5

与大多数 Delphi 应用程序一样,使用的区域设置在注册表中的HKEY_CURRENT_USER\Software\Embarcadero\Locales. 旧版本可能使用HKEY_CURRENT_USER\Software\Borland\Locales.

于 2015-08-28T16:24:01.763 回答
1

我会使用正则表达式来解析这些语句并获取各个部分——在这种情况下是错误号。(我意识到很多人讨厌正则表达式,但是当你有一个或两个格式语句用于按照完全相同的模板创建所有输出时,正则表达式是完美的。)

于 2015-08-28T16:06:02.743 回答