00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __LOCALIZEDSTRING_H__
00012 #define __LOCALIZEDSTRING_H__
00013
00014 #include "Common/CommonDll.h"
00015 #include "Common/ini.h"
00016
00017
00018 enum E_LANGUAGE
00019 {
00020 E_LANGUAGE_FRENCH,
00021 E_LANGUAGE_ENGLISH,
00022 E_LANGUAGE_ITALIAN,
00023 E_LANGUAGE_SPANISH,
00024 E_LANGUAGE_GERMAN,
00025 E_LANGUAGE_COUNT
00026 };
00027
00028
00029 class COMMON_API KLocalizedString
00030 {
00031 protected :
00032
00033 KIni* m_pIniFile ;
00034 E_LANGUAGE m_eLanguage ;
00035 static char* s_Language[E_LANGUAGE_COUNT] ;
00036
00037 public :
00038 KLocalizedString() ;
00039 ~KLocalizedString() ;
00040
00041 bool Init(char *pIniFile) ;
00042 const char* GetString(char *pSection) ;
00043
00044 void SetLanguage(E_LANGUAGE eLanguage) { m_eLanguage = eLanguage ; }
00045 void SetLanguagePrefix( char* pPrefix );
00046 const char* GetLanguagePrefix() { return s_Language[m_eLanguage]; }
00047 const char* GetLanguagePrefix(E_LANGUAGE eLanguage) { return s_Language[eLanguage]; }
00048 E_LANGUAGE GetLanguage() { return m_eLanguage ; }
00049 };
00050
00051
00052 extern COMMON_API KLocalizedString g_LocalizedString ;
00053
00054 #define INITLOCALSTRING(inifile) g_LocalizedString.Init(inifile) // Ouvre le fichier .ini contenant les textes
00055 #define SETLANGUAGELOCALSTRING(language) g_LocalizedString.SetLanguage(language) // Change la langue
00056 #define GETLOCALSTRING(__x) g_LocalizedString.GetString(#__x) // Retourne la chaine localisée
00057 #define GETLOCALSTRINGSTR(x) g_LocalizedString.GetString(x) // Retourne la chaine localisée
00058 #define GETLANGUAGE() g_LocalizedString.GetLanguage()
00059 #define GETLANGUAGEPREFIX() g_LocalizedString.GetLanguagePrefix()
00060 #define GETLANGUAGEPREFIX2(x) g_LocalizedString.GetLanguagePrefix(x)
00061
00062 #endif __LOCALIZEDSTRING_H__