diff --git a/stepmania/src/ProfileHtml.cpp b/stepmania/src/ProfileHtml.cpp index 393f11fe1d..9f2a5384e0 100644 --- a/stepmania/src/ProfileHtml.cpp +++ b/stepmania/src/ProfileHtml.cpp @@ -39,13 +39,20 @@ const CString STYLE_CSS = "Style.css"; #define SHOW_PLAY_MODE(pm) THEME->GetMetric("ProfileHtml","ShowPlayMode"+PlayModeToString(pm)) #define SHOW_RADAR_CATEGORY(rc) THEME->GetMetricB("ProfileHtml","ShowRadarCategory"+RadarCategoryToString(rc)) +#define NEWLINE "\r\n" + +void TranslatedWrite( RageFile &f, CString s ) +{ + s.Replace("\n",NEWLINE); + f.Write( s ); +} static int g_Level = 1; inline CString MakeUniqueId() { CString s="id"+ssprintf("%d%d%d",rand(),rand(),rand()); return s; } -inline void PRINT_OPEN(RageFile &f,CString sName,bool bExpanded,CString sID){ g_Level++; ASSERT(g_Level>0 && g_Level<6); f.Write( ssprintf("
\n" "%s\n" "
\n", g_Level, g_Level, sID.c_str(), sName.c_str(), g_Level, sID.c_str(), bExpanded?"visibletext":"hiddentext") ); } +inline void PRINT_OPEN(RageFile &f,CString sName,bool bExpanded,CString sID){ g_Level++; ASSERT(g_Level>0 && g_Level<6); TranslatedWrite(f,ssprintf("
\n" "%s\n" "
\n", g_Level, g_Level, sID.c_str(), sName.c_str(), g_Level, sID.c_str(), bExpanded?"visibletext":"hiddentext") ); } inline void PRINT_OPEN(RageFile &f,CString sName,bool bExpanded=false) { PRINT_OPEN(f,sName,bExpanded,MakeUniqueId()); } -inline void PRINT_CLOSE(RageFile &f) { f.Write( "
\n" "
\n" ); g_Level--; ASSERT(g_Level>=0); } +inline void PRINT_CLOSE(RageFile &f) { TranslatedWrite(f, "
\n" "
\n" ); g_Level--; ASSERT(g_Level>=0); } struct Table @@ -100,83 +107,83 @@ inline void PrintTable(RageFile &f,Table &table) int iMaxItemsPerCol = (vLines.size()+iNumCols-1) / iNumCols; iNumCols = (vLines.size()+iMaxItemsPerCol-1) / iMaxItemsPerCol; // round up - f.Write(ssprintf("\n",bPrintInstructions?"instructions":"group")); + TranslatedWrite(f,ssprintf("
\n",bPrintInstructions?"instructions":"group")); if( iNumCols == 0 ) { - f.Write("\n"); + TranslatedWrite(f,"\n"); } for( int col=0; col\n"); + TranslatedWrite(f,"
emptyempty\n"); int iStartItem = col*iMaxItemsPerCol; - f.Write("\n"); + TranslatedWrite(f,"
\n"); for( int i=iStartItem; i"); + TranslatedWrite(f,""); const Table::Line& line = (i<(int)vLines.size()) ? vLines[i] : Table::Line(); if( bPrintRank ) { - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,""); } if( bPrintRank ) { - f.Write(""); + TranslatedWrite(f,""); } else if( line.sValue.empty() ) { - f.Write(""); + TranslatedWrite(f,""); } else { - f.Write(""); + TranslatedWrite(f,""); } if( !line.sSubSubName.empty() ) { - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,""); } if( !line.sValue.empty() ) { - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,""); } - f.Write( "\n" ); + TranslatedWrite(f, "\n" ); - f.Write(""); + TranslatedWrite(f,"\n"); } - f.Write("
"); - f.Write( line.sRank ); - f.Write(" "); + TranslatedWrite(f, line.sRank ); + TranslatedWrite(f," "); - f.Write("

"); - f.Write( line.sName ); - f.Write("

"); + TranslatedWrite(f,"
"); + TranslatedWrite(f,"

"); + TranslatedWrite(f, line.sName ); + TranslatedWrite(f,"

"); if( !line.sSubName.empty() ) { - f.Write("

"); - f.Write( line.sSubName ); - f.Write("

"); + TranslatedWrite(f,"

"); + TranslatedWrite(f, line.sSubName ); + TranslatedWrite(f,"

"); } - f.Write("
"); - f.Write( line.sName ); - f.Write(""); + TranslatedWrite(f, line.sName ); + TranslatedWrite(f,""); - f.Write( line.sName ); - f.Write(""); + TranslatedWrite(f, line.sName ); + TranslatedWrite(f," "); - f.Write("

"); - f.Write( line.sSubSubName ); - f.Write("

"); - f.Write("
 "); + TranslatedWrite(f,"

"); + TranslatedWrite(f, line.sSubSubName ); + TranslatedWrite(f,"

"); + TranslatedWrite(f,"
 "); - f.Write( line.sValue ); - f.Write(" "); + TranslatedWrite(f, line.sValue ); + TranslatedWrite(f,"
\n"); + TranslatedWrite(f,"
\n"); - f.Write("\n"); + TranslatedWrite(f,"\n"); } - f.Write("\n"); + TranslatedWrite(f,"\n\n"); } #define STRING_AS_LINK(s) CString(""+s+"") @@ -716,29 +723,29 @@ bool PrintGradeTableForStepsType( RageFile &f, const Profile *pProfile, StepsTyp PRINT_OPEN(f, GAMEMAN->NotesTypeToThemedString(st).c_str() ); { - f.PutLine( "\n" ); + TranslatedWrite(f, "
\n" ); // table header row - f.Write( "" ); + TranslatedWrite(f, "" ); FOREACH_Difficulty( dc ) { if( dc == DIFFICULTY_EDIT ) continue; // skip - f.PutLine( ssprintf("", Capitalize(DifficultyToThemedString(dc)).c_str()) ); + TranslatedWrite(f, ssprintf("", Capitalize(DifficultyToThemedString(dc)).c_str()) ); } - f.PutLine( "" ); + TranslatedWrite(f, "\n" ); // table body rows for( i=0; i" ); + TranslatedWrite(f, "" ); - f.Write( "" ); + TranslatedWrite(f, "" ); FOREACH_Difficulty( dc ) { @@ -748,24 +755,24 @@ bool PrintGradeTableForStepsType( RageFile &f, const Profile *pProfile, StepsTyp Steps* pSteps = pSong->GetStepsByDifficulty( st, dc, false ); if( pSteps && !pSteps->IsAutogen() ) { - f.PutLine(""); + TranslatedWrite(f, ssprintf("%s",GradeToThemedString(grade).c_str()) ); + TranslatedWrite(f,""); } else { - f.PutLine( "" ); + TranslatedWrite(f, "" ); } } - f.Write( "" ); + TranslatedWrite(f, "\n" ); } - f.PutLine( "
 
 %s%s
" ); - f.Write( ssprintf("

%s

", pSong->GetDisplayMainTitle().c_str()) ); - f.Write( ssprintf("

%s

", pSong->GetDisplaySubTitle().c_str()) ); - f.Write( "
" ); + TranslatedWrite(f, ssprintf("

%s

", pSong->GetDisplayMainTitle().c_str()) ); + TranslatedWrite(f, ssprintf("

%s

", pSong->GetDisplaySubTitle().c_str()) ); + TranslatedWrite(f, "
"); - f.PutLine( ssprintf("%d",pSteps->GetMeter()) ); + TranslatedWrite(f,""); + TranslatedWrite(f, ssprintf("%d",pSteps->GetMeter()) ); HighScore hs = pProfile->GetStepsHighScoreList( pSong,pSteps ).GetTopScore(); Grade grade = hs.grade; if( grade != GRADE_NO_DATA ) - f.PutLine( ssprintf("%s",GradeToThemedString(grade).c_str()) ); - f.PutLine("  
\n" ); + TranslatedWrite(f, "\n" ); } PRINT_CLOSE(f); @@ -940,10 +947,10 @@ void PrintScreenshot( RageFile &f, const Profile::Screenshot &ss ) CString sImgHtml = ssprintf("", sImagePath.c_str(), sImagePath.c_str() ); - f.Write("\n"); - f.Write("\n"); - f.Write("\n"); - f.Write("
"+sImgHtml+"\n"); + TranslatedWrite(f,"\n"); + TranslatedWrite(f,"\n"); + TranslatedWrite(f,"\n"); + TranslatedWrite(f,"\n"); + TranslatedWrite(f,"\n"); - f.Write("
"+sImgHtml+"\n"); BEGIN_TABLE(1); @@ -954,9 +961,9 @@ void PrintScreenshot( RageFile &f, const Profile::Screenshot &ss ) END_TABLE; - f.Write("
\n"); + TranslatedWrite(f,"
\n"); } void PrintScreenshots( RageFile &f, const Profile *pProfile, CString sTitle, CString sProfileDir ) @@ -1005,17 +1012,17 @@ void PrintCaloriesBurned( RageFile &f, const Profile *pProfile, CString sTitle, { PRINT_OPEN(f, sTitle ); { - f.Write("\n"); + TranslatedWrite(f,"
\n"); // header row - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,""); { for( int i=0; i"+DayOfWeekToShortString(i)+""); + TranslatedWrite(f,""); } - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,"\n"); // row for each week tm when = GetLocalTime(); @@ -1025,8 +1032,8 @@ void PrintCaloriesBurned( RageFile &f, const Profile *pProfile, CString sTitle, for( int i=0; i"); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,""); for( int i=0; i"+sCalories+""); + TranslatedWrite(f,""); when = AddDays( when, +1 ); } - f.Write(""); - f.Write(""); + TranslatedWrite(f,""); + TranslatedWrite(f,"\n"); when = AddDays( when, -DAYS_IN_WEEK*2 ); } } - f.Write("
"+DayOfWeekToShortString(i)+"Total
Total
"+LastWeekToString(i)+"
"+LastWeekToString(i)+""+sCalories+""+Commify((int)fWeekCals)+"
"+Commify((int)fWeekCals)+"
\n"); + TranslatedWrite(f,"\n"); } PRINT_CLOSE(f); } @@ -1124,7 +1131,7 @@ void SaveStatsWebPage( // Print HTML headers // { - f.PutLine( ssprintf("\ + TranslatedWrite(f, ssprintf("\ \n\ \n\ \n\ @@ -1187,8 +1194,8 @@ TITLE.c_str(), STYLE_CSS.c_str() ) ); ASSERT(0); } - f.Write( ssprintf( - "

%s

%s
\n", + TranslatedWrite(f, ssprintf( + "\n

%s

%s
\n", TITLE.c_str(), sNameCell.c_str() ) ); switch( htmlType ) @@ -1221,13 +1228,14 @@ TITLE.c_str(), STYLE_CSS.c_str() ) ); ASSERT(0); } - f.PutLine( ssprintf("\n", FOOTER.c_str()) ); + TranslatedWrite(f, ssprintf("\n", FOOTER.c_str()) ); - f.PutLine( "\n" ); - f.PutLine( "\n" ); + TranslatedWrite(f, "\n" ); + TranslatedWrite(f, "\n" ); f.Close(); - // don't sign Stats.html. It's redundant and very slow. + // Don't sign Stats.html. The html data is redundant to the xml data, and + // signing is slow. //if( PREFSMAN->m_bSignProfileData ) // CryptManager::SignFileToFile(fn);