#pragma hdrstop
#endif
+#if wxUSE_INTL
+
// standard headers
#include <locale.h>
#include <ctype.h>
#include "wx/intl.h"
#include "wx/file.h"
#include "wx/log.h"
+#include "wx/debug.h"
#include "wx/utils.h"
#include <stdlib.h>
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;
}
// 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 )
// 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() )
return szDomain;
const char *pszTrans = NULL;
- const wxWX2MBbuf szOrgString = wxConv_libc.cWX2MB(szOrigString);
+ const wxWX2MBbuf szOrgString = wxConvCurrent->cWX2MB(szOrigString);
wxMsgCatalog *pMsgCat;
if ( szDomain != NULL ) {
return (wxMB2WXbuf)(szOrigString);
}
else
- return (wxMB2WXbuf)(wxConv_libc.cMB2WX(pszTrans));
+ return (wxMB2WXbuf)(wxConvCurrent->cMB2WX(pszTrans));
}
// find catalog by name in a linked list, return NULL if !found
g_pLocale = pLocale;
return pOld;
}
+
+#endif // wxUSE_INTL
+