X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7b36d72062f36cf09aef8979db3f00946127bcc8..6c7873e1a58afbdef698e092db0852ed490ea9e1:/include/wx/intl.h diff --git a/include/wx/intl.h b/include/wx/intl.h index d7fb1637ee..f9e8f15a2a 100644 --- a/include/wx/intl.h +++ b/include/wx/intl.h @@ -19,6 +19,8 @@ #include "wx/defs.h" #include "wx/string.h" +#if wxUSE_INTL + // ============================================================================ // global decls // ============================================================================ @@ -33,6 +35,10 @@ #define _(str) wxGetTranslation(_T(str)) #endif +// another one which just marks the strings for extraction, but doesn't +// perform the translation (use -kwxTRANSLATE with xgettext!) +#define wxTRANSLATE(str) _T(str) + // ---------------------------------------------------------------------------- // forward decls // ---------------------------------------------------------------------------- @@ -56,19 +62,24 @@ public: // call Init() if you use this ctor wxLocale(); // the ctor has a side effect of changing current locale - wxLocale(const wxChar *szName, // name (for messages) + 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) - bool bLoadDefault = TRUE) // preload wxstd.mo? - { Init(szName, szShort, szLocale, bLoadDefault); } + bool bLoadDefault = TRUE, // preload wxstd.mo? + bool bConvertEncoding = FALSE) // convert Win<->Unix if neccessary? + { Init(szName, szShort, szLocale, bLoadDefault, bConvertEncoding); } // 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 bLoadDefault = TRUE); + bool bLoadDefault = TRUE, + bool bConvertEncoding = FALSE); // restores old locale ~wxLocale(); + // return TRUE if the locale was set successfully + bool IsOk() const { return m_pszOldLocale != NULL; } + // returns locale name const wxChar *GetLocale() const { return m_strLocale; } @@ -102,7 +113,7 @@ public: // domains are searched in the last to first order, i.e. catalogs // added later override those added before. const wxMB2WXbuf GetString(const wxChar *szOrigString, - const wxChar *szDomain = (const wxChar *) NULL) const; + const wxChar *szDomain = (const wxChar *) NULL) const; // Returns the current short name for the locale const wxString& GetName() const { return m_strShort; } @@ -111,13 +122,15 @@ private: // find catalog by name in a linked list, return NULL if !found wxMsgCatalog *FindCatalog(const wxChar *szDomain) const; - wxString m_strLocale, // this locale name - m_strShort; // short name for the locale + wxString m_strLocale, // this locale name + m_strShort; // short name for the locale + + const wxChar *m_pszOldLocale; // previous locale from setlocale() + wxLocale *m_pOldLocale; // previous wxLocale - const wxChar *m_pszOldLocale; // previous locale from setlocale() - wxLocale *m_pOldLocale; // previous wxLocale + wxMsgCatalog *m_pMsgCat; // pointer to linked list of catalogs - wxMsgCatalog *m_pMsgCat; // pointer to linked list of catalogs + bool m_bConvertEncoding; }; // ---------------------------------------------------------------------------- @@ -131,8 +144,31 @@ extern WXDLLEXPORT wxLocale* wxGetLocale(); inline const wxMB2WXbuf wxGetTranslation(const wxChar *sz) { wxLocale *pLoc = wxGetLocale(); - return pLoc ? pLoc->GetString(sz) : (const wxMB2WXbuf)sz; + if (pLoc) + return pLoc->GetString(sz); + else + return (const wxMB2WXbuf)sz; } +#else // !wxUSE_INTL + +// the macros should still be defined - otherwise compilation would fail + +#if !defined(WXINTL_NO_GETTEXT_MACRO) && !defined(_) + #define _(str) (str) +#endif + +#define wxTRANSLATE(str) _T(str) + +inline const wxChar *wxGetTranslation(const wxChar *sz) { return sz; } + +#endif // wxUSE_INTL/!wxUSE_INTL + +// define this one just in case it occurs somewhere (instead of preferred +// wxTRANSLATE) too +#if !defined(WXINTL_NO_GETTEXT_MACRO) && !defined(gettext_noop) + #define gettext_noop(str) _T(str) +#endif + #endif // _WX_INTLH__