Fixed language support for Vista.

This commit is contained in:
luigi__ 2009-02-10 16:28:22 +00:00
parent 93a6318a42
commit f42c529a5a
1 changed files with 33 additions and 28 deletions

View File

@ -1052,25 +1052,30 @@ void MenuDeinit()
DestroyMenu(mainMenu); DestroyMenu(mainMenu);
} }
typedef int (WINAPI *setLanguageFunc)(LANGID id);
void SetLanguage(int langid) void SetLanguage(int langid)
{ {
OSVERSIONINFO info;
ZeroMemory(&info, sizeof(info));
info.dwOSVersionInfoSize = sizeof(info);
GetVersionEx(&info);
setLanguageFunc setLanguage = ((info.dwMajorVersion >= 6) ?
(setLanguageFunc)SetThreadUILanguage : (setLanguageFunc)SetThreadLocale);
switch(langid) switch(langid)
{ {
case 1: case 1:
// French // French
SetThreadLocale(MAKELCID(MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), setLanguage(MAKELCID(MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), SORT_DEFAULT));
SORT_DEFAULT));
break; break;
case 2: case 2:
// Danish // Danish
SetThreadLocale(MAKELCID(MAKELANGID(LANG_DANISH, SUBLANG_DEFAULT), setLanguage(MAKELCID(MAKELANGID(LANG_DANISH, SUBLANG_DEFAULT), SORT_DEFAULT));
SORT_DEFAULT));
break; break;
case 0: case 0:
// English // English
SetThreadLocale(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), setLanguage(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));
SORT_DEFAULT));
break; break;
default: break; default: break;
break; break;