int TranslateString(Rocket::Core::String& translated, const Rocket::Core::String& input) { const char* ret = Trans_GettextGame(input.CString()); translated = ret; return 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(); }