/*
 * WineCfg resources
 * Ukrainian Language Support
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 * Copyright 2003-2004 Mike Hearn
 * Copyright 2010 Igor Paliychuk
 *
 * 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_UKRAINIAN, 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           "Ця програма є вільним ПЗ; ви можете поширювати її та/або змінювати згідно умов GNU Lesser General Public License, яка опублікована Free Software Foundation; версії 2.1 Ліцензії, чи (на ваш розсуд) новішої версії.",
                    IDC_ABT_LICENSE_TEXT,105,64,145,60
    GROUPBOX        " Реєстраційна інформація Windows ", IDC_STATIC, 15, 155, 230, 55
    LTEXT           "&Власник:", IDC_STATIC, 22, 171, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 171, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Органі&зація:", 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 може імітувати різні версії Windows для кожної програми.  Ця вкладка пов'язана з вкладками Бібліотеки та Графіка, що дозволяє зміну налаштувань в цих вкладках як для окремої програми, так і глобально.",
                    IDC_STATIC,15,15,227,32
    CONTROL         "Програми",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,50,230,120
    PUSHBUTTON	    "&Додати програму...",IDC_APP_ADDAPP, 90,174,75,14
    PUSHBUTTON	    "&Видалити програму",IDC_APP_REMOVEAPP, 170,174,75,14
    LTEXT           "&Версія Windows:",IDC_STATIC,17,196,58,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 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Параметри вікна ",IDC_STATIC,8,4,244,84
    CONTROL     "Automatically capture the &mouse in full-screen windows",IDC_FULLSCREEN_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Дозволити менеджеру вікон &декорувати вікна",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Дозволити менеджеру вікон &керувати вікнами",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "&Емулювати віртуальний робочий стіл",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Розмір робочого &столу:",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    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "Вер&шинні шейдери: ",IDC_STATIC,15,110,80,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,100,108,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Ввімкнути &Pixel Shader (якщо підтримується обладнанням)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " &Розширення екрану ",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       "Приклад тексту. Шрифт Tahoma 10 пунктів",IDC_RES_FONT_PREVIEW,15,180,230,28
END

IDD_DLLCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Заміщення DLL ",IDC_STATIC,8,4,244,210
    LTEXT           "Тут вказується, яку донамічно під'єднувану бібліотеку (DLL) використовувати: вбудовану в Wine або сторонню (з Windows)."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "&Нове заміщення для бібліотеки:",IDC_STATIC,16,58,100,8
    COMBOBOX        IDC_DLLCOMBO,16,68,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "&Додати",IDC_DLLS_ADDDLL, 164,68,82,13
    LTEXT           "Існуючі &заміщення:",IDC_STATIC,16,86,100,8
    LISTBOX         IDC_DLLS_LIST,16,96,140,112,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "&Змінити...",IDC_DLLS_EDITDLL,164,96,82,14
    PUSHBUTTON      "&Видалити",IDC_DLLS_REMOVEDLL,164,114,82,14
END

IDD_LOADORDER DIALOG 80, 90, 140, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Змінити заміщення"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Порядок завантаження ",IDC_STATIC,8,4,124,66
    CONTROL         "&Вбудована (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,75,10
    CONTROL         "&Стороння (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,81,10
    CONTROL         "В&будована, потім стороння",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,105,10
    CONTROL         "С&тороння, потім вбудована",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,105,10
    CONTROL         "Вим&кнути",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,75,10
    DEFPUSHBUTTON   "OK",IDOK,22,74,45,14,WS_GROUP
    PUSHBUTTON      "Скасувати",IDCANCEL,72,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   "OK",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        " Парамет&ри дисків ",IDC_STATIC,8,4,244,195
    LTEXT           "Неможливо з'єднатися з mount manager, конфігурація дисків не буде редагуватися.", 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      "&Додати...",IDC_BUTTON_ADD,15,98,37,14
    PUSHBUTTON      "&Видалити",IDC_BUTTON_REMOVE,56,98,37,14
    PUSHBUTTON      "Автови&значення...",IDC_BUTTON_AUTODETECT,180,98,66,14

    /* editing drive details */
    LTEXT           "&Шлях:",IDC_STATIC_PATH,15,123,20,9
    EDITTEXT        IDC_EDIT_PATH,41,120,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Огляд...",IDC_BUTTON_BROWSE_PATH,206,120,40,13

    LTEXT           "&Тип:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,41,135,77,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    PUSHBUTTON      "Д&одатково",IDC_BUTTON_SHOW_HIDE_ADVANCED,172,135,74,13
    LTEXT           "&Привід:",IDC_STATIC_DEVICE,15,153,26,9
    EDITTEXT        IDC_EDIT_DEVICE,41,150,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "О&гляд...",IDC_BUTTON_BROWSE_DEVICE,206,150,40,13

    LTEXT           "&Мітка:",IDC_STATIC_LABEL,15,168,26,12
    EDITTEXT        IDC_EDIT_LABEL,41,165,78,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "&Сер.ном:",IDC_STATIC_SERIAL,10,183,35,12
    EDITTEXT        IDC_EDIT_SERIAL,41,180,78,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Показати &файли, що починаються з крапки",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 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Вибір драйвера ",IDC_STATIC,8,4,244,160
    LTEXT           "Виберіть потрібний звуковий драйвер.  Вимкніть звук не зазначивши жодного драйвера. Вибір декількох драйверів не рекомендується. Налаштуйте драйвер правим кліком миші.",IDC_STATIC,15,20,227,30
    CONTROL         "Пристрої",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,50,155,105
    PUSHBUTTON      "&Тест звуку",IDC_AUDIO_TEST,177,50,65,14
    PUSHBUTTON	    "&Панель керування",IDC_AUDIO_CONTROL_PANEL,177,70,65,14
    GROUPBOX        " DirectSound ",IDC_STATIC,8,170,244,44
    LTEXT	    "&Апаратне прискорення: ",IDC_STATIC,15,180,90,10
    COMBOBOX	    IDC_DSOUND_HW_ACCEL,100,178,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Частота (герц):",IDC_STATIC,15,197,70,8
    COMBOBOX        IDC_DSOUND_RATES,90,195,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Кодування (біт):",IDC_STATIC,137,197,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 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Вигляд ",IDC_STATIC,8,4,244,106
    LTEXT           "&Тема:",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Встановити тему...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "&Колір:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Розмір:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Е&лемент:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "Ко&лір:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "Ро&змір:",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      "&Шрифт...",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " &Теки ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "&Направити:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,12,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,125,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "&Огляд...",IDC_BROWSE_SFPATH,195,195,50,13,WS_DISABLED
END
