git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45080
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
\membersection{::wxGetTranslation}\label{wxgettranslation}
\membersection{::wxGetTranslation}\label{wxgettranslation}
-\func{const wxChar *}{wxGetTranslation}{\param{const wxChar* }{str},
- \param{const wxChar* }{domain = NULL}}
+\func{const wxString\& }{wxGetTranslation}{\param{const wxString\& }{str},
+ \param{const wxString\& }{domain = wxEmptyString}}
-\func{const wxChar *}{wxGetTranslation}{\param{const wxChar* }{str}, \param{const wxChar* }{strPlural}, \param{size\_t }{n},
- \param{const wxChar* }{domain = NULL}}
+\func{const wxString\& }{wxGetTranslation}{\param{const wxString\& }{str}, \param{const wxString\& }{strPlural}, \param{size\_t }{n},
+ \param{const wxString\& }{domain = wxEmptyString}}
This function returns the translation of string {\it str} in the current
\helpref{locale}{wxlocale}. If the string is not found in any of the loaded
This function returns the translation of string {\it str} in the current
\helpref{locale}{wxlocale}. If the string is not found in any of the loaded
\membersection{\_}\label{underscore}
\membersection{\_}\label{underscore}
-\func{const wxChar *}{\_}{\param{const char *}{s}}
+\func{const wxString\&}{\_}{\param{const wxString\&}{s}}
This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation}
function, so it marks the message for the extraction by {\tt xgettext} just as
This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation}
function, so it marks the message for the extraction by {\tt xgettext} just as
\membersection{wxPLURAL}\label{wxplural}
\membersection{wxPLURAL}\label{wxplural}
-\func{const wxChar *}{wxPLURAL}{\param{const char *}{sing}, \param{const char *}{plur}, \param{size\_t}{n}}
+\func{const wxString\&}{wxPLURAL}{\param{const wxString\&}{sing}, \param{const wxString\&}{plur}, \param{size\_t}{n}}
This macro is identical to \helpref{\_()}{underscore} but for the plural variant
of \helpref{wxGetTranslation}{wxgettranslation}.
This macro is identical to \helpref{\_()}{underscore} but for the plural variant
of \helpref{wxGetTranslation}{wxgettranslation}.
See \helpref{Init()}{wxlocaleinit} for parameters description.
See \helpref{Init()}{wxlocaleinit} for parameters description.
-\func{}{wxLocale}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
+\func{}{wxLocale}{\param{const wxString\& }{name}, \param{const wxString\& }{short = wxEmptyString}, \param{const wxString\& }{locale = wxEmptyString}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
See \helpref{Init()}{wxlocaleinit} for parameters description.
See \helpref{Init()}{wxlocaleinit} for parameters description.
\membersection{wxLocale::AddCatalog}\label{wxlocaleaddcatalog}
\membersection{wxLocale::AddCatalog}\label{wxlocaleaddcatalog}
-\func{bool}{AddCatalog}{\param{const char }{*szDomain}}
+\func{bool}{AddCatalog}{\param{const wxString\& }{domain}}
-\func{bool}{AddCatalog}{\param{const char }{*szDomain}, \param{wxLanguage}{msgIdLanguage}, \param{const char }{*msgIdCharset}}
+\func{bool}{AddCatalog}{\param{const wxString\& }{domain}, \param{wxLanguage}{msgIdLanguage}, \param{const wxString\& }{msgIdCharset}}
Add a catalog for use with the current locale: it is searched for in standard
places (current directory first, then the system one), but you may also prepend
Add a catalog for use with the current locale: it is searched for in standard
places (current directory first, then the system one), but you may also prepend
\membersection{wxLocale::GetLocale}\label{wxlocalegetlocale}
\membersection{wxLocale::GetLocale}\label{wxlocalegetlocale}
-\constfunc{const char*}{GetLocale}{\void}
+\constfunc{const wxString\& }{GetLocale}{\void}
Returns the locale name as passed to the constructor or
\helpref{Init()}{wxlocaleinit}. This is full, human-readable name,
Returns the locale name as passed to the constructor or
\helpref{Init()}{wxlocaleinit}. This is full, human-readable name,
\membersection{wxLocale::GetName}\label{wxlocalegetname}
\membersection{wxLocale::GetName}\label{wxlocalegetname}
-\constfunc{const wxString\&}{GetName}{\void}
+\constfunc{const wxString\& }{GetName}{\void}
Returns the current short name for the locale (as given to the constructor or
the Init() function).
Returns the current short name for the locale (as given to the constructor or
the Init() function).
\membersection{wxLocale::GetString}\label{wxlocalegetstring}
\membersection{wxLocale::GetString}\label{wxlocalegetstring}
-\constfunc{const char*}{GetString}{\param{const char }{*szOrigString}, \param{const char }{*szDomain = NULL}}
+\constfunc{const wxString\& }{GetString}{\param{const wxString\& }{origString}, \param{const wxString\& }{domain = wxEmptyString}}
-\constfunc{const char*}{GetString}{\param{const char }{*szOrigString}, \param{const char }{*szOrigString2}, \param{size\_t }{n}, \param{const char }{*szDomain = NULL}}
+\constfunc{const wxString\& }{GetString}{\param{const wxString\& }{origString}, \param{const wxString\& }{origString2}, \param{size\_t }{n}, \param{const wxString\& }{domain = NULL}}
Retrieves the translation for a string in all loaded domains unless the szDomain
parameter is specified (and then only this catalog/domain is searched).
Retrieves the translation for a string in all loaded domains unless the szDomain
parameter is specified (and then only this catalog/domain is searched).
The second form is used when retrieving translation of string that has
different singular and plural form in English or different plural forms in some
The second form is used when retrieving translation of string that has
different singular and plural form in English or different plural forms in some
-other language. It takes two extra arguments: \arg{szOrigString}
+other language. It takes two extra arguments: \arg{origString}
parameter must contain the singular form of the string to be converted.
It is also used as the key for the search in the catalog.
parameter must contain the singular form of the string to be converted.
It is also used as the key for the search in the catalog.
-The \arg{szOrigString2} parameter is the plural form (in English).
+The \arg{origString2} parameter is the plural form (in English).
The parameter \arg{n} is used to determine the plural form. If no
The parameter \arg{n} is used to determine the plural form. If no
-message catalog is found \arg{szOrigString} is returned if `n == 1',
-otherwise \arg{szOrigString2}.
-See \urlref{GNU gettext manual}{http://www.gnu.org/software/gettext/manual/html\_chapter/gettext\_10.html\#SEC150} for additional information on plural forms handling.
+message catalog is found \arg{origString} is returned if `n == 1',
+otherwise \arg{origString2}.
+See \urlref{GNU gettext manual}{http://www.gnu.org/manual/gettext/html\_chapter/gettext\_10.html\#SEC150} for additional information on plural forms handling.
This method is called by the \helpref{wxGetTranslation}{wxgettranslation}
function and \helpref{\_()}{underscore} macro.
This method is called by the \helpref{wxGetTranslation}{wxgettranslation}
function and \helpref{\_()}{underscore} macro.
\membersection{wxLocale::GetHeaderValue}\label{wxlocalegetheadervalue}
\membersection{wxLocale::GetHeaderValue}\label{wxlocalegetheadervalue}
-\constfunc{wxString}{GetHeaderValue}{\param{const char }{*szHeader}, \param{const char }{*szDomain = NULL}}
+\constfunc{wxString}{GetHeaderValue}{\param{const wxString\& }{header}, \param{const wxString\& }{domain = wxEmptyString}}
-Returns the header value for header \arg{szHeader}. The search for \arg{szHeader} is case sensitive. If an \arg{szDomain}
+Returns the header value for header \arg{header}. The search for \arg{header} is case sensitive. If an \arg{domain}
is passed, this domain is searched. Else all domains will be searched until a header has been found.
The return value is the value of the header if found. Else this will be empty.
is passed, this domain is searched. Else all domains will be searched until a header has been found.
The return value is the value of the header if found. Else this will be empty.
\func{bool}{Init}{\param{int }{language = wxLANGUAGE\_DEFAULT}, \param{int }{flags =
wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}}
\func{bool}{Init}{\param{int }{language = wxLANGUAGE\_DEFAULT}, \param{int }{flags =
wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}}
-\func{bool}{Init}{\param{const char }{*szName}, \param{const char }{*szShort = NULL}, \param{const char }{*szLocale = NULL}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
+\func{bool}{Init}{\param{const wxString\& }{name}, \param{const wxString\& }{short = wxEmptyString}, \param{const wxString\& }{locale = wxEmptyString}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}}
The second form is deprecated, use the first one unless you know what you are
doing.
The second form is deprecated, use the first one unless you know what you are
doing.
-\docparam{szName}{The name of the locale. Only used in diagnostic messages.}
+\docparam{name}{The name of the locale. Only used in diagnostic messages.}
-\docparam{szShort}{The standard 2 letter locale abbreviation; it is used as the
+\docparam{short}{The standard 2 letter locale abbreviation; it is used as the
directory prefix when looking for the message catalog files.}
directory prefix when looking for the message catalog files.}
-\docparam{szLocale}{The parameter for the call to setlocale(). Note that it is
+\docparam{locale}{The parameter for the call to setlocale(). Note that it is
platform-specific.}
\docparam{bLoadDefault}{May be set to false to prevent loading of the message catalog
platform-specific.}
\docparam{bLoadDefault}{May be set to false to prevent loading of the message catalog
wxLocale() { DoCommonInit(); }
// the ctor has a side effect of changing current locale
wxLocale() { DoCommonInit(); }
// the ctor has a side effect of changing current locale
- wxLocale(const wxChar *szName, // name (for messages)
- const wxChar *szShort = (const wxChar *) NULL, // dir prefix (for msg files)
- const wxChar *szLocale = (const wxChar *) NULL, // locale (for setlocale)
+ wxLocale(const wxString& name, // name (for messages)
+ const wxString& shortName = wxEmptyString, // dir prefix (for msg files)
+ const wxString& locale = wxEmptyString, // locale (for setlocale)
bool bLoadDefault = true, // preload wxstd.mo?
bool bConvertEncoding = false) // convert Win<->Unix if necessary?
{
DoCommonInit();
bool bLoadDefault = true, // preload wxstd.mo?
bool bConvertEncoding = false) // convert Win<->Unix if necessary?
{
DoCommonInit();
- Init(szName, szShort, szLocale, bLoadDefault, bConvertEncoding);
+ Init(name, shortName, locale, bLoadDefault, bConvertEncoding);
}
wxLocale(int language, // wxLanguage id or custom language
}
wxLocale(int language, // wxLanguage id or custom language
}
// the same as a function (returns true on success)
}
// the same as a function (returns true on success)
- bool Init(const wxChar *szName,
- const wxChar *szShort = (const wxChar *) NULL,
- const wxChar *szLocale = (const wxChar *) NULL,
+ bool Init(const wxString& name,
+ const wxString& shortName = wxEmptyString,
+ const wxString& locale = wxEmptyString,
bool bLoadDefault = true,
bool bConvertEncoding = false);
bool bLoadDefault = true,
bool bConvertEncoding = false);
bool IsOk() const { return m_pszOldLocale != NULL; }
// returns locale name
bool IsOk() const { return m_pszOldLocale != NULL; }
// returns locale name
- const wxChar *GetLocale() const { return m_strLocale; }
+ const wxString& GetLocale() const { return m_strLocale; }
// return current locale wxLanguage value
int GetLanguage() const { return m_language; }
// return current locale wxLanguage value
int GetLanguage() const { return m_language; }
// The loaded catalog will be used for message lookup by GetString().
//
// Returns 'true' if it was successfully loaded
// The loaded catalog will be used for message lookup by GetString().
//
// Returns 'true' if it was successfully loaded
- bool AddCatalog(const wxChar *szDomain);
- bool AddCatalog(const wxChar *szDomain,
- wxLanguage msgIdLanguage, const wxChar *msgIdCharset);
+ bool AddCatalog(const wxString& domain);
+ bool AddCatalog(const wxString& domain,
+ wxLanguage msgIdLanguage, const wxString& msgIdCharset);
// check if the given locale is provided by OS and C run time
static bool IsAvailable(int lang);
// check if the given catalog is loaded
// check if the given locale is provided by OS and C run time
static bool IsAvailable(int lang);
// check if the given catalog is loaded
- bool IsLoaded(const wxChar *szDomain) const;
+ bool IsLoaded(const wxString& domain) const;
// Retrieve the language info struct for the given language
//
// Retrieve the language info struct for the given language
//
//
// domains are searched in the last to first order, i.e. catalogs
// added later override those added before.
//
// domains are searched in the last to first order, i.e. catalogs
// added later override those added before.
- virtual const wxChar *GetString(const wxChar *szOrigString,
- const wxChar *szDomain = NULL) const;
+ virtual const wxString& GetString(const wxString& origString,
+ const wxString& domain = wxEmptyString) const;
// plural form version of the same:
// plural form version of the same:
- virtual const wxChar *GetString(const wxChar *szOrigString,
- const wxChar *szOrigString2,
- size_t n,
- const wxChar *szDomain = NULL) const;
+ virtual const wxString& GetString(const wxString& origString,
+ const wxString& origString2,
+ size_t n,
+ const wxString& domain = wxEmptyString) const;
// Returns the current short name for the locale
const wxString& GetName() const { return m_strShort; }
// return the contents of .po file header
// Returns the current short name for the locale
const wxString& GetName() const { return m_strShort; }
// return the contents of .po file header
- wxString GetHeaderValue( const wxChar* szHeader,
- const wxChar* szDomain = NULL ) const;
+ wxString GetHeaderValue(const wxString& header,
+ const wxString& domain = wxEmptyString) const;
// These two methods are for internal use only. First one creates
// ms_languagesDB if it doesn't already exist, second one destroys
// These two methods are for internal use only. First one creates
// ms_languagesDB if it doesn't already exist, second one destroys
private:
// find catalog by name in a linked list, return NULL if !found
private:
// find catalog by name in a linked list, return NULL if !found
- wxMsgCatalog *FindCatalog(const wxChar *szDomain) const;
+ wxMsgCatalog *FindCatalog(const wxString& domain) const;
// copy default table of languages from global static array to
// m_langugagesInfo, called by InitLanguagesDB
// copy default table of languages from global static array to
// m_langugagesInfo, called by InitLanguagesDB
extern WXDLLIMPEXP_BASE wxLocale* wxGetLocale();
// get the translation of the string in the current locale
extern WXDLLIMPEXP_BASE wxLocale* wxGetLocale();
// get the translation of the string in the current locale
-inline const wxChar *wxGetTranslation(const wxChar *sz, const wxChar* domain=NULL)
+inline const wxString& wxGetTranslation(const wxString& str,
+ const wxString& domain = wxEmptyString)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
- return pLoc->GetString(sz, domain);
+ return pLoc->GetString(str, domain);
-inline const wxChar *wxGetTranslation(const wxChar *sz1, const wxChar *sz2,
- size_t n, const wxChar* domain=NULL)
+inline const wxString& wxGetTranslation(const wxString& str1,
+ const wxString& str2,
+ size_t n,
+ const wxString& domain = wxEmptyString)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
- return pLoc->GetString(sz1, sz2, n, domain);
+ return pLoc->GetString(str1, str2, n, domain);
- return n == 1 ? sz1 : sz2;
+ return n == 1 ? str1 : str2;
#define wxTRANSLATE(str) _T(str)
#define wxTRANSLATE(str) _T(str)
-inline const wxChar *wxGetTranslation(const wxChar *sz,
- const wxChar *WXUNUSED(domain) = NULL)
+inline const wxString& wxGetTranslation(const wxString& str,
+ const wxString& WXUNUSED(domain) = wxEmptyString)
}
#endif // wxUSE_INTL/!wxUSE_INTL
}
#endif // wxUSE_INTL/!wxUSE_INTL
~wxMsgCatalog();
// load the catalog from disk (szDirPrefix corresponds to language)
~wxMsgCatalog();
// load the catalog from disk (szDirPrefix corresponds to language)
- bool Load(const wxChar *szDirPrefix, const wxChar *szName,
- const wxChar *msgIdCharset = NULL, bool bConvertEncoding = false);
+ bool Load(const wxString& dirPrefix, const wxString& name,
+ const wxString& msgIdCharset, bool bConvertEncoding = false);
// get name of the catalog
wxString GetName() const { return m_name; }
// get the translated string: returns NULL if not found
// get name of the catalog
wxString GetName() const { return m_name; }
// get the translated string: returns NULL if not found
- const wxChar *GetString(const wxChar *sz, size_t n = size_t(-1)) const;
+ const wxString *GetString(const wxString& sz, size_t n = size_t(-1)) const;
// public variable pointing to the next element in a linked list (or NULL)
wxMsgCatalog *m_pNext;
// public variable pointing to the next element in a linked list (or NULL)
wxMsgCatalog *m_pNext;
: new wxCSConv(msgIdCharset);
#elif wxUSE_FONTMAP
: new wxCSConv(msgIdCharset);
#elif wxUSE_FONTMAP
- wxASSERT_MSG( msgIdCharset == NULL,
+ wxASSERT_MSG( msgIdCharset.empty(),
_T("non-ASCII msgid languages only supported if wxUSE_WCHAR_T=1") );
wxEncodingConverter converter;
_T("non-ASCII msgid languages only supported if wxUSE_WCHAR_T=1") );
wxEncodingConverter converter;
msgstr = str;
#else // !wxUSE_WCHAR_T
#if wxUSE_FONTMAP
msgstr = str;
#else // !wxUSE_WCHAR_T
#if wxUSE_FONTMAP
+ if ( bConvertEncoding )
msgstr = wxString(converter.Convert(str));
else
#endif
msgstr = wxString(converter.Convert(str));
else
#endif
-bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName,
- const wxChar *msgIdCharset, bool bConvertEncoding)
+bool wxMsgCatalog::Load(const wxString& dirPrefix, const wxString& name,
+ const wxString& msgIdCharset, bool bConvertEncoding)
- if ( !file.Load(szDirPrefix, szName, m_pluralFormsCalculator) )
+ if ( !file.Load(dirPrefix, name, m_pluralFormsCalculator) )
return false;
file.FillHash(m_messages, msgIdCharset, bConvertEncoding);
return false;
file.FillHash(m_messages, msgIdCharset, bConvertEncoding);
-const wxChar *wxMsgCatalog::GetString(const wxChar *sz, size_t n) const
+const wxString *wxMsgCatalog::GetString(const wxString& str, size_t n) const
{
int index = 0;
if (n != size_t(-1))
{
int index = 0;
if (n != size_t(-1))
wxMessagesHash::const_iterator i;
if (index != 0)
{
wxMessagesHash::const_iterator i;
if (index != 0)
{
- i = m_messages.find(wxString(sz) + wxChar(index)); // plural
+ i = m_messages.find(wxString(str) + wxChar(index)); // plural
- i = m_messages.find(sz);
+ i = m_messages.find(str);
}
if ( i != m_messages.end() )
{
}
if ( i != m_messages.end() )
{
- return i->second.c_str();
}
// NB: this function has (desired) side effect of changing current locale
}
// NB: this function has (desired) side effect of changing current locale
-bool wxLocale::Init(const wxChar *szName,
- const wxChar *szShort,
- const wxChar *szLocale,
- bool bLoadDefault,
- bool bConvertEncoding)
+bool wxLocale::Init(const wxString& name,
+ const wxString& shortName,
+ const wxString& locale,
+ bool bLoadDefault,
+ bool bConvertEncoding)
{
wxASSERT_MSG( !m_initialized,
_T("you can't call wxLocale::Init more than once") );
m_initialized = true;
{
wxASSERT_MSG( !m_initialized,
_T("you can't call wxLocale::Init more than once") );
m_initialized = true;
- m_strLocale = szName;
- m_strShort = szShort;
+ m_strLocale = name;
+ m_strShort = shortName;
m_bConvertEncoding = bConvertEncoding;
m_language = wxLANGUAGE_UNKNOWN;
// change current locale (default: same as long name)
m_bConvertEncoding = bConvertEncoding;
m_language = wxLANGUAGE_UNKNOWN;
// change current locale (default: same as long name)
- if ( szLocale == NULL )
+ wxString szLocale(locale);
+ if ( szLocale.empty() )
{
// the argument to setlocale()
{
// the argument to setlocale()
wxCHECK_MSG( szLocale, false, _T("no locale to set in wxLocale::Init()") );
}
wxCHECK_MSG( szLocale, false, _T("no locale to set in wxLocale::Init()") );
}
if ( m_strShort.empty() ) {
// FIXME I don't know how these 2 letter abbreviations are formed,
// this wild guess is surely wrong
if ( m_strShort.empty() ) {
// FIXME I don't know how these 2 letter abbreviations are formed,
// this wild guess is surely wrong
- if ( szLocale && szLocale[0] )
+ if ( !szLocale.empty() )
{
m_strShort += (wxChar)wxTolower(szLocale[0]);
{
m_strShort += (wxChar)wxTolower(szLocale[0]);
+ if ( szLocale.length() > 1 )
m_strShort += (wxChar)wxTolower(szLocale[1]);
}
}
m_strShort += (wxChar)wxTolower(szLocale[1]);
}
}
- // at least in AIX 5.2 libc is buggy and the string returned from setlocale(LC_ALL)
- // can't be passed back to it because it returns 6 strings (one for each locale
- // category), i.e. for C locale we get back "C C C C C C"
+ // at least in AIX 5.2 libc is buggy and the string returned from
+ // setlocale(LC_ALL) can't be passed back to it because it returns 6
+ // strings (one for each locale category), i.e. for C locale we get back
+ // "C C C C C C"
- // this contradicts IBM own docs but this is not of much help, so just work around
- // it in the crudest possible manner
+ // this contradicts IBM own docs but this is not of much help, so just work
+ // around it in the crudest possible manner
wxChar *p = wxStrchr((wxChar *)retloc, _T(' '));
if ( p )
*p = _T('\0');
wxChar *p = wxStrchr((wxChar *)retloc, _T(' '));
if ( p )
*p = _T('\0');
#endif
#ifndef WX_NO_LOCALE_SUPPORT
#endif
#ifndef WX_NO_LOCALE_SUPPORT
- wxChar *szLocale = retloc ? wxStrdup(retloc) : NULL;
- bool ret = Init(name, canonical, szLocale,
+ bool ret = Init(name, canonical, retloc,
(flags & wxLOCALE_LOAD_DEFAULT) != 0,
(flags & wxLOCALE_CONV_ENCODING) != 0);
(flags & wxLOCALE_LOAD_DEFAULT) != 0,
(flags & wxLOCALE_CONV_ENCODING) != 0);
if (IsOk()) // setlocale() succeeded
m_language = lang;
if (IsOk()) // setlocale() succeeded
m_language = lang;
}
// get the translation of given string in current locale
}
// get the translation of given string in current locale
-const wxChar *wxLocale::GetString(const wxChar *szOrigString,
- const wxChar *szDomain) const
+const wxString& wxLocale::GetString(const wxString& origString,
+ const wxString& domain) const
- return GetString(szOrigString, szOrigString, size_t(-1), szDomain);
+ return GetString(origString, origString, size_t(-1), domain);
-const wxChar *wxLocale::GetString(const wxChar *szOrigString,
- const wxChar *szOrigString2,
- size_t n,
- const wxChar *szDomain) const
+const wxString& wxLocale::GetString(const wxString& origString,
+ const wxString& origString2,
+ size_t n,
+ const wxString& domain) const
- if ( wxIsEmpty(szOrigString) )
- return wxEmptyString;
+ if ( origString.empty() )
+ return origString;
- const wxChar *pszTrans = NULL;
+ const wxString *trans = NULL;
- if ( szDomain != NULL )
- pMsgCat = FindCatalog(szDomain);
+ pMsgCat = FindCatalog(domain);
// does the catalog exist?
if ( pMsgCat != NULL )
// does the catalog exist?
if ( pMsgCat != NULL )
- pszTrans = pMsgCat->GetString(szOrigString, n);
+ trans = pMsgCat->GetString(origString, n);
}
else
{
// search in all domains
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
}
else
{
// search in all domains
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
- pszTrans = pMsgCat->GetString(szOrigString, n);
- if ( pszTrans != NULL ) // take the first found
+ trans = pMsgCat->GetString(origString, n);
+ if ( trans != NULL ) // take the first found
- if ( pszTrans == NULL )
{
#ifdef __WXDEBUG__
if ( !NoTransErr::Suppress() )
{
#ifdef __WXDEBUG__
if ( !NoTransErr::Suppress() )
wxLogTrace(TRACE_I18N,
_T("string \"%s\"[%ld] not found in %slocale '%s'."),
wxLogTrace(TRACE_I18N,
_T("string \"%s\"[%ld] not found in %slocale '%s'."),
- szOrigString, (long)n,
- szDomain
- ? (const wxChar*)wxString::Format(_T("domain '%s' "), szDomain).c_str()
+ origString, (long)n,
+ domain.empty()
+ ? (const wxChar*)wxString::Format(_T("domain '%s' "), domain).c_str()
: _T(""),
m_strLocale.c_str());
}
#endif // __WXDEBUG__
if (n == size_t(-1))
: _T(""),
m_strLocale.c_str());
}
#endif // __WXDEBUG__
if (n == size_t(-1))
- return n == 1 ? szOrigString : szOrigString2;
+ return n == 1 ? origString : origString2;
-wxString wxLocale::GetHeaderValue( const wxChar* szHeader,
- const wxChar* szDomain ) const
+wxString wxLocale::GetHeaderValue(const wxString& header,
+ const wxString& domain) const
- if ( wxIsEmpty(szHeader) )
- wxChar const * pszTrans = NULL;
+ const wxString *trans = NULL;
- if ( szDomain != NULL )
- pMsgCat = FindCatalog(szDomain);
+ pMsgCat = FindCatalog(domain);
// does the catalog exist?
if ( pMsgCat == NULL )
return wxEmptyString;
// does the catalog exist?
if ( pMsgCat == NULL )
return wxEmptyString;
- pszTrans = pMsgCat->GetString(wxEmptyString, (size_t)-1);
+ trans = pMsgCat->GetString(wxEmptyString, (size_t)-1);
}
else
{
// search in all domains
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
}
else
{
// search in all domains
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
- pszTrans = pMsgCat->GetString(wxEmptyString, (size_t)-1);
- if ( pszTrans != NULL ) // take the first found
+ trans = pMsgCat->GetString(wxEmptyString, (size_t)-1);
+ if ( trans != NULL ) // take the first found
- if ( wxIsEmpty(pszTrans) )
+ if ( !trans || trans->empty() )
- wxChar const * pszFound = wxStrstr(pszTrans, szHeader);
- if ( pszFound == NULL )
+ size_t found = trans->find(header);
+ if ( found == wxString::npos )
- pszFound += wxStrlen(szHeader) + 2 /* ': ' */;
+ found += header.length() + 2 /* ': ' */;
// Every header is separated by \n
// Every header is separated by \n
- wxChar const * pszEndLine = wxStrchr(pszFound, wxT('\n'));
- if ( pszEndLine == NULL ) pszEndLine = pszFound + wxStrlen(pszFound);
-
-
- // wxString( wxChar*, length);
- wxString retVal( pszFound, pszEndLine - pszFound );
+ size_t endLine = trans->find(wxT('\n'), found);
+ size_t len = (endLine == wxString::npos) ?
+ wxString::npos : (endLine - found);
+ return trans->substr(found, len);
}
// find catalog by name in a linked list, return NULL if !found
}
// find catalog by name in a linked list, return NULL if !found
-wxMsgCatalog *wxLocale::FindCatalog(const wxChar *szDomain) const
+wxMsgCatalog *wxLocale::FindCatalog(const wxString& domain) const
{
// linear search in the linked list
wxMsgCatalog *pMsgCat;
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
{
// linear search in the linked list
wxMsgCatalog *pMsgCat;
for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext )
{
- if ( wxStricmp(pMsgCat->GetName(), szDomain) == 0 )
+ if ( pMsgCat->GetName() == domain )
}
// check if the given catalog is loaded
}
// check if the given catalog is loaded
-bool wxLocale::IsLoaded(const wxChar *szDomain) const
+bool wxLocale::IsLoaded(const wxString& szDomain) const
{
return FindCatalog(szDomain) != NULL;
}
// add a catalog to our linked list
{
return FindCatalog(szDomain) != NULL;
}
// add a catalog to our linked list
-bool wxLocale::AddCatalog(const wxChar *szDomain)
+bool wxLocale::AddCatalog(const wxString& szDomain)
- return AddCatalog(szDomain, wxLANGUAGE_ENGLISH_US, NULL);
+ return AddCatalog(szDomain, wxLANGUAGE_ENGLISH_US, wxEmptyString);
}
// add a catalog to our linked list
}
// add a catalog to our linked list
-bool wxLocale::AddCatalog(const wxChar *szDomain,
- wxLanguage msgIdLanguage,
- const wxChar *msgIdCharset)
+bool wxLocale::AddCatalog(const wxString& szDomain,
+ wxLanguage msgIdLanguage,
+ const wxString& msgIdCharset)
{
wxMsgCatalog *pMsgCat = new wxMsgCatalog;
{
wxMsgCatalog *pMsgCat = new wxMsgCatalog;