/*
 * shell32 (Traditional Chinese Resource)
 *
 * Copyright 1998 Juergen Schmied
 * Copyright 2002 Tisheng Chen
 * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
 * Copyright 2010 Cheer Xiao <xiaqqaix.at.gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "shresdef.h"

/* Chinese text is encoded in UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

MENU_001 MENU
BEGIN
	MENUITEM "大图标 (&G)",		FCIDM_SHVIEW_BIGICON
	MENUITEM "小图标 (&M)",		FCIDM_SHVIEW_SMALLICON
	MENUITEM "列表 (&L)",		FCIDM_SHVIEW_LISTVIEW
	MENUITEM "详细信息 (&D)",	FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU
BEGIN
	POPUP ""
	BEGIN
	  POPUP "查看 (&V)"
	  BEGIN
	    MENUITEM "大图标 (&G)",		FCIDM_SHVIEW_BIGICON
	    MENUITEM "小图标 (&M)",		FCIDM_SHVIEW_SMALLICON
	    MENUITEM "列表 (&L)",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "详细信息 (&D)",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "排列图标 (&I)"
	  BEGIN
	    MENUITEM "按名字 (&N)",	0x30	/* column 0 */
	    MENUITEM "按类型 (&T)",	0x32	/* column 2 */
	    MENUITEM "按大小 (&S)",	0x31	/* ... */
	    MENUITEM "按日期 (&D)",	0x33
	    MENUITEM SEPARATOR
	    MENUITEM "自动排列 (&A)",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "对齐图标",	FCIDM_SHVIEW_SNAPTOGRID
	  MENUITEM SEPARATOR
	  MENUITEM "刷新",		FCIDM_SHVIEW_REFRESH
	  MENUITEM SEPARATOR
	  MENUITEM "粘贴",		FCIDM_SHVIEW_INSERT
	  MENUITEM "粘贴快捷方式",	FCIDM_SHVIEW_INSERTLINK
	  MENUITEM SEPARATOR
	  POPUP "新建"
	  BEGIN
	    MENUITEM "新文件夹 (&F)",	FCIDM_SHVIEW_NEWFOLDER
	    MENUITEM "新快捷方式 (&L)",	FCIDM_SHVIEW_NEWLINK
	    MENUITEM SEPARATOR
	  END
	  MENUITEM SEPARATOR
	  MENUITEM "属性",	FCIDM_SHVIEW_PROPERTIES
	END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "选择(&S)"		FCIDM_SHVIEW_OPEN
	  MENUITEM "文件管理器(&X)",FCIDM_SHVIEW_EXPLORE
	  MENUITEM "打开(&O)",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "剪切(&U)",		FCIDM_SHVIEW_CUT
	  MENUITEM "复制(&C)",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "创建快捷方式(&L)",	FCIDM_SHVIEW_CREATELINK
	  MENUITEM "删除(&D)",		FCIDM_SHVIEW_DELETE
	  MENUITEM "改名(&R)",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "属性(&P)",		FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "文件(&F)"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "退出(&x)", IDM_CPANEL_EXIT
    END

    POPUP "查看(&V)"
    BEGIN
        MENUITEM "大图标(&g)", FCIDM_SHVIEW_BIGICON
        MENUITEM "小图标(&m)", FCIDM_SHVIEW_SMALLICON
        MENUITEM "列表(&L)", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "详细信息(&D)", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "帮助(&H)"
    BEGIN
        MENUITEM "关于控制面板(&A)...", IDM_CPANEL_ABOUT
    END
END

SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "选择文件夹"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "确定", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "取消", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
 LTEXT "", IDD_TITLE, 4, 4, 180, 12
 LTEXT "", IDD_STATUS, 4, 25, 180, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	4, 40, 180, 120
}

SHNEWBRSFORFOLDER_MSGBOX DIALOG 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "选择文件夹"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "文件夹:", IDD_FOLDER, 10, 156, 40, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	12, 38, 194, 105
 EDITTEXT IDD_FOLDERTEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "创建新文件夹 (&M)", IDD_MAKENEWFOLDER, 12, 174, 70, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "确定", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "取消", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP
}

SHELL_YESTOALL_MSGBOX DIALOG 200, 100, 280, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "消息"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "是 (&Y)", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "全部选是 (&A)", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "否 (&N)", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "取消 (&C)", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP
    ICON "", IDD_ICON, 10, 10, 16, 16
    LTEXT "", IDD_MESSAGE, 40, 10, 238, 52, 0
}

SHELL_ABOUT_MSGBOX DIALOG 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "关于 %s"
FONT 9, "MS Shell Dlg"
{
 DEFPUSHBUTTON "确定", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "使用许可(&L)...", IDC_ABOUT_LICENSE, 153, 113, 60, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 170, 10
 LTEXT "运行于 %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine 开发人员:", IDC_ABOUT_WINE_TEXT, 8, 55, 137, 10
}

SHELL_RUN_DLG DIALOG 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 9, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "输入程序，目录，文件或者Internet资源名，Wine将为您打开它。", 12289, 36, 11, 182, 18
 LTEXT "打开(&O):", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "确定", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "取消", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "浏览(&B)...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
		/*	columns in the shellview	*/
	IDS_SHV_COLUMN1		"文件"
	IDS_SHV_COLUMN2		"大小"
	IDS_SHV_COLUMN3		"类型"
	IDS_SHV_COLUMN4		"修改"
	IDS_SHV_COLUMN5		"属性"
	IDS_SHV_COLUMN6		"使用空间"
	IDS_SHV_COLUMN7		"剩余空间"
	IDS_SHV_COLUMN8		"名称"
	IDS_SHV_COLUMN9		"备注"
	IDS_SHV_COLUMN10	"所有者" /**/
	IDS_SHV_COLUMN11	"群组" /**/
	IDS_SHV_COLUMN_DELFROM	"原位置" /**/
	IDS_SHV_COLUMN_DELDATE	"删除日期"
	IDS_SHV_COL_DOCS	"文档" /**/
	IDS_SHV_COL_STATUS	"状态"
	IDS_SHV_COL_LOCATION	"位置"
	IDS_SHV_COL_MODEL	"型号" /**/

	        /* special folders */
	IDS_DESKTOP		"桌面"
	IDS_MYCOMPUTER		"我的电脑"
	IDS_RECYCLEBIN_FOLDER_NAME      "Trash"
	IDS_CONTROLPANEL	"控制面板"

		/* context menus */
	IDS_VIEW_LARGE		"大图标 (&G)"
	IDS_VIEW_SMALL		"小图标 (&M)"
	IDS_VIEW_LIST		"列表 (&L)"
	IDS_VIEW_DETAILS	"详细信息 (&D)"
	IDS_SELECT		"选择"
	IDS_OPEN		"打开"

	IDS_CREATEFOLDER_DENIED "无法创建新文件夹: 拒绝访问."
	IDS_CREATEFOLDER_CAPTION "创建新文件夹时发生了错误"
	IDS_DELETEITEM_CAPTION "确认删除文件"
	IDS_DELETEFOLDER_CAPTION "确认删除文件夹"
	IDS_DELETEITEM_TEXT "真的删除 '%1'?"
	IDS_DELETEMULTIPLE_TEXT "真的删除这 %1 项?"
	IDS_DELETESELECTED_TEXT "真的删除选中项?"
	IDS_TRASHITEM_TEXT "真的把 '%1' 送入回收站?"
	IDS_TRASHFOLDER_TEXT "真的把 '%1' 及其全部内容送入回收站?"
	IDS_TRASHMULTIPLE_TEXT "真的把这 %1 项送入回收站?"
	IDS_CANTTRASH_TEXT "'%1' 一项无法送入回收站. 要彻底删除吗?"
	IDS_OVERWRITEFILE_TEXT "已存在名为 '%1' 的文件.\n\n要替换吗?"
	IDS_OVERWRITEFILE_CAPTION "确认覆盖文件"
	IDS_OVERWRITEFOLDER_TEXT "已存在名为 '%1' 的文件夹.\n\n"\
	    "若选择合并原有同名文件将被替换. 真的要合并吗?"

	    /* message box strings */
	    IDS_RESTART_TITLE       "重启"
	    IDS_RESTART_PROMPT      "要模拟 Windows 重启吗?"
	    IDS_SHUTDOWN_TITLE      "关闭" /**/
	    IDS_SHUTDOWN_PROMPT     "要关闭 Wine 会话吗?"

	    /* Run File dialog */
	    IDS_RUNDLG_ERROR           "无法显示运行文件对话框 (内部错误)"
	    IDS_RUNDLG_BROWSE_ERROR    "无法显示浏览对话框 (内部错误)"
	    IDS_RUNDLG_BROWSE_CAPTION  "浏览"
	    IDS_RUNDLG_BROWSE_FILTER   "可执行文件\0*.exe\0所有文件\0*.*\0\0"

	    /* shell folder path default values */
	IDS_PROGRAMS                "Start Menu\\Programs"
	IDS_PERSONAL                "My Documents"
	IDS_FAVORITES               "Favorites"
	IDS_STARTUP                 "Start Menu\\Programs\\StartUp"
	IDS_RECENT                  "Recent"
	IDS_SENDTO                  "SendTo"
	IDS_STARTMENU               "Start Menu"
	IDS_MYMUSIC                 "My Music"
	IDS_MYVIDEO                 "My Videos"
	IDS_DESKTOPDIRECTORY        "Desktop"
	IDS_NETHOOD                 "NetHood"
	IDS_TEMPLATES               "Templates"
	IDS_APPDATA                 "Application Data"
	IDS_PRINTHOOD               "PrintHood"
	IDS_LOCAL_APPDATA           "Local Settings\\Application Data"
	IDS_INTERNET_CACHE          "Local Settings\\Temporary Internet Files"
	IDS_COOKIES                 "Cookies"
	IDS_HISTORY                 "Local Settings\\History"
	IDS_PROGRAM_FILES           "Program Files"
	IDS_PROGRAM_FILESX86        "Program Files (x86)"
	IDS_MYPICTURES              "My Pictures"
	IDS_PROGRAM_FILES_COMMON    "Program Files\\Common Files"
	IDS_PROGRAM_FILES_COMMONX86 "Program Files (x86)\\Common Files"
	IDS_COMMON_DOCUMENTS        "Documents"
	IDS_ADMINTOOLS              "Start Menu\\Programs\\Administrative Tools"
	IDS_COMMON_MUSIC            "Music"
	IDS_COMMON_PICTURES         "Pictures"
	IDS_COMMON_VIDEO            "Videos"
	IDS_CDBURN_AREA             "Local Settings\\Application Data\\Microsoft\\CD Burning"
	IDS_CONTACTS                "Contacts"
	IDS_LINKS                   "Links"
	IDS_PHOTO_ALBUMS            "Pictures\\Slide Shows"
	IDS_PLAYLISTS               "Music\\Playlists"
	IDS_PUBLIC_DOWNLOADS        "Downloads"
	IDS_PUBLIC_GAME_TASKS       "Microsoft\\Windows\\GameExplorer"
	IDS_PUBLIC_LIBRARIES        "Microsoft\\Windows\\Libraries"
	IDS_PUBLIC_RINGTONES        "Microsoft\\Windows\\Ringtones"
	IDS_SAMPLE_MUSIC            "Music\\Sample Music"
	IDS_SAMPLE_PICTURES         "Pictures\\Sample Pictures"
	IDS_SAMPLE_PLAYLISTS        "Music\\Sample Playlists"
	IDS_SAMPLE_VIDEOS           "Videos\\Sample Videos"
	IDS_SAVED_GAMES             "Saved Games"
	IDS_SAVED_SEARCHES          "Searches"
	IDS_USER_PROFILES           "Users"
	IDS_COMMON_OEM_LINKS        "OEM Links"
	IDS_DOCUMENTS               "Documents"
	IDS_DOWNLOADS               "Downloads"
	IDS_LOCAL_APPDATA_LOW       "AppData\\LocalLow"


	IDS_NEWFOLDER		"新文件夹" /**/

	IDS_CPANEL_TITLE	"Wine 控制面板"
	IDS_CPANEL_NAME		"名称"
	IDS_CPANEL_DESCRIPTION	"描述"

        IDS_SHLEXEC_NOASSOC         "找不到用于打开此类文件的 Windows 程序."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Wine 使用许可"
IDS_LICENSE,
"Wine is free software; you can redistribute it and/or \
modify it under the terms of the GNU Lesser General Public \
License as published by the Free Software Foundation; either \
version 2.1 of the License, or (at your option) any later version.\n\n\
Wine is distributed in the hope that it will be useful, \
but WITHOUT ANY WARRANTY; without even the implied warranty of \
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU \
Lesser General Public License for more details.\n\n\
You should have received a copy of the GNU Lesser General Public \
License along with Wine; if not, write to the Free Software \
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA."
}

LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "選擇(&S)"		FCIDM_SHVIEW_OPEN
	  MENUITEM "檔案管理器(&x)",	FCIDM_SHVIEW_EXPLORE
	  MENUITEM "開啟(&O)",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "剪下(&u)",		FCIDM_SHVIEW_CUT
	  MENUITEM "複製(&C)",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "生成連接(&L)",		FCIDM_SHVIEW_CREATELINK
	  MENUITEM "刪除(&D)",		FCIDM_SHVIEW_DELETE
	  MENUITEM "改名(&R)",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "屬性(&P)",		FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "檔案(&F)"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "結束(&x)", IDM_CPANEL_EXIT
    END

    POPUP "檢視(&V)"
    BEGIN
        MENUITEM "大圖標(&g)", FCIDM_SHVIEW_BIGICON
        MENUITEM "小圖標(&m)", FCIDM_SHVIEW_SMALLICON
        MENUITEM "列表(&L)", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "詳情(&D)", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "幫助(&H)"
    BEGIN
        MENUITEM "關於控制面板(&A)...", IDM_CPANEL_ABOUT
    END
END

SHELL_ABOUT_MSGBOX DIALOG 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "關於 %s"
FONT 9, "MS Shell Dlg"
{
 DEFPUSHBUTTON "確定", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "使用許可(&l)...", IDC_ABOUT_LICENSE, 153, 113, 60, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 170, 10
 LTEXT "運行於 %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine 開發人員 :", IDC_ABOUT_WINE_TEXT, 8, 55, 137, 10
}

SHELL_RUN_DLG DIALOG 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 9, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "輸入程式，目錄，檔案或者Internet資源名，Wine將為您開啟它。", 12289, 36, 11, 182, 18
 LTEXT "打開(&O):", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "確定", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "取消", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "瀏覽(&B)...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

/*	columns in the shellview	*/
STRINGTABLE
BEGIN
	IDS_SHV_COLUMN1		"檔案"
	IDS_SHV_COLUMN2		"大小"
	IDS_SHV_COLUMN3		"類型"
	IDS_SHV_COLUMN4		"已修改"
	IDS_SHV_COLUMN5		"屬性"
	IDS_SHV_COLUMN6		"使用空間"
	IDS_SHV_COLUMN7		"剩餘空間"
	IDS_SHV_COLUMN8		"名稱"
	IDS_SHV_COLUMN9		"備註"

	IDS_CPANEL_TITLE	"Wine 控制面板"
        IDS_CREATEFOLDER_DENIED "Unable to create new Folder: Permission denied."
        IDS_CREATEFOLDER_CAPTION "Error during creation of a new folder"
        IDS_DELETEITEM_CAPTION  "Confirm file deletion"
        IDS_DELETEFOLDER_CAPTION "Confirm folder deletion"
        IDS_DELETEITEM_TEXT     "Are you sure you want to delete '%1'?"
        IDS_DELETEMULTIPLE_TEXT "Are you sure you want to delete these %1 items?"
        IDS_DELETESELECTED_TEXT "Are you sure you want to delete the selected item(s)?"
        IDS_TRASHITEM_TEXT      "Are you sure that you want to send '%1' to the Trash?"
        IDS_TRASHFOLDER_TEXT    "Are you sure that you want to send '%1' and all its content to the Trash?"
        IDS_TRASHMULTIPLE_TEXT  "Are you sure that you want to send these %1 items to the Trash?"
        IDS_CANTTRASH_TEXT      "The item '%1' can't be sent to Trash. Do you want to delete it instead?"
        IDS_OVERWRITEFILE_TEXT  "This folder already contains a file called '%1'.\n\nDo you want to replace it?"
        IDS_OVERWRITEFILE_CAPTION "Confirm file overwrite"
        IDS_OVERWRITEFOLDER_TEXT "This folder already contains a folder named '%1'.\n\n"\
            "If the files in the destination folder have the same names as files in the\n"\
            "selected folder they will be replaced. Do you still want to move or copy\n"\
            "the folder?"
        IDS_NEWFOLDER           "New Folder"

	IDS_CPANEL_NAME		"名稱"
	IDS_CPANEL_DESCRIPTION	"描述"
END
