Always use active wxTranslations instance via wxLocale.

Don't use m_translations directly, if the user made changes to
wxTranslations instance, it would be too confusing if calls through
wxLocale compat API did nothing.

Also don't change active wxTranslations object from wxLocale if already
done by user, only call wxTranslations::Set() from wxLocale constructor
if it wasn't already set by the user. Still do if wxTranslations
instance currently in use was set by previous wxLocale on the locale
stack.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2010-04-29 08:31:42 +00:00
parent 02aa812cb0
commit 0d28a1f927
2 changed files with 80 additions and 22 deletions

View File

@@ -247,10 +247,8 @@ public:
// The loaded catalog will be used for message lookup by GetString().
//
// Returns 'true' if it was successfully loaded
bool AddCatalog(const wxString& domain)
{ return m_translations.AddCatalog(domain); }
bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage)
{ return m_translations.AddCatalog(domain, msgIdLanguage); }
bool AddCatalog(const wxString& domain);
bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage);
bool AddCatalog(const wxString& domain,
wxLanguage msgIdLanguage, const wxString& msgIdCharset);
@@ -258,8 +256,7 @@ public:
static bool IsAvailable(int lang);
// check if the given catalog is loaded
bool IsLoaded(const wxString& domain) const
{ return m_translations.IsLoaded(domain); }
bool IsLoaded(const wxString& domain) const;
// Retrieve the language info struct for the given language
//
@@ -300,7 +297,7 @@ public:
const wxString& GetString(const wxString& origString,
const wxString& domain = wxEmptyString) const
{
return m_translations.GetString(origString, domain);
return wxGetTranslation(origString, domain);
}
// plural form version of the same:
const wxString& GetString(const wxString& origString,
@@ -308,7 +305,7 @@ public:
size_t n,
const wxString& domain = wxEmptyString) const
{
return m_translations.GetString(origString, origString2, n, domain);
return wxGetTranslation(origString, origString2, n, domain);
}
// this is hack to work around a problem with wxGetTranslation() which
@@ -322,10 +319,7 @@ public:
// return the contents of .po file header
wxString GetHeaderValue(const wxString& header,
const wxString& domain = wxEmptyString) const
{
return m_translations.GetHeaderValue(header, domain);
}
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