#endif
#include "wx/file.h"
+#include "wx/filename.h"
#include "wx/tokenzr.h"
#include "wx/module.h"
#include "wx/fontmap.h"
const size_t32 MSGCATALOG_MAGIC = 0x950412de;
const size_t32 MSGCATALOG_MAGIC_SW = 0xde120495;
-// extension of ".mo" files
-#define MSGCATALOG_EXTENSION _T(".mo")
-
// the constants describing the format of lang_LANG locale string
static const size_t LEN_LANG = 2;
static const size_t LEN_SUBLANG = 2;
}
// open disk file and read in it's contents
-bool wxMsgCatalogFile::Load(const wxChar *szDirPrefix, const wxChar *szName0,
+bool wxMsgCatalogFile::Load(const wxChar *szDirPrefix, const wxChar *szName,
wxPluralFormsCalculatorPtr& rPluralFormsCalculator)
{
- /* 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(wxT('.')) != wxNOT_FOUND) // contains a dot
- szName = szName.Left(szName.Find(wxT('.')));
+ /*
+ 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 searchPath = GetFullSearchPath(szDirPrefix);
const wxChar *sublocale = wxStrchr(szDirPrefix, wxT('_'));
<< wxPATH_SEP;
}
- wxString strFile = szName;
- strFile += MSGCATALOG_EXTENSION;
-
// don't give translation errors here because the wxstd catalog might
// not yet be loaded (and it's normal)
//
NoTransErr noTransErr;
wxLogVerbose(_("looking for catalog '%s' in path '%s'."),
- szName.c_str(), searchPath.c_str());
+ szName, searchPath.c_str());
+ wxFileName fn(szName);
+ fn.SetExt(_T("mo"));
wxString strFullName;
- if ( !wxFindFileInPath(&strFullName, searchPath, strFile) ) {
- wxLogVerbose(_("catalog file for domain '%s' not found."), szName.c_str());
+ if ( !wxFindFileInPath(&strFullName, searchPath, fn.GetFullPath()) ) {
+ wxLogVerbose(_("catalog file for domain '%s' not found."), szName);
return false;
}
// open file
- wxLogVerbose(_("using catalog '%s' from '%s'."),
- szName.c_str(), strFullName.c_str());
+ wxLogVerbose(_("using catalog '%s' from '%s'."), szName, strFullName.c_str());
wxFile fileMsg(strFullName);
if ( !fileMsg.IsOpened() )