/*
 * 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         "&Архивный",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 свободно"
}
