From: <ma...@us...> - 2013-04-02 21:45:28
|
Revision: 8664 http://planeshift.svn.sourceforge.net/planeshift/?rev=8664&view=rev Author: magodra Date: 2013-04-02 21:45:22 +0000 (Tue, 02 Apr 2013) Log Message: ----------- - Added sorting when writing language files. Modified Paths: -------------- trunk/src/common/util/localization.cpp Modified: trunk/src/common/util/localization.cpp =================================================================== --- trunk/src/common/util/localization.cpp 2013-04-02 20:20:20 UTC (rev 8663) +++ trunk/src/common/util/localization.cpp 2013-04-02 21:45:22 UTC (rev 8664) @@ -196,6 +196,12 @@ dirty = false; } +int CompareStringTableItem(psStringTableItem* const &first, psStringTableItem* const &second) +{ + return csComparator<csString,csString>::Compare(first->original,second->original); +} + + void psLocalization::WriteStringTable() { if (filename.IsEmpty()) @@ -220,18 +226,28 @@ file->Write(AuthorString, AuthorString.Length()); file->Write("<StringTable>\n", strlen("<stringtable>\n") ); - int i=0; + // Sort the list before writing. + csArray<psStringTableItem*> array; while (iter.HasNext()) { - i++; item = (psStringTableItem*)iter.Next(); + array.InsertSorted(item,CompareStringTableItem); + } + + // Write the sorted list to file. + csArray<psStringTableItem*>::Iterator iterSorted = array.GetIterator(); + int count=0; + while (iterSorted.HasNext()) + { + count++; + item = (psStringTableItem*)iterSorted.Next(); csString line; line.Format(" <item orig=\"%s\" trans=\"%s\" />\n", EscpXML(item->original).GetDataSafe(), EscpXML(item->translated).GetDataSafe() ); file->Write(line, line.Length() ); } - file->Write("</StringTable>",strlen("</stringtable>") ); + file->Write("</StringTable>\n",strlen("</stringtable>\n") ); - printf("-----------------------------------\nSaved %d translation entries.\n-----------------------------------\n", i); + printf("-----------------------------------\nSaved %d translation entries.\n-----------------------------------\n", count); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |