KVIrc 5.2.6
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
101public:
109 static void init(QApplication * pApp, const QString & szLocaleDir, const QString & szForceLocaleDir);
110
116 static void done();
117
122 static inline KviLocale * instance() { return m_pSelf; }
123
131 EncodingDescription * encodingDescription(int iIdx);
132
140 const char * encodingGroup(int iIdx);
141
146 const QString & localeName() const { return g_szLang; }
147
153 QTextCodec * codecForName(const char * pcName);
154
168 bool findCatalogue(QString & szBuffer, const QString & szName, const QString & szLocaleDir);
169
176 KviMessageCatalogue * loadCatalogue(const QString & szName, const QString & szLocaleDir);
177
183 bool unloadCatalogue(const QString & szName);
184
190 KviMessageCatalogue * getLoadedCatalogue(const QString & szName);
191
198 const char * translate(const char * pcText, const char * pcContext);
199
206 const QString & translateToQString(const char * pcText, const char * pcContext);
207};
208
209#ifndef _KVI_LOCALE_CPP_
211#endif // !_KVI_LOCALE_CPP_
212
213#define __tr(text) g_pMainCatalogue->translate(text)
214#define __tr_no_lookup(text) text
215#define __tr_no_xgettext(text) g_pMainCatalogue->translate(text)
216#define __tr2qs(text) g_pMainCatalogue->translateToQString(text)
217#define __tr2qs_no_lookup(text) text
218#define __tr2qs_no_xgettext(text) g_pMainCatalogue->translateToQString(text)
219
220#define __tr_ctx(text, context) KviLocale::instance()->translate(text, context)
221#define __tr_no_lookup_ctx(text, context) text
222#define __tr_no_xgettext_ctx(text, context) KviLocale::instance()->translate(text, context)
223#define __tr2qs_ctx(text, context) KviLocale::instance()->translateToQString(text, context)
224#define __tr2qs_ctx_no_xgettext(text, context) KviLocale::instance()->translateToQString(text, context)
225
226#endif //_KVI_LOCALE_H_
Heap Object.
KVILIB_API KviMessageCatalogue * g_pMainCatalogue
Definition KviLocale.cpp:49
Definition KviCString.h:102
Definition KviHeapObject.h:119
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:146
static KviLocale * instance()
Returns the instance of the class.
Definition KviLocale.h:122
static KviLocale * m_pSelf
Definition KviLocale.h:99
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