/*
 * WineCfg resources
 * Russian Language Support
 *
 * Copyright 2003 Igor Stepin
 * 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 "config.h"   /* Needed for the PACKAGE_STRING definition */
#include "resource.h"

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

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 220
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "", IDC_ABT_PANEL, "STATIC", SS_OWNERDRAW, 0, 0, 260, 140
    LTEXT           PACKAGE_NAME,IDC_ABT_TITLE_TEXT,105,30,55,30
    LTEXT           PACKAGE_VERSION,IDC_ABT_PANEL_TEXT,160,43,140,8
    CONTROL         "",IDC_ABT_WEB_LINK,"SysLink", LWS_TRANSPARENT, 105,53,106,8
/*
    LTEXT           "Эта библиотека является свободным программным обеспечением; вы можете распространять её и/или модифицировать согласно условиям лицензии GNU Lesser General Public License, опубликованной Free Software Foundation; версии 2.1 лицензии или (на ваше усмотрение) любой более поздней.",
*/
    LTEXT           "This program 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.",
                    IDC_ABT_LICENSE_TEXT,105,64,145,60
    GROUPBOX        " Регистрационная информация Windows ", IDC_STATIC, 15, 155, 230, 55
    LTEXT           "Имя:", IDC_STATIC, 22, 171, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 171, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Организация:", IDC_STATIC, 22, 185, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 185, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END

IDD_APPCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Настройка приложений ",IDC_STATIC, 8,4,244,210
    LTEXT           "Wine может имитировать любую версию Windows для каждого приложения. Эта вкладка связана с вкладками Библиотеки и Графика, что позволяет изменение настроек в этих вкладках как для определённого приложения, так и глобально.",
                    IDC_STATIC,15,20,227,60
    CONTROL         "Приложения",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,65,230,104
    PUSHBUTTON	    "&Добавить приложение...",IDC_APP_ADDAPP, 68,174,94,14
    PUSHBUTTON	    "&Удалить приложение",IDC_APP_REMOVEAPP, 164,174,78,14
    LTEXT           "&Версия Windows:",IDC_STATIC,17,196,58,8
    COMBOBOX        IDC_WINVER,83,194,163,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP    
END

IDD_GRAPHCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Настройки окна ",IDC_STATIC,8,4,244,84
    CONTROL     "Разрешить приложению DirectX удерживать мышь в своём окне",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Разрешить менеджеру окон &декорировать окна",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Разрешить менеджеру окон управлять окнами Wine",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "Эмулировать виртуальный рабочий стол",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Размер рабочего стола:",IDC_DESKTOP_SIZE,15,70,84,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,149,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,104,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,157,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "Вершинные шейдеры: ",IDC_STATIC,15,110,80,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,100,108,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Включить Pixel Shader (если поддерживается оборудованием)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " Разрешение экрана ",IDC_STATIC,8,151,244,63
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,187,15
    EDITTEXT    IDC_RES_DPIEDIT,204,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "dpi",IDC_STATIC,235,163,10,8
    LTEXT       "Пример текста (This is a sample text). Шрифт Tahoma 10 пунктов.",IDC_RES_FONT_PREVIEW,15,181,230,28
END

IDD_DLLCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Замещения DLL ",IDC_STATIC,8,4,244,210
    LTEXT           "Здесь указывается, какую динамически подключаемую библиотеку (DLL) использовать: встроенную в Wine или стороннюю (из Windows)."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "Новое замещение для библиотеки:",IDC_STATIC,16,58,160,8
    COMBOBOX        IDC_DLLCOMBO,16,68,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "&Добавить",IDC_DLLS_ADDDLL, 164,68,82,13
    LTEXT           "Существующие замещения:",IDC_STATIC,16,86,100,8
    LISTBOX         IDC_DLLS_LIST,16,96,140,112,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "&Изменить",IDC_DLLS_EDITDLL,164,96,82,14
    PUSHBUTTON      "&Удалить",IDC_DLLS_REMOVEDLL,164,114,82,14
END

IDD_LOADORDER DIALOG 80, 90, 150, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Изменить замещение"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Порядок загрузки ",IDC_STATIC,8,4,135,66
    CONTROL         "&Встроенная (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,105,10
    CONTROL         "С&торонняя (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,105,10
    CONTROL         "В&строенная, затем сторонняя",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,115,10
    CONTROL         "Ст&оронняя, затем встроенная",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,115,10
    CONTROL         "&Блокировать загрузку",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,105,10
    DEFPUSHBUTTON   "OK",IDOK,8,74,45,14,WS_GROUP
    PUSHBUTTON      "Отмена",IDCANCEL,57,74,45,14,WS_GROUP
END

IDD_DRIVECHOOSE DIALOG  60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Выберите букву диска"
FONT 8, "MS Shell Dlg"
BEGIN
    COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    DEFPUSHBUTTON   "OK",IDOK,105,10,45,14,WS_GROUP
    PUSHBUTTON      "Отмена",IDCANCEL,105,30,45,14,WS_GROUP
END

IDD_DRIVECFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Настройка дисков ",IDC_STATIC,8,4,244,195
    LTEXT           "Невозможно соединиться с mount manager! Конфигурация дисков не будет редактироваться.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,190,76
    CONTROL         "Listview",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "&Добавить...",IDC_BUTTON_ADD,15,98,45,14
    PUSHBUTTON      "&Удалить",IDC_BUTTON_REMOVE,66,98,47,14
    PUSHBUTTON      "&Автоопределение...",IDC_BUTTON_AUTODETECT,165,98,80,14

    /* editing drive details */
    LTEXT           "&Путь:",IDC_STATIC_PATH,15,123,20,9
    EDITTEXT        IDC_EDIT_PATH,41,120,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Обзор...",IDC_BUTTON_BROWSE_PATH,206,120,40,13
    
    LTEXT           "&Тип:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,41,135,77,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    
    PUSHBUTTON      "Дополнительно...",IDC_BUTTON_SHOW_HIDE_ADVANCED,150,135,96,13
    LTEXT           "De&vice:",IDC_STATIC_DEVICE,15,153,26,9
    EDITTEXT        IDC_EDIT_DEVICE,41,150,160,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "Об&зор...",IDC_BUTTON_BROWSE_DEVICE,206,150,40,13

    LTEXT           "&Метка:",IDC_STATIC_LABEL,15,168,70,12
    EDITTEXT        IDC_EDIT_LABEL,85,165,118,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Серийный номер:",IDC_STATIC_SERIAL,15,183,70,12
    EDITTEXT        IDC_EDIT_SERIAL,85,180,118,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Показывать файлы, начинающиеся с точки",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,205,230,8
END

IDD_AUDIOCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Выбор драйвера ",IDC_STATIC,8,4,244,160
    LTEXT	    "Звуковой драйвер: ",IDC_STATIC,15,20,227,30
    CONTROL         "Devices",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,50,140,105
    PUSHBUTTON      "&Проверить звук",IDC_AUDIO_TEST,170,50,59,14
    PUSHBUTTON	    "Панель управления",IDC_AUDIO_CONTROL_PANEL,170,70,80,14
    GROUPBOX        " DirectSound ",IDC_STATIC,8,170,244,45
    LTEXT	    "Аппаратное ускорение: ",IDC_STATIC,15,180,90,10
    COMBOBOX	    IDC_DSOUND_HW_ACCEL,100,178,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Частота (герц):",IDC_STATIC,15,195,70,8
    COMBOBOX        IDC_DSOUND_RATES,100,193,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Кодирование (бит):",IDC_STATIC,144,195,80,8
    COMBOBOX        IDC_DSOUND_BITS,216,193,30,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_DESKTOP_INTEGRATION DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Внешний вид ",IDC_STATIC,8,4,244,106
    LTEXT           "Тема:",IDC_STATIC,15,16,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Установить тему...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "Цвет:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,48,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Размер:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,48,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Элемент:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "Цвет:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "Размер:",IDC_SYSPARAM_SIZE_TEXT,166,64,30,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "Шрифт",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " Стандартные папки ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "Направить в:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "Обзор",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
END
