/*
 * Program Manager (Russian resources)
 *
 * Copyright 2000 Vasily Volchenko
 * Copyright 2003 Igor Stepin
 *
 * 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 "progman.h"

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

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

/* Menu */

MAIN_MENU MENU
{
 POPUP "&Файл" {
   MENUITEM "&Создать",              PM_NEW
   MENUITEM "О&ткрыть...\tEnter",             PM_OPEN
   MENUITEM "&Переместить...\tF7",             PM_MOVE,      GRAYED
   MENUITEM "&Копировать...\tF8",             PM_COPY,      GRAYED
   MENUITEM "&Удалить\tEntf",           PM_DELETE
   MENUITEM "&Атрибуты...\tAlt+Enter",       PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "&Запустить...",          PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "Вы&ход из Wine...",             PM_EXIT
 }
 POPUP "&Параметры" {
   MENUITEM "&Автоупорядочивание",  PM_AUTO_ARRANGE
   MENUITEM "&Свернуть при запуске",    PM_MIN_ON_RUN
   MENUITEM "&Сохранять настройки при выходе", PM_SAVE_SETTINGS
 }
 POPUP "&Окна" {
   MENUITEM "&Каскад\tShift+F5",       PM_OVERLAP
   MENUITEM "&Мозаика\tShift+F4",  PM_SIDE_BY_SIDE
   MENUITEM "&Упорядочить при выходе",       PM_ARRANGE
 }
 
POPUP "&Справка" {
   MENUITEM "&Содержание",         PM_CONTENTS
   MENUITEM "&Поиск...",           PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "&Использование справки",     PM_HELPONHELP
   MENUITEM "&Руководство",         PM_TUTORIAL
   MENUITEM SEPARATOR
   MENUITEM "&О Wine",     PM_ABOUT_WINE
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Создать программный объект"
{
RADIOBUTTON   "",                 PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "&Группу программ",   -1,    20, 18,  80, 15
RADIOBUTTON   "",                 PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "&Программный элемент", -1,  20, 38,  80, 15
DEFPUSHBUTTON "OK",          IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",      IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",        PM_HELP,        105, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Move' */

DIALOG_MOVE DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Переместить программу"
{
LTEXT         "Переместить программу:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Из группы:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&В группу:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Copy' */

DIALOG_COPY DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Копировать программу"
{
LTEXT         "Копировать программу:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Из группы:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&В группу:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Group attributes' */

DIALOG_GROUP DIALOG 0, 0, 230, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Атрибуты программной группы"
{
LTEXT     "&Описание:", PM_DESCRIPTION_TXT,   05, 18,  50, 10
EDITTEXT                            PM_DESCRIPTION,       60, 18,  90, 15, WS_TABSTOP
LTEXT     "&Файл группы:",        PM_FILE_TXT,          05, 38,  50, 10
EDITTEXT                            PM_FILE,              60, 38,  90, 15, WS_TABSTOP
DEFPUSHBUTTON "OK",            IDOK,                155,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",        IDCANCEL,            155, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",          PM_HELP,             155, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Program attributes' */

DIALOG_PROGRAM DIALOG 0, 0, 250, 105
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Атрибуты программы"
{
LTEXT         "&Описание:",  PM_DESCRIPTION_TXT,   05, 10,  60, 10
EDITTEXT                                   PM_DESCRIPTION,       80, 10,  90, 15, WS_TABSTOP
LTEXT         "&Командная строка:", PM_COMMAND_LINE_TXT,  05, 25,  60, 10
EDITTEXT                                   PM_COMMAND_LINE,      80, 25,  90, 15, WS_TABSTOP
LTEXT         "&Рабочая папка:",    PM_DIRECTORY_TXT,     05, 40,  60, 10
EDITTEXT                                   PM_DIRECTORY,         80, 40,  90, 15, WS_TABSTOP
LTEXT         "&Комбинация клавиш:",      PM_HOT_KEY_TXT,       05, 55,  60, 10
EDITTEXT                                   PM_HOT_KEY,           80, 55,  90, 15, WS_TABSTOP
ICON          "",                          PM_ICON,              20, 70
CHECKBOX      "",                          PM_SYMBOL,            80, 75,  10, 10, WS_TABSTOP
LTEXT         "В виде &значка",       -1,             95, 75,  75, 10
DEFPUSHBUTTON "OK",                   IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",               IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Обзор...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Другой значок...", PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",                 PM_HELP,             185, 85,  60, 15, WS_TABSTOP
}

/* Dialog `Symbol' */

DIALOG_SYMBOL DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Выбрать значок"
{
LTEXT     "&Имя файла:",    PM_ICON_FILE_TXT,    5, 15,  40, 10
EDITTEXT                         PM_ICON_FILE,       45, 15,  85, 15, WS_TABSTOP
LTEXT     "&Текущий значок:", PM_SYMBOL_LIST_TXT,  5, 30, 125, 10
COMBOBOX                         PM_SYMBOL_LIST,      5, 40, 125, 50,
   CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_OWNERDRAWFIXED | WS_TABSTOP
DEFPUSHBUTTON "OK",         IDOK,              135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",     IDCANCEL,          135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Обзор...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",       PM_HELP,           135, 65,  60, 15, WS_TABSTOP
}

/* Dialog `Execute' */

DIALOG_EXECUTE DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Запустить программу"
{
LTEXT     "&Командная строка:", -1,   05, 15, 120, 10
EDITTEXT                               PM_COMMAND, 05, 25, 120, 15, WS_TABSTOP
CHECKBOX      "",                      PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "В виде &значка",   -1,   20, 45, 120, 10
DEFPUSHBUTTON "OK",               IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Отмена",           IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Обзор...",          PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Справка",             PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE DISCARDABLE
{
IDS_PROGRAM_MANAGER,		"Диспетчер программ"
IDS_ERROR,			"ОШИБКА"
IDS_WARNING,			"ВНИМАНИЕ"
IDS_INFO,			"Сведения"
IDS_DELETE,			"Удалить"
IDS_DELETE_GROUP_s,		"Удалить группу `%s' ?"
IDS_DELETE_PROGRAM_s,		"Удалить программу `%s' ?"
IDS_NOT_IMPLEMENTED,		"Ещё не реализовано"
IDS_FILE_READ_ERROR_s,		"Ошибка чтения `%s'."
IDS_FILE_WRITE_ERROR_s,		"Ошибка записи `%s'."
IDS_GRPFILE_READ_ERROR_s,	"\
Файл группы `%s' не может быть открыт.\n\
Надо ли в следующий раз пытаться это сделать?"
IDS_OUT_OF_MEMORY,		"Мало памяти."
IDS_WINHELP_ERROR,		"Справка не доступна."
IDS_UNKNOWN_FEATURE_s,		"Неизвестное свойство в %s"
IDS_FILE_NOT_OVERWRITTEN_s,	"Файл `%s' существует. Он не был перезаписан."
IDS_SAVE_GROUP_AS_s,		"Группа сохраняется под именем `%s' во избежание перезаписи оригинала."
IDS_NO_HOT_KEY,			"Нет"
IDS_ALL_FILES,			"Все файлы (*.*)"
IDS_PROGRAMS,			"Программы"
IDS_LIBRARIES_DLL,		"Библиотеки (*.dll)"
IDS_SYMBOL_FILES,		"Файлы значков"
IDS_SYMBOLS_ICO,		"Значки (*.ico)"
}
