KVIrc 5.2.0
Developer APIs
KviLocale.h
Go to the documentation of this file.
1#ifndef _KVI_LOCALE_H_
2#define _KVI_LOCALE_H_
3//=============================================================================
4//
5// File : KviLocale.h
6// Creation date : Sat Jan 16 1999 18:15:01 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 1999-2010 Szymon Stefanek (pragma at kvirc dot net)
10// Copyright (C) 2011 Elvio Basello (hellvis69 at gmail dot com)
11//
12// This program is FREE software. You can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// as published by the Free Software Foundation; either version 2
15// of the License, or (at your option) any later version.
16//
17// This program is distributed in the HOPE that it will be USEFUL,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20// See the GNU General Public License for more details.
21//
22// You should have received a copy of the GNU General Public License
23// along with this program. If not, write to the Free Software Foundation,
24// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25//
26//=============================================================================
27
34#include "kvi_settings.h"
35#include "KviHeapObject.h"
36#include "KviMessageCatalogue.h"
37
38class KviCString;
39class QApplication;
40class QString;
41class QTextCodec;
42
47#ifndef QT_NO_BIG_CODECS
48#define KVI_NUM_ENCODINGS 112
49#define KVI_NUM_ENCODING_GROUPS 8
50#else
51#define KVI_NUM_ENCODINGS 85
52#define KVI_NUM_ENCODING_GROUPS 5
53#endif
54
60{
61public:
68 {
69 const char * pcName;
70 char bSmart;
71 char bSendUtf8;
72 uint uGroup;
73 const char * pcDescription;
74 };
75
76protected:
84 KviLocale(QApplication * pApp, const QString & szLocaleDir, const QString & szForceLocaleDir);
85
90 ~KviLocale();
91
92public:
93 static QString g_szLang;
94
95protected:
96 QApplication * m_pApp;
97
98private:
100 static unsigned int m_uCount;
101
102public:
110 static void init(QApplication * pApp, const QString & szLocaleDir, const QString & szForceLocaleDir);
111
117 static void done();
118
123 static inline KviLocale * instance() { return m_pSelf; }
124
129 unsigned int count() { return m_uCount; }
130
138 EncodingDescription * encodingDescription(int iIdx);
139
147 const char * encodingGroup(int iIdx);
148
153 const QString & localeName() const { return g_szLang; }
154
160 QTextCodec * codecForName(const char * pcName);
161
175 bool findCatalogue(QString & szBuffer, const QString & szName, const QString & szLocaleDir);
176
183 KviMessageCatalogue * loadCatalogue(const QString & szName, const QString & szLocaleDir);
184
190 bool unloadCatalogue(const QString & szName);
191
197 KviMessageCatalogue * getLoadedCatalogue(const QString & szName);
198
205 const char * translate(const char * pcText, const char * pcContext);
206
213 const QString & translateToQString(const char * pcText, const char * pcContext);
214};
215
216#ifndef _KVI_LOCALE_CPP_
218#endif // !_KVI_LOCALE_CPP_
219
220#define __tr(text) g_pMainCatalogue->translate(text)
221#define __tr_no_lookup(text) text
222#define __tr_no_xgettext(text) g_pMainCatalogue->translate(text)
223#define __tr2qs(text) g_pMainCatalogue->translateToQString(text)
224#define __tr2qs_no_lookup(text) text
225#define __tr2qs_no_xgettext(text) g_pMainCatalogue->translateToQString(text)
226
227#define __tr_ctx(text, context) KviLocale::instance()->translate(text, context)
228#define __tr_no_lookup_ctx(text, context) text
229#define __tr_no_xgettext_ctx(text, context) KviLocale::instance()->translate(text, context)
230#define __tr2qs_ctx(text, context) KviLocale::instance()->translateToQString(text, context)
231#define __tr2qs_ctx_no_xgettext(text, context) KviLocale::instance()->translateToQString(text, context)
232
233#endif //_KVI_LOCALE_H_
Heap Object.
KVILIB_API KviMessageCatalogue * g_pMainCatalogue
Definition KviLocale.cpp:49
Definition KviCString.h:102
Definition KviHeapObject.h:125
Holds the localization functions.
Definition KviLocale.h:60
static QString g_szLang
Definition KviLocale.h:93
QApplication * m_pApp
Definition KviLocale.h:96
const QString & localeName() const
Returns the language code of the localization.
Definition KviLocale.h:153
static KviLocale * instance()
Returns the instance of the class.
Definition KviLocale.h:123
static KviLocale * m_pSelf
Definition KviLocale.h:99
static unsigned int m_uCount
Definition KviLocale.h:100
unsigned int count()
Returns the number of instances of the class.
Definition KviLocale.h:129
The KviMessageCatalogue class.
Definition KviMessageCatalogue.h:47
This file contains compile time settings.
#define KVILIB_API
Definition kvi_settings.h:124
Definition KviLocale.h:68
const char * pcDescription
Definition KviLocale.h:73
uint uGroup
Definition KviLocale.h:72
const char * pcName
Definition KviLocale.h:69
char bSendUtf8
Definition KviLocale.h:71
char bSmart
Definition KviLocale.h:70
int init()
Definition winamp.cpp:118
char szBuffer[4096]
Definition winamp.cpp:77