Языковые файлы |
Языковые файлы используются как источники текстовых данных (строковых ресурсов) при формировании уведомлений, выводе текстовых сообщений или вставке текстовых фрагментов в обрабатываемые письма. Языковые файлы используются в основном компонентом Notifier, но также могут использоваться подключаемыми модулями (в частности, модуль Drweb использует текст из этого файла для вставки сообщения в письмо вместо удаленного из него вредоносного вложения). Путь к каталогу, в котором хранятся используемые языковые файлы, должен быть одним и тем же как для компонента Notifier, так и для подключаемых модулей. Путь к используемому каталогу с языковыми файлами указывается в параметре LngBaseDir в секции [Notifier] основного конфигурационного файла. Языковые файлы имеют имя, образованное по принципу [<plug-in>_]<language>.lng, где: •<plug-in> – имя подключаемого модуля, использующего этот языковой файл в качестве источника строк (drweb, modifier и т.п.) •<language> – название языка, на котором составлены текстовые строки, хранящиеся в файле.
Языковой файл имеет следующую внутреннюю структуру: •В первой строке указывается сокращенное название языка, на котором составлены все содержащиеся в файле тексты (en, ru и т.п.). •Во второй строке – название используемой кодировки (например, koi8-r). •В третьей строке – указание на используемую битность кодировки CTE (7bit или 8bit). •Оставшаяся часть файла состоит из строк вида N="текст", где N – номер (идентификатор) текста, а текст – используемый текст. •Также в языковом файле могут присутствовать строки-комментарии, начинающиеся с символа '#' или пустые строки. Такие строки игнорируются.
Пример языкового файла: #language name = LANG Все подключаемые модули используют в своей работе только тот языковой файл, который указан первым в списке NotifyLangs. При этом для поиска необходимой строки (в случае обработки вызова макроса вставки строки $n, например, при действии add-header) всегда выполняется следующий алгоритм: 1)Определяется каталог, содержащий языковые файлы (используется значение параметра LngBaseDir); 2)Определяется первый используемый язык из списка, указанного в значении параметра NotifyLangs; 3)Ищется файл, в имени которого присутствует префикс с именем подключаемого модуля, а первая строчка соответствует сокращенному названию используемого языка; 4)Если такой файл найден, то в нем ищется строка с требуемым номером n в левой части. При этом предполагается, что содержимое этой строки закодировано с использованием кодировки и CTE, указанных в заголовке этого языкового файла. Найденная строка будет использована при обработке письма (добавлена как текст в письмо или в заголовок, в зависимости от совершаемого модулем действия), при этом будут использованы кодировка и CTE, указанные в заголовке языкового файла, из которого была извлечена строка. Если требуемый файл не будет найден или в нем не будет найдена строка с требуемым номером, эта ситуация будет являться ошибочной и будет обрабатываться в соответствии со значением параметра ProcessingErrors в секции [Maild] основного конфигурационного файла. При необходимости вы можете добавить в языковые файлы свои строки. При этом нужно следить, чтобы добавленные строки: •не использовали уже занятые в этом файле номера, поскольку строки с этими номерами уже используются какими-то модулями Dr.Web MailD (или подключаемым модулем). •использовали кодировку и битность CTE, указанные в заголовке языкового файла. |