CreatePropertySheetPage 本地化优先考虑中性语言
CreatePropertySheetPage localization prioritizes Neutral language
我有一个旧的 WTL 项目,基本上是一个 属性 sheet 表单和一些 属性 页。我想给它添加本地化。 Microsoft 真的非常希望我使用单独的纯资源 DLL 进行本地化。我想看看我是否可以在同一个可执行文件中使用所有语言特定的资源。
当我添加一个 属性 页面时,我调用 CPropertySheetImpl<T>::AddPage
,它在内部调用 CreatePropertySheetPage
,参数类型为 PROPSHEETPAGE
。我以为我可以用 SetThreadLocale
或 SetThreadUILanguage
设置语言,但如果资源 (.rc) 文件中有一个带有中性语言的对话框,这些都不起作用。系统会覆盖线程设置并在我选择的语言上选择中性语言对话。如果有两种特定语言(例如英语和德语),则系统会选择线程设置中设置的一种。
这是 Windows 的已知“功能”,还是我做错了什么?也许我不应该拥有中性语言的资源。也许 SetThreadLocale
.
有更好的选择
最后我删除了Neutral language resurces。
我有一个旧的 WTL 项目,基本上是一个 属性 sheet 表单和一些 属性 页。我想给它添加本地化。 Microsoft 真的非常希望我使用单独的纯资源 DLL 进行本地化。我想看看我是否可以在同一个可执行文件中使用所有语言特定的资源。
当我添加一个 属性 页面时,我调用 CPropertySheetImpl<T>::AddPage
,它在内部调用 CreatePropertySheetPage
,参数类型为 PROPSHEETPAGE
。我以为我可以用 SetThreadLocale
或 SetThreadUILanguage
设置语言,但如果资源 (.rc) 文件中有一个带有中性语言的对话框,这些都不起作用。系统会覆盖线程设置并在我选择的语言上选择中性语言对话。如果有两种特定语言(例如英语和德语),则系统会选择线程设置中设置的一种。
这是 Windows 的已知“功能”,还是我做错了什么?也许我不应该拥有中性语言的资源。也许 SetThreadLocale
.
最后我删除了Neutral language resurces。