Subversion Repositories spk

Rev

Rev 121 | Rev 197 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 121 Rev 122
Line 5... Line 5...
5
#include <map>
5
#include <map>
6
#include <vector>
6
#include <vector>
7
 
7
 
8
enum Lang_Section 
8
enum Lang_Section 
9
{ 
9
{ 
10
	LS_STARTUP, 
10
	LS_STARTUP		= 1, 
-
 
11
	LS_DIRECTORY,
11
	LS_FILEDIALOG 
12
	LS_FILEDIALOG 
12
};
13
};
13
 
14
 
14
enum 
15
enum Lang_Startup
15
{ 
16
{ 
16
	LANGSTARTUP_ANOTHERINSTANCE_TITLE,
17
	LANGSTARTUP_ANOTHERINSTANCE_TITLE	= 1,
17
	LANGSTARTUP_ANOTHERINSTANCE,
18
	LANGSTARTUP_ANOTHERINSTANCE,
18
	LANGSTARTUP_PROTECTEDDIR,
19
	LANGSTARTUP_PROTECTEDDIR,
19
	LANGSTARTUP_LOCKEDDIR,
20
	LANGSTARTUP_LOCKEDDIR,
20
	LANGSTARTUP_LOCKEDDIR_TITLE,
21
	LANGSTARTUP_LOCKEDDIR_TITLE,
21
};
22
};
22
 
23
 
23
#define LANGMAP std::map<Utils::String, Utils::String>
24
enum Lang_Directory
-
 
25
{
-
 
26
	LANGDIR_TITLE	 = 1,
-
 
27
};
-
 
28
 
24
typedef std::map<int, Utils::String> LangPage;
29
typedef std::map<int, Utils::String> LangPage;
25
typedef std::map<int, LangPage> LangMap;
30
typedef std::map<int, LangPage> LangPages;
26
 
-
 
27
typedef struct SLanguageTexts {
31
typedef std::map<int, LangPages> LangTexts;
28
	int		iLang;
-
 
29
	LANGMAP	texts;
-
 
30
} SLanguageTexts;
-
 
31
 
32
 
32
class SPKEXPORT CLanguages
33
class SPKEXPORT CLanguages
33
{
34
{
34
public:
35
public:
35
	static CLanguages *Instance();
36
	static CLanguages *Instance();
36
	static void Release();
37
	static void Release();
37
 
38
 
38
	void SetLanguage(int lang) { m_iLanguage = lang; }
39
	void SetLanguage(int lang);
39
 
40
 
40
	Utils::String findText(int section, int id);
41
	Utils::String findText(int section, int id);
41
 
42
 
42
protected:
43
protected:
43
	CLanguages();
44
	CLanguages();
44
	~CLanguages();
45
	~CLanguages();
45
 
46
 
46
private:
47
private:
47
	Utils::String GetText(int section, int id)
-
 
48
	{
-
 
49
		switch(section)
-
 
50
		{
-
 
51
			case LS_STARTUP:
-
 
52
				return GetText_Startup(id);
48
	void DEBUG_AddDefaultTexts();
53
		}
-
 
54
 
-
 
55
		return _error(section, id);
-
 
56
	}
-
 
57
 
-
 
58
	Utils::String GetText_Startup(int id)
-
 
59
	{
-
 
60
		switch(id)
-
 
61
		{
-
 
62
			case LANGSTARTUP_ANOTHERINSTANCE_TITLE:
-
 
63
				return "Another Instance Detected";
-
 
64
				
-
 
65
			case LANGSTARTUP_ANOTHERINSTANCE:
-
 
66
				return "Another instance of the plugin manager is already running";
-
 
67
 
-
 
68
			case LANGSTARTUP_PROTECTEDDIR:
-
 
69
				return "";
-
 
70
 
-
 
71
			case LANGSTARTUP_LOCKEDDIR_TITLE:
-
 
72
				return "Directory Locked";
-
 
73
 
-
 
74
			case LANGSTARTUP_LOCKEDDIR:
-
 
75
				return "ERROR: The game directory:\n%s\n\nIs locked and unable to add/remove any plugins";
-
 
76
		}
-
 
77
		return _error(LS_STARTUP, id);
-
 
78
	}
-
 
79
 
49
 
80
	SLanguageTexts *_findLanguageText(int id = -1);
50
	LangPages *_findLanguageText(int id = -1) const;
81
	Utils::String _error(int section, int id)
51
	Utils::String _error(int section, int id) const;
82
	{
-
 
83
		return "ReadText" + Utils::String::Number(section) + "-" + Utils::String::Number(id);
52
	bool _findText(LangPages *texts, int section, int id, Utils::String *out) const;
84
	}
-
 
85
 
53
 
86
private:
54
private:
87
	static CLanguages *_pInstance;
55
	static CLanguages *_pInstance;
88
 
56
 
89
	int		m_iLanguage;
57
	int			_iLanguage;
90
 
-
 
91
	std::vector<SLanguageTexts> *_lLanguages;
58
	LangTexts	*_lTexts;
-
 
59
	LangPages	*_pDefaultLang;
-
 
60
	LangPages	*_pCurrentLang;
92
};
61
};
93
 
62
 
94
#endif //__LANGUAGES_H__
63
#endif //__LANGUAGES_H__