Esempio n. 1
0
 int TranslateString(Rocket::Core::String& translated,
                     const Rocket::Core::String& input) {
     const char* ret = Trans_GettextGame(input.CString());
     translated = ret;
     return 0;
 }
Esempio n. 2
0
void SV_PrintTranslatedText( const char *text, qboolean broadcast )
{
	char        str[ MAX_STRING_CHARS ];
	char        buf[ MAX_STRING_CHARS ];
	const char  *in;
	int         i = 0;

	Cmd_SaveCmdContext();
	Cmd_TokenizeString( text );

	Q_strncpyz( buf, Trans_GettextGame( Cmd_Argv( 1 ) ), sizeof( buf ) );
	in = buf;
	memset( &str, 0, sizeof( str ) );
	while( *in )
	{
		const char *inOld = in;

		if( *in == '$' )
		{
			const char *number = ++in;

			while( *in )
			{
				if( *in == '$' )
				{
					str[ i++ ] = *in;
					in++;
					break;
				}

				if( isdigit( *in ) )
				{
					in++;

					if( *in == 't' && *(in+1) == '$' )
					{
						int num = atoi( number );
						if( num <= 0 || num > 99 )
						{
							in++;
							break;
						}

						i += strlen( Trans_GettextGame( Cmd_Argv( num + 1 ) ) );

						if( i >= MAX_STRING_CHARS )
						{
							Com_Printf( "%s", str );
							memset( &str, 0, sizeof( str ) );
							i = strlen( Trans_GettextGame( Cmd_Argv( num + 1 ) ) );
						}

						Q_strcat( str, sizeof( str ), Trans_GettextGame( Cmd_Argv( num + 1 ) ) );
						in += 2;

						break;
					}
					else if( *in == '$' )
					{
						int num = atoi( number );
						if( num <= 0 || num > 99 )
						{
							in++;
							break;
						}
						i += strlen( Cmd_Argv( num + 1 ) );

						if( i >= MAX_STRING_CHARS )
						{
							Com_Printf( "%s", str );
							memset( &str, 0, sizeof( str ) );
							i = strlen( Trans_GettextGame( Cmd_Argv( num + 1 ) ) );
						}

						Q_strcat( str, sizeof( str ), Cmd_Argv( num + 1 ) );
						in++;

						break;
					}
				}
				else
				{
					in = inOld;
					goto broken;
				}
			}
		}
		else
		{
			broken:
			if( i < MAX_STRING_CHARS )
			{
				str[ i++ ] = *in;
				in++;
			}
			else
			{
				Com_Printf( "%s", str );
				memset( &str, 0, sizeof( str ) );
				i = 0;
			}
		}
	}

	Com_Printf( "%s%s",
		broadcast ? "Broadcast: " : "",
		str );

	Cmd_RestoreCmdContext();
}