]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/intl.cpp
If we used 10% less inline functions in useless occasions,
[wxWidgets.git] / src / common / intl.cpp
index 020bd9be8b7037d07ae2af5b848bd316e2bb520a..245ebe36bb6365a262bbb73a19e6f9b2cdafb5cb 100644 (file)
@@ -40,6 +40,7 @@
 #include "wx/intl.h"
 #include "wx/file.h"
 #include "wx/log.h"
+#include "wx/debug.h"
 #include "wx/utils.h"
 
 #include <stdlib.h>
@@ -76,7 +77,11 @@ typedef unsigned char size_t8;
         public:
             IntSizeChecker()
             {
-                wxASSERT_MSG( sizeof(int) == 4,
+                // Asserting a sizeof directly causes some compilers to
+                // issue a "using constant in a conditional expression" warning
+                size_t                   intsize = sizeof(int);
+
+                wxASSERT_MSG( intsize == 4,
                               "size_t32 is incorrectly defined!" );
             }
         } intsizechecker;
@@ -296,9 +301,18 @@ static wxString GetFullSearchPath(const wxChar *lang)
 }
 
 // open disk file and read in it's contents
-bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName)
+bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName0)
 {
+   /* We need to handle locales like  de_AT.iso-8859-1
+      For this we first chop off the .CHARSET specifier and ignore it.
+      FIXME: UNICODE SUPPORT: must use CHARSET specifier!
+   */
+   wxString szName = szName0;
+   if(szName.Find('.') != -1) // contains a dot
+      szName = szName.Left(szName.Find('.'));
+   
   // FIXME VZ: I forgot the exact meaning of LC_PATH - anyone to remind me?
+  // KB: search path where to find the mo files, probably : delimited
 #if 0
   const wxChar *pszLcPath = wxGetenv("LC_PATH");
   if ( pszLcPath != NULL )
@@ -324,20 +338,22 @@ bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName)
   // not yet be loaded (and it's normal)
   //
   // (we're using an object because we have several return paths)
+
   NoTransErr noTransErr;
+//  Then why do you translate at all? Just use _T() and not _(). RR.
 
   wxLogVerbose(_("looking for catalog '%s' in path '%s'."),
-               szName, searchPath.c_str());
+               szName.c_str(), searchPath.c_str());
 
   wxString strFullName;
   if ( !wxFindFileInPath(&strFullName, searchPath, strFile) ) {
-    wxLogWarning(_("catalog file for domain '%s' not found."), szName);
+    wxLogWarning(_("catalog file for domain '%s' not found."), szName.c_str());
     return FALSE;
   }
 
   // open file
   wxLogVerbose(_("using catalog '%s' from '%s'."),
-             szName, strFullName.c_str());
+             szName.c_str(), strFullName.c_str());
 
   wxFile fileMsg(strFullName);
   if ( !fileMsg.IsOpened() )
@@ -459,7 +475,10 @@ bool wxLocale::Init(const wxChar *szName,
 
   // change current locale (default: same as long name)
   if ( szLocale == NULL )
-    szLocale = szName;
+  {
+    // the argument to setlocale()
+    szLocale = szShort;
+  }
   m_pszOldLocale = wxSetlocale(LC_ALL, szLocale);
   if ( m_pszOldLocale == NULL )
     wxLogError(_("locale '%s' can not be set."), szLocale);