diff --git a/engine/cl_main.cpp b/engine/cl_main.cpp index ef098423..6d0134ae 100644 --- a/engine/cl_main.cpp +++ b/engine/cl_main.cpp @@ -72,6 +72,7 @@ #include "replay_internal.h" #endif +#include "language.h" #include "igame.h" // memdbgon must be the last include file in a .cpp file!!! @@ -2743,14 +2744,18 @@ void CL_InitLanguageCvar() } else { + char *szLang = getenv("LANG"); + if ( CommandLine()->CheckParm( "-language" ) ) - { cl_language.SetValue( CommandLine()->ParmValue( "-language", "english") ); + else if( szLang ) + { + ELanguage lang = PchLanguageICUCodeToELanguage(szLang, k_Lang_English); + char *szShortLang = GetLanguageShortName(lang); + cl_language.SetValue( szShortLang ); } else - { cl_language.SetValue( "english" ); - } } } diff --git a/gameui/BasePanel.cpp b/gameui/BasePanel.cpp index 73b084d0..fdb5be43 100644 --- a/gameui/BasePanel.cpp +++ b/gameui/BasePanel.cpp @@ -297,6 +297,16 @@ public: return BaseClass::AddMenuItem(item); } + virtual int AddMenuItem(const char *itemName, wchar_t *itemText, const char *command, Panel *target, KeyValues *userData = NULL) + { + MenuItem *item = new CGameMenuItem(this, itemName); + item->AddActionSignalTarget(target); + item->SetCommand(command); + item->SetText(itemText); + item->SetUserData(userData); + return BaseClass::AddMenuItem(item); + } + virtual int AddMenuItem(const char *itemName, const char *itemText, KeyValues *command, Panel *target, KeyValues *userData = NULL) { CGameMenuItem *item = new CGameMenuItem(this, itemName); @@ -586,6 +596,9 @@ public: KeyValues *kv1 = menuItem1->GetUserData(); KeyValues *kv2 = menuItem2->GetUserData(); + if( !kv1 || !kv2 ) + continue; + if ( kv1->GetInt("InGameOrder") > kv2->GetInt("InGameOrder") ) MoveMenuItem( iID2, iID1 ); } @@ -1478,7 +1491,12 @@ CGameMenu *CBasePanel::RecursiveLoadGameMenu(KeyValues *datafile) { CGameMenu *menu = new CGameMenu(this, datafile->GetName()); - menu->AddMenuItem("Console", "CONSOLE", "OpenConsole", this); + wchar_t *pString = g_pVGuiLocalize->Find( "#GameUI_Console" ); + + if( pString ) + menu->AddMenuItem("Console", V_wcsupr(pString), "OpenConsole", this); + else + menu->AddMenuItem("Console", "CONSOLE", "OpenConsole", this); // loop through all the data adding items to the menu for (KeyValues *dat = datafile->GetFirstSubKey(); dat != NULL; dat = dat->GetNextKey())