]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/intl.cpp
BC++ compialtion fix (?)
[wxWidgets.git] / src / common / intl.cpp
index 3dd7a175ad52d1508b709f622b8fbb784af85cb7..84022468f4779b6e3d307f2dfb18f45977cd218a 100644 (file)
@@ -267,7 +267,7 @@ static wxString GetAllMsgCatalogSubdirs(const wxChar *prefix,
     // search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in
     // prefix (assuming the language is 'fr')
     searchPath << prefix << wxFILE_SEP_PATH << lang << wxFILE_SEP_PATH
     // search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in
     // prefix (assuming the language is 'fr')
     searchPath << prefix << wxFILE_SEP_PATH << lang << wxFILE_SEP_PATH
-                         << _T("LC_MESSAGES") << wxPATH_SEP
+                         << wxT("LC_MESSAGES") << wxPATH_SEP
                << prefix << wxFILE_SEP_PATH << lang << wxPATH_SEP
                << prefix << wxPATH_SEP;
 
                << prefix << wxFILE_SEP_PATH << lang << wxPATH_SEP
                << prefix << wxPATH_SEP;
 
@@ -289,13 +289,13 @@ static wxString GetFullSearchPath(const wxChar *lang)
 
     // then take the current directory
     // FIXME it should be the directory of the executable
 
     // then take the current directory
     // FIXME it should be the directory of the executable
-    searchPath << GetAllMsgCatalogSubdirs(_T("."), lang) << wxPATH_SEP;
+    searchPath << GetAllMsgCatalogSubdirs(wxT("."), lang) << wxPATH_SEP;
 
     // and finally add some standard ones
     searchPath
 
     // and finally add some standard ones
     searchPath
-        << GetAllMsgCatalogSubdirs(_T("/usr/share/locale"), lang) << wxPATH_SEP
-        << GetAllMsgCatalogSubdirs(_T("/usr/lib/locale"), lang) << wxPATH_SEP
-        << GetAllMsgCatalogSubdirs(_T("/usr/local/share/locale"), lang);
+        << GetAllMsgCatalogSubdirs(wxT("/usr/share/locale"), lang) << wxPATH_SEP
+        << GetAllMsgCatalogSubdirs(wxT("/usr/lib/locale"), lang) << wxPATH_SEP
+        << GetAllMsgCatalogSubdirs(wxT("/usr/local/share/locale"), lang);
 
     return searchPath;
 }
 
     return searchPath;
 }
@@ -308,9 +308,9 @@ bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName0)
       FIXME: UNICODE SUPPORT: must use CHARSET specifier!
    */
    wxString szName = szName0;
       FIXME: UNICODE SUPPORT: must use CHARSET specifier!
    */
    wxString szName = szName0;
-   if(szName.Find('.') != -1) // contains a dot
-      szName = szName.Left(szName.Find('.'));
-   
+   if(szName.Find(wxT('.')) != -1) // contains a dot
+      szName = szName.Left(szName.Find(wxT('.')));
+
   // 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
   // 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
@@ -320,7 +320,7 @@ bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName0)
 #endif // 0
 
   wxString searchPath = GetFullSearchPath(szDirPrefix);
 #endif // 0
 
   wxString searchPath = GetFullSearchPath(szDirPrefix);
-  const wxChar *sublocale = wxStrchr(szDirPrefix, _T('_'));
+  const wxChar *sublocale = wxStrchr(szDirPrefix, wxT('_'));
   if ( sublocale )
   {
       // also add just base locale name: for things like "fr_BE" (belgium
   if ( sublocale )
   {
       // also add just base locale name: for things like "fr_BE" (belgium
@@ -340,10 +340,8 @@ bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName0)
   // (we're using an object because we have several return paths)
 
   NoTransErr noTransErr;
   // (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.c_str, searchPath.c_str());
+  wxLogVerbose(wxT("looking for catalog '%s' in path '%s'."),
+               szName.c_str(), searchPath.c_str());
 
   wxString strFullName;
   if ( !wxFindFileInPath(&strFullName, searchPath, strFile) ) {
 
   wxString strFullName;
   if ( !wxFindFileInPath(&strFullName, searchPath, strFile) ) {
@@ -420,7 +418,13 @@ const char *wxMsgCatalog::GetString(const char *szOrig) const
 
     size_t32 nIncr = 1 + (nHashVal % (m_nHashSize - 2));
 
 
     size_t32 nIncr = 1 + (nHashVal % (m_nHashSize - 2));
 
-    while ( TRUE ) {
+#if defined(__VISAGECPP__)
+// VA just can't stand while(1) or while(TRUE)
+    bool bOs2var = TRUE;
+    while(bOs2var) {
+#else
+    while (1) {
+#endif
       size_t32 nStr = Swap(m_pHashTable[nIndex]);
       if ( nStr == 0 )
         return NULL;
       size_t32 nStr = Swap(m_pHashTable[nIndex]);
       if ( nStr == 0 )
         return NULL;
@@ -475,7 +479,10 @@ bool wxLocale::Init(const wxChar *szName,
 
   // change current locale (default: same as long name)
   if ( szLocale == NULL )
 
   // 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);
   m_pszOldLocale = wxSetlocale(LC_ALL, szLocale);
   if ( m_pszOldLocale == NULL )
     wxLogError(_("locale '%s' can not be set."), szLocale);
@@ -495,7 +502,7 @@ bool wxLocale::Init(const wxChar *szName,
   m_pMsgCat = NULL;
   bool bOk = TRUE;
   if ( bLoadDefault )
   m_pMsgCat = NULL;
   bool bOk = TRUE;
   if ( bLoadDefault )
-    bOk = AddCatalog(_T("wxstd"));
+    bOk = AddCatalog(wxT("wxstd"));
 
   return bOk;
 }
 
   return bOk;
 }
@@ -527,13 +534,17 @@ wxLocale::~wxLocale()
 
 // get the translation of given string in current locale
 const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString,
 
 // get the translation of given string in current locale
 const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString,
-                                    const wxChar *szDomain) const
+                                     const wxChar *szDomain) const
 {
   if ( wxIsEmpty(szOrigString) )
       return szDomain;
 
   const char *pszTrans = NULL;
 {
   if ( wxIsEmpty(szOrigString) )
       return szDomain;
 
   const char *pszTrans = NULL;
+#if wxUSE_UNICODE
   const wxWX2MBbuf szOrgString = wxConvCurrent->cWX2MB(szOrigString);
   const wxWX2MBbuf szOrgString = wxConvCurrent->cWX2MB(szOrigString);
+#else // ANSI
+  #define szOrgString szOrigString
+#endif // Unicode/ANSI
 
   wxMsgCatalog *pMsgCat;
   if ( szDomain != NULL ) {
 
   wxMsgCatalog *pMsgCat;
   if ( szDomain != NULL ) {
@@ -580,7 +591,12 @@ const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString,
     return (wxMB2WXbuf)(szOrigString);
   }
   else
     return (wxMB2WXbuf)(szOrigString);
   }
   else
-    return (wxMB2WXbuf)(wxConvCurrent->cMB2WX(pszTrans));
+  {
+    return wxConvertMB2WX(pszTrans); // or preferably wxCSConv(charset).cMB2WX(pszTrans) or something,
+                                     // a macro similar to wxConvertMB2WX could be written for that
+  }
+
+  #undef szOrgString
 }
 
 // find catalog by name in a linked list, return NULL if !found
 }
 
 // find catalog by name in a linked list, return NULL if !found