class wxMsgCatalog
{
public:
+#if !wxUSE_UNICODE
wxMsgCatalog() { m_conv = NULL; }
~wxMsgCatalog();
+#endif
// load the catalog from disk (szDirPrefix corresponds to language)
bool Load(const wxString& dirPrefix, const wxString& name,
wxMessagesHash m_messages; // all messages in the catalog
wxString m_name; // name of the domain
+#if !wxUSE_UNICODE
// the conversion corresponding to this catalog charset if we installed it
// as the global one
wxCSConv *m_conv;
+#endif
wxPluralFormsCalculatorPtr m_pluralFormsCalculator;
};
// wxMsgCatalog class
// ----------------------------------------------------------------------------
+#if !wxUSE_UNICODE
wxMsgCatalog::~wxMsgCatalog()
{
if ( m_conv )
delete m_conv;
}
}
+#endif // !wxUSE_UNICODE
bool wxMsgCatalog::Load(const wxString& dirPrefix, const wxString& name,
const wxString& msgIdCharset, bool bConvertEncoding)
file.FillHash(m_messages, msgIdCharset, bConvertEncoding);
+#if !wxUSE_UNICODE
// we should use a conversion compatible with the message catalog encoding
// in the GUI if we don't convert the strings to the current conversion but
// as the encoding is global, only change it once, otherwise we could get
wxConvUI =
m_conv = new wxCSConv(file.GetCharset());
}
+#endif // !wxUSE_UNICODE
return true;
}
/* static */
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
{
- wxCFRef<CFLocaleRef> userLocaleRef(CFLocaleCopyCurrent());
+ CFLocaleRef userLocaleRefRaw;
+ if ( wxGetLocale() )
+ {
+ userLocaleRefRaw = CFLocaleCreate
+ (
+ kCFAllocatorDefault,
+ wxCFStringRef(wxGetLocale()->GetCanonicalName())
+ );
+ }
+ else // no current locale, use the default one
+ {
+ userLocaleRefRaw = CFLocaleCopyCurrent();
+ }
+
+ wxCFRef<CFLocaleRef> userLocaleRef(userLocaleRefRaw);
+
CFTypeRef cfstr;
switch ( index )
{