/*
 * WineFile (Russian resources)
 *
 * Copyright 2003 Igor Stepin
 * Copyright 2007 Konstantin Kondratyuk (Etersoft)
 *
 * 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_RUSSIAN, 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 "&Отметить ветви",             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 "&Настроить панель инструментов...", 512
        MENUITEM SEPARATOR
        MENUITEM "&Панель инструментов",        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 "&Значок в список программ",   504
        MENUITEM "Со&хранять настройки при выходе",511
    }


    POPUP "&Безопасность"  {
        MENUITEM "&Доступ...",                  605
        MENUITEM "&Протоколы...",               606
        MENUITEM "&Владелец...",                607
    }

    POPUP "&Окно"  {
        MENUITEM "Новое &окно",                 ID_WINDOW_NEW
        MENUITEM "Окна &каскадом\tCtrl+F5",     ID_WINDOW_CASCADE
        MENUITEM "Окна с&верху вниз",           ID_WINDOW_TILE_HORZ
        MENUITEM "Окна с&лева направо\tCtrl+F4",ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Расположить &автоматически",  ID_WINDOW_AUTOSORT
#endif
        MENUITEM "&Расположить",                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         "&Archive",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            "Winefile"
    IDS_ERROR               "Ошибка"
    IDS_ROOT_FS             "Корневая файловая система"
    IDS_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           "Дата создания"
    IDS_COL_ADATE           "Дата последнего доступа"
    IDS_COL_MDATE           "Дата последнего изменения"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Ссылки"
    IDS_COL_ATTR            "Атрибуты"
    IDS_COL_SEC             "Безопасность"

    IDS_FREE_SPACE_FMT      "%s из %s свободно"
}
