Rev 197 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef __LANGUAGES_H__
#define __LANGUAGES_H__
#include "Utils\WString.h"
#include <map>
#include <vector>
enum Lang_Section
{
LS_STARTUP = 1,
LS_DIRECTORY,
LS_FILEDIALOG,
LS_SCRIPTTYPE,
};
enum Lang_Startup
{
LANGSTARTUP_ANOTHERINSTANCE_TITLE = 1,
LANGSTARTUP_ANOTHERINSTANCE,
LANGSTARTUP_PROTECTEDDIR,
LANGSTARTUP_LOCKEDDIR,
LANGSTARTUP_LOCKEDDIR_TITLE,
};
enum Lang_Directory
{
LANGDIR_TITLE = 1,
};
typedef std::map<int, Utils::WString> LangPage;
typedef std::map<int, LangPage> LangPages;
typedef std::map<int, LangPages> LangTexts;
class SPKEXPORT CLanguages
{
public:
static CLanguages *Instance();
static void Release();
void setLanguage(int lang);
void pushLanguage(int lang);
void popLanguage();
Utils::WString findText(int section, int id);
protected:
CLanguages();
~CLanguages();
private:
void DEBUG_AddDefaultTexts();
LangPages *_findLanguageText(int id = -1) const;
Utils::WString _error(int section, int id) const;
bool _findText(LangPages *texts, int section, int id, Utils::WString *out) const;
private:
static CLanguages *_pInstance;
int _iLanguage;
LangTexts *_lTexts;
LangPages *_pDefaultLang;
LangPages *_pCurrentLang;
std::vector<int> *_langStack;
};
#endif //__LANGUAGES_H__