MyGUI  3.0.1
MyGUI_LanguageManager.h
Go to the documentation of this file.
1 
7 /*
8  This file is part of MyGUI.
9 
10  MyGUI is free software: you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  MyGUI is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
22 */
23 #ifndef __MYGUI_LANGUAGE_MANAGER_H__
24 #define __MYGUI_LANGUAGE_MANAGER_H__
25 
26 #include "MyGUI_Prerequest.h"
27 #include "MyGUI_Instance.h"
28 #include "MyGUI_XmlDocument.h"
29 #include "MyGUI_Delegate.h"
30 
31 namespace MyGUI
32 {
33 
35  {
37 
38  public:
39  void initialise();
40  void shutdown();
41 
43  bool load(const std::string& _file);
44 
45  void _load(xml::ElementPtr _node, const std::string& _file, Version _version);
46 
48  void setCurrentLanguage(const std::string& _name);
50  const std::string& getCurrentLanguage();
51 
54  UString replaceTags(const UString& _line);
55 
57  UString getTag(const UString& _tag);
58 
60  void addUserTag(const UString& _tag, const UString& _replace);
61 
63  void clearUserTags();
64 
65  bool loadUserTags(const std::string& _file);
66 
72 
73  private:
74  //bool loadResourceLanguage(const std::string& _name);
75  bool loadLanguage(const std::string& _file, bool _user = false);
76  void _loadLanguage(IDataStream* _stream, bool _user);
77  void _loadLanguageXML(IDataStream* _stream, bool _user);
78  //void _loadSource(xml::ElementPtr _node, const std::string& _file, Version _version);
79 
80  private:
81  typedef std::map<UString, UString> MapLanguageString;
82 
83  MapLanguageString mMapLanguage;
84  MapLanguageString mUserMapLanguage;
85 
86  std::string mCurrentLanguageName;
87 
88  typedef std::vector<std::string> VectorString;
89  typedef std::map<std::string, VectorString> MapListString;
90  MapListString mMapFile;
91 
92  };
93 
94 } // namespace MyGUI
95 
96 #endif // __MYGUI_LANGUAGE_MANAGER_H__