/*
 * WineCfg resources
 * Korean Language Support
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 * Copyright 2003-2004 Mike Hearn
 * Copyright 2005,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 "config.h"   /* Needed for the PACKAGE_STRING definition */
#include "resource.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 220
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "", IDC_ABT_PANEL, "STATIC", SS_OWNERDRAW, 0, 0, 260, 140
    LTEXT           PACKAGE_NAME,IDC_ABT_TITLE_TEXT,105,30,55,30
    LTEXT           PACKAGE_VERSION,IDC_ABT_PANEL_TEXT,160,43,140,8
    CONTROL         "",IDC_ABT_WEB_LINK,"SysLink", LWS_TRANSPARENT, 105,53,106,8
    LTEXT           "이 라이브러리는 자유 소프트웨어입니다. 당신은 자유 소프트웨어 재단(Free Software Foundation)에서 만든 GNU LGPL(Lesser General Public License) 아래에서 이 프로그램을 재배포 또는 수정할 수 있습니다. 라이센스의 버전은 2.1 또는 (선택적으로) 그 이후 버전을 따르면 됩니다.",
                    IDC_ABT_LICENSE_TEXT,105,64,145,60
    GROUPBOX        " 윈도우즈 등록 정보 ", IDC_STATIC, 15, 155, 230, 55
    LTEXT           "소유자(&O):", IDC_STATIC, 22, 171, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 171, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "단체(&Z):", IDC_STATIC, 22, 185, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 185, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END

IDD_APPCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " 어플리케이션 설정 ",IDC_STATIC, 8,4,244,210
    LTEXT           "Wine은 각각의 프로그램에 대해서 다른 버전의 윈도우즈를 흉내낼 수 있습니다. 이 탭은 라이브러리 탭, 그래픽 탭과 연결되어 있어서, 이들 탭을 이용하여 시스템 전체 또는 프로그램별로 설정이 가능합니다.",
                    IDC_STATIC,15,20,227,30
    CONTROL         "어플리케이션",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,50,230,120
    PUSHBUTTON	    "어플리케이션 추가(&A)...",IDC_APP_ADDAPP, 90,174,80,14
    PUSHBUTTON	    "어플리케이션 제거(&R)",IDC_APP_REMOVEAPP, 170,174,75,14
    LTEXT           "윈도우즈 버젼(&W):",IDC_STATIC,17,196,64,8
    COMBOBOX        IDC_WINVER,83,194,163,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP    
END

IDD_GRAPHCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX    " 창 설정 ",IDC_STATIC,8,4,244,84
    CONTROL     "전체 화면 창에서 자동으로 마우스 잡기(&M)",IDC_FULLSCREEN_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "창관리자가 Wine창을 꾸미도록 함(&D)",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "창관리자가 Wine창을 관리하도록 함(&W)",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "가상 데스크탑 흉내내기(&E)",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "데스크탑 크기(&S):",IDC_DESKTOP_SIZE,15,70,44,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,109,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,64,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,117,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " 다이렉트 3D ",IDC_STATIC,8,95,244,49
    LTEXT       "버텍스 쉐이더 지원(&V): ",IDC_STATIC,15,110,80,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,100,108,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "(만약 하드웨어에서 지원할 경우 ) 픽셀 쉐이더 허용(&P)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " 화면 해상도(&R) ",IDC_STATIC,8,151,244,63
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,187,15
    EDITTEXT    IDC_RES_DPIEDIT,204,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "dpi",IDC_STATIC,235,163,10,8
    LTEXT       "This is a sample text using 10 point Tahoma",IDC_RES_FONT_PREVIEW,15,181,230,28
END

IDD_DLLCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX        " DLL 오버라이드 ",IDC_STATIC,8,4,244,210
    LTEXT           "동적 링크 라이브러리는 개별적으로 내장(Wine에 의해 제공)이나 네이티브(윈도우즈나 프로그램에 의해 제공)으로 지정될수 있습니다."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "새로 오버라이드할 라이브러리(&N):",IDC_STATIC,16,58,112,8
    COMBOBOX        IDC_DLLCOMBO,16,68,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "더하기(&A)",IDC_DLLS_ADDDLL, 164,68,82,13
    LTEXT           "현재 오버라이드 목록(&O):",IDC_STATIC,16,86,100,8
    LISTBOX         IDC_DLLS_LIST,16,96,140,112,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "고치기(&E)...",IDC_DLLS_EDITDLL,164,96,82,14
    PUSHBUTTON      "지우기(&R)",IDC_DLLS_REMOVEDLL,164,114,82,14
END

IDD_LOADORDER DIALOG 80, 90, 110, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "오버라이드 수정"
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX        "불러오기 순서 ",IDC_STATIC,8,4,94,66
    CONTROL         "내장(&B)(Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,75,10
    CONTROL         "네이티브(&N)(Win)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,75,10
    CONTROL         "내장, 네이티브(&L)",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,75,10
    CONTROL         "네이티브, 내장(&V)",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,75,10
    CONTROL         "사용하지 않음(&D)",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,75,10
    DEFPUSHBUTTON   "확인",IDOK,8,74,45,14,WS_GROUP
    PUSHBUTTON      "취소",IDCANCEL,57,74,45,14,WS_GROUP
END

IDD_DRIVECHOOSE DIALOG  60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "드라이브 문자 선택"
FONT 8, "MS Shell Dlg"
BEGIN
	COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
	DEFPUSHBUTTON   "확인",IDOK,105,10,45,14,WS_GROUP
	PUSHBUTTON      "취소",IDCANCEL,105,30,45,14,WS_GROUP
END

IDD_DRIVECFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " 드라이브 연결(&M) ",IDC_STATIC,8,4,244,195
    LTEXT           "연결 관리자가 연결하는 데 실패함, 이 드라이브 설정을 수정될 수 없습니다.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,190,76
    CONTROL         "Listview",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "추가(&A)...",IDC_BUTTON_ADD,15,98,37,14
    PUSHBUTTON      "제거(&R)",IDC_BUTTON_REMOVE,56,98,37,14
    PUSHBUTTON      "자동찾기(&D)",IDC_BUTTON_AUTODETECT,197,98,49,14

    /* editing drive details */
    LTEXT           "경로(&P):",IDC_STATIC_PATH,13,123,25,9
    EDITTEXT        IDC_EDIT_PATH,41,120,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "찾아보기(&B)...",IDC_BUTTON_BROWSE_PATH,200,120,48,13
    
    LTEXT           "형식(&T):",IDC_STATIC_TYPE,13,138,25,10
    COMBOBOX        IDC_COMBO_TYPE,41,135,77,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    
    PUSHBUTTON      "추가옵션 보이기(&A)",IDC_BUTTON_SHOW_HIDE_ADVANCED,179,135,67,13
    LTEXT           "장치(&V):",IDC_STATIC_DEVICE,13,153,26,9
    EDITTEXT        IDC_EDIT_DEVICE,41,150,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "찾아보기(&W)...",IDC_BUTTON_BROWSE_DEVICE,200,150,48,13

    LTEXT           "라벨(&L):",IDC_STATIC_LABEL,13,168,26,12
    EDITTEXT        IDC_EDIT_LABEL,41,165,78,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "시리얼(&E):",IDC_STATIC_SERIAL,13,183,34,12
    EDITTEXT        IDC_EDIT_SERIAL,47,180,78,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "닷 파일 보이기(&D)",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,205,230,8
END

IDD_AUDIOCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX        " 드라이버 선택 ",IDC_STATIC,8,4,244,160
    LTEXT           "원하는 드라이버의 박스를 체크하여 사운드 드라이버를 선택합니다. 어떤 드라이버도 선택하지 않으면 사운드가 해제됩니다. 여러 드라이버를 선택하는 것은 추천하지 않습니다. 드라이버 위에서 마우스 오른쪽 버튼 클릭하여 드라이버를 설정합니다.",IDC_STATIC,16,17,227,33
    CONTROL         "장치",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,50,155,105
    PUSHBUTTON      "소리 테스트(&T)",IDC_AUDIO_TEST,180,50,59,14
    PUSHBUTTON      "제어판(&C)",IDC_AUDIO_CONTROL_PANEL,180,70,59,14
    GROUPBOX        " 다이렉트 사운드 ",IDC_STATIC,8,170,244,44
    LTEXT           "하드웨어 가속(&H): ",IDC_STATIC,15,180,90,10
    COMBOBOX        IDC_DSOUND_HW_ACCEL,100,178,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "기본 샘플 비율(&S):",IDC_STATIC,15,197,70,8
    COMBOBOX        IDC_DSOUND_RATES,90,195,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "기본 비트/샘플(&B):",IDC_STATIC,197,247,80,8
    COMBOBOX        IDC_DSOUND_BITS,220,195,30,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_DESKTOP_INTEGRATION DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 9, "MS Shell Dlg"
BEGIN
    GROUPBOX        "외관 ",IDC_STATIC,8,4,244,106
    LTEXT           "테마(&T):",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "테마 설치(&I)...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "색상(&C):",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "크기(&S):",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "목록(&E):",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "색상(&O):",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "크기(&Z):",IDC_SYSPARAM_SIZE_TEXT,166,64,30,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "글꼴(&F)...",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " 폴더(&D) ",IDC_STATIC,8,114,244,100
    CONTROL         "목록보기",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "연결 위치(&L):",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,55,13
    EDITTEXT         IDC_EDIT_SFPATH,75,195,135,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "찾기(&R)...",IDC_BROWSE_SFPATH,215,195,34,13,WS_DISABLED
END
