/*
* Add/Remove Programs Russian resources
*
* Copyright 2008 Vladimir Pankratov
*
* 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 "res.h"

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

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

STRINGTABLE
{
   IDS_CPL_TITLE, "Установка/Удаление программ"
   IDS_CPL_DESC, "Позволяет устанавливать новое ПО, или удалять существующее с Вашего компьютера."
   IDS_TAB1_TITLE, "Приложения"

   IDS_UNINSTALL_FAILED, "Невозможно выполнить, '%s'. Вы хотите удалить программу из списка?"
   IDS_NOT_SPECIFIED, "Отсутствует"

   IDS_COLUMN_NAME, "Название"
   IDS_COLUMN_PUBLISHER, "Издатель"
   IDS_COLUMN_VERSION, "Версия"
   IDS_INSTALL_FILTER, "Установщики\0*instal*.exe;*setup*.exe;*.msi\0Программы (*.exe)\0*.exe\0Все файлы (*.*)\0*.*\0\0"


   IDS_REMOVE, "&Удалить..."
   IDS_MODIFY_REMOVE, "&Изменить/Удалить..."
}

IDD_MAIN DIALOG 0, 0, 320, 235
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Установка/Удаление"
FONT 8, "MS Shell Dlg"
{
CONTROL "Чтобы установить программу с CD-ROM, дискеты или жёсткого диска, нажмите Установить.", 1000, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 40, 7, 270, 20
 CONTROL "Ус&тановить...", IDC_INSTALL, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 246, 26, 64, 14
 CONTROL "", -1, "STATIC", SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE, 7, 46, 303, 1
 CONTROL 2, 1001, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 7, 7, 21, 20
 CONTROL "&Перечисленные программы можно удалить или переустановить автоматически. Чтобы удалить программу или изменить состав установленных компонентов, выберите нужный пункт списка и нажмите кнопку Установить/Удалить.", 1002, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 40, 55, 270, 32
 CONTROL "", IDL_PROGRAMS, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SORTASCENDING | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 7, 90, 303, 100
 CONTROL "&Сведения о поддержке...", IDC_SUPPORT_INFO, "button", BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 198, 94, 14
 CONTROL "&Изменить...", IDC_MODIFY, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 172, 198, 68, 14
 CONTROL "&Удалить...", IDC_ADDREMOVE, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 244, 198, 68, 14
 CONTROL 3, 1003, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 7, 57, 21, 20
}

IDD_INFO DIALOG 0, 0, 256, 138
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Сведения о поддержке"
FONT 8, "MS Shell Dlg"
{
 CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 103, 116, 50, 14
 CONTROL "Перечисленная информация может быть использована для получения технической поддержки приложения %s:", IDC_INFO_LABEL, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 12, 9, 228, 23
 CONTROL "Издатель:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 33, 60, 8
 CONTROL "Версия:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 43, 60, 8
 CONTROL "Контактное лицо:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 53, 60, 8
 CONTROL "Поддержка:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 63, 64, 8
 CONTROL "Телефон:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 73, 68, 8
 CONTROL "Файл 'Readme':", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 83, 60, 8
 CONTROL "Обновления:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 93, 60, 8
 CONTROL "Комментарий:", -1, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 16, 103, 60, 8
 CONTROL "", IDC_INFO_PUBLISHER, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 33, 136, 8
 CONTROL "", IDC_INFO_VERSION, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 43, 136, 8
 CONTROL "", IDC_INFO_CONTACT, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 53, 136, 8
 CONTROL "", IDC_INFO_SUPPORT, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 63, 136, 8
 CONTROL "", IDC_INFO_PHONE, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 73, 136, 8
 CONTROL "", IDC_INFO_README, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 83, 136, 8
 CONTROL "", IDC_INFO_UPDATES, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 93, 136, 8
 CONTROL "", IDC_INFO_COMMENTS, "static", SS_LEFT | WS_CHILD | WS_VISIBLE, 104, 103, 136, 8
}
