#ifndef _WX_INTL_H_
#define _WX_INTL_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "intl.h"
-#endif
-
#include "wx/defs.h"
#include "wx/string.h"
+// Make wxLayoutDirection enum available without need for wxUSE_INTL so wxWindow, wxApp
+// and other classes are not distrubed by wxUSE_INTL
+
+enum wxLayoutDirection
+{
+ wxLayout_Default,
+ wxLayout_LeftToRight,
+ wxLayout_RightToLeft
+};
+
#if wxUSE_INTL
#include "wx/fontenc.h"
// ----------------------------------------------------------------------------
// gettext() style macros (notice that xgettext should be invoked with
-// --keyword="_" --keyword="wxGetTranslation:1,2" options
+// --keyword="_" --keyword="wxPLURAL:1,2" options
// to extract the strings from the sources)
#ifndef WXINTL_NO_GETTEXT_MACRO
- #define _(s) wxGetTranslation(_T(s))
+ #define _(s) wxGetTranslation(_T(s))
+ #define wxPLURAL(sing, plur, n) wxGetTranslation(_T(sing), _T(plur), n)
#endif
// another one which just marks the strings for extraction, but doesn't
WinSublang;
#endif // __WIN32__
wxString Description; // human-readable name of the language
+ wxLayoutDirection LayoutDirection;
};
// ----------------------------------------------------------------------------
int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
// restores old locale
- ~wxLocale();
+ virtual ~wxLocale();
// Try to get user's (or OS's) preferred language setting.
// Return wxLANGUAGE_UNKNOWN if language-guessing algorithm failed
bool AddCatalog(const wxChar *szDomain,
wxLanguage msgIdLanguage, const wxChar *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
bool IsLoaded(const wxChar *szDomain) const;
//
// domains are searched in the last to first order, i.e. catalogs
// added later override those added before.
- const wxChar *GetString(const wxChar *szOrigString,
- const wxChar *szDomain = NULL) const;
+ virtual const wxChar *GetString(const wxChar *szOrigString,
+ const wxChar *szDomain = NULL) const;
// plural form version of the same:
- const wxChar *GetString(const wxChar *szOrigString,
- const wxChar *szOrigString2,
- size_t n,
- const wxChar *szDomain = NULL) const;
+ virtual const wxChar *GetString(const wxChar *szOrigString,
+ const wxChar *szOrigString2,
+ size_t n,
+ const wxChar *szDomain = NULL) const;
// Returns the current short name for the locale
const wxString& GetName() const { return m_strShort; }
extern WXDLLIMPEXP_BASE wxLocale* wxGetLocale();
// get the translation of the string in the current locale
-inline const wxChar *wxGetTranslation(const wxChar *sz)
+inline const wxChar *wxGetTranslation(const wxChar *sz, const wxChar* domain=NULL)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
- return pLoc->GetString(sz);
+ return pLoc->GetString(sz, domain);
else
return sz;
}
inline const wxChar *wxGetTranslation(const wxChar *sz1, const wxChar *sz2,
- size_t n)
+ size_t n, const wxChar* domain=NULL)
{
wxLocale *pLoc = wxGetLocale();
if (pLoc)
- return pLoc->GetString(sz1, sz2, n);
+ return pLoc->GetString(sz1, sz2, n, domain);
else
return n == 1 ? sz1 : sz2;
}
#endif
#endif // _WX_INTL_H_
-