diff --git a/include/wx/fontenc.h b/include/wx/fontenc.h index 2ec2bc147a..da99ca0d86 100644 --- a/include/wx/fontenc.h +++ b/include/wx/fontenc.h @@ -45,6 +45,14 @@ enum wxFontEncoding wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866 wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria + // Chinese + wxFONTENCODING_GB2312, // Simplified Chinese (same as CP936) + wxFONTENCODING_BIG5, // Traditional Chinese (same as CP950) + + // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html) + wxFONTENCODING_SHIFT_JIS, // (same as CP932) + wxFONTENCODING_EUC_JP, // Extended Unix Codepage for Japanese + // what would we do without Microsoft? They have their own encodings // for DOS wxFONTENCODING_CP437, // original MS-DOS codepage diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp index 2abd4daa72..b8392207a7 100644 --- a/src/common/fontmap.cpp +++ b/src/common/fontmap.cpp @@ -88,6 +88,10 @@ static wxFontEncoding gs_encodings[] = wxFONTENCODING_ISO8859_13, wxFONTENCODING_ISO8859_14, wxFONTENCODING_ISO8859_15, + wxFONTENCODING_GB2312, + wxFONTENCODING_BIG5, + wxFONTENCODING_SHIFT_JIS, + wxFONTENCODING_EUC_JP, wxFONTENCODING_KOI8, wxFONTENCODING_CP932, wxFONTENCODING_CP936, @@ -125,6 +129,10 @@ static const wxChar* gs_encodingDescs[] = wxTRANSLATE( "Celtic (ISO-8859-14)" ), wxTRANSLATE( "Western European with Euro (ISO-8859-15)" ), wxTRANSLATE( "KOI8-R" ), + wxTRANSLATE( "Chinese Simplified (GB2312)" ), + wxTRANSLATE( "Chinese Traditional (BIG5)" ), + wxTRANSLATE( "Japanese (Shift-JIS)" ), + wxTRANSLATE( "Extended Unix Codepage for Japanese (EUC-JP)" ), wxTRANSLATE( "Windows Japanese (CP 932)" ), wxTRANSLATE( "Windows Chinese Simplified (CP 936)" ), wxTRANSLATE( "Windows Korean (CP 949)" ), @@ -161,6 +169,10 @@ static const wxChar* gs_encodingNames[] = wxT( "iso-8859-14" ), wxT( "iso-8859-15" ), wxT( "koi8-r" ), + wxT( "gb2312" ), + wxT( "big5" ), + wxT( "shift-jis" ), + wxT( "euc-jp" ), wxT( "windows-932" ), wxT( "windows-936" ), wxT( "windows-949" ), @@ -521,6 +533,25 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, { encoding = wxFONTENCODING_UTF8; } + else if ( cs == wxT("GB2312") ) + { + encoding = wxFONTENCODING_GB2312; + } + else if ( cs == wxT("BIG5") ) + { + encoding = wxFONTENCODING_BIG5; + } + else if ( cs == wxT("SJIS") || + cs == wxT("SHIFT_JIS") || + cs == wxT("SHIFT-JIS") ) + { + encoding = wxFONTENCODING_SHIFT_JIS; + } + else if ( cs == wxT("EUC-JP") || + cs == wxT("EUC_JP") ) + { + encoding = wxFONTENCODING_EUC_JP; + } else if ( cs == wxT("KOI8-R") || cs == wxT("KOI8-U") || cs == wxT("KOI8-RU") ) diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp index a8cd4efb45..6ccc808a87 100644 --- a/src/unix/fontutil.cpp +++ b/src/unix/fontutil.cpp @@ -652,6 +652,11 @@ bool wxGetNativeFontEncoding(wxFontEncoding encoding, info->xencoding = wxT("*"); break; + case wxFONTENCODING_GB2312: + info->xregistry = wxT("GB2312"); // or the otherway round? + info->xencoding = wxT("*"); + break; + case wxFONTENCODING_KOI8: info->xregistry = wxT("koi8");