1. Favicon configuration of the project:
a. Fixed incorrect link to favicon from the subfolder /users/
b. Added ability to set favicon via config
2. Completed translation of all string constants into Russian language.
$PALANG['confirm'] = 'Вы уверены, что хотите удалить это?\n';
$PALANG['confirm_delete_admin'] = 'Do you really want to delete the admin %s?'; # XXX
$PALANG['confirm_delete_alias'] = 'Do you really want to delete the alias %s?'; # XXX
$PALANG['confirm_delete_aliasdomain'] = 'Do you really want to delete the alias domain %s?'; # XXX
$PALANG['confirm_delete_domain'] = 'Вы действительно хотите удалить все настройки для домена? Это действие нельзя будет отменить!\n (%s)'; # XXX text changed to: 'Do you really want to delete all records for the domain %s? This can not be undone'
$PALANG['confirm_delete_fetchmail'] = 'Do you really want to delete the fetchmail job %s?'; # XXX
$PALANG['confirm_delete_mailbox'] = 'Do you really want to delete the mailbox %s?'; # XXX
$PALANG['confirm_delete_vacation'] = 'Do you really want to delete the vacation message for %s?'; # XXX
$PALANG['no_delete_permissions'] = 'You are not allowed to delete %s!'; # XXX
$PALANG['confirm_delete_admin'] = 'Вы действительно хотите удалить админа %s?';
$PALANG['confirm_delete_alias'] = 'Вы действительно хотите удалить алиас %s?';
$PALANG['confirm_delete_aliasdomain'] = 'Вы действительно хотите удалить алиас домена %s?';
$PALANG['confirm_delete_domain'] = 'Вы действительно хотите удалить все записи домена %s? Это действие нельзя будет отменить!';
$PALANG['confirm_delete_fetchmail'] = 'Вы действительно хотите удалить задание fetchmail %s?';
$PALANG['confirm_delete_mailbox'] = 'Вы действительно хотите удалить почтовый ящик %s?';
$PALANG['confirm_delete_vacation'] = 'Вы действительно хотите удалить сообщение автоответчика для %s?';
$PALANG['no_delete_permissions'] = 'Вы не можете удалить %s!';
$PALANG['no_domains_for_this_admin'] = 'У вас нет разрешений ни на один домен.';
$PALANG['no_domains_exist'] = 'Вам нужно создать хотя бы один домен, чтобы использовать обзор.'; # "virtual list" should match $PALANG['pAdminMenu_list_virtual']
$PALANG['no_domains_exist'] = 'Вам нужно создать хотя бы один домен, прежде чем вы сможете использовать обзор.'; # "virtual list" should match $PALANG['pAdminMenu_list_virtual']
$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX
$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX
$PALANG['alias_domain_create_failed'] = 'Не удалось добавить запись в базу данных. (%s)'; # XXX Text changed to: Creating the alias domain %s failed!
$PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX
$PALANG['pCreate_alias_domain_error4'] = 'Все домены уже задействованы в доменах-алиасах.';
$PALANG['pCreate_alias_domain_success'] = 'Домен-алиас добавлен в таблицу доменов-алиасов! (%s)'; # XXX Text changed to: The alias domain %s has been created.
$PALANG['alias_domain_changed'] = 'The alias domain %s has been changed.'; # XXX
$PALANG['alias_domain_to_itsself'] = 'A domain can\'t be an alias domain to itsself!'; # XXX
$PALANG['delete_domain_aliasdomain_target'] = 'The domain %s is the target for one or more alias domains and can\'t be deleted! (Delete the alias domains first.)'; # XXX
$PALANG['alias_domain_already_exists'] = 'Указанный домен уже является алиасом домена!';
$PALANG['alias_domain_does_not_exist'] = 'Указанный домен не является алиасом домена!';
$PALANG['alias_domain_create_failed'] = 'Не удалось создать алиас домена %s!';
$PALANG['alias_domain_change_failed'] = 'Не удалось изменить алиас домена %s!';
$PALANG['pCreate_alias_domain_error4'] = 'Все домены уже задействованы в алиасах доменов.';
$PALANG['pCreate_alias_domain_success'] = 'Алиас домена %s успешно создан.';
$PALANG['alias_domain_changed'] = 'Алиас домена %s успешно изменен.';
$PALANG['alias_domain_to_itsself'] = 'Домен не может быть алиасом для самого себя!';
$PALANG['delete_domain_aliasdomain_target'] = 'Домен %s является целевым для одного или нескольких алиасов доменов и не может быть удален! (Сначала удалите алиасы доменов.)';
$PALANG['pCreate_alias_address_text_error1'] = 'Неверное имя алиаса!';
$PALANG['alias_does_not_exist'] = 'This alias does not exist!'; # XXX
$PALANG['email_address_already_exists'] = 'Этот почтовый адрес уже существует, пожалуйста, выберите другой.'; # XXX check text - should be 'This email address already exists, please choose a different one\!'
$PALANG['alias_does_not_exist'] = 'Указанный алиас не существует!';
$PALANG['email_address_already_exists'] = 'Указанный почтовый адрес уже существует, пожалуйста, выберите другой!';
$PALANG['pCreate_alias_address_text_error3'] = 'Вы достигли лимита по созданным алиасам!';
$PALANG['pCreate_alias_goto_text'] = 'Куда должна доставляться почта.';
$PALANG['pCreate_alias_goto_text_error'] = 'Неверное поле Кому!';
$PALANG['pCreate_alias_result_error'] = 'Невозможно добавить алиас в список! (%s)'; # XXX Text changed to: Creating the alias %s failed!
$PALANG['pCreate_alias_result_success'] = 'Алиас был успешно создан!'; # XXX text change: 'The alias %s has been created!'
$PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX
$PALANG['pCreate_alias_result_error'] = 'Не удалось создать алиас %s!';
$PALANG['pCreate_alias_result_success'] = 'Алиас %s успешно создан!';
$PALANG['alias_updated'] = 'Алиас %s успешно обновлен!';
$PALANG['pCreate_alias_catchall_text'] = 'Для создания catch-all почтового ящика используйте "*" в качестве имени алиаса.'; # XXX don't propagate usage of *@target-domain.com for domain-aliasing any longer
$PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX
$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX
$PALANG['mailbox_alias_cant_be_deleted'] = 'Указанный алиас ссылается на почтовый ящик и не может быть удален!';
$PALANG['protected_alias_cant_be_deleted'] = 'Алиас %s защищен и может быть удален только суперадмином';
$PALANG['pCreate_mailbox_result_error'] = 'Невозможно добавить ящик в список существующих ящиков! (%s)'; # XXX Text changed to: Creating the mailbox %s failed!
$PALANG['pCreate_mailbox_result_success'] = 'Почтовый ящик был успешно создан! (%s)'; # XXX Text changed to: The mailbox %s has been added to the mailbox table!
$PALANG['pCreate_mailbox_result_succes_nosubfolders'] = 'Почтовый ящик был успешно создан, но в нем не удалось создать (некоторые) стандартные папки (%s)'; # XXX Text changed to: The mailbox %s has been added to the mailbox table, but none (or only some) of the predefined sub-folders could be created.
$PALANG['mailbox_updated'] = "The mailbox %s has been updated."; # XXX
$PALANG['mailbox_update_failed'] = "Updating the mailbox %s failed!"; # XXX
$PALANG['pCreate_mailbox_result_error'] = 'Не удалось создать почтовый ящик %s!';
$PALANG['pCreate_mailbox_result_success'] = 'Почтовый ящик %s успешно добавлен в список существующих ящиков!';
$PALANG['pCreate_mailbox_result_succes_nosubfolders'] = 'Почтовый ящик %s успешно добавлен в список существующих ящиков, но в нем не удалось создать некоторые стандартные папки.';
$PALANG['mailbox_updated'] = "Почтовый ящик %s успешно обновлен.";
$PALANG['mailbox_update_failed'] = "Не удалось обновить почтовый ящик %s!";
$PALANG['pEdit_mailbox_welcome'] = 'Редактирование ящика для вашего домена.';
$PALANG['pPassword_password_text_error'] = 'Введенные вами пароли не совпадают либо пусты!';
$PALANG['change_password'] = 'Изменить пароль';
$PALANG['pPassword_result_error'] = 'Невозможно изменить ваш пароль! (%s)'; # XXX Text changed to: Changing the password for %s failed!
$PALANG['pPassword_result_success'] = 'Ваш пароль был изменен! (%s)'; # XXX Text changed to: The password for %s has been changed.
$PALANG['pPassword_recovery_title'] = 'Follow the instructions to reset your password.'; # XXX
$PALANG['pPassword_recovery_button'] = 'Send me the code'; # XXX
$PALANG['pPassword_recovery_email_body'] = "Hello,\n\nUse the following link to change your email password :\n%s\n\nRegards,\n\n" . $CONF['admin_name']; # XXX
$PALANG['pPassword_recovery_sms_body'] = "Hello,\nThe code to change your password is: %s\n" . $CONF['admin_name']; # XXX
$PALANG['pPassword_recovery_processed'] = "We processed your request. If you entered a valid username, you'll receive an email/SMS with a password code."; # XXX
$PALANG['pPassword_password_code'] = 'Code sent by email/SMS'; # XXX
$PALANG['pPassword_result_error'] = 'Не удалось изменить пароль для %s!';
$PALANG['pPassword_result_success'] = 'Пароль для %s успешно изменен.';
$PALANG['pPassword_recovery_title'] = 'Следуйте инструкциям для сброса вашего пароля.';
$PALANG['pPassword_recovery_button'] = 'Прислать мне код';
$PALANG['pPassword_recovery_email_body'] = "Здравствуйте!\n\nИспользуйте следующую ссылку для изменения вашего пароля от электронной почты:\n%s\n\nС уважением,\n\n" . $CONF['admin_name'];
$PALANG['pPassword_recovery_sms_body'] = "Здравствуйте!\nКод для изменения вашего пароля: %s\n" . $CONF['admin_name'];
$PALANG['pPassword_recovery_processed'] = "Мы обработали ваш запрос. Если вы ввели корректное имя пользователя, вы получите письмо/SMS с кодовым словом.";
$PALANG['pPassword_password_code'] = 'Код отправлен по почте/SMS';
$PALANG['pEdit_vacation_set'] = 'Поменять / задать сообщение об отсутствии';
$PALANG['pEdit_vacation_remove'] = 'Убрать сообщение об отсутствии';
$PALANG['pVacation_result_error'] = 'Невозможно обновить настройки автоответчика! (%s)'; # XXX Text changed to: Updating the auto response settings for %s failed
$PALANG['pVacation_result_error'] = 'Не удалось обновить настройки автоответчика для %s!';
$PALANG['pVacation_result_removed'] = 'Автоответчик для %s отключен!';
$PALANG['pVacation_result_added'] = 'Автоответчик для %s включен!';
$PALANG['pVacation_reply_type'] = 'Choice of reply'; # XXX
$PALANG['domain_postdel_failed'] = 'Невозможно удалить домен!'; # XXX Text changed to: The domain postdeletion script failed, check the error log for details!
$PALANG['domain_postcreate_failed'] = 'The domain postcreate script failed, check the error log for details!'; # XXX
$PALANG['mailbox_postdel_failed'] = 'The mailbox postdeletion script failed, check the error log for details!'; # XXX
$PALANG['mailbox_postedit_failed'] = 'The mailbox postedit script failed, check the error log for details!'; # XXX
$PALANG['mailbox_postcreate_failed'] = 'The mailbox postcreate script failed, check the error log for details!'; # XXX
$PALANG['password_too_short'] = "Пароль слишком короткий - требуется %s символов";
$PALANG['password_no_characters'] = "Ваш пароль должен содержать не менее %s символов."; # XXX text changed to "Your password must contain at least %s letters (A-Z, a-z)."
$PALANG['password_too_short'] = "Пароль слишком короткий: требуется %s символов";
$PALANG['password_no_characters'] = "Ваш пароль должен содержать не менее %s символов.";
$PALANG['password_no_digits'] = "Ваш пароль должен содержать не менее %s цифр(ы).";
$PALANG['pInvalidDomainRegex'] = "Некорректное имя домена %s, не соответствует регулярному выражению";
$PALANG['pInvalidDomainDNS'] = "Некорректный домен %s, и/или не обнаруживается в DNS";
$PALANG['pInvalidMailRegex'] = "Некорректный адрес e-mail, не соответствует регулярному выражению (%s)"; # XXX %s added - but it should be in the text, not at the end
$PALANG['pInvalidMailRegex'] = "Некорректный email %s, не соответствует регулярному выражению";
$PALANG['pFetchmail_desc_date'] = 'Дата последнего опроса/изменения конфигурации';
$PALANG['pFetchmail_desc_returned_text'] = 'Текст отчета о последнем опросе';
$PALANG['dateformat_pgsql'] = 'YYYY-mm-dd'; # translators: rearrange to your local date format, but make sure it's a valid PostgreSQL date format # XXX
$PALANG['dateformat_mysql'] = '%Y-%m-%d'; # translators: rearrange to your local date format, but make sure it's a valid MySQL date format # XXX