У меня есть приложение, которое показывает окно с двумя кнопками (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 говорит, что вы можете использовать любой язык в последнем параметре (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):
Но он продолжает отображать текстовые кнопки на английском, а не на китайском, я также установил на своем компьютере, в Регион и язык, китайский (упрощенный, КНР) в «Форматы»'и в' System Locale '. И мой сценарий закодирован как' UTF-8 '.
Когда я запускаю это,
locale.getdefaultlocale(["LANGUAGE"])
я получаю,
('zh_CN', 'cp936')
Буду очень признателен за любую помощь или подсказку. Большое спасибо.