如何使用带 Python 的 MessageBoxExW 更改 MB_OKCANCEL 按钮文本 (Windows API) 中的语言?
How to change language in MB_OKCANCEL buttons text (Windows API) using MessageBoxExW with Python?
我有一个显示带有两个按钮(确定和取消)的 window 的应用程序,我以前用英文使用它,但现在我想用中文显示确定和取消按钮的文本。
我的原始代码是:
if win32con.IDOK == win32gui.MessageBox(self.hwnd,self.dic.voc["mainwin.quitConfirm"],
self.dic.voc["mainwin.quitConfirmTitle"],
win32con.MB_OKCANCEL):
现在我正在尝试使用 MessageBoxExW
函数,因为在 API 页面中说您可以在最后一个参数 (https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxexw) 中使用任何语言。
所以现在我的代码如下:
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):
但是它继续显示英文文本按钮,而不是中文,我也在我的电脑中设置了区域和语言,中文(简体,中国)'Formats'和'System Locale'.
我的脚本被编码为 'UTF-8'.
当我运行这个,
locale.getdefaultlocale(["LANGUAGE"])
我得到,
('zh_CN', 'cp936')
如果有任何帮助或线索,我将不胜感激。非常感谢。
如果您使用的是Windows 10,您需要在Windows中安装指定语言的语言包。
它不一定是默认显示的语言,但它需要在已安装的语言包中。
非常感谢您的帮助!
最后,我可以使用名为 Vistalizator 的应用程序安装我需要的语言包,因为我没有 MUI,因为我使用的是 Windows 7 Professional(而且我无法通过 Microsoft 安装它更新)。您只需要此应用程序和您正在使用的 Windows 版本的语言包;您可以从同一页面下载两者 (https://www.froggie.sk/es/details.html)。
在应用程序中 select 下载包含语言包的 exe 文件,更改为快速模式并按照应用程序步骤进行操作。
最后我可以看到我需要的语言的文本按钮,并且使用 MessageBoxExW 函数,它起作用了!非常感谢您的帮助。
我有一个显示带有两个按钮(确定和取消)的 window 的应用程序,我以前用英文使用它,但现在我想用中文显示确定和取消按钮的文本。
我的原始代码是:
if win32con.IDOK == win32gui.MessageBox(self.hwnd,self.dic.voc["mainwin.quitConfirm"],
self.dic.voc["mainwin.quitConfirmTitle"],
win32con.MB_OKCANCEL):
现在我正在尝试使用 MessageBoxExW
函数,因为在 API 页面中说您可以在最后一个参数 (https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxexw) 中使用任何语言。
所以现在我的代码如下:
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):
但是它继续显示英文文本按钮,而不是中文,我也在我的电脑中设置了区域和语言,中文(简体,中国)'Formats'和'System Locale'. 我的脚本被编码为 'UTF-8'.
当我运行这个,
locale.getdefaultlocale(["LANGUAGE"])
我得到,
('zh_CN', 'cp936')
如果有任何帮助或线索,我将不胜感激。非常感谢。
如果您使用的是Windows 10,您需要在Windows中安装指定语言的语言包。
它不一定是默认显示的语言,但它需要在已安装的语言包中。
非常感谢您的帮助!
最后,我可以使用名为 Vistalizator 的应用程序安装我需要的语言包,因为我没有 MUI,因为我使用的是 Windows 7 Professional(而且我无法通过 Microsoft 安装它更新)。您只需要此应用程序和您正在使用的 Windows 版本的语言包;您可以从同一页面下载两者 (https://www.froggie.sk/es/details.html)。
在应用程序中 select 下载包含语言包的 exe 文件,更改为快速模式并按照应用程序步骤进行操作。
最后我可以看到我需要的语言的文本按钮,并且使用 MessageBoxExW 函数,它起作用了!非常感谢您的帮助。