now grabs encoding info not from but from '' (empty string) -- default po header (mo catalog must be, of course, contain the header)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2000-01-03 14:27:24 +00:00
parent 94fc5183e9
commit 7e949b437c

View File

@ -475,9 +475,20 @@ void wxMsgCatalog::ConvertEncoding()
wxFontEncoding enc;
// first, find encoding header:
const char *hdr = GetString("$ENCODING");
if (hdr == NULL) return; // not supported by this catalog
if ((enc = wxTheFontMapper -> CharsetToEncoding(hdr, FALSE)) == wxFONTENCODING_SYSTEM) return;
const char *hdr = StringAtOfs(m_pOrigTable, 0);
if (hdr == NULL) return; // not supported by this catalog, does not have non-fuzzy header
if (hdr[0] != 0) return; // ditto
/* we support catalogs with header (msgid "") that is _not_ marked as "#, fuzzy" (otherwise
the string would not be included into compiled catalog) */
wxString header(StringAtOfs(m_pTransTable, 0));
wxString charset;
int pos = header.Find("Content-Type: text/plain; charset=");
if (pos == -1) return; // incorrectly filled Content-Type header
pos += 34 ; /*strlen("Content-Type: text/plain; charset=")*/
while (header[pos] != '\n') charset << header[pos++];
if ((enc = wxTheFontMapper -> CharsetToEncoding(charset, FALSE)) == wxFONTENCODING_SYSTEM) return;
wxFontEncodingArray a = wxEncodingConverter::GetPlatformEquivalents(enc);
if (a[0] == enc) return; // no conversion needed, locale uses native encoding