engine: fix audio language setting

This commit is contained in:
nillerusr 2022-09-10 03:30:28 +03:00
parent 09924b7998
commit 5912845f29
2 changed files with 20 additions and 3 deletions

View file

@ -2738,6 +2738,7 @@ static ConCommand startupmenu( "startupmenu", &CL_CheckToDisplayStartupMenus, "O
ConVar cl_language( "cl_language", "english", FCVAR_USERINFO, "Language (from HKCU\\Software\\Valve\\Steam\\Language)" );
void CL_InitLanguageCvar()
{
Msg("CL_InitLanguageCvar\n");
if ( Steam3Client().SteamApps() )
{
cl_language.SetValue( Steam3Client().SteamApps()->GetCurrentGameLanguage() );
@ -2747,15 +2748,22 @@ void CL_InitLanguageCvar()
char *szLang = getenv("LANG");
if ( CommandLine()->CheckParm( "-language" ) )
{
cl_language.SetValue( CommandLine()->ParmValue( "-language", "english") );
return;
}
else if( szLang )
{
ELanguage lang = PchLanguageICUCodeToELanguage(szLang, k_Lang_English);
const char *szShortLang = GetLanguageShortName(lang);
cl_language.SetValue( szShortLang );
if( Q_strncmp(szShortLang, "none", 4) != 0 )
{
cl_language.SetValue( szShortLang );
return;
}
}
else
cl_language.SetValue( "english" );
cl_language.SetValue( "english" );
}
}

View file

@ -900,11 +900,20 @@ void COM_InitFilesystem( const char *pFullModPath )
}
else
{
char *szLang = getenv("LANG");
// still allow command line override even when not running steam
if (CommandLine()->CheckParm("-audiolanguage"))
{
Q_strncpy(language, CommandLine()->ParmValue("-audiolanguage", "english"), sizeof( language ) - 1);
}
else if( szLang )
{
ELanguage lang = PchLanguageICUCodeToELanguage(szLang, k_Lang_English);
const char *szShortLang = GetLanguageShortName(lang);
if( Q_strncmp(szShortLang, "none", 4) != 0 )
Q_strncpy(language, szShortLang, sizeof( language ) - 1);
}
}
if ( ( Q_strlen(language) > 0 ) && ( Q_stricmp(language, "english") ) )