Commit 8a820bc5 authored by Jau-Horng Chen's avatar Jau-Horng Chen Committed by Alexandre Julliard

Added Traditional Chinese Support

Fixed sublang font size error when not using fixed-size font.
parent 698ef15b
......@@ -46,3 +46,4 @@
#include "cdlg_Sv.rc"
#include "cdlg_Wa.rc"
#include "cdlg_Ja.rc"
#include "cdlg_Zh.rc"
......@@ -28,7 +28,7 @@ LOCVAL(LOCALE_ILZERO,"1")
LOCVAL(LOCALE_INEGNUMBER,"1")
LOCVAL(LOCALE_SNATIVEDIGITS,"0123456789")
LOCVAL(LOCALE_SCURRENCY,"元")
LOCVAL(LOCALE_SINTLSYMBOL,"TWD")
LOCVAL(LOCALE_SINTLSYMBOL,"NTD")
LOCVAL(LOCALE_SMONDECIMALSEP,".")
LOCVAL(LOCALE_SMONTHOUSANDSEP,",")
LOCVAL(LOCALE_SMONGROUPING,"3;0")
......
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 210, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "關於 %s"
FONT 8, "System"
{
DEFPUSHBUTTON "確定", IDOK, 153, 130, 50, 12, WS_TABSTOP
LISTBOX 99, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
ICON "", 1088, 174, 10, 14, 16
LTEXT "", 100, 8, 10, 137, 33
LTEXT "Wine was brought to you by:", 98, 8, 55, 137, 10
}
/* columns in the shellview */
STRINGTABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
BEGIN
IDS_SHV_COLUMN1 "檔案"
IDS_SHV_COLUMN2 "大小"
IDS_SHV_COLUMN3 "類型"
IDS_SHV_COLUMN4 "已修改"
IDS_SHV_COLUMN5 "屬性"
IDS_SHV_COLUMN6 "使用空間"
IDS_SHV_COLUMN7 "剩餘空間"
END
......@@ -1334,3 +1334,4 @@ END
#include "shell32_Sv.rc"
#include "shell32_Wa.rc"
#include "shell32_Ja.rc"
#include "shell32_Zh.rc"
......@@ -56,3 +56,62 @@ STRINGTABLE DISCARDABLE
{
MDI_IDS_MOREWINDOWS "更多窗口(&M)..." /* defined in mdi.h */
}
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "回復(&R)", 61728
MENUITEM "移動(&M)", 61456
MENUITEM "大小(&S)", 61440
MENUITEM "最小化(&N)", 61472
MENUITEM "最大化(&X)", 61488
MENUITEM SEPARATOR
MENUITEM "關閉(&N)\tAlt-F4", 61536
MENUITEM SEPARATOR
MENUITEM "切換到(&S)...\tCtrl-Esc", 61744
}
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
POPUP ""
BEGIN
MENUITEM "回復(&U)", EM_UNDO
MENUITEM SEPARATOR
MENUITEM "剪下(&T)", WM_CUT
MENUITEM "復製(&C)", WM_COPY
MENUITEM "貼上(&P)", WM_PASTE
MENUITEM "刪除(&D)", WM_CLEAR
MENUITEM SEPARATOR
MENUITEM "全選(&A)", EM_SETSEL
END
}
MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_SYSMODAL | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "確定(&O)", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "取消(&C)", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "中止(&A)", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "重試(&R)", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "忽略(&I)", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "是(&Y)", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "否(&N)", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "選擇視窗"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in mdi.h */
DEFPUSHBUTTON "確定", IDOK, 75, 100, 35, 14
PUSHBUTTON "取消", IDCANCEL, 120, 100, 35, 14
END
STRINGTABLE DISCARDABLE
{
MDI_IDS_MOREWINDOWS "更多視窗(&M)..." /* defined in mdi.h */
}
......@@ -141,7 +141,11 @@ static WORD X11DRV_enum_subfont_charset_cp949( UINT index )
static WORD X11DRV_enum_subfont_charset_cp950( UINT index )
{
FIXME( "please implement X11DRV_enum_subfont_charset_cp950!\n" );
switch ( index )
{
case 0: return ANSI_CHARSET;
}
return DEFAULT_CHARSET;
}
......@@ -262,16 +266,8 @@ static XChar2b* X11DRV_unicode_to_char2b_cp936( fontObject* pfo,
{
if ( IsLegalDBCSChar_cp936( *str_src, *(str_src+1) ) )
{
if ( IsLegalDBCSChar_euc( *str_src, *(str_src+1) ) )
{
DBCSCharToXChar2b_euc( str2b_dst, *str_src, *(str_src+1) );
}
else
{
/* FIXME */
str2b_dst->byte1 = 0;
str2b_dst->byte2 = 0;
}
str2b_dst->byte1 = *str_src;
str2b_dst->byte2 = *(str_src+1);
str_src++;
}
else
......@@ -311,16 +307,8 @@ static XChar2b* X11DRV_unicode_to_char2b_cp949( fontObject* pfo,
{
if ( IsLegalDBCSChar_cp949( *str_src, *(str_src+1) ) )
{
if ( IsLegalDBCSChar_euc( *str_src, *(str_src+1) ) )
{
DBCSCharToXChar2b_euc( str2b_dst, *str_src, *(str_src+1) );
}
else
{
/* FIXME */
str2b_dst->byte1 = 0;
str2b_dst->byte2 = 0;
}
str2b_dst->byte1 = *str_src;
str2b_dst->byte2 = *(str_src+1);
str_src++;
}
else
......@@ -339,8 +327,42 @@ static XChar2b* X11DRV_unicode_to_char2b_cp949( fontObject* pfo,
static XChar2b* X11DRV_unicode_to_char2b_cp950( fontObject* pfo,
LPCWSTR lpwstr, UINT count )
{
FIXME( "please implement X11DRV_unicode_to_char2b_cp950!\n" );
return NULL;
XChar2b *str2b;
XChar2b *str2b_dst;
BYTE *str;
BYTE *str_src;
UINT i;
char ch = pfo->fs->default_char;
if (!(str2b = HeapAlloc( GetProcessHeap(), 0, count * sizeof(XChar2b) )))
return NULL;
if (!(str = HeapAlloc( GetProcessHeap(), 0, count*2 )))
{
HeapFree( GetProcessHeap(), 0, str2b );
return NULL;
}
WideCharToMultiByte( 950, 0, lpwstr, count, str, count*2, &ch, NULL );
str_src = str;
str2b_dst = str2b;
for (i = 0; i < count; i++, str_src++, str2b_dst++)
{
if ( IsLegalDBCSChar_cp950( *str_src, *(str_src+1) ) )
{
str2b_dst->byte1 = *str_src;
str2b_dst->byte2 = *(str_src+1);
str_src++;
}
else
{
str2b_dst->byte1 = 0;
str2b_dst->byte2 = *str_src;
}
}
HeapFree( GetProcessHeap(), 0, str );
return str2b;
}
......@@ -673,10 +695,10 @@ const X11DRV_CP X11DRV_cptable[X11DRV_CPTABLE_COUNT] =
{ /* CP950 */
X11DRV_enum_subfont_charset_cp950,
X11DRV_unicode_to_char2b_cp950,
X11DRV_DrawString_normal, /* FIXME */
X11DRV_TextWidth_normal, /* FIXME */
X11DRV_DrawText_normal, /* FIXME */
X11DRV_TextExtents_normal, /* FIXME */
X11DRV_GetTextMetricsA_normal, /* FIXME */
X11DRV_DrawString_dbcs,
X11DRV_TextWidth_dbcs_2fonts,
X11DRV_DrawText_dbcs_2fonts,
X11DRV_TextExtents_dbcs_2fonts,
X11DRV_GetTextMetricsA_cp932,
},
};
......@@ -242,7 +242,7 @@ static fontEncodingTemplate __fETTable[] = {
{ "jisx0212.1990",sufch_jisx0212, &__fETTable[15]},
{ "ksc5601.1987", sufch_ksc5601, &__fETTable[16]},
{ "gb2312.1980", sufch_gb2312, &__fETTable[17]},
{ "big5.et", sufch_big5, &__fETTable[18]},
{ "big5", sufch_big5, &__fETTable[18]},
{ "unicode", sufch_unicode, &__fETTable[19]},
{ "iso10646", sufch_iso10646, &__fETTable[20]},
{ "cp", sufch_windows, &__fETTable[21]},
......@@ -299,6 +299,8 @@ static const struct CharsetBindingInfo charsetbindings[] =
{ "GulimChe", HANGEUL_CHARSET },
{ "MS Song", GB2312_CHARSET },
{ "MS Hei", GB2312_CHARSET },
{ "\xb7\x73\xb2\xd3\xa9\xfa\xc5\xe9", CHINESEBIG5_CHARSET },/*MS Mingliu*/
{ "\xb2\xd3\xa9\xfa\xc5\xe9", CHINESEBIG5_CHARSET },
{ NULL, 0 }
};
......@@ -3037,9 +3039,7 @@ static X_PHYSFONT XFONT_RealizeFont( const LPLOGFONT16 plf,
lfSub = *plf;
lfSub.lfWidth = 0;
lfSub.lfHeight = pfo->fi->df.dfPixHeight;
if ( plf->lfHeight < 0 )
lfSub.lfHeight = - lfSub.lfHeight;
lfSub.lfHeight=plf->lfHeight;
lfSub.lfCharSet = (BYTE)(charset_sub & 0xff);
lfSub.lfFaceName[0] = '\0'; /* FIXME? */
/* this font has sub font */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment