]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/intl.cpp
merged in the commit from the 2.2 branch
[wxWidgets.git] / src / common / intl.cpp
index b32d28e5d50ef825d0f415e83b983a93ba79ddb1..272d7f3f633b1f6af3700cc96af4abe8c980712e 100644 (file)
@@ -103,17 +103,33 @@ const size_t32 MSGCATALOG_MAGIC_SW = 0xde120495;
 // global functions
 // ----------------------------------------------------------------------------
 
 // 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);
 
 
 static wxLocale *wxSetLocale(wxLocale *pLocale);
 
@@ -253,14 +269,6 @@ wxMsgCatalog::~wxMsgCatalog()
   wxDELETEA(m_pszName);
 }
 
   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)
 // 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
 
     // 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
     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
 
     // and finally add some standard ones
     searchPath
@@ -617,29 +625,22 @@ const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString,
   }
 
   if ( pszTrans == NULL ) {
   }
 
   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__
 #ifdef __WXDEBUG__
+    if ( !NoTransErr::Suppress() ) {
       NoTransErr noTransErr;
       NoTransErr noTransErr;
-#else // !debug
-      wxSuppressTransErrors();
-#endif // debug/!debug
 
       if ( szDomain != NULL )
       {
 
       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
       {
                      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);
   }
 
     return (wxMB2WXbuf)(szOrigString);
   }
@@ -696,26 +697,6 @@ bool wxLocale::AddCatalog(const wxChar *szDomain)
 // global functions and variables
 // ----------------------------------------------------------------------------
 
 // 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
 // ------------------------------
 
 // retrieve/change current locale
 // ------------------------------