/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2006 Vitaliy Margolen
 *
 * 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 "shresdef.h"

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

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

MENU_001 MENU
BEGIN
    MENUITEM "&Большие значки",	FCIDM_SHVIEW_BIGICON
    MENUITEM "&Мелкие значки",	FCIDM_SHVIEW_SMALLICON
    MENUITEM "&Список",		FCIDM_SHVIEW_LISTVIEW
    MENUITEM "&Подробно",	FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU
BEGIN
    POPUP ""
    BEGIN
        POPUP "&Просмотр"
        BEGIN
            MENUITEM "&Большие значки",	FCIDM_SHVIEW_BIGICON
            MENUITEM "&Мелкие значки",	FCIDM_SHVIEW_SMALLICON
            MENUITEM "&Список",		FCIDM_SHVIEW_LISTVIEW
            MENUITEM "&Подробно",	FCIDM_SHVIEW_REPORTVIEW
        END
        MENUITEM SEPARATOR
        POPUP "Упорядочить &значки"
        BEGIN
            MENUITEM "По &имени",	0x30	/* column 0 */
            MENUITEM "По &типу",	0x32	/* column 2 */
            MENUITEM "По &размеру",	0x31	/* ... */
            MENUITEM "По &дате",	0x33
            MENUITEM SEPARATOR
            MENUITEM "&Автоматически",	FCIDM_SHVIEW_AUTOARRANGE
        END
        MENUITEM "В&ыровнять значки",	FCIDM_SHVIEW_SNAPTOGRID
        MENUITEM SEPARATOR
        MENUITEM "О&бновить",		FCIDM_SHVIEW_REFRESH
        MENUITEM SEPARATOR
        MENUITEM "&Вставить",		FCIDM_SHVIEW_INSERT
        MENUITEM "Вставить &ярлык",	FCIDM_SHVIEW_INSERTLINK
        MENUITEM SEPARATOR
        POPUP "Создать"
        BEGIN
            MENUITEM "&Папка",		FCIDM_SHVIEW_NEWFOLDER
            MENUITEM "&Ярлык",		FCIDM_SHVIEW_NEWLINK
            MENUITEM SEPARATOR
        END
        MENUITEM SEPARATOR
        MENUITEM "Сво&йства",		FCIDM_SHVIEW_PROPERTIES
    END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "&Выбрать"		FCIDM_SHVIEW_OPEN
        MENUITEM "&Проводник",		FCIDM_SHVIEW_EXPLORE
        MENUITEM "&Открыть",		FCIDM_SHVIEW_OPEN
        MENUITEM SEPARATOR
        MENUITEM "&Вырезать",		FCIDM_SHVIEW_CUT
        MENUITEM "&Копировать",		FCIDM_SHVIEW_COPY
        MENUITEM SEPARATOR
        MENUITEM "Создать &ярлык",	FCIDM_SHVIEW_CREATELINK
        MENUITEM "&Удалить",		FCIDM_SHVIEW_DELETE
        MENUITEM "Переи&меновать",	FCIDM_SHVIEW_RENAME
        MENUITEM SEPARATOR
        MENUITEM "Сво&йства",		FCIDM_SHVIEW_PROPERTIES
    END
END

MENU_CPANEL MENU
BEGIN
    POPUP "&Файл"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "В&ыход", IDM_CPANEL_EXIT
    END

    POPUP "&Вид"
    BEGIN
        MENUITEM "&Большие значки", FCIDM_SHVIEW_BIGICON
        MENUITEM "&Мелкие значки", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Список", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Подробно", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Справка"
    BEGIN
        MENUITEM "&О Панели Управления...", IDM_CPANEL_ABOUT
    END
END

SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Обзор"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "Да", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Отмена", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
    LTEXT "", IDD_TITLE, 4, 4, 180, 25
    LTEXT "", IDD_STATUS, 4, 25, 180, 12
    CONTROL "", IDD_TREEVIEW, "SysTreeView32",
	        TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	        WS_BORDER | WS_TABSTOP,
	        4, 40, 180, 120
}

SHNEWBRSFORFOLDER_MSGBOX DIALOG 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Обзор"
FONT 8, "MS Shell Dlg"
{
    LTEXT "", IDD_TITLE, 10, 8, 198, 24
    LTEXT "", IDD_STATUS, 10, 25, 198, 12
    LTEXT "Папка:", IDD_FOLDER, 10, 156, 40, 12
    CONTROL "", IDD_TREEVIEW, "SysTreeView32",
                TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
                WS_BORDER | WS_TABSTOP,
                12, 38, 194, 105
    EDITTEXT IDD_FOLDERTEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Создать &новую папку", IDD_MAKENEWFOLDER, 12, 174, 77, 14, WS_GROUP | WS_TABSTOP
    DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Отмена", IDCANCEL, 156, 174, 50, 14, WS_GROUP | WS_TABSTOP
}

SHELL_YESTOALL_MSGBOX DIALOG 200, 100, 280, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Сообщение"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Да", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Да для &всех", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Нет", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Отмена", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP
    ICON "", IDD_ICON, 10, 10, 16, 16
    LTEXT "", IDD_MESSAGE, 40, 10, 238, 52, 0
}

SHELL_ABOUT_MSGBOX DIALOG 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "О %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "&Лицензия Wine...", IDC_ABOUT_LICENSE, 153, 113, 60, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 137, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 137, 10
 LTEXT "Версия Wine %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Разработчики Wine:", IDC_ABOUT_WINE_TEXT, 8, 55, 137, 10
}

SHELL_RUN_DLG DIALOG 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "Введите имя программы, папки, документа или ресурс Интернета, и Wine откроет их.", 12289, 36, 11, 182, 18
 LTEXT "&Открыть:", 12305, 4, 39, 30, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Отмена", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Об&зор...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
    /* columns in the shellview */
    IDS_SHV_COLUMN1		"Имя"
    IDS_SHV_COLUMN2		"Размер"
    IDS_SHV_COLUMN3		"Тип"
    IDS_SHV_COLUMN4		"Изменён"
    IDS_SHV_COLUMN5		"Атрибуты"
    IDS_SHV_COLUMN6		"Полный объём"
    IDS_SHV_COLUMN7		"Свободно"
    IDS_SHV_COLUMN8		"Имя"
    IDS_SHV_COLUMN9		"Комментарий"
    IDS_SHV_COLUMN10		"Владелец"
    IDS_SHV_COLUMN11		"Группа"
    IDS_SHV_COLUMN_DELFROM	"Исходное местонаходение"
    IDS_SHV_COLUMN_DELDATE	"Время удаления"
    IDS_SHV_COL_DOCS		"Документы"
    IDS_SHV_COL_STATUS		"Состояние"
    IDS_SHV_COL_LOCATION	"Размещение"
    IDS_SHV_COL_MODEL		"Модель"

    /* special folders */
    IDS_DESKTOP			"Рабочий стол"
    IDS_MYCOMPUTER		"Мой компьютер"
    IDS_RECYCLEBIN_FOLDER_NAME  "Корзина"
    IDS_CONTROLPANEL		"Панель Управления"

    /* context menus */
    IDS_VIEW_LARGE		"&Большие значки"
    IDS_VIEW_SMALL		"&Мелкие значки"
    IDS_VIEW_LIST		"&Список"
    IDS_VIEW_DETAILS		"&Подробно"
    IDS_SELECT			"&Выбрать"
    IDS_OPEN			"&Открыть"

    IDS_CREATEFOLDER_DENIED	"Невозможно создать папку - нет полномочий."
    IDS_CREATEFOLDER_CAPTION	"Ошибка во время создания папки"
    IDS_DELETEITEM_CAPTION	"Подтверждение удаления файла"
    IDS_DELETEFOLDER_CAPTION	"Подтверждение удаления папки"
    IDS_DELETEITEM_TEXT		"Удалить '%1'?"
    IDS_DELETEMULTIPLE_TEXT	"Удалить эти обьекты (%1)?"
    IDS_DELETESELECTED_TEXT     "Удалить выбранные обьекты?"
    IDS_TRASHITEM_TEXT          "Переместить '%1' в корзину?"
    IDS_TRASHFOLDER_TEXT        "Переместить папку '%1' и все ее содержимое корзину?"
    IDS_TRASHMULTIPLE_TEXT      "Переместить обьекты %1 в корзину?"
    IDS_CANTTRASH_TEXT          "Обьект '%1' не может быть послан в корзину. Вы хотите его удаить?"
    IDS_OVERWRITEFILE_TEXT      "Папка уже содержит файл '%1'.\n\nВы хотите заменить его?"
    IDS_OVERWRITEFILE_CAPTION	"Подтверждение замены файла"
    IDS_OVERWRITEFOLDER_TEXT "Эта папка уже содержит папку '%1'.\n\n"\
	    "Если файлы в конечной папке имеют те же имена, что и файлы в выбранной\n"\
	    "папке, они будут заменены. Вы всё ещё хотите переместить или скопировать\n"\
	    "папку?"

    /* message box strings */
    IDS_RESTART_TITLE		"Перезагрузить"
    IDS_RESTART_PROMPT		"Вы хотите симулировать перезапуск Windows?"
    IDS_SHUTDOWN_TITLE		"Выключить питание"
    IDS_SHUTDOWN_PROMPT		"Закончить работу с Wine?"

    /* Run File dialog */
    IDS_RUNDLG_ERROR           "Невозможно отобразить диалог Запуск файла (внутренняя ошибка)"
    IDS_RUNDLG_BROWSE_ERROR    "Невозможно отобразить диалог Обзор (внутренняя ошибка)"
    IDS_RUNDLG_BROWSE_CAPTION  "Обзор"
    IDS_RUNDLG_BROWSE_FILTER   "Исполняемые файлы\0*.exe\0Все файлы\0*.*\0\0"

    /* shell folder path default values */
    IDS_PROGRAMS                "Главное меню\\Программы"
    IDS_PERSONAL                "Мои документы"
    IDS_FAVORITES               "Избранное"
    IDS_STARTUP                 "Главное меню\\Программы\\Автозагрузка"
    IDS_RECENT                  "Недавнее"
    IDS_SENDTO                  "Отправить"
    IDS_STARTMENU               "Главное меню"
    IDS_MYMUSIC                 "Моя музыка"
    IDS_MYVIDEO                 "Мои фильмы"
    IDS_DESKTOPDIRECTORY        "Рабочий стол"
    IDS_NETHOOD                 "Сетевое окружение"
    IDS_TEMPLATES               "Шаблоны"
    IDS_APPDATA                 "Application Data"
    IDS_PRINTHOOD               "Принтеры"
    IDS_LOCAL_APPDATA           "Local Settings\\Application Data"
    IDS_INTERNET_CACHE          "Local Settings\\Temporary Internet Files"
    IDS_COOKIES                 "Cookies"
    IDS_HISTORY                 "Local Settings\\History"
    IDS_PROGRAM_FILES           "Program Files"
    IDS_MYPICTURES              "Мои рисунки"
    IDS_PROGRAM_FILES_COMMON    "Program Files\\Common Files"
    IDS_COMMON_DOCUMENTS        "Общие документы"
    IDS_ADMINTOOLS              "Главное меню\\Программы\\Administrative Tools"
    IDS_COMMON_MUSIC            "Общие документы\\Моя музыка"
    IDS_COMMON_PICTURES         "Общие документы\\Мои рисунки"
    IDS_COMMON_VIDEO            "Общие документы\\Мои фильмы"
    IDS_CDBURN_AREA             "Local Settings\\Application Data\\Microsoft\\CD Burning"

    IDS_NEWFOLDER		"Новая папка"

    IDS_CPANEL_TITLE            "Панель Управления Wine"
    IDS_CPANEL_NAME             "Имя"
    IDS_CPANEL_DESCRIPTION      "Описание"
    IDS_SHLEXEC_NOASSOC         "Программы для открытия файлов этого типа не сконфигурировано."
}
