示例#1
0
int main(int argc, const char **argv)
{
    char szCmdLine[1024];
    char *pszStart = szCmdLine;
    char * const pszEnd = szCmdLine + Q_ARRAYSIZE(szCmdLine);

    *szCmdLine = '\0';

    for ( int i = 1; i < argc; i++ )
    {
        const char *parm = argv[i];
        while ( *parm && (pszStart < pszEnd) )
        {
            *pszStart++ = *parm++;
        }

        if ( pszStart >= pszEnd )
            break;

        if ( i < argc-1 )
            *pszStart++ = ' ';
    }

    szCmdLine[Q_ARRAYSIZE(szCmdLine) - 1] = '\0';

    return RealMain( szCmdLine, 0, 0 );
}
示例#2
0
//-----------------------------------------------------------------------------
// Purpose: find the language by ICU short code
//-----------------------------------------------------------------------------
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault )
{
	Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
	if ( !pchICUCode )
		return eDefault;

	// Match to no more than the param length so either a short 'en' or
	// full 'zh-Hant' can match
	int nLen = Q_strlen( pchICUCode );

	// we only have 5 character ICU codes so this should be enough room
	char rchCleanedCode[ 6 ];
	Q_strncpy( rchCleanedCode, pchICUCode, Q_ARRAYSIZE( rchCleanedCode ) );
	if( nLen >= 3 && rchCleanedCode[ 2 ] == '-' )
	{
		rchCleanedCode[ 2 ] = '_';
	}

	for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
	{
		if ( !Q_strnicmp( rchCleanedCode, s_LanguageNames[iLang].m_pchICUName, nLen ) )
		{
			return s_LanguageNames[iLang].m_ELanguage;
		}
	}

	// return default
	return eDefault;
}
示例#3
0
//-----------------------------------------------------------------------------
// Purpose: find the language by name
//-----------------------------------------------------------------------------
ELanguage PchLanguageToELanguage( const char *pchShortName, ELanguage eDefault )
{
	Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
	if ( !pchShortName )
		return eDefault;

	for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
	{
		if ( !Q_stricmp( pchShortName, s_LanguageNames[iLang].m_pchShortName ) )
		{
			return s_LanguageNames[iLang].m_ELanguage;
		}
	}

	// return default
	return eDefault;
}
示例#4
0
//-----------------------------------------------------------------------------
// Purpose: translate language enum into closests windows language code ID
//-----------------------------------------------------------------------------
int GetLanguageCodeID(ELanguage eLang)
{
	for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
	{
		if ( s_LanguageNames[iLang].m_ELanguage == eLang )
			return s_LanguageNames[iLang].m_LanguageCodeID;
	}

	// default to English
	return 1033;
}
示例#5
0
//-----------------------------------------------------------------------------
// Purpose: return the short string name used for this language by SteamUI
//-----------------------------------------------------------------------------
const char *GetLanguageVGUILocalization( ELanguage eLang )
{
	COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
	if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
	{
		Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
		return s_LanguageNames[ eLang + 1 ].m_pchVGUILocalizationName;
	}

	Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
	return s_LanguageNames[0].m_pchVGUILocalizationName;
}