X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5f170f33fd19bdef10884f506fcc924d858ccb50..fb20fa43a07ce52feb43a4b26514fc7a6a11a6f5:/src/common/intl.cpp diff --git a/src/common/intl.cpp b/src/common/intl.cpp index b32d28e5d5..272d7f3f63 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -103,17 +103,33 @@ const size_t32 MSGCATALOG_MAGIC_SW = 0xde120495; // global functions // ---------------------------------------------------------------------------- -// suppress further error messages about missing translations -// (if you don't have one catalog file, you wouldn't like to see the -// error message for each string in it, so normally it's given only -// once) -void wxSuppressTransErrors(); +#ifdef __WXDEBUG__ -// restore the logging -void wxRestoreTransErrors(); +// small class to suppress the translation erros until exit from current scope +class NoTransErr +{ +public: + NoTransErr() { ms_suppressCount++; } + ~NoTransErr() { ms_suppressCount--; } + + static bool Suppress() { return ms_suppressCount > 0; } + +private: + static size_t ms_suppressCount; +}; -// get the current state -bool wxIsLoggingTransErrors(); +size_t NoTransErr::ms_suppressCount = 0; + +#else // !Debug + +class NoTransErr +{ +public: + NoTransErr() { } + ~NoTransErr() { } +}; + +#endif // Debug/!Debug static wxLocale *wxSetLocale(wxLocale *pLocale); @@ -253,14 +269,6 @@ wxMsgCatalog::~wxMsgCatalog() wxDELETEA(m_pszName); } -// small class to suppress the translation erros until exit from current scope -class NoTransErr -{ -public: - NoTransErr() { wxSuppressTransErrors(); } - ~NoTransErr() { wxRestoreTransErrors(); } -}; - // return all directories to search for given prefix static wxString GetAllMsgCatalogSubdirs(const wxChar *prefix, const wxChar *lang) @@ -292,13 +300,13 @@ static wxString GetFullSearchPath(const wxChar *lang) // LC_PATH is a standard env var containing the search path for the .mo // files - const wxChar *pszLcPath = wxGetenv("LC_PATH"); + const wxChar *pszLcPath = wxGetenv(wxT("LC_PATH")); if ( pszLcPath != NULL ) searchPath << GetAllMsgCatalogSubdirs(pszLcPath, lang); // then take the current directory // FIXME it should be the directory of the executable - searchPath << GetAllMsgCatalogSubdirs(wxT("."), lang) << wxPATH_SEP; + searchPath << GetAllMsgCatalogSubdirs(wxT("."), lang); // and finally add some standard ones searchPath @@ -617,29 +625,22 @@ const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString, } if ( pszTrans == NULL ) { - if ( wxIsLoggingTransErrors() ) { - // suppress further error messages if we're not debugging: this avoids - // flooding the user with messages about each and every missing string if, - // for example, a whole catalog file is missing. - - // do it before calling LogWarning to prevent infinite recursion! #ifdef __WXDEBUG__ + if ( !NoTransErr::Suppress() ) { NoTransErr noTransErr; -#else // !debug - wxSuppressTransErrors(); -#endif // debug/!debug if ( szDomain != NULL ) { - wxLogWarning(_("string '%s' not found in domain '%s' for locale '%s'."), + wxLogDebug(_T("string '%s' not found in domain '%s' for locale '%s'."), szOrigString, szDomain, m_strLocale.c_str()); } else { - wxLogWarning(_("string '%s' not found in locale '%s'."), - szOrigString, m_strLocale.c_str()); + wxLogDebug(_T("string '%s' not found in locale '%s'."), + szOrigString, m_strLocale.c_str()); } } +#endif // __WXDEBUG__ return (wxMB2WXbuf)(szOrigString); } @@ -696,26 +697,6 @@ bool wxLocale::AddCatalog(const wxChar *szDomain) // global functions and variables // ---------------------------------------------------------------------------- -// translation errors logging -// -------------------------- - -static bool gs_bGiveTransErrors = TRUE; - -void wxSuppressTransErrors() -{ - gs_bGiveTransErrors = FALSE; -} - -void wxRestoreTransErrors() -{ - gs_bGiveTransErrors = TRUE; -} - -bool wxIsLoggingTransErrors() -{ - return gs_bGiveTransErrors; -} - // retrieve/change current locale // ------------------------------