XmlTextsFile.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "core/XmlTextsFile.h"
  2. #include "core/Logger.h"
  3. #include "core/XmlTextFile.h"
  4. XmlTextsFile::XmlTextsFile( const Ogre::String& file ):
  5. XmlFile( file )
  6. {
  7. }
  8. XmlTextsFile::~XmlTextsFile()
  9. {
  10. }
  11. void
  12. XmlTextsFile::LoadTexts( const Ogre::String& language )
  13. {
  14. TiXmlNode* node = m_File.RootElement();
  15. if( node == NULL || node->ValueStr() != "texts" )
  16. {
  17. LOG_ERROR( "UI Text Manager: " + m_File.ValueStr() + " is not a valid texts file! No <texts> in root." );
  18. return;
  19. }
  20. node = node->FirstChild();
  21. while( node != NULL )
  22. {
  23. if( node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "language" )
  24. {
  25. if( GetString( node, "name" ) == language )
  26. {
  27. TiXmlNode* node2 = node->FirstChild();
  28. while( node2 != NULL )
  29. {
  30. if( node2->Type() == TiXmlNode::TINYXML_ELEMENT && node2->ValueStr() == "text" )
  31. {
  32. Ogre::String file = GetString( node2, "file" );
  33. if( file != "" )
  34. {
  35. XmlTextFile text( "./data/" + file );
  36. text.LoadText();
  37. }
  38. else
  39. {
  40. LOG_ERROR( "Empty filename in language " + language + "." );
  41. }
  42. }
  43. node2 = node2->NextSibling();
  44. }
  45. }
  46. }
  47. node = node->NextSibling();
  48. }
  49. }