]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_intl.i
Build fix for motif.
[wxWidgets.git] / wxPython / src / _intl.i
index e1b7b7444e193bbc6efdf8052180b36343ec0dc2..5901e839a58e76377490f092deb2f89b341e6b36 100644 (file)
@@ -16,6 +16,7 @@
 //---------------------------------------------------------------------------
 
 %{
+#include <locale.h>
 %}
 
 //---------------------------------------------------------------------------
@@ -308,20 +309,54 @@ class wxLocale
 public:
     // ctor & dtor
     // -----------
-    wxLocale(int language = wxLANGUAGE_DEFAULT,
-             int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+    %extend {
+        wxLocale(int language = -1,
+                 int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING) {
+            wxLocale* loc;
+            if (language == -1)
+                loc = new wxLocale();
+            else
+                loc = new wxLocale(language, flags);
+            // Python before 2.4 needs to have LC_NUMERIC set to "C" in order
+            // for the floating point conversions and such to work right.
+%#if PY_VERSION_HEX < 0x02040000
+            setlocale(LC_NUMERIC, "C");
+%#endif
+            return loc;
+        }
+    }
 
         // restores old locale
     ~wxLocale();
 
-    %name(Init1)bool Init(const wxString& szName,
-                          const wxString& szShort = wxPyEmptyString,
-                          const wxString& szLocale = wxPyEmptyString,
-                          bool bLoadDefault = True,
-                          bool bConvertEncoding = False);
+    %extend { 
+        bool Init1(const wxString& szName,
+                   const wxString& szShort = wxPyEmptyString,
+                   const wxString& szLocale = wxPyEmptyString,
+                   bool bLoadDefault = true,
+                   bool bConvertEncoding = false) {
+            bool rc = self->Init(szName, szShort, szLocale, bLoadDefault, bConvertEncoding);
+            // Python before 2.4 needs to have LC_NUMERIC set to "C" in order
+            // for the floating point conversions and such to work right.
+%#if PY_VERSION_HEX < 0x02040000
+            setlocale(LC_NUMERIC, "C");
+%#endif
+            return rc;
+        }
+
+        bool Init2(int language = wxLANGUAGE_DEFAULT,
+                   int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING) {
+            bool rc = self->Init(language, flags);
+            // Python before 2.4 needs to have LC_NUMERIC set to "C" in order
+            // for the floating point conversions and such to work right.
+%#if PY_VERSION_HEX < 0x02040000
+            setlocale(LC_NUMERIC, "C");
+%#endif
+            return rc;
+        }
+    }
 
-    %name(Init2) bool Init(int language = wxLANGUAGE_DEFAULT,
-                           int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+    
 
     %pythoncode {
     def Init(self, *_args, **_kwargs):
@@ -433,8 +468,8 @@ wxLocale* wxGetLocale();
 
 // get the translation of the string in the current locale
 %nokwargs wxGetTranslation;
-wxString wxGetTranslation(const wxString& sz);
-wxString wxGetTranslation(const wxString& sz1, const wxString& sz2, size_t n);
+wxString wxGetTranslation(const wxString& str);
+wxString wxGetTranslation(const wxString& str, const wxString& strPlural, size_t n);
 
 //---------------------------------------------------------------------------
 %newgroup