Python 2.7 如何使用MessageBoxExW和Python更改MB_OKCANCEL按钮文本(Windows API)中的语言?

Python 2.7 如何使用MessageBoxExW和Python更改MB_OKCANCEL按钮文本(Windows API)中的语言?,python-2.7,winapi,button,translation,messagebox,Python 2.7,Winapi,Button,Translation,Messagebox,我有一个应用程序,它显示一个有两个按钮的窗口(Ok和Cancel),我用的是英文,但现在我想用中文显示Ok和Cancel按钮的文本 我最初的代码是: if win32con.IDOK == win32gui.MessageBox(self.hwnd,self.dic.voc["mainwin.quitConfirm"], self.dic.voc["mainwin.quitConfirmTitle"],

我有一个应用程序,它显示一个有两个按钮的窗口(Ok和Cancel),我用的是英文,但现在我想用中文显示Ok和Cancel按钮的文本

我最初的代码是:

if win32con.IDOK == win32gui.MessageBox(self.hwnd,self.dic.voc["mainwin.quitConfirm"],
                                       self.dic.voc["mainwin.quitConfirmTitle"],
                                       win32con.MB_OKCANCEL):
现在我正在尝试使用
MessageBoxExW
函数,因为在API页面中,您可以在最后一个参数()中使用任何语言

现在我的代码如下:

lang = win32api.MAKELANGID(4, 2)
if win32con.IDOK ==ctypes.windll.user32.MessageBoxExW(self.hwnd,self.dic.voc["mainwin.quitConfirm"], self.dic.voc["mainwin.quitConfirmTitle"], win32con.MB_YESNO, lang):
但它继续以英文显示文本按钮,而不是中文。我还在我的计算机中设置了“格式”和“系统区域设置”中的“区域和语言”中的中文(简体,PRC)。 我的脚本编码为“UTF-8”

当我运行这个时

locale.getdefaultlocale(["LANGUAGE"])
我得到

('zh_CN', 'cp936')

我将非常感谢任何帮助或线索。非常感谢。

如果您使用的是Windows 10,则需要在Windows中安装指定语言的语言包

它不必是默认的显示语言,但需要位于已安装的语言包中


非常感谢您的帮助

最后,我可以使用名为Vistalizator的应用程序安装我需要的语言包,因为我没有MUI,因为我使用的是Windows7 Professional(我无法通过Microsoft更新安装它)。您只需要此应用程序和您正在使用的Windows版本的语言包;您可以从同一页()下载这两个内容

在应用程序中,选择下载的包含语言包的exe文件,然后切换到Express模式并按照应用程序步骤操作


最后,我可以用我需要的语言看到文本按钮,使用MessageBoxExW函数,它可以工作!非常感谢您的帮助。

我实际上使用的是Windows 7,我想这个版本也是如此。非常感谢您。情况是,我正在尝试安装适用于Windows 7的语言包,但在“控制面板”->“区域和语言”->“键盘和语言”中,它没有显示“显示语言”、“安装/卸载语言”选项。在Windows帮助中,它指出:仅当您已经安装了LIP时,“显示语言”部分才可见。我必须做什么才能安装它?谢谢。请查看此帖子:嗨,路易莎,它在Windows 10上对我有效。它在Windows7上适用吗?非常感谢Rita。现在它仍然不起作用,因为我需要先安装一个LIP,才能看到显示语言部分,在键盘下,区域中的语言和控制面板中的语言,我不知道怎么做。