X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/09d2016d9d760fad2c52e7e928a208a57393364b..e1cffcd6e37ef0c3e35cc02a67cbf8c6e18f588f:/src/common/intl.cpp diff --git a/src/common/intl.cpp b/src/common/intl.cpp index 1a1a533dc5..1a155e493f 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -18,10 +18,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "intl.h" -#endif - #if defined(__BORLAND__) && !defined(__WXDEBUG__) // There's a bug in Borland's compiler that breaks wxLocale with -O2, // so make sure that flag is not used for this file: @@ -506,7 +502,7 @@ private: wxPluralFormsNodePtr m_plural; }; -wxDEFINE_SCOPED_PTR_TYPE(wxPluralFormsCalculator); +wxDEFINE_SCOPED_PTR_TYPE(wxPluralFormsCalculator) void wxPluralFormsCalculator::init(wxPluralFormsToken::Number nplurals, wxPluralFormsNode* plural) @@ -1416,7 +1412,7 @@ const wxChar *wxMsgCatalog::GetString(const wxChar *sz, size_t n) const #include "wx/arrimpl.cpp" WX_DECLARE_EXPORTED_OBJARRAY(wxLanguageInfo, wxLanguageInfoArray); -WX_DEFINE_OBJARRAY(wxLanguageInfoArray); +WX_DEFINE_OBJARRAY(wxLanguageInfoArray) wxLanguageInfoArray *wxLocale::ms_languagesDB = NULL; @@ -1600,6 +1596,18 @@ bool wxLocale::Init(int language, int flags) wxMB2WXbuf retloc = wxSetlocaleTryUTF(LC_ALL, locale); +#ifdef __AIX__ + // at least in AIX 5.2 libc is buggy and the string returned from setlocale(LC_ALL) + // can't be passed back to it because it returns 6 strings (one for each locale + // category), i.e. for C locale we get back "C C C C C C" + // + // this contradicts IBM own docs but this is not of much help, so just work around + // it in the crudest possible manner + wxChar *p = wxStrchr((wxChar *)retloc, _T(' ')); + if ( p ) + *p = _T('\0'); +#endif // __AIX__ + if ( !retloc ) { // Some C libraries don't like xx_YY form and require xx only @@ -2526,20 +2534,12 @@ const wxChar *wxLocale::GetString(const wxChar *szOrigString, { NoTransErr noTransErr; - if ( szDomain != NULL ) - { - wxLogTrace(TRACE_I18N, - _T("string '%s'[%lu] not found in domain '%s' for locale '%s'."), - szOrigString, (unsigned long)n, - szDomain, m_strLocale.c_str()); - - } - else - { - wxLogTrace(TRACE_I18N, - _T("string '%s'[%lu] not found in locale '%s'."), - szOrigString, (unsigned long)n, m_strLocale.c_str()); - } + wxLogTrace(TRACE_I18N, + _T("string \"%s\"[%ld] not found in %slocale '%s'."), + szOrigString, (long)n, + szDomain ? wxString::Format(_T("domain '%s' "), szDomain).c_str() + : _T(""), + m_strLocale.c_str()); } #endif // __WXDEBUG__ @@ -3536,7 +3536,7 @@ void wxLocale::InitLanguagesDB() LNG(wxLANGUAGE_ZHUANG, "za" , 0 , 0 , "Zhuang") LNG(wxLANGUAGE_ZULU, "zu" , 0 , 0 , "Zulu") -}; +} #undef LNG // --- --- --- generated code ends here --- --- ---