/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2006, 2007,2010 YunSong Hwang
 *
 * 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"

#pragma code_page(65001)

LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT

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 "&Select"		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 9, "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 9, "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 9, "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 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "확인", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "Wine 라이센스(&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, 42, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 42, 22, 170, 10
 LTEXT "%s 실행중", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine 에 도움주신 분:", IDC_ABOUT_WINE_TEXT, 8, 54, 204, 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 "", IDC_RUNDLG_ICON, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "풀그림,폴더,문서나 인터넷 자원, 그리고 Wine이 열  것의 이름을 적어주세요.", IDC_RUNDLG_DESCRIPTION, 36, 11, 182, 18
 LTEXT "열기(&O):", IDC_RUNDLG_LABEL, 7, 39, 24, 10
 CONTROL "", IDC_RUNDLG_EDITPATH, "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)...", IDC_RUNDLG_BROWSE, 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	"지워진 날짜"

/* special folders */
IDS_DESKTOP		"데스크탑"
IDS_MYCOMPUTER		"내 컴퓨터"
IDS_RECYCLEBIN_FOLDER_NAME      "휴지통"
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"\
     "만약 당신이 같은 이름으로 대상 폴더를 지정한다면 선택된 폴더는 대체될 것입니다\n"\
     " 대체될 것입니다. 당신은 이 폴더를 이동시키거나 복사하겠습니까?"


/* message box strings */
IDS_RESTART_TITLE       "다시 시작" 
IDS_RESTART_PROMPT      "당신은 윈도우즈 재부팅을  재현하겠습니까?"
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\0A모든 파일\0*.*\0\0"

/* shell folder path default values */
IDS_PROGRAMS                "시작 메뉴\\프로그램"
IDS_PERSONAL                "내 문서"
IDS_FAVORITES               "즐겨찾기"
IDS_STARTUP                 "시작 메뉴\\프로그램\\시작 프로그램"
IDS_RECENT                  "최근 파일"
IDS_SENDTO                  "보내기"
IDS_STARTMENU               "시작 메뉴"
IDS_MYMUSIC                 "내 음악"
IDS_MYVIDEO                 "내 비디오"
IDS_DESKTOPDIRECTORY        "데스크탑"
IDS_NETHOOD                 "네트워크 환경"
IDS_TEMPLATES               "Templates"
IDS_APPDATA                 "Application Data"
IDS_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              "내 그림"
IDS_PROGRAM_FILES_COMMON    "Program Files\\Common Files"
IDS_PROGRAM_FILES_COMMONX86 "Program Files (x86)\\Common Files"
IDS_COMMON_DOCUMENTS        "문서"
IDS_ADMINTOOLS              "시작메뉴\\프로그램\\관리 도구"
IDS_COMMON_MUSIC            "내 음악"
IDS_COMMON_PICTURES         "내 그림"
IDS_COMMON_VIDEO            "내 비디오"
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         "이 형식의 파일을 도록 구성된 윈도우 프로그램이 없습니다."

}

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."
}
