Delphi Don';t工作区域设置ID

Delphi Don';t工作区域设置ID,delphi,localization,Delphi,Localization,我在Windows7(俄语本地化)上用Delphi2010开发我的项目 当我开始使用Windows8(英语)并将我的项目转移到DelphiXE3时,我看到了英语的标准对话框(如按钮、MessageDlg标题和系统错误)(必须是俄语) 查看Project-Options-Version-Info-Language,并在“调试配置-32位Windows平台”中看到区域设置ID为“English(United States)” 查看其他配置,可以看到三个标题,如“所有配置-所有平台”(其中所有元素均已

我在Windows7(俄语本地化)上用Delphi2010开发我的项目

当我开始使用Windows8(英语)并将我的项目转移到DelphiXE3时,我看到了英语的标准对话框(如按钮、MessageDlg标题和系统错误)(必须是俄语)

查看Project-Options-Version-Info-Language,并在“调试配置-32位Windows平台”中看到区域设置ID为“English(United States)”

查看其他配置,可以看到三个标题,如“所有配置-所有平台”(其中所有元素均已禁用)

区域设置ID为“俄语(俄罗斯)”,在所有字幕中,“32位Windows平台”区域设置ID为“英语(美国)”

好的,我在所有配置中将Locale ID改为“俄语(俄罗斯)”。但是它不起作用——所有的信息都是英文的。在构建的exe文件的属性中,语言=俄语(俄语)。
在Windows 7、Vista和俄语本地化上进行了测试。

版本信息中的区域设置ID与用于标准对话框的语言无关。您甚至可以在不同地区的版本信息中有多个条目


标准对话框使用的语言取决于当前Windows用户的语言设置。这对于在此用户帐户下启动的所有应用程序都是一样的,并且独立于应用程序本身内部使用的语言。

Delphi source中有一个consts.pas/consts.dcu单元,它包含标准对话框的所有翻译。您可以复制此文件并将其添加到项目中。您可以进行更改并生成项目。
确保原始consts.pas/consts.dcu不可用(重命名/移动它们)。

将安装的Windows 7切换到英语区域设置,并查看操作系统标准对话框是操作系统标准英语还是非标准俄语。如果您需要特定于应用程序的特殊消息,请使用VCL消息对话框功能+RTL翻译为俄语。顺便问一下,您在运行时是否尝试过
GetThreadLocale
?@Arioch'the,可能是这样,但我没有尝试。通常,在这种情况下,我会尽量尊重用户设置。毕竟,这就是为什么它首先是一个用户设置的原因。+1但我要说的是“用于标准对话框的语言取决于操作系统当前的用户界面语言”。。。我的意思是它不依赖于任何设置。@SertacAkyuz,在多语言Windows安装中,可以为每个用户单独选择用户界面语言。当然,如果只安装了一种语言,那么操作系统只能使用这种语言。@Uwe??我的Win7/64语言设置是“荷兰”(荷兰语),从一开始就是这样。我的Delphi XE2是英语。然而,从我的Delphi程序开始的标准对话框带有英文按钮。在我的开发机器和我部署的另一台Win7/64机器上进行了测试。那似乎与你的答案相矛盾。操作系统确认问题有荷兰式按钮。我想要我的程序MessageDlg()按钮荷兰语。。。更改程序选项(如OP)不起作用。