我们有一些现有的软件(C++ Windows 应用程序),它们的资源已被翻译成多种语言供不同的客户使用。应用程序从 Windows 区域设置中获取区域设置并以适当的语言运行。
根据最近的订单,我们将资源翻译成德语,但我们刚刚发现客户正在安装英语的 Windows,但希望我们的软件仍以德语运行。显然PC上运行的其余软件还没有全球化,而且只是德语。
Windows 中是否有任何方法可以覆盖区域设置,以便软件认为它在德语安装的 Windows 上运行?我们现在没有时间对软件进行更改以覆盖区域设置,而且无论如何也不愿意为这个客户分叉应用程序。
有什么建议吗?
我不知道任何不涉及更改程序的直接方法,但我可以提供以下解决方法。
在运行应用程序的计算机上:
psexec
)。程序将以德语语言环境运行,而用户将继续在英语环境中工作。
不过,如果用户尝试保存或打开文件,这会很烦人 - 桌面和文档文件夹将是德语用户的,而不是英语用户的。
是的,您可以使用 WinMain 中的 win32 调用 SetThreadLocale 或应用程序的任何入口点。 任何子线程都将继承父区域设置。 详情请看这里:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374051%28v=vs.85%29.aspx