unit lang;

interface

// todo: cleanup

const S_WARNING    = 'Предупреждение';
const S_QUESTION   = 'Вопрос';
const S_ERR        = 'Ошибка';
const S_INFO       = 'Сообщение';
const S_SELECTFOLDER = 'Выбор папки';
const S_SELECTFILEFOLDER = 'Выбор папки/файла';
const S_SELECTFILE = 'Выбор файла';
const S_SELECTFOLDERREMOTE = 'Впишите полный путь к папке:';
const S_SELECTFILEFOLDERREMOTE = 'Впишите полный путь к папке/файлу:';
const S_SELECTFILEREMOTE = 'Впишите полный путь к файлу';
const S_SELECTFOLDERLOCAL = 'Выберите папку:';
const S_SELECTFILEFOLDERLOCAL = 'Выберите папку/файл:';
const S_SELECTFILELOCAL = 'Выберите файл';
const S_SLOTBUSY    = 'Занят';
const S_SLOTFREE    = 'Свободен';
const S_QUERYTOFREE = 'Очистить этот слот?';
const S_ERRSLOTBUSY = 'Этот слот уже занят';
const S_INSERTFLASH = 'Вставьте flash-диск и нажмите "ОК"';
const S_ERRFLASHNOTFOUND = 'Диск не найден';
const S_ERRFLASH = 'Ошибка получения информации с диска. Возможно диск не форматирован';
const S_NEEDFLASHFORMAT = 'Необходимо отформатировать flash-диск!';
const S_FLASHOK = 'Успешно завершено!';
const S_BLOCKWARN = 'Включайте эту опцию только при использовании API!';
const S_HOURS = 'часов';
const S_DEFSHEETNAME = 'Новая закладка';
const S_DEFSHORTCUTNAME = 'Новый ярлык';
const S_CONFIRMDELETESHEET = 'Удалить закладку?';
const S_EMPTYELEM = 'Обнаружено закладку/ярлык с пустым именем';
const S_NOTUNIQUEELEM = 'Обнаружено закладку/ярлык с неуникальным именем';
const S_CONNECTED = 'Подключено';
const S_NOTCONNECTED = 'Нет подключения';
const S_CONNECTING = 'Подключение...';
const S_ERRCONNECT = 'Ошибка подключения';
const S_CONFIRMDELETEPROFILE = 'Удалить профиль';
const S_PROFILEINUSE = 'Данный профиль не может быть удален, т.к. используется в правилах';
const S_PROFILESNOTSELECTED = 'Не выбраны профили настроек из списка доступных';
const S_EMPTYPROFILENAME = 'Имя профиля не может быть пустым';
const S_PROFILEEXISTS = 'Профиль с таким именем уже существует';
const S_CONFIRMDELETEUSER = 'Удалить пользователя из списка (не из SQL-базы)';
const S_ADDNEWUSERTODB = 'Добавление нового пользователя к базе Runpad';
const S_CHANGEUSERDBPWD = 'Изменение пароля пользователя БД';
const S_DIFFERENTPWDS = 'Вы ввели разные пароли';
const S_EMPTYUSERNAME = 'Вы не ввели имя пользователя';
const S_EMPTYUSERPWD = 'Вы не ввели пароль';
const S_ERR_CONNECT = 'Ошибка подключения/входа';
const S_ERR_ACCESS = 'У вас нет прав для доступа, либо не была запущена утилита начальной настройки БД';
const S_USER_EXISTS = 'Пользователь уже существует.'#13#10'Выберите его из списка и нажмите "Установить права"';
const S_PWD_CHANGED = 'Пароль пользователя изменен!';
const S_ERR_PWD_CHANGE = 'Пользователь не существует или у вас нет прав для осуществления операции';
const S_ACCESS_SET = 'Права установлены!';
const S_USER_ADDED = 'Пользователь добавлен!'#13#10'Не забудьте установить нужные ему права!';
const S_USERNAME_INVCHARS = 'Имя не должно содержать запрещенных символов, быть зарезервированным или начинаться с цифры';
const S_TIP0 = 'Не установлен путь к папке пользователя!'#13#10'Использование папки пользователя НАСТОЯТЕЛЬНО рекомендуется для повышения безопасности и удобства работы пользователей.'#13#10'Установить путь нужно на вкладке "Работа с файлами".';
const S_TIP1 = 'Папка пользователя установлена на диск, на который установлен запрет.'#13#10'Необходимо либо выбрать папку пользователя сетевой (рекомендуется), либо отключить запрет на этот диск.';
const S_TIP2 = 'Не забудьте отключить безопасный режим ("Secure Mode") в настройках D-Tools на клиентских машинах!';
const S_TIP3 = 'Рекомендуем ознакомиться со справкой на этой странице относительно того, как задавать пути к файлам в этих настройках.';
const S_SELECTUSER = 'Выберите или создайте пользователя для редактирования';
const S_DISABLEPWD = 'Отключить пароль?';
const S_SETPWD = 'Установить новый пароль?';
const S_ENTERTHEMEURL = '<введите URL или путь к HTML-файлу>';
const S_CONTENTPROFILE = 'Профиль контента';
const S_ERR_FILEREAD = 'Ошибка чтения из файла';
const S_ERR_FILEWRITE = 'Ошибка записи в файл';
const S_QUERY_SORTSHORTCUTS = 'Отсортировать ярлыки этой закладки?';

const S_RULESHELPUSER =
'"Правила для выборки профилей (для пользователя)"'#13#10+
'---------'#13#10+
'Клиентские профили могут быть профилями для пользователя или для компьютера, т.к. на одном компьютере может быть несколько пользователей.'#13#10+
'На этой закладке устанавливаются настройки, применяемые именно к пользователю.'#13#10+
'Клиентская оболочка (шелл) запускается на пользователе, а не на компьютере!'#13#10+
'Для установки настроек необходимо задать одно или несколько правил, по которым будут выбираться профили настроек для клиентского шелла при его старте.'#13#10+
'Само по себе правило представляет условие, в случае выполнения которого сервер выбирает соответствующие правилу профили и отправляет их на клиентскую машину по запросу от шелла (это происходит при старте шелла).'#13#10+
'Правила просматриваются последовательно, потому их порядок ИМЕЕТ значение. '#13#10+
'Если условие для правила не выполнено, то происходит переход и анализ следующего по списку правила, и так далее, пока не будет выполнено условие. '+'Если ни одно правило не вернуло совпадения, то клиентский шелл будет брать настройки из локального кеша (или использовать настройки по умолчанию).'#13#10+
'Формат правила довольно прост - оно является логической функцией, аргументы которой представляют собой параметры шелла на клиентской машине. '#13#10+
'Вот их список:'#13#10+
'@computerloc - местоположение компьютера'#13#10+
'@computerdesc - описание компьютера (может быть установлен номер машины)'#13#10+
'@computername - NETBIOS имя компьютера'#13#10+
'@ip - IP-адрес компьютера в формате х.х.х.х'#13#10+
'@userdomain - домен пользователя'#13#10+
'@username - имя пользователя Windows'#13#10+
'@langid - выбранный язык шелла (0-рус,1-англ,2-укр)'#13#10+
'В качестве логических условий для правила можно использовать стандартные: =, <>, >, <, >=, <=.'#13#10+
'В качестве булевых операций для правила можно использовать стандартные: NOT, OR, AND.'#13#10+
'Допускается использовать скобки при необходимости. Пробелы за пределами названий игнорируются.'#13#10+
'Проверяемые строковые значения должны быть в ОДИНАРНЫХ КАВЫЧКАХ. Если же в самом названии есть одинарная кавычка, то нужно ее написать дважды подряд.'#13#10+
'Если в качестве правила указать ПУСТУЮ СТРОКУ, это будет означать безусловное совпадение (т.е. при любых входных параметрах будут выбираться профили), потому обычно имеет смысл размещать такое правило в САМОМ КОНЦЕ списка правил.'#13#10+
'Если у вас для всех машин и пользователей должны быть одинаковые настройки, то достаточно добавить одно правило с пустой строкой условия.'#13#10+
'Пример правила "Для пользователя ''user'' выбираем соответствующие профили":'#13#10+
'@username = ''user'''#13#10+
'Пример правила "Для всех пользователей кроме ''student'' или машины с IP 192.168.0.2 выбираем соответствующие профили":'#13#10+
'(@username <> ''student'') OR (@ip = ''192.168.0.2'')'#13#10+
'Таким образом можно составлять и более сложные условия.'#13#10+
'Если, например, в описании машины у вас содержится только ее номер и нужно сравнивать эти номера на "больше"/"меньше" с числами (а не строками), то кавычки указывать не нужно:'#13#10+
'@computerdesc > 25'#13#10;

const S_RULESHELPCOMP =
'"Правила для выборки профилей (для компьютера)"'#13#10+
'---------'#13#10+
'По формату правила для компьютера ничем не отличаются от правил для пользователя, только в них нельзя использовать следующие переменные:'#13#10+
'@userdomain, @username, @langid.'#13#10+
'См. описание правил для пользователя для более детальной информации.'#13#10;



implementation

end.
