/*
 * WineFile
 * Ukrainian Language Support
 *
 * Copyright 2000 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 * 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 "resource.h"

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

LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT

/* Menu */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Файл"  {
        MENUITEM "&Відкрити\tEnter",                ID_ACTIVATE
        MENUITEM "&Перемістити...\tF7",                ID_FILE_MOVE
        MENUITEM "&Копіювати...\tF8",                ID_FILE_COPY
        MENUITEM "В &буфер обміну...\tF9",        118
        MENUITEM "Вида&лити\tDel",                ID_FILE_DELETE
        MENUITEM "Пере&йменувати...",                  109
        MENUITEM "Властивос&ті...\tAlt+Enter",   ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "Запак&увати...",                119
        MENUITEM "Р&озпакувати...",              120
        MENUITEM SEPARATOR
        MENUITEM "&Запустити...",                     ID_RUN
        MENUITEM "&Друк...",                   102
        MENUITEM "Асоціювати...",                103
        MENUITEM SEPARATOR
        MENUITEM "Створити директорі&ю...",        111
        MENUITEM "По&шук...",                  104
        MENUITEM "Виділити &файли...",            116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "Ви&хід\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "Ви&хід",                       ID_FILE_EXIT
#endif
    }

    POPUP "&Диск"  {
        MENUITEM "&Копіювати диск...",               201
        MENUITEM "&Мітка тому...",              202
        MENUITEM SEPARATOR
        MENUITEM "&Форматувати диск...",             ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Створити системний диск...", -1 /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Підключити &мережний диск",      ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Відключити мережний диск",   ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Зробити спільним як...",                 254
        MENUITEM "&Закрити спільний доступ...",            255
        MENUITEM SEPARATOR
        MENUITEM "Ви&брати диск...",            251
    }

    POPUP "Ди&ректорії"  {
        MENUITEM "&Наступний рівень\t+",              301
        MENUITEM "Розгорнути &дерево\t*",             302
        MENUITEM "Розгорнути &все\tStrg+*",         303
        MENUITEM "Згорнути д&ерево\t-",           304
        MENUITEM SEPARATOR
        MENUITEM "&Mark Children",              505
    }

    POPUP "&Вигляд"  {
        MENUITEM "Дере&во і директорія",         413
        MENUITEM "Лише д&ерево",                  411
        MENUITEM "Лише д&иректорія",             412
        MENUITEM SEPARATOR
        MENUITEM "Роз&бити",                      ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Ім'я",                       ID_VIEW_NAME
        MENUITEM "Всі дані про фай&л",           ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Часткові дані...",         ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Сортувати за ім'ям",               ID_VIEW_SORT_NAME
        MENUITEM "Сортувати за &типом",               ID_VIEW_SORT_TYPE
        MENUITEM "Сортувати за ро&зміром",               ID_VIEW_SORT_SIZE
        MENUITEM "Сортувати за  &датою",               ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Сортувати за &...",              ID_VIEW_FILTER
    }

    POPUP "&Налаштування"  {
        MENUITEM "&Підтвердження...",            501
        MENUITEM "&Шрифт...",                    ID_SELECT_FONT
        MENUITEM "Customize Tool&bar...",       512
        MENUITEM SEPARATOR
        MENUITEM "&Toolbar",                    ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Панель &дисків",                   ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "&Рядок стану",                 ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "В&есь екран\tCtrl+Shift+S",  ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Minimize on run",            504
        MENUITEM "&Зберегти налаштування перед виходом",      ID_VIEW_SAVESETTINGS
    }


    POPUP "&Безпека"  {
        MENUITEM "&Доступ...",                  605
        MENUITEM "&Logging...",                 606
        MENUITEM "&Власник...",                   607
    }

    POPUP "Ві&кно"  {
        MENUITEM "Нове &Вікно",                 ID_WINDOW_NEW
        MENUITEM "Вікна каскадом\tCtrl+F5",          ID_WINDOW_CASCADE
        MENUITEM "Tile &Horizontally",          ID_WINDOW_TILE_HORZ
        MENUITEM "Tile &Vertically\tCtrl+F4",   ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Впорядкувати автоматично",       ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Arrange &Symbols",            ID_WINDOW_ARRANGE
        MENUITEM "&Оновити\tF5",                ID_REFRESH
    }

    POPUP "Довідк&а"  {
        MENUITEM "&Розділи довідки\tF1",            ID_HELP
        MENUITEM "По&шук...\tF1",         ID_HELP
        MENUITEM "&Користування довідкою\tF1",             ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Про Winefile...",          ID_ABOUT
    }
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Виберіть шлях призначення"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Шлях:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Скасувати", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Огляд", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "За типом файлів"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Ім'я:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Тип файлу",-1,7,23,87,56
    CONTROL         "&Директорії",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Програми",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Доку&менти",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "Інші &файли",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Показати приховані/&Системні файли",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Скасувати",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Властивості для %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Скасувати",IDCANCEL,191,29,50,14
    LTEXT           "Ім'я &файлу:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Повний &шлях:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Останні зміни:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Версія:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Cop&yright:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Розмір:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Атрибути",-1,7,79,158,46
    CONTROL         "&Лише для читання",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "Пр&ихований",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Архів",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Сисемний",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "С&тиснутий",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "Дані про ве&рсію",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Застосування параметрів шрифта"
    IDS_FONT_SEL_ERROR      "Помилка при виборі нового шрифта."
}

STRINGTABLE
{
    IDS_WINEFILE            "Wine File Manager"
    IDS_ERROR               "Помилка"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Робочий стіл"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Ще не реалізовано"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "Ім'я"
    IDS_COL_SIZE            "Розмір"
    IDS_COL_CDATE           "CDate"
    IDS_COL_ADATE           "ADate"
    IDS_COL_MDATE           "MDate"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Посилання"
    IDS_COL_ATTR            "Атрибути"
    IDS_COL_SEC             "Безпека"

    IDS_FREE_SPACE_FMT      "%s з %s вільно"
}
