<?php
return [
    // General
    'app_name'          => 'Plenvo',
    'save'              => 'Сохранить',
    'cancel'            => 'Отмена',
    'delete'            => 'Удалить',
    'edit'              => 'Редактировать',
    'create'            => 'Создать',
    'created_at_label'  => 'Создано',
    'updated_at_label'  => 'Обновлено',
    'back'              => 'Назад',
    'search'            => 'Поиск',
    'filter'            => 'Фильтр',
    'actions'           => 'Действия',
    'yes'               => 'Да',
    'no'                => 'Нет',
    'confirm_delete'    => 'Действительно удалить?',
    'loading'           => 'Загрузка...',
    'error'             => 'Ошибка',
    'success'           => 'Успешно',
    'warning'           => 'Предупреждение',
    'required_field'    => 'Обязательно',
    'optional'          => 'Опционально',
    'none'              => 'Нет',
    'all'               => 'Все',
    'close'             => 'Закрыть',
    'add'               => 'Добавить',
    'remove'            => 'Удалить',
    'settings'          => 'Настройки',
    'hello'             => 'Привет',
    'just_now'          => 'Только что',
    'minutes_ago'       => 'минут назад',
    'hours_ago'         => 'часов назад',
    'days_ago'          => 'дней назад',
    'view_task'         => 'Просмотр задачи',
    'access_denied'     => 'Доступ запрещён',
    'not_found'         => 'Не найдено',

    // Auth
    'login'             => 'Войти',
    'register'          => 'Регистрация',
    'logout'            => 'Выйти',
    'email'             => 'Электронная почта',
    'password'          => 'Пароль',
    'password_confirm'  => 'Подтвердите пароль',
    'login_title'       => 'С возвращением',
    'login_subtitle'    => 'Войдите в свой аккаунт',
    'login_error'       => 'Неверный email или пароль',
    'login_rate_limited'=> 'Слишком много попыток входа. Пожалуйста, подождите 15 минут.',
    'login_account_locked' => 'Этот аккаунт временно заблокирован после множества неудачных попыток входа. Пожалуйста, попробуйте позже или сбросьте пароль.',
    'session_expired'   => 'Ваша сессия истекла. Пожалуйста, войдите снова.',
    'password_pwned'    => 'Этот пароль найден в известных утечках данных. Пожалуйста, выберите другой пароль.',

    // Security settings (BSI APP.3.1)
    'security_settings'         => 'Политики безопасности',
    'sec_lockout_title'         => 'Блокировка аккаунта после неудачных входов',
    'sec_lockout_desc'          => 'Блокирует аккаунт после нескольких неверных паролей. Аккаунты с активной двухфакторной аутентификацией освобождены.',
    'sec_lockout_enable'        => 'Включить блокировку аккаунта',
    'sec_lockout_threshold'     => 'Неудачных попыток до блокировки',
    'sec_lockout_threshold_hint'=> 'Рекомендуется: 5 (BSI ORP.4.A8).',
    'sec_lockout_duration'      => 'Длительность блокировки (минуты)',
    'sec_lockout_duration_hint' => 'Как долго аккаунт остаётся заблокированным при достижении лимита.',
    'sec_session_title'         => 'Таймауты сессии',
    'sec_session_desc'          => 'Автоматически завершает сессии для защиты перехваченных браузеров (BSI APP.3.1.A15). 0 = отключено.',
    'sec_session_idle'          => 'Таймаут бездействия (минуты)',
    'sec_session_idle_hint'     => 'По умолчанию: 30. Сессия завершается после этого времени без активности.',
    'sec_session_absolute'      => 'Максимальное время сессии (часы)',
    'sec_session_absolute_hint' => 'По умолчанию: 8. Требует повторной аутентификации после этого общего времени.',
    'sec_pwned_title'           => 'Блокировать уже утёкшие пароли при установке',
    'sec_pwned_enable'          => 'Проверять пароли по базе утечек HIBP при установке или изменении',
    'sec_pwned_hint'            => 'Только предотвращает повторное назначение пароля, появившегося в публично известной утечке данных (регистрация, смена пароля, сброс, создание администратором). Существующие пароли НЕ перепроверяются задним числом — HIBP работает с открытым текстом, в БД хранится только bcrypt-хэш. Передаётся только 5-символьный префикс SHA-1, никогда сам пароль (k-anonymity).',
    'login_btn'         => 'Войти',
    'remember_me'       => 'Оставаться в системе',

    // Install
    'install_title'     => 'Установка',
    'install_subtitle'  => 'Создайте аккаунт администратора',
    'install_btn'       => 'Завершить установку',
    'install_success'   => 'Установка успешно завершена',

    // System requirements check
    'sys_requirements'          => 'Системные требования',
    'sys_req_all_ok'            => 'Все требования выполнены',
    'sys_req_optional_missing'  => 'Отсутствуют опциональные функции',
    'sys_req_critical_missing'  => 'Отсутствуют критические требования',
    'sys_req_optional'          => 'опционально',
    'sys_req_write_permission'  => 'Право записи в директорию проекта',
    'sys_req_curl_detail'       => 'AI-ассистент и проверка обновлений',
    'sys_req_ldap_detail'       => 'Плагин аутентификации LDAP / AD',
    'sys_req_zip_detail'        => 'Обновления в один клик',

    // Health check (admin settings)
    'health_check'           => 'Проверка системы',
    'hc_refresh'             => 'Обновить',
    'hc_loading'             => 'Выполняется проверка…',
    'hc_cron'                => 'Cron-задача',
    'hc_cron_never'          => 'Никогда не запускалась – настроена ли cron-задача?',
    'hc_cron_ok'             => 'Запускалась :min мин назад',
    'hc_cron_late'           => ':min мин назад – возможно, не запускается каждую минуту',
    'hc_cron_stale'          => ':h часов назад – cron-задача, похоже, остановлена',
    'hc_probe_db'            => 'Файл базы данных не доступен публично',
    'hc_probe_uploads'       => 'Директория загрузок не доступна публично',
    'hc_probe_exposed'       => 'ДОСТУПНО ПУБЛИЧНО – немедленно проверьте .htaccess!',
    'hc_probe_blocked'       => 'Заблокировано (HTTP :code)',
    'hc_probe_no_conn'       => 'Нет соединения – настроен ли URL приложения?',
    'hc_probe_unexpected'    => 'Неожиданный HTTP статус: :code',
    'hc_no_app_url'          => 'URL приложения не настроен',
    'hc_htaccess_data'       => '.htaccess присутствует в data/',
    'hc_htaccess_uploads'    => '.htaccess присутствует в uploads/',
    'hc_file_present'        => 'Файл присутствует',
    'hc_file_missing'        => 'Файл отсутствует – создайте .htaccess или перезапустите мастер установки',
    'admin_username'    => 'Имя и фамилия',
    'admin_email'       => 'Email администратора',
    'admin_password'    => 'Пароль администратора',

    // Navigation
    'dashboard'         => 'Панель управления',
    'projects'          => 'Проекты',
    'my_tasks'          => 'Мои задачи',
    'notifications'     => 'Уведомления',
    'admin'             => 'Админ',
    'profile'           => 'Профиль',
    'preferences'       => 'Настройки',
    'plugins'           => 'Плагины',
    'help'              => 'Помощь',

    // Dashboard
    'welcome_back'      => 'С возвращением',
    'active_projects'   => 'Активные проекты',
    'open_tasks'        => 'Открытые задачи',
    'done_tasks'        => 'Завершённые задачи',
    'all_tasks'         => 'Все задачи',
    'my_tasks_empty'    => 'Вам не назначено ни одной задачи.',
    'reset'             => 'Сбросить',
    'today'             => 'Сегодня',
    'due_today'         => 'Срок сегодня',
    'overdue'           => 'Просрочено',
    'recent_activity'   => 'Последняя активность',
    'my_open_tasks'     => 'Мои открытые задачи',
    'no_tasks'          => 'Нет задач',
    'no_activity'       => 'Нет активности',

    // Projects
    'project'           => 'Проект',
    'new_project'       => 'Новый проект',
    'project_name'      => 'Название проекта',
    'project_desc'      => 'Описание',
    'project_color'     => 'Цвет',
    'project_status'    => 'Статус',
    'project_owner'     => 'Владелец',
    'project_members'   => 'Участники',
    'project_settings'  => 'Настройки проекта',
    'default_view'      => 'Вид по умолчанию',
    'required_fields'   => 'Обязательные поля для задач',
    'no_projects'       => 'Нет проектов',
    'create_first'      => 'Создайте свой первый проект',
    'archived'          => 'Архивирован',
    'active'            => 'Активен',
    'archive_project'   => 'Архивировать проект',
    'archive_project_desc' => 'Проект будет скрыт для всех участников.',
    'delete_project_desc'  => 'Это действие необратимо. Все задачи будут удалены.',
    'delete_project_confirm' => 'Действительно удалить проект? Это действие нельзя отменить!',
    'restore_project'   => 'Восстановить',
    'delete_project'    => 'Удалить проект',
    'project_created'   => 'Проект создан',
    'project_updated'   => 'Проект обновлён',
    'project_deleted'   => 'Проект удалён',

    // Views
    'kanban'            => 'Канбан',
    'list'              => 'Список',
    'gantt'             => 'Гант',
    'add_status'        => 'Добавить статус',
    'status_name'       => 'Название статуса',
    'mark_as_done'      => 'Отметить как выполненное',

    // Tasks
    'task'              => 'Задача',
    'tasks'             => 'Задачи',
    'new_task'          => 'Новая задача',
    'task_title'        => 'Название',
    'task_desc'         => 'Описание',
    'description'       => 'Описание',
    'task_status'       => 'Статус',
    'task_priority'     => 'Приоритет',
    'assigned_to'       => 'Назначено',
    'external_short'           => 'Внеш.',
    'external_name_placeholder'=> 'Введите имя...',
    'created_by'        => 'Создано',
    'due_date'          => 'Срок',
    'start_date'        => 'Дата начала',
    'labels'            => 'Метки',
    'attachments'       => 'Вложения',
    'upload_file'       => 'Загрузить файл',
    'predecessors'      => 'Предшественники',
    'successors'        => 'Последователи',
    'no_predecessors'   => 'Нет предшественников',
    'no_successors'     => 'Нет последователей',
    'predecessors_hint' => 'Множественный выбор: Ctrl/Cmd + клик',
    'task_created'      => 'Задача создана',
    'task_updated'      => 'Задача обновлена',
    'task_deleted'      => 'Задача удалена',
    'file_uploaded'     => 'Файл загружен',
    'no_tasks_here'     => 'Нет задач в этом статусе',
    'drag_here'         => 'Перетащите сюда',

    // Priority
    'priority'          => 'Приоритет',
    'priority_low'      => 'Низкий',
    'priority_medium'   => 'Средний',
    'priority_high'     => 'Высокий',
    'priority_urgent'   => 'Срочный',

    // Comments
    'comments'          => 'Комментарии',
    'add_comment'       => 'Добавить комментарий',
    'comment_placeholder' => 'Напишите комментарий...',
    'no_comments'       => 'Нет комментариев',
    'comment_posted'    => 'Комментарий добавлен',
    'edited'            => 'редактировано',

    // Members
    'members'           => 'Участники',
    'add_member'        => 'Добавить участника',
    'member_role'       => 'Роль',
    'role_owner'        => 'Владелец',
    'role_manager'      => 'Менеджер',
    'role_member'       => 'Участник',
    'role_guest'        => 'Гость',
    'all_users_are_members' => 'Все пользователи уже являются участниками этого проекта.',
    'member_added'      => 'Участник добавлен',
    'member_removed'    => 'Участник удалён',
    'member_updated'    => 'Участник обновлён',
    'last_owner_error'  => 'У проекта должен быть хотя бы один владелец.',
    'select_user'       => 'Выберите пользователя',

    // Admin
    'users'             => 'Пользователи',
    'new_user'          => 'Новый пользователь',
    'username'          => 'Имя и фамилия',
    'user_role'         => 'Системная роль',
    'role_admin'        => 'Администратор',
    'role_user'         => 'Пользователь',
    'user_active'       => 'Активен',
    'user_inactive'     => 'Неактивен',
    'user_created'      => 'Пользователь создан',
    'user_updated'      => 'Пользователь обновлён',
    'user_deleted'      => 'Пользователь удалён',
    'remove_from_group'         => 'Удалить из группы',
    'user_removed_from_group'   => 'Пользователь удалён из группы',
    'confirm_remove_from_group' => 'Действительно удалить этого пользователя из группы?',
    'last_login'        => 'Последний вход',
    'never'             => 'Никогда',
    'system_settings'   => 'Системные настройки',
    'nav_support'       => 'Поддержка',

    // Groups / Multi-tenancy
    'groups'                => 'Группы',
    'group'                 => 'Группа',
    'new_group'             => 'Новая группа',
    'group_name'            => 'Название группы',
    'group_description'     => 'Описание',
    'group_admin'           => 'Администратор группы',
    'group_member'          => 'Участник',
    'no_group'              => 'Без группы',
    'group_created'         => 'Группа создана',
    'group_updated'         => 'Группа обновлена',
    'group_deleted'         => 'Группа удалена',
    'group_management'      => 'Управление группами',
    'group_members'         => 'Участники группы',
    'group_role'            => 'Роль в группе',
    'assign_group'          => 'Назначить группу',
    'unassigned'            => 'Не назначено',
    'no_groups'             => 'Нет групп',
    'no_group_members'      => 'В этой группе нет участников',
    'language'          => 'Язык',
    'theme'             => 'Тема',
    'theme_light'       => 'По умолчанию',
    'theme_dark'        => 'Тёмная',
    'theme_sepia'       => 'Сепия',
    'theme_midnight'    => 'Полночь',
    'theme_ocean'       => 'Океан',
    'theme_matrix'      => 'Матрица',
    'theme_bluescreen'  => 'Синий экран',
    'theme_forest'      => 'Лес',
    'theme_crimson'     => 'Багровый',
    'theme_slate'       => 'Сланец',

    // SMTP
    'smtp_settings'     => 'Настройки SMTP',
    'smtp_host'         => 'SMTP-сервер',
    'smtp_port'         => 'Порт',
    'smtp_username'     => 'Имя пользователя',
    'smtp_password'     => 'Пароль',
    'smtp_encryption'   => 'Шифрование',
    'smtp_from_email'   => 'Email отправителя',
    'smtp_from_name'    => 'Имя отправителя',
    'smtp_test'         => 'Проверить соединение',
    'smtp_test_ok'      => 'SMTP-соединение успешно',
    'smtp_test_fail'    => 'SMTP-соединение не удалось',
    'smtp_none'         => 'Нет',
    'smtp_ssl'          => 'SSL (порт 465)',
    'smtp_tls'          => 'TLS/STARTTLS (порт 587)',
    'notifications_enabled' => 'Уведомления активны (email + в приложении)',
    'notifications_enabled_hint' => 'Активно: создаются уведомления в приложении. Если ниже настроен почтовый провайдер, те же уведомления также отправляются по email. Неактивно: ни уведомления в приложении, ни email не создаются, независимо от настроек почты.',
    'app_settings'      => 'Настройки приложения',
    'app_name_label'    => 'Название приложения',
    'app_url'           => 'URL сервера',
    'app_url_hint'      => 'Базовый URL этой установки, например https://example.com — используется в email-ссылках.',
    'privacy_url'       => 'Политика конфиденциальности (URL)',
    'imprint_url'       => 'Импрессум (URL)',
    'privacy_policy'    => 'Политика конфиденциальности',
    'imprint'           => 'Импрессум',
    'allow_registration'              => 'Разрешить регистрацию',
    'registration_domains'            => 'Разрешённые email-домены',
    'registration_domains_placeholder'=> 'example.com, mycompany.org',
    'registration_domains_hint'       => 'Один домен на строку или через запятую. Оставьте пустым для разрешения всех доменов.',

    // Register
    'register_title'          => 'Создать аккаунт',
    'register_subtitle'       => 'Зарегистрируйте новый аккаунт',
    'register_btn'            => 'Создать аккаунт',
    'register_link'           => 'Создать новый аккаунт',
    'register_success'        => 'Аккаунт создан. Пожалуйста, войдите.',
    'register_username_short' => 'Имя должно быть не менее 3 символов',
    'register_email_invalid'  => 'Неверный email-адрес',
    'register_password_short' => 'Пароль должен быть не менее 8 символов',
    'register_duplicate'      => 'Email-адрес уже используется',
    'register_domain_not_allowed' => 'Регистрация для этого email-домена не разрешена',

    // Email verification
    'verify_email_subject'  => 'Подтвердите ваш email-адрес',
    'verify_email_body'     => 'Пожалуйста, подтвердите ваш email-адрес, перейдя по ссылке ниже:',
    'verify_email_expires'  => 'Эта ссылка действительна 24 часа.',
    'verify_email_sent'     => 'Аккаунт создан. Пожалуйста, проверьте почту и подтвердите ваш email-адрес.',
    'verify_email_required' => 'Пожалуйста, сначала подтвердите ваш email-адрес. Проверьте почту.',
    'verify_token_invalid'  => 'Неверная или истёкшая ссылка подтверждения.',
    'verify_email_success'  => 'Email-адрес подтверждён. Теперь вы можете войти.',

    // Profile
    'my_profile'        => 'Мой профиль',
    'change_password'   => 'Сменить пароль',
    'current_password'  => 'Текущий пароль',
    'new_password'      => 'Новый пароль',
    'profile_updated'   => 'Профиль обновлён',
    'delete_account'         => 'Удалить аккаунт',
    'delete_account_hint'    => 'Это действие необратимо. Ваш аккаунт и все личные данные будут безвозвратно удалены.',
    'delete_account_confirm' => 'Действительно безвозвратно удалить ваш аккаунт?',
    'account_deleted'        => 'Аккаунт был удалён.',
    'password_changed'  => 'Пароль изменён',
    'password_wrong'    => 'Текущий пароль неверен',
    'password_mismatch' => 'Пароли не совпадают',

    // Notifications
    'mark_all_read'     => 'Отметить все как прочитанные',
    'no_notifications'  => 'Нет уведомлений',

    // TOTP / 2FA
    'totp_settings'       => 'Двухфакторная аутентификация',
    'totp_setup'          => 'Настройка 2FA',
    'totp_setup_desc'     => 'Защитите свой аккаунт одноразовым паролем (TOTP). Вам понадобится приложение-аутентификатор (например, Google Authenticator, Aegis или Bitwarden).',
    'totp_active'         => 'Активно',
    'totp_inactive'       => 'Неактивно',
    'totp_active_desc'    => 'Ваше приложение-аутентификатор активно как второй фактор. Введите текущий код для отключения. Вы также можете включить подтверждение по email как дополнительный второй фактор.',
    'totp_scan_desc'      => 'Отсканируйте QR-код приложением-аутентификатором, затем введите отображаемый код для подтверждения.',
    'totp_manual_key'     => 'Ручной ключ',
    'totp_copy'           => 'Копировать',
    'totp_confirm_code'   => 'Код подтверждения',
    'totp_confirm_hint'   => 'Введите 6-значный код из вашего приложения-аутентификатора.',
    'totp_enable'         => 'Включить 2FA',
    'totp_enabled_ok'     => 'Двухфакторная аутентификация включена',
    'totp_disable'        => 'Отключить 2FA',
    'totp_disable_hint'   => 'Введите текущий код из вашего приложения-аутентификатора.',
    'totp_disabled_ok'    => 'Двухфакторная аутентификация отключена',
    'totp_invalid'        => 'Неверный код. Пожалуйста, попробуйте снова.',
    'totp_verify_title'   => 'Двухфакторная аутентификация',
    'totp_verify_subtitle'=> 'Введите код из вашего приложения-аутентификатора.',
    'totp_verify_btn'     => 'Подтвердить',
    'totp_code'           => 'Код аутентификатора',
    'totp_enforce'        => 'Принудительно включить TOTP глобально',
    'totp_enforce_hint'   => 'Все пользователи без активного TOTP будут вынуждены настроить его при следующем входе.',
    'mfa_enforce'         => 'Принудительно включить MFA',
    'mfa_enforce_hint'    => 'Все пользователи должны аутентифицироваться с помощью приложения TOTP или кода по email в дополнение к паролю.',
    'email_mfa_title'        => 'Подтверждение по Email',
    'email_mfa_desc'         => 'На ваш email-адрес отправлен 6-значный код. Пожалуйста, введите его ниже.',
    'email_mfa_code_label'   => 'Код подтверждения',
    'email_mfa_submit'       => 'Подтвердить',
    'email_mfa_invalid'      => 'Неверный или истёкший код.',
    'email_mfa_resend'       => 'Отправить код повторно',
    'email_mfa_resent'       => 'Новый код отправлен на ваш email-адрес.',
    'mfa_resend_too_fast'    => 'Пожалуйста, подождите немного перед запросом нового кода.',
    'mfa_attempts_exceeded'  => 'Слишком много неудачных попыток. Пожалуйста, войдите снова.',
    'email_mfa_settings'     => 'Двухфакторная аутентификация по Email',
    'email_mfa_active'       => 'Активно',
    'email_mfa_inactive'     => 'Неактивно',
    'email_mfa_enable_btn'   => 'Включить 2FA по email',
    'email_mfa_disable_btn'  => 'Отключить 2FA по email',
    'email_mfa_enable_desc'  => 'При включении вы будете получать 6-значный код по email при каждом входе.',
    'email_mfa_disable_desc' => 'Двухфакторная аутентификация по email сейчас активна. Вы можете отключить её здесь.',
    'email_mfa_enabled_ok'   => '2FA по email включена.',
    'email_mfa_disabled_ok'  => '2FA по email отключена.',
    'email_mfa_mail_subject' => 'Ваш код входа',
    'email_mfa_mail_greeting'=> 'Здравствуйте,',
    'email_mfa_mail_body'    => 'Ваш код подтверждения для входа:',
    'email_mfa_mail_expiry'  => 'Этот код действителен 20 минут.',
    'email_mfa_mail_warning' => 'Если вы не запрашивали этот код, пожалуйста, проигнорируйте это письмо.',
    'mfa_setup_title'        => 'Защитите свой аккаунт',
    'mfa_setup_desc'         => 'Ваш администратор требует двухфакторную аутентификацию. Пожалуйста, выберите метод.',
    'mfa_setup_email_title'  => 'Код по email',
    'mfa_setup_email_desc'   => 'Получать одноразовый код по email при каждом входе.',
    'mfa_setup_totp_title'   => 'Приложение-аутентификатор',
    'mfa_setup_totp_desc'    => 'Используйте приложение типа Google Authenticator или Authy.',
    'mfa_setup_back_choice'  => 'Изменить метод',
    'mfa_choice_title'       => 'Подтвердите вход',
    'mfa_choice_desc'        => 'У вас включены два метода. Как вы хотите подтвердить?',
    'mfa_choice_totp_title'  => 'Приложение-аутентификатор',
    'mfa_choice_totp_desc'   => 'Введите код из вашего приложения TOTP.',
    'mfa_choice_email_title' => 'Код по email',
    'mfa_choice_email_desc'  => 'Получить код по email.',
    'ext_mfa_title'          => 'Подтвердите вашу личность',
    'ext_mfa_desc'           => 'Поскольку вы были неактивны некоторое время, мы отправили 6-значный код на ваш email-адрес. Пожалуйста, введите его ниже.',
    'ext_mfa_mail_greeting'  => 'Здравствуйте',
    'ext_mfa_mail_body'      => 'Ваш код доступа для внешнего просмотра задач:',
    'ext_mfa_mail_subject'   => 'Ваш код доступа',
    'ext_mfa_resent'         => 'Новый код отправлен на ваш email-адрес.',
    'password_reset_enabled'      => 'Разрешить сброс пароля',
    'password_reset_enabled_hint' => 'Показывает ссылку "Забыли пароль?" на странице входа. Требуется настройка отправки почты.',
    'password_reset_requires_mail' => '(Почтовый транспорт не настроен — опция отключена.)',
    'forgot_password'             => 'Забыли пароль?',
    'forgot_password_title'       => 'Сброс пароля',
    'forgot_password_subtitle'    => 'Введите ваш email-адрес, и мы отправим вам ссылку для сброса.',
    'forgot_password_btn'         => 'Отправить ссылку',
    'forgot_password_sent'        => 'Если аккаунт с таким email существует, ссылка для сброса отправлена.',
    'reset_password_title'        => 'Новый пароль',
    'reset_password_subtitle'     => 'Введите ваш новый пароль.',
    'reset_password_btn'          => 'Сохранить пароль',
    'reset_password_success'      => 'Пароль успешно изменён. Пожалуйста, войдите.',
    'reset_token_invalid'         => 'Ссылка неверна или истекла.',
    'back_to_login'               => 'Вернуться к входу',
    'totp_enforce_wizard_title'    => 'Требуется настройка безопасности',
    'totp_enforce_wizard_subtitle' => 'Ваш администратор требует двухфакторную аутентификацию. Пожалуйста, настройте TOTP для продолжения.',
    'totp_enforce_note'   => 'Эта настройка обязательна. Вы сможете войти только после активации.',

    // Project notifications
    'project_notifications'        => 'Email-уведомления',
    'project_notifications_hint'   => 'Настройте, кто получает email-уведомления о каких событиях. Требуется настройка SMTP.',
    'notif_assignee_section'       => 'Уведомления назначенным пользователям',
    'notif_assignee_on_assign'     => 'При назначении задачи',
    'notif_assignee_on_comment'    => 'При публикации комментария',
    'notif_assignee_on_change'     => 'При изменении срока, приоритета или описания',
    'notif_assignee_reminder'      => 'Напоминание за 3 дня до срока задачи',
    'notif_assignee_on_due_day'    => 'Напоминание в день срока',
    'notif_assignee_on_unassign'   => 'При снятии с задачи',
    'notif_assignee_on_attachment' => 'При загрузке нового вложения',
    'notif_assignee_predecessors'  => 'При завершении всех предшествующих задач',
    'notif_manager_section'        => 'Уведомления менеджерам проекта',
    'notif_manager_any_activity'   => 'При любой активности в проекте',
    'notif_manager_assignees_changed' => 'При изменении назначенных задачи',
    'activity_assignees_changed'   => 'изменил назначенных',
    'notif_manager_task_done'      => 'При завершении задачи',
    'notif_manager_task_overdue'   => 'При просрочке задачи (+1 день)',
    'notif_manager_task_created'   => 'При создании новой задачи',

    // External participants
    'dummy_assignees'            => 'Заполнители (без уведомлений)',
    'external_participants'      => 'Внешние участники',
    'external_participants_hint' => 'Внешние лица получают email-уведомления и могут просматривать и обновлять свои задачи по персональной ссылке.',
    'ext_name_placeholder'       => 'Имя',
    'ext_email_placeholder'      => 'Email-адрес',
    'ext_portal_link'            => 'Ссылка на портал',

    // AI
    'ai_settings'           => 'Интеграция AI',
    'ai_enabled'            => 'Включить AI глобально',
    'ai_enabled_hint'       => 'Включает AI-ассистента для всех проектов.',
    'ai_provider'           => 'Провайдер',
    'ai_ollama_url'         => 'URL Ollama',
    'ai_ollama_model'       => 'Модель',
    'ai_claude_key'         => 'API-ключ',
    'ai_claude_key_hint'    => 'Оставьте пустым, чтобы сохранить существующий ключ.',
    'ai_claude_model'       => 'Модель',
    'ai_assistant'          => 'AI-ассистент',
    'ai_clear_history'      => 'Очистить историю',
    'ai_empty_hint'         => 'Спросите меня о чём угодно или позвольте мне создать задачи для этого проекта.',
    'ai_examples'           => 'Примеры:',
    'ai_example_1'          => 'Создать все задачи для внедрения тикет-системы',
    'ai_example_2'          => 'Какие задачи ещё отсутствуют в проекте?',
    'ai_example_3'          => 'Создать структурированный план проекта с вехами',
    'ai_example_4'          => 'Задавайте мне вопросы по этому проекту по очереди, чтобы предложить мне подходящие задачи',
    'ai_input_placeholder'  => 'Введите сообщение… (Enter для отправки, Shift+Enter для новой строки)',
    'ai_generated_tasks'    => 'Созданные задачи',
    'ai_create_tasks'       => 'Создать задачи',

    // Activity
    'activity_task_created'  => 'создал задачу',
    'activity_task_updated'  => 'обновил задачу',
    'activity_task_deleted'  => 'удалил задачу',
    'activity_comment'       => 'прокомментировал',
    'activity_status_changed'=> 'изменил статус',
    'activity_member_added'  => 'добавил участника в',

    // Invitations
    'invite'                  => 'Пригласить',
    'invite_title'            => 'Принять приглашение',
    'invite_subtitle_pre'     => 'Вас пригласили присоединиться к группе:',
    'invite_accept_btn'       => 'Принять приглашение',
    'invite_sent'             => 'Приглашение отправлено по email.',
    'invite_link_fallback'    => 'SMTP не настроен – ссылка приглашения (пожалуйста, отправьте вручную):',
    'invite_email_subject'    => 'Вас пригласили',
    'invite_email_body_intro' => 'пригласил вас присоединиться к группе:',
    'invite_email_expiry'     => 'Эта ссылка приглашения действительна 7 дней.',
    'invite_email_footer'     => 'Если кнопка не работает, скопируйте эту ссылку:',
    'invite_email_exists'     => 'Этот email-адрес уже зарегистрирован.',
    'invite_already_member'   => 'Вы уже являетесь участником этой группы.',
    'invite_joined'           => 'Вы успешно присоединились к группе.',
    'invite_registered'       => 'Аккаунт создан. Пожалуйста, войдите.',
    'invite_invalid_title'    => 'Неверное приглашение',
    'invite_invalid_body'     => 'Эта ссылка приглашения истекла или уже была использована.',
    'invite_pending'          => 'Ожидающие приглашения',
    'invite_revoke'           => 'Отозвать',
    'invite_expires'          => 'Истекает',
    'username_min'            => 'Имя должно быть не менее 3 символов',
    'password_min'            => 'Пароль должен быть не менее 8 символов',
    'email_taken'             => 'Email-адрес уже используется',
    'invalid_email'           => 'Неверный email-адрес',
    'admin_cannot_self_delete' => 'Учётные записи администратора нельзя удалить через профиль. Попросите другого администратора удалить учётную запись.',
    'current_password_label'   => 'Текущий пароль',

    // Email change with verification
    'email_change_pending'              => 'Запрошена смена email. Мы отправили ссылку подтверждения на новый адрес. Изменение вступит в силу только после нажатия на ссылку.',
    'email_change_pending_hint'         => 'Смена на :email ожидает подтверждения.',
    'email_change_token_invalid'        => 'Ссылка подтверждения недействительна или просрочена.',
    'email_change_success'              => 'Адрес email успешно изменён.',
    'mail_email_change_verify_subject'  => 'Подтвердить адрес email',
    'mail_email_change_verify_greeting' => 'Здравствуйте, :name,',
    'mail_email_change_verify_body'     => 'кто-то запросил смену адреса email вашей учётной записи Plenvo на этот адрес. Нажмите кнопку для подтверждения:',
    'mail_email_change_verify_button'   => 'Подтвердить адрес',
    'mail_email_change_verify_expires'  => 'Ссылка действительна 24 часа. Если вы не запрашивали смену, проигнорируйте это сообщение. Без подтверждения изменение не вступит в силу.',
    'mail_email_change_notice_subject'  => 'Запрошена смена email',
    'mail_email_change_notice_greeting' => 'Здравствуйте, :name,',
    'mail_email_change_notice_body'     => 'для вашей учётной записи запрошена смена адреса email на :email.',
    'mail_email_change_notice_warning'  => 'Если это были не вы, немедленно смените пароль и свяжитесь с администратором. Изменение вступит в силу только после подтверждения с нового адреса.',

    // Password change session invalidation + notify
    'session_invalidated_password_changed' => 'Сессия завершена, так как пароль был изменён. Пожалуйста, войдите снова.',
    'mail_pw_changed_subject'   => 'Пароль изменён',
    'mail_pw_changed_greeting'  => 'Здравствуйте, :name,',
    'mail_pw_changed_body'      => 'пароль вашей учётной записи только что был изменён. В целях безопасности все остальные активные сессии завершены.',
    'mail_pw_changed_warning'   => 'Если это были не вы, немедленно установите новый пароль и свяжитесь с администратором.',

    // Trust X-Forwarded-For toggle
    'sec_trustproxy_title'  => 'Заголовки обратного прокси',
    'sec_trustproxy_desc'   => 'Включайте только если Plenvo работает за доверенным обратным прокси (nginx, Traefik, …), который надёжно устанавливает «X-Forwarded-For». В противном случае клиенты могут подделать свой IP, обходя ограничения и фальсифицируя журнал безопасности.',
    'sec_trustproxy_enable' => 'Доверять X-Forwarded-For от обратного прокси',

    // Landing page
    'landing_meta_title'         => 'Управление проектами с Канбан, Гант и AI',
    'landing_meta_desc'          => 'Plenvo – лёгкое ПО для управления проектами с канбан-доской, диаграммой Ганта, управлением задачами и AI-ассистентом. Облако или собственный сервер, соответствует GDPR.',
    'landing_meta_keywords'      => 'управление проектами, ПО для управления проектами, канбан доска, диаграмма ганта, управление задачами, командное сотрудничество, AI планирование проектов, собственный сервер, GDPR, открытый исходный код',
    'landing_meta_og_title'      => 'Plenvo – Управление проектами для команд',
    'landing_meta_og_alt'        => 'Панель Plenvo с канбан-доской и диаграммой Ганта',
    'landing_software_desc'      => 'Веб-ПО для управления проектами с Канбан, Гант, списками задач, AI-ассистентом, внешним доступом и возможностью собственного хостинга.',
    'landing_breadcrumb_home'    => 'Главная',
    'landing_breadcrumb_downloads' => 'Загрузки',
    'landing_preview_eyebrow'    => 'Предпросмотр продукта',
    'landing_preview_title'      => 'Ваш проект – каждая перспектива',
    'landing_preview_sub'        => '',
    'landing_preview_tab_gantt'  => 'Диаграмма Ганта',
    'landing_preview_tab_dashboard' => 'Панель управления',
    'landing_preview_tab_kanban' => 'Канбан-доска',
    'landing_preview_tab_ai'      => 'AI-ассистент',
    'landing_preview_tab_mytasks'  => 'Мои задачи',
    'landing_preview_tab_external' => 'Внешний вид',
    'landing_badge'              => 'Современное управление проектами',
    'landing_hero_title_1'       => 'Планируйте проекты,',
    'landing_hero_title_2'       => 'руководите командами.',
    'landing_hero_sub'           => 'Plenvo даёт менеджерам проектов нужный обзор. От первой задачи до завершённого проекта. Ясно, структурированно, без хаоса.',
    'landing_discover'           => 'Узнать больше',
    'landing_pill_made_in_germany' => 'Сделано в Германии',
    'landing_pill_gdpr'            => 'Создано с учётом GDPR',
    'landing_pill_opensource'      => 'Открытый исходный код',
    'landing_pill_selfhost_saas'   => 'Self-host или SaaS',
    'landing_diff_2_title'         => 'Все функции для всех',
    'landing_diff_2_desc'          => 'Без тарифов Pro или Enterprise. Независимо от размера команды.',
    'landing_diff_3_title'         => 'AI-ассистент включён',
    'landing_diff_3_desc'          => 'Планируйте задачи через чат. Локально с Ollama или через облако.',
    'landing_stat_views'         => 'Видов',
    'landing_stat_projects'      => 'Проектов',
    'landing_stat_security'      => 'Безопасность',
    'landing_stat_ai'            => 'AI-ассистент',
    'landing_pain_eyebrow'        => 'Знакомо?',
    'landing_pain_title'          => 'Управление проектами без правильного инструмента теряет время',
    'landing_pain_sub'            => 'Многие команды ежедневно борются с одними и теми же проблемами. Plenvo решает их.',
    'landing_combined_eyebrow'    => 'Знакомо?',
    'landing_combined_title'      => 'Правильное решение для каждой задачи',
    'landing_combined_sub'        => 'Так Plenvo превращает ваши ежедневные задачи в измеримые преимущества.',
    'landing_combined_badge'      => 'Задача',
    'landing_combined_extras'     => 'Также включено:',

    // ── Pro features section ─────────────────────────────────────────
    'landing_pro_eyebrow'             => 'Профи-функции',
    'landing_pro_title'               => 'Инструменты, без которых через неделю вы уже не сможете',
    'landing_pro_sub'                 => 'Небольшие функции, о которых не говорят на демо, и которые вы будете использовать каждый день.',
    'landing_pro_cat_speed'           => 'Скорость',
    'landing_pro_cat_speed_sub'       => 'Меньше кликов. Больше сделано.',
    'landing_pro_cat_clarity'         => 'Ясность',
    'landing_pro_cat_clarity_sub'     => 'Сохраняйте контроль, не задавая вопросов.',
    'landing_pro_cat_tools'           => 'Инструменты',
    'landing_pro_cat_tools_sub'       => 'Профессиональные функции, которые думают вместе с вами.',
    'landing_pro_cmdk_title'          => 'Командная палитра',
    'landing_pro_cmdk_desc'           => 'Переходите к любой задаче, проекту или человеку менее чем за секунду. Без кликов по меню.',
    'landing_pro_bulk_title'          => 'Массовое редактирование',
    'landing_pro_bulk_desc'           => 'Двадцать задач сразу: статус, приоритет, назначения, срок, метки. Один клик вместо двадцати.',
    'landing_pro_inline_title'        => 'Редактирование на месте',
    'landing_pro_inline_desc'         => 'Меняйте статус, назначения и срок прямо в таблице. Без модалок и обходных путей.',
    'landing_pro_managermail_title'   => 'Уведомления для менеджера',
    'landing_pro_managermail_desc'    => 'Получайте только важное: новые задачи, смена назначений, завершённые предшественники. Вы выбираете триггеры.',
    'landing_pro_activity_title'      => 'Полная история',
    'landing_pro_activity_desc'       => 'Журнал активности фиксирует каждое изменение. Кто, что, когда? Больше не нужно спрашивать.',
    'landing_pro_multiowner_title'    => 'Несколько ответственных',
    'landing_pro_multiowner_desc'     => 'Несколько владельцев и менеджеров на проект. Замещение встроено в инструмент, а не в календарь.',
    'landing_pro_autodeps_title'      => 'Авто-связи в диаграмме Ганта',
    'landing_pro_autodeps_desc'       => 'Plenvo автоматически распознаёт зависимости из плана, включая параллельные потоки, fan-in и fan-out.',
    'landing_pro_dragdrop_title'      => 'Drag and drop везде',
    'landing_pro_dragdrop_desc'       => 'Двигайте полосы в Гантте, перетаскивайте карточки в Канбане. Даты и статусы обновляются мгновенно.',
    'landing_pro_aichoice_title'      => 'ИИ на ваш выбор',
    'landing_pro_aichoice_desc'       => 'Anthropic Claude, OpenAI, Azure или локальный Ollama. Никакой привязки к одному поставщику ИИ.',
    'landing_pro_extras_title'        => 'Также на борту',
    'landing_pro_extra_mentions'      => 'Упоминания @ в комментариях',
    'landing_pro_extra_attach'        => 'Файловые вложения',
    'landing_pro_extra_custom_status' => 'Свои статусы на проект',
    'landing_pro_extra_labels'        => 'Метки',
    'landing_pro_extra_required'      => 'Обязательные поля на проект',
    'landing_pro_extra_polls'         => 'Опросы по срокам',
    'landing_pro_extra_languages'     => '11 языков интерфейса',
    'landing_pro_extra_themes'        => '10 тем',
    'landing_pro_extra_fido'          => 'WebAuthn / FIDO2',
    'landing_pro_extra_mfa'           => 'TOTP + MFA по e-mail',
    'landing_pro_extra_archive'       => 'Архивирование и восстановление',
    'landing_pro_extra_deps'          => 'Зависимости задач',

    // ── Scheduling polls highlight ───────────────────────────────────
    'landing_poll_bonus'         => 'Бонус',
    'landing_poll_title'         => 'Подобрать время? Plenvo и это организует.',
    'landing_poll_sub'           => 'Полноценные опросы по срокам встроены. Тот же язык, тот же GDPR-сетап, тот же интерфейс – без второго инструмента.',
    'landing_poll_feat_link'     => 'Публичная ссылка – участие без аккаунта.',
    'landing_poll_feat_live'     => 'Результаты в реальном времени, победный слот выделяется автоматически.',
    'landing_poll_feat_invite'   => 'Приглашение по e-mail, внутренние и внешние участники.',
    'landing_poll_feat_finalize' => 'Один клик для фиксации, письмо всем участникам.',
    'landing_poll_mock_title'    => 'Kickoff Q1 2026',
    'landing_poll_mock_meta'     => '4 участника · до 12.04',
    'landing_poll_mock_count'    => '3 из 4 ответили',
    'landing_poll_mock_cta'      => 'Зафиксировать',
    'landing_pain1_title'         => 'Нет обзора статуса проекта',
    'landing_pain1_desc'          => 'Кто над чем работает? Что открыто? Что просрочено?',
    'landing_pain1_solution'      => 'Панель Plenvo показывает открытые задачи, просроченные элементы и активность команды. Всё с одного взгляда, в реальном времени.',
    'landing_pain2_title'         => 'Сроки пропускаются',
    'landing_pain2_desc'          => 'Зависимости между задачами упускаются, сроки пропускаются.',
    'landing_pain2_solution'      => 'Временная шкала Ганта делает зависимости видимыми. Найдите узкие места до того, как они станут проблемами.',
    'landing_pain3_title'         => 'Командная коммуникация через email',
    'landing_pain3_desc'          => 'Обновления статуса теряются, ответственности неясны.',
    'landing_pain3_solution'      => 'У каждой задачи есть ясные владельцы, комментарии и статус. Всё в одном месте, без email-цепочек.',
    'landing_pain4_title'         => 'Внешних партнёров трудно привлечь',
    'landing_pain4_desc'          => 'Подрядчикам и клиентам нужны свои инструменты или доступ.',
    'landing_pain4_solution'      => 'Внешние участники получают персональную ссылку на свои задачи. Без аккаунта, без настройки.',
    'landing_pain5_title'         => 'Неясная загрузка команды',
    'landing_pain5_desc'          => 'Задачи назначаются дважды или участники команды неосознанно перегружены.',
    'landing_pain5_solution'      => 'Назначайте задачи осознанно и всегда отслеживайте, кто что взял на себя.',
    'landing_pain6_title'         => 'Совещания по статусу тратят ценное время',
    'landing_pain6_desc'          => 'Каждую неделю одни и те же вопросы: каков статус, чего не хватает?',
    'landing_pain6_solution'      => 'С Plenvo у каждого текущий статус под рукой. Меньше совещаний, больше результатов.',
    'landing_features_eyebrow'   => 'Функции',
    'landing_features_title'     => 'Всё, что нужно вашей команде',
    'landing_features_sub'       => 'От отдельных задач до полных планов проектов. Plenvo охватывает каждый шаг вашего рабочего процесса.',
    'landing_feat_overview'      => 'Полный обзор',
    'landing_feat_overview_desc' => 'Панель показывает с одного взгляда: открытые задачи, сегодняшние сроки, просроченные элементы и активность вашей команды. Без поиска.',
    'landing_feat_timeline'      => 'Временная шкала с Гант',
    'landing_feat_timeline_desc' => 'Перетаскивайте задачи прямо на временной шкале. Мгновенно видьте, когда срок под угрозой, и реагируйте до того, как станет поздно.',
    'landing_feat_team'          => 'Ясные ответственности',
    'landing_feat_team_desc'     => 'У каждой задачи один или несколько владельцев. Роли проекта (владелец, менеджер, участник) гарантируют, что каждый точно знает, что от него ожидается.',
    'landing_feat_priority'      => 'Приоритеты и сроки',
    'landing_feat_priority_desc' => 'Четыре уровня приоритета, сроки и email-напоминания гарантируют, что самое важное делается первым.',
    'landing_feat_kanban'        => 'Канбан-доска',
    'landing_feat_kanban_desc'   => 'Визуализируйте свой рабочий процесс с гибкими колонками, drag-and-drop и настраиваемыми переходами статусов.',
    'landing_feat_gantt'         => 'Диаграмма Ганта',
    'landing_feat_gantt_desc'    => 'Видьте свою временную шкалу с одного взгляда: перетаскивайте и изменяйте размер задач прямо на диаграмме, с выделением выходных.',
    'landing_feat_tasks'         => 'Управление задачами',
    'landing_feat_tasks_desc'    => 'Приоритеты, сроки, метки, комментарии и файловые вложения. Всё в одном месте.',
    'landing_feat_deps'          => 'Зависимости',
    'landing_feat_deps_desc'     => 'Определяйте предшественников и последователей. Автоматическое уведомление при завершении всех предшественников.',
    'landing_feat_groups'        => 'Мультитенантность',
    'landing_feat_groups_desc'   => 'Организуйте пользователей в группы и делегируйте администраторов групп. Каждая группа работает в своей изолированной среде.',
    'landing_feat_external'      => 'Внешний доступ',
    'landing_feat_external_desc' => 'Делитесь задачами с внешними партнёрами через персональную ссылку. Без аккаунта, с целевыми правами доступа.',
    'landing_feat_ai'            => 'AI-ассистент',
    'landing_feat_ai_desc'       => 'Позволяйте задачам создаваться автоматически. Поддерживает Ollama (локально) и Claude API для конфиденциальной настройки.',
    'landing_feat_notif'         => 'Email-уведомления',
    'landing_feat_notif_desc'    => 'Назначение, срок, предшественники завершены. Все релевантные события автоматически попадают во входящие.',
    'landing_feat_files'         => 'Файловые вложения',
    'landing_feat_files_desc'    => 'Прикрепляйте документы, изображения и многое другое прямо к задачам. Безопасно хранятся и всегда доступны.',
    'landing_how_eyebrow'        => 'За 4 шага',
    'landing_how_title'          => 'Начните немедленно',
    'landing_how_sub'            => 'Без долгой настройки. Plenvo готов к использованию за минуты.',
    'landing_step1_title'        => 'Войдите',
    'landing_step1_desc'         => 'Войдите в свой аккаунт или примите приглашение.',
    'landing_step2_title'        => 'Создайте проект',
    'landing_step2_desc'         => 'Создайте проект, выберите цвет, установите вид по умолчанию.',
    'landing_step3_title'        => 'Пригласите команду',
    'landing_step3_desc'         => 'Пригласите участников по email или назначьте существующих пользователей.',
    'landing_step4_title'        => 'Управляйте задачами',
    'landing_step4_desc'         => 'Создавайте, приоритизируйте и назначайте задачи в Канбан, списке или виде Ганта.',
    'landing_views_eyebrow'      => 'Виды',
    'landing_views_title'        => 'Каждая перспектива вашего проекта',
    'landing_views_sub'          => 'Переключайтесь между видами в любое время. Данные всегда остаются синхронизированными.',
    'landing_view_kanban'         => 'Канбан-доска',
    'landing_view_kanban_desc'    => 'Перетаскивайте задачи через ваш рабочий процесс',
    'landing_view_list'           => 'Вид списка',
    'landing_view_list_desc'      => 'Фильтруйте, сортируйте и видьте все задачи с одного взгляда',
    'landing_view_gantt'          => 'Диаграмма Ганта',
    'landing_view_gantt_desc'     => 'Визуализируйте своё расписание и находите зависимости',
    'landing_view_dashboard'      => 'Панель управления',
    'landing_view_dashboard_desc' => 'Статус проекта, открытые задачи и активность команды',
    'landing_tag_dashboard'       => 'Панель',
    'landing_tag_gantt'           => 'Диаграмма Ганта',
    'landing_tag_team'            => 'Управление командой',
    'landing_tag_tasks'           => 'Задачи',
    'landing_tag_planning'        => 'Планирование',
    'landing_tag_collab'          => 'Сотрудничество',
    'landing_tag_notif'           => 'Уведомления',
    'landing_tag_ai'              => 'AI-ассистент',
    'landing_security_title'     => 'Безопасность по дизайну',
    'landing_security_sub'       => 'Plenvo был создан с нуля с приоритетом безопасности.',
    'landing_sec_totp'           => 'Двухфакторная аутентификация',
    'landing_sec_totp_desc'      => 'TOTP через приложение-аутентификатор, опционально глобально обязательно',
    'landing_sec_csrf'           => 'CSRF-защита',
    'landing_sec_csrf_desc'      => 'Все формы и API-эндпоинты защищены токенами',
    'landing_sec_groups'         => 'Изоляция данных',
    'landing_sec_groups_desc'    => 'Группы полностью изолированы друг от друга',
    'landing_sec_brute'          => 'Защита от брутфорса',
    'landing_sec_brute_desc'     => 'Ограничение скорости на всех попытках входа',
    'landing_sec_bcrypt'         => 'Безопасные пароли',
    'landing_sec_bcrypt_desc'    => 'BCrypt-хеширование, без открытого текста в базе данных',
    'landing_sec_audit'          => 'Журнал активности',
    'landing_sec_audit_desc'     => 'Все изменения отслеживаются и записываются',
    'landing_no_account'         => 'Нет аккаунта?',

    // Landing mock UI
    'landing_mock_status_open'        => 'Открыто',
    'landing_mock_status_inprogress'  => 'В работе',
    'landing_mock_status_review'      => 'На проверке',
    'landing_mock_status_done'        => 'Готово',
    'landing_mock_welcome'            => 'С возвращением, Max',
    'landing_mock_date'               => '23 апреля 2026',
    'landing_mock_filter_open'        => 'Открытые задачи',
    'landing_mock_task_req'           => 'Анализ требований',
    'landing_mock_task_design'        => 'Концепция дизайна',
    'landing_mock_task_frontend'      => 'Frontend-разработка',
    'landing_mock_task_backend'       => 'Backend API',
    'landing_mock_task_testing'       => 'Тестирование и QA',
    'landing_mock_task_content'       => 'Миграция контента',
    'landing_mock_task_golive'        => 'Запуск',
    'landing_mock_task_pushnotif'     => 'Push-уведомления',
    'landing_mock_task_appstore'      => 'Релиз в App Store',
    'landing_mock_card_server'        => 'Планирование серверной инфраструктуры',
    'landing_mock_card_seo'           => 'Провести SEO-анализ',
    'landing_mock_card_privacy'       => 'Проверка конфиденциальности данных',
    'landing_mock_card_backenddev'    => 'Разработка Backend API',
    'landing_mock_card_designfinal'   => 'Финализация концепции дизайна',
    'landing_mock_card_kickoff'       => 'Стартовое совещание',
    'landing_mock_ai_user_msg'        => 'Можете ли вы создать все необходимые задачи для проекта Редизайн сайта 2026 – с реалистичными датами начала и окончания и связями предшественников/последователей?',
    'landing_mock_ai_intro'           => 'Конечно! Вот',
    'landing_mock_ai_for'             => 'для',
    'landing_mock_ai_timeline'        => 'с временной шкалой и всеми зависимостями:',
    'landing_mock_ai_dep_after'       => '-> после',
    'landing_mock_ai_confirm'         => 'Все зависимости связаны. Создать задачи напрямую?',
    'landing_mock_ai_cta_text'        => '7 задач создано и связано',
    'landing_mock_ai_create'          => 'Создать задачи',
    'landing_mock_ext_open'           => 'Открыть задачу',
    'landing_mock_ext_task1_title'    => 'Миграция контента',
    'landing_mock_ext_task1_desc'     => 'Перенести весь контент из старой системы, структурировать и подготовить для нового сайта.',
    'landing_mock_ext_task2_title'    => 'Подготовка к запуску',
    'landing_mock_ext_task2_desc'     => 'Финальное утверждение всех страниц, проверка редиректов URL и зелёный свет для запуска.',
    'landing_mock_ext_task3_title'    => 'Утверждение и обратная связь',
    'landing_mock_ext_task3_desc'     => 'Дать финальное утверждение всего редизайна и оставить письменную обратную связь по реализации.',

    // Landing FAQs
    'landing_faq_title'  => 'Часто задаваемые вопросы',
    'landing_faq_sub'    => 'Ответы на самые важные вопросы о Plenvo.',
    'landing_faq_help'   => 'Найдите больше деталей в <a href="/help" style="color:#4f46e5;font-weight:600">руководстве пользователя</a>.',
    'landing_faq_1_q'    => 'Нужен ли аккаунт для просмотра задач?',
    'landing_faq_1_a'    => 'Не обязательно. Как внешний участник вы получаете персональную ссылку доступа по email. Используя эту ссылку, вы можете просматривать назначенные вам задачи, обновлять их статус и оставлять комментарии – без какого-либо аккаунта.',
    'landing_faq_2_q'    => 'Как пригласить кого-то в проект?',
    'landing_faq_2_a'    => 'Менеджеры проекта могут добавить внутренних пользователей или пригласить внешних участников по email в разделе <em>Участники</em>. Внешние получают уникальную ссылку доступа. Администраторы групп могут добавить пользователей в группу через ссылку приглашения.',
    'landing_faq_3_q'    => 'В чём разница между Канбан, Списком и Гант?',
    'landing_faq_3_a'    => '<strong>Канбан-доска</strong> показывает задачи как карточки, которые вы перемещаете между колонками статусов через drag & drop. <strong>Вид списка</strong> идеален для фильтрации и сортировки. <strong>Диаграмма Ганта</strong> визуализирует задачи на временной шкале, показывает зависимости как соединительные линии и может редактироваться через drag & drop. С кнопкой <em>Авто-связь</em> Plenvo автоматически определяет, какие задачи следуют друг за другом во времени, и создаёт соответствующие зависимости.',
    'landing_faq_4_q'    => 'Что происходит, когда я отмечаю задачу как "выполненную"?',
    'landing_faq_4_a'    => 'Задача перемещается в статус завершённых. В зависимости от настроек проекта менеджер проекта и/или назначенные зависимых последующих задач получают email-уведомление.',
    'landing_faq_5_q'    => 'Что такое предшествующие задачи?',
    'landing_faq_5_a'    => 'Предшественники – это задачи, которые должны быть выполнены первыми, прежде чем над другой задачей можно будет осмысленно работать. На диаграмме Ганта эти зависимости показаны как соединительные линии. С функцией <em>Авто-связь</em> на диаграмме Ганта все зависимости могут быть автоматически выведены из расписания – даже при параллельном выполнении нескольких задач. Когда предшественник завершён, опционально может быть отправлено уведомление назначенному следующей задачи.',
    'landing_faq_6_q'    => 'Как защитить свой аккаунт с помощью 2FA?',
    'landing_faq_6_a'    => 'В разделе <em>Настройки -> Безопасность</em> вы можете активировать либо приложение-аутентификатор (TOTP), либо подтверждение по email. Оба метода могут использоваться одновременно. Если ваш администратор требует MFA, вам автоматически будет предложено настроить её при следующем входе.',
    'landing_faq_7_q'    => 'Кто может создать проект?',
    'landing_faq_7_a'    => 'Любой вошедший пользователь может создать новый проект. Кто создаёт проект, автоматически становится его владельцем и имеет полный контроль над участниками, задачами и настройками.',
    'landing_faq_8_q'    => 'Могу ли я состоять в нескольких проектах?',
    'landing_faq_8_a'    => 'Да. Вы можете быть участником любого количества проектов, каждый со своей ролью (владелец, менеджер, участник или гость). Вы можете видеть свои задачи из всех проектов, собранные в разделе "Мои задачи".',
    'landing_faq_9_q'    => 'Можно ли отключить AI-функцию?',
    'landing_faq_9_a'    => 'Да. Администраторы групп могут индивидуально включить или отключить AI-доступ для своей группы. Это позволяет использовать AI только там, где это нужно.',
    'landing_faq_10_q'   => 'К каким данным AI имеет доступ?',
    'landing_faq_10_a'   => 'AI автоматически получает название проекта и – если доступно – описание проекта, а также сообщения, которые вы вводите в чате. Задачи, участники команды или другие данные проекта не передаются автоматически. Вы решаете, какую дополнительную информацию делиться с AI.',

    // Hosting options section
    'landing_hosting_eyebrow'        => 'Два пути, один продукт',
    'landing_hosting_title'          => 'Хостинг или собственный сервер – ваш выбор',
    'landing_hosting_subtitle'       => 'Plenvo адаптируется к вашей инфраструктуре. Начните мгновенно в облаке или установите ПО на свой сервер.',
    'landing_hosting_saas_badge'     => 'Software as a Service',
    'landing_hosting_saas_title'     => 'Полностью хостится',
    'landing_hosting_saas_desc'      => 'Без сервера, без обслуживания. Эксплуатация, обновления и доступность включены. Просто зарегистрируйтесь и начните.',
    'landing_hosting_saas_1'         => 'Готово к использованию мгновенно, без настройки',
    'landing_hosting_saas_2'         => 'Автоматические обновления до новых версий',
    'landing_hosting_saas_3'         => 'Эксплуатация и обслуживание включены',
    'landing_hosting_saas_cta'       => 'Зарегистрироваться',
    'landing_hosting_self_badge'     => 'Self-Hosted',
    'landing_hosting_self_title'     => 'На своём сервере',
    'landing_hosting_self_desc'      => 'Полный контроль над вашими данными. Установите Plenvo на свою инфраструктуру – бесплатно и без зависимостей.',
    'landing_hosting_self_1'         => 'Ваши данные остаются на вашем сервере',
    'landing_hosting_self_2'         => 'Бесплатно для скачивания и установки',

    // Downloads page
    'dl_hero_sub'      => 'Стабильный релиз – self-hosted, без зависимостей, без блокировки облаком.',
    'dl_download_btn'  => 'Скачать plenvo-latest.zip',
    'dl_req_title'              => 'Системные требования',
    'dl_req_php'                => 'PHP 8.1 или новее',
    'dl_req_sqlite'             => 'SQLite (включён в PHP)',
    'dl_req_webserver'          => 'Apache, nginx или аналогичный веб-сервер',
    'dl_quickstart_title'       => 'Запуск в 3 шага',
    'dl_quickstart_step1_title' => 'Распаковать ZIP',
    'dl_quickstart_step1_desc'  => 'Скачайте архив и распакуйте его локально.',
    'dl_quickstart_step2_title' => 'Скопировать на сервер',
    'dl_quickstart_step2_desc'  => 'Загрузите распакованную папку по FTP/SSH в веб-каталог вашего PHP-хостинга.',
    'dl_quickstart_step3_title' => 'Открыть index.php',
    'dl_quickstart_step3_desc'  => 'Откройте установленный URL в браузере. Мастер настройки проведёт через первичную конфигурацию.',
    'dl_sha_copy'               => 'Копировать',
    'dl_sha_copied'             => 'Скопировано!',
    'dl_sha_verify_hint'        => 'Целостность можно проверить командой `sha256sum plenvo-latest.zip`.',
    'dl_changelog_jump'         => 'Перейти к:',
    'dl_readme_hint'   => 'Содержит требования, инструкции по настройке, информацию о конфиденциальности и лицензии:',
    'dl_readme_open'   => 'Открыть README',
    'dl_changelog_eyebrow' => 'Примечания к релизу',
    'dl_meta_title'    => 'Скачать Plenvo – Self-Hosted ПО для управления проектами',
    'dl_meta_desc'     => 'Скачайте Plenvo бесплатно. Self-hosted ПО для управления проектами с Канбан, Гант, AI-ассистентом и встроенным автообновлением. На базе PHP и SQLite, без внешних зависимостей.',
    'dl_meta_keywords' => 'скачать Plenvo, скачать ПО для управления проектами, self-hosted, канбан ПО, гант ПО, открытое управление проектами',
    'landing_hosting_self_3'         => 'Встроенный автообновлятор для лёгких обновлений',
    'landing_hosting_self_cta'       => 'Скачать',

    // WebAuthn / Security Keys
    'webauthn_settings'         => 'Ключи безопасности (YubiKey / FIDO2)',
    'webauthn_desc'             => 'Вход с физическим ключом безопасности (например, YubiKey) – без пароля. Ключ должен быть сначала зарегистрирован здесь.',
    'webauthn_add_key'          => 'Зарегистрировать ключ',
    'webauthn_key_name'         => 'Название',
    'webauthn_key_name_ph'      => 'например, YubiKey 5',
    'webauthn_default_key_name' => 'Ключ безопасности',
    'webauthn_registered_count' => 'зарегистрировано',
    'webauthn_registered_on'    => 'Зарегистрирован',
    'webauthn_last_used'        => 'Последнее использование',
    'webauthn_touch_key'        => 'Коснитесь ключа или введите PIN…',
    'webauthn_register_success' => 'Ключ безопасности успешно зарегистрирован.',
    'webauthn_register_error'   => 'Регистрация не удалась. Пожалуйста, попробуйте снова.',
    'webauthn_login_btn'        => 'Войти с ключом безопасности',
    'webauthn_login_success'    => 'Аутентификация успешна.',
    'webauthn_cancelled'        => 'Отменено.',

    'contact_nav'               => 'Контакты',
    'contact_eyebrow'           => 'Контакты',
    'contact_title'             => 'Свяжитесь с нами',
    'contact_subtitle'          => 'Нашли ошибку, есть идея функции или просто хотите поделиться отзывом? Каждое сообщение приветствуется.',
    'contact_name'              => 'Имя',
    'contact_category'          => 'Категория',
    'contact_category_ph'       => 'Пожалуйста, выберите...',
    'contact_cat_bug'           => 'Сообщить об ошибке',
    'contact_cat_feature'       => 'Запрос функции',
    'contact_cat_praise'        => 'Похвала',
    'contact_cat_critique'      => 'Критика',
    'contact_cat_question'      => 'Общий вопрос',
    'contact_cat_other'         => 'Другое',
    'contact_message'           => 'Сообщение',
    'contact_max_chars'         => 'макс. 5000 символов',
    'contact_submit'            => 'Отправить сообщение',
    'contact_success'           => 'Сообщение отправлено! Ответ последует как можно скорее.',
    'contact_error_generic'     => 'Произошла ошибка.',
    'contact_error_network'     => 'Ошибка соединения. Пожалуйста, попробуйте позже.',
    'contact_err_not_configured'=> 'Контактная форма не настроена на этом сервере.',
    'contact_err_invalid'       => 'Неверный запрос.',
    'contact_err_too_fast'      => 'Пожалуйста, подождите немного и попробуйте снова.',
    'contact_err_rate_limit'    => 'Пожалуйста, подождите перед отправкой другого сообщения.',
    'contact_err_name'          => 'Пожалуйста, введите корректное имя (макс. 100 символов).',
    'contact_err_email'         => 'Пожалуйста, введите корректный email-адрес.',
    'contact_err_category'      => 'Пожалуйста, выберите категорию.',
    'contact_err_message'       => 'Сообщение должно быть от 10 до 5000 символов.',
    'contact_err_send'          => 'Email не удалось отправить. Пожалуйста, попробуйте позже.',

    'landing_license_title'          => 'Открытый исходный код – AGPL v3',
    'landing_license_body'           => 'Plenvo выпущен под <strong>GNU Affero General Public License v3</strong>. ПО может использоваться, эксплуатироваться и проверяться бесплатно. Распространение или модификация исходного кода разрешены только на тех же условиях лицензии. Установки должны видимо сохранять уведомление "Powered by Plenvo" со ссылкой на <a href="https://plenvo.gp-server.com" target="_blank" rel="noopener" style="color:#4f46e5;text-decoration:none;font-weight:600">plenvo.gp-server.com</a>.',

    // Layout / Navigation
    'delete_all'                  => 'Удалить все',
    'pending_count'               => 'ожидают',

    // Preferences page
    'preferred_project_view'      => 'Предпочтительный вид проекта',
    'preferred_view_hint'         => 'Этот вид автоматически предвыбирается при создании нового проекта.',
    'request_group_creation_hint' => 'Вы можете запросить у администратора разрешение на создание собственных групп.',
    'group_creation'              => 'Создать группу',
    'permission_active'           => 'Разрешение активно',
    'permission_active_desc'      => 'Вы можете создавать собственные группы.',
    'request_pending_status'      => 'Запрос ожидает',
    'request_pending_desc'        => 'Ваш запрос рассматривается администратором.',
    'request_denied_status'       => 'Отклонено',
    'request_denied_desc'         => 'Ваш последний запрос был отклонён.',
    'request_again'               => 'Запросить снова',
    'permission_revoked_status'   => 'Разрешение отозвано',
    'permission_revoked_desc'     => 'Ваше разрешение было отозвано администратором.',
    'request_access'              => 'Запросить доступ',

    // Group requests (admin)
    'group_requests_title'        => 'Запросы групп',
    'group_creation_requests'     => 'Запросы на создание групп',
    'no_requests'                 => 'Нет запросов.',
    'status_label'                => 'Статус',
    'date_label'                  => 'Дата',
    'pending_status'              => 'Ожидает',
    'approved_status'             => 'Одобрено',
    'revoked_status'              => 'Отозвано',
    'denied_status'               => 'Отклонено',
    'approve'                     => 'Одобрить',
    'deny'                        => 'Отклонить',
    'confirm_deny'                => 'Отклонить запрос?',
    'revoke_permission'           => 'Отозвать разрешение',
    'confirm_revoke_permission'   => 'Отозвать разрешение?',
    'approve_again'               => 'Одобрить снова',
    'grant_permission_direct'     => 'Предоставить разрешение напрямую',
    'grant_permission'            => 'Предоставить разрешение',

    // Plugins (admin)
    'installed_plugins'           => 'Установленные плагины',
    'no_plugins'                  => 'Нет установленных плагинов.',
    'plugin_version'              => 'Версия',
    'plugin_active'               => 'Активен',
    'plugin_disabled'             => 'Отключён',
    'plugin_deactivate'           => 'Деактивировать',
    'plugin_activate'             => 'Активировать',
    'plugin_delete_confirm'       => 'Действительно удалить плагин?',
    'plugin_upload_title'         => 'Загрузить плагин',
    'plugin_upload_label'         => 'ZIP-файл (макс. 5 МБ)',
    'plugin_upload_btn'           => 'Загрузить и установить',
    'plugin_structure_title'      => 'Структура плагина',
    'plugin_upload_hint'          => 'Загрузите плагин как <strong>.zip</strong> файл. ZIP должен содержать <code>plugin.json</code> с полями <code>id</code>, <code>name</code> и <code>class</code>.',
    'plugin_structure_hint'       => 'Минимальный <code>plugin.json</code>:',
    'plugin_class_hint'           => 'Класс должен иметь метод <code>register()</code> и быть размещён как <code>ClassName.php</code> в той же директории.',

    // Users (admin)
    'pw_reset_short'              => 'Сброс пароля',
    'reset_btn'                   => 'Сбросить',

    // Group admin
    'new_group'                   => 'Новая группа',
    'new_group_title'             => 'Создать новую группу',
    'no_group_yet'                => 'У вас ещё нет группы. Создайте свою первую группу сейчас.',
    'group_name_label'            => 'Название группы',
    'group_name_placeholder'      => 'например, Маркетинг, Разработка…',
    'group_desc_placeholder'      => 'Краткое описание группы…',
    'group_admin_auto'            => 'Вы будете автоматически добавлены как администратор группы.',
    'create_btn'                  => 'Создать',
    'ai_blocked_label'            => 'AI заблокирован',
    'ai_active_label'             => 'AI активен',
    'ai_block_confirm'            => 'Заблокировать AI для всех участников этой группы?',
    'ai_blocked_title'            => 'AI заблокирован – нажмите для включения',
    'ai_active_title'             => 'AI активен – нажмите для блокировки',
    'delete_group'                => 'Удалить группу',
    'delete_group_confirm'        => 'Действительно удалить группу? Это действие нельзя отменить.',
    'me_badge'                    => 'Я',
    'reset_password_btn'          => 'Сбросить',
    'no_permission_hint'          => 'Нет разрешения – запросите в настройках',

    // Notifications
    'open_btn'                    => 'Открыть',

    // Invite accept
    'invite_wrong_user'           => 'Это приглашение было отправлено на другой email-адрес и не может быть принято с вашим аккаунтом.',
    'invite_to_dashboard'         => 'Перейти к панели',
    'invite_login_required'       => 'Войдите с этим аккаунтом, чтобы присоединиться к группе.',
    'invite_login_btn'            => 'Войти и принять приглашение',
    'invite_join_text'            => 'Вас пригласили присоединиться к группе.',
    'invite_join_btn'             => 'Принять приглашение',

    // Gantt
    'manual'                      => 'Вручную',

    // Admin settings
    'smtp_external_badge'         => 'Внешний SMTP – без локального почтового сервера',
    'smtp_info_text'              => 'Система использует <strong>исключительно</strong> настроенный SMTP-сервер. Локальная отправка почты (sendmail/mail) отключена.',
    'keep_password_hint'          => 'Оставьте пустым, чтобы сохранить текущий пароль',
    'mail_settings'               => 'Настройки почты',
    'mail_provider'               => 'Почтовый провайдер',
    'mail_provider_smtp'          => 'SMTP',
    'mail_provider_microsoft'     => 'Microsoft 365 (OAuth)',
    'mail_provider_local'         => 'Локальная почта (sendmail)',
    'local_mail_info_text'        => 'Email отправляются через локальную почтовую конфигурацию сервера (PHP mail() / sendmail). Внешний почтовый сервер не требуется. Адрес и имя отправителя можно настроить опционально.',
    'ms_tenant_id'                => 'Tenant ID',
    'ms_client_id'                => 'Client ID',
    'ms_client_secret'            => 'Client Secret',
    'ms_from_email'               => 'Email отправителя',
    'ms_info_text'                => 'Отправка email через Microsoft Graph API (OAuth 2.0 client credentials). Создайте регистрацию приложения в Azure, предоставьте разрешение Mail.Send и введите Tenant ID, Client ID и Client Secret ниже.',
    'ms_test_ok'                  => 'Соединение с Microsoft успешно – аутентификация OK',
    'ms_test_fail'                => 'Соединение с Microsoft не удалось – проверьте учётные данные',
    'ms_missing_fields'           => 'Требуются Tenant ID, Client ID и Client Secret',
    'ollama_url_hint'             => 'Локальный или удалённый, например https://my-server.com',
    'ai_rate_limited'             => 'Слишком много сообщений. Пожалуйста, подождите час перед отправкой новых.',
    'ai_authentication'           => 'Аутентификация',
    'auth_none_label'             => 'Нет (локальная установка)',
    'bearer_token_hint'           => 'Для ollama.com: API-ключ из настроек аккаунта',
    'openai_key_hint'             => 'OpenAI API-ключ с platform.openai.com',
    'model_label'                 => 'Модель',
    'azure_endpoint_label'        => 'Azure Endpoint',
    'azure_endpoint_hint'         => 'Базовый URL вашего Azure OpenAI ресурса',
    'deployment_label'            => 'Deployment',
    'api_version_label'           => 'API Version',
    'api_key_label'               => 'API Key',
    'azure_key_hint'              => 'Найдёте в Azure Portal -> ваш OpenAI ресурс -> Keys and Endpoint',
    'load_models'                 => 'Загрузить модели',
    'stored_placeholder'          => '(сохранено)',
    'password_min'                => 'Пароль должен быть не менее 8 символов',
    'new_password_min'            => 'Новый пароль должен быть не менее 8 символов',
    'password_reset_success'      => 'Пароль сброшен',
    'request_approved'            => 'Запрос одобрен.',
    'request_denied'              => 'Запрос отклонён.',
    'notif_group_approved_title'  => 'Запрос группы одобрен',
    'notif_group_approved_msg'    => 'Ваш запрос на создание групп был одобрен.',
    'notif_group_denied_title'    => 'Запрос группы отклонён',
    'notif_group_denied_msg'      => 'Ваш запрос на создание групп был, к сожалению, отклонён.',
    'status_updated'              => 'Статус обновлён',
    'comment_saved'               => 'Комментарий сохранён.',
    'invalid_request'             => 'Неверный запрос.',
    'plugin_deleted'              => 'Плагин удалён.',
    'plugin_uploaded'             => 'Плагин загружен и установлен.',
    'plugin_delete_error'         => 'Плагин не удалось удалить.',
    'plugin_lock_active_hint'     => 'Этот плагин постоянно активен. Его отключение отменило бы гарантируемую им изоляцию данных и привело бы к инциденту конфиденциальности.',
    'plugin_lock_active_error'    => 'Этот плагин не может быть отключён или удалён, так как он гарантирует постоянную изоляцию данных.',
    'zip_only'                    => 'Разрешены только ZIP-файлы.',
    'zip_not_supported'           => 'ZIP не поддерживается.',
    'zip_not_openable'            => 'ZIP не удалось открыть.',
    'upload_failed'               => 'Загрузка не удалась.',
    'file_too_large'              => 'Файл слишком большой (макс. 5 МБ).',
    'zip_path_traversal'          => 'Неверный ZIP (обнаружен path traversal).',
    'zip_no_manifest'             => 'plugin.json не найден в ZIP.',
    'invalid_plugin_json'         => 'Неверный plugin.json (требуются id и class).',
    'invalid_plugin_id'           => 'Неверный ID плагина (только буквы, цифры, - и _).',
    'name_required'               => 'Имя обязательно',
    'group_name_required'         => 'Название группы обязательно.',
    'group_created_success'       => 'Группа успешно создана.',
    'group_invite_notif_title'    => 'Приглашение в группу',
    'title_required'              => 'Название обязательно',
    'description_required'        => 'Описание обязательно',
    'due_date_required'           => 'Срок обязателен',
    'image_only'                  => 'Разрешены только изображения (jpg, png, gif, webp)',
    'image_too_large'             => 'Изображение макс. 2 МБ',
    'avatar_updated'              => 'Аватар обновлён',
    'new_group_request_title'     => 'Новый запрос группы',
    'new_group_request_msg'       => '%s запрашивает разрешение на создание групп.',
    'group_request_sent'          => 'Ваш запрос отправлен и будет рассмотрен администратором.',
    'invite_not_found'            => 'Приглашение не найдено или истекло',
    'invite_wrong_account'        => 'Это приглашение не относится к вашему аккаунту',
    'invite_join_error'           => 'Ошибка при присоединении к группе',
    'group_invite_notif_msg'      => '%s пригласил вас в группу "%s".',
    'model_load_unknown_provider' => 'Неизвестный провайдер.',
    'model_load_failed'           => 'Соединение не удалось – проверьте учётные данные.',
    'project_create_error'        => 'Ошибка при создании проекта',
    'status_open'                 => 'Открыто',
    'status_in_progress'          => 'В работе',
    'status_review'               => 'На проверке',
    'status_done'                 => 'Готово',
    'project_label'               => 'Проект',
    'gantt_weeks'                 => 'Недели',
    'gantt_months'                => 'Месяцы',
    'gantt_auto_deps'             => 'Авто-связь',
    'gantt_auto_deps_title'       => 'Автоматически создать зависимости из расписания',
    'gantt_clear_deps'            => 'Очистить связи',
    'gantt_clear_deps_title'      => 'Удалить все зависимости в этом проекте',
    'gantt_confirm_clear_deps'    => 'Удалить все зависимости в этом проекте?',
    'gantt_clear_dates'           => 'Очистить даты',
    'gantt_clear_dates_title'     => 'Удалить все даты начала и срока из задач',
    'gantt_confirm_clear_dates'   => 'Удалить все даты начала и срока из всех задач?',

    'powered_by_plenvo'   => 'Работает на Plenvo',

    // Auto-updater
    'update_nav'               => 'Обновления',
    'update_title'             => 'Обновление системы',
    'update_status'            => 'Статус обновления',
    'update_installed_version' => 'Установленная версия',
    'update_available_version' => 'Доступная версия',
    'update_new'               => 'Доступна новая версия',
    'update_latest'            => 'Актуально',
    'update_preview'           => 'Превью-версия',
    'update_check_failed'      => 'Проверка не удалась – сервер недоступен',
    'update_changelog'         => 'Изменения',
    'update_force_check'       => 'Проверить снова',
    'update_now'               => 'Обновить до :version',
    'update_confirm'           => 'Обновить до новой версии сейчас? Убедитесь, что сначала сделали резервную копию папки data/.',
    'update_already_latest'    => 'Уже актуально.',
    'update_success'           => 'Обновление успешно! Миграции базы данных выполнятся при следующей загрузке страницы.',
    'update_progress_title'    => 'Выполняется обновление',
    'update_progress_starting' => 'Запуск обновления…',
    'update_redirect_in'       => 'Перенаправление через',
    'update_unknown_error'     => 'Неизвестная ошибка',
    'update_hints_title'       => 'Примечания',
    'update_hint_backup'       => 'Всегда делайте резервную копию папки data/ перед обновлением (база данных, загрузки, аватары).',
    'update_hint_data'         => 'Ваши данные в data/ никогда не перезаписываются при обновлении.',
    'update_hint_migrations'   => 'Миграции базы данных выполняются автоматически при следующей загрузке страницы.',
    'updates_enabled'          => 'Включить автоматическую проверку обновлений',
    'updates_enabled_hint'     => 'Отключение предотвращает все исходящие соединения с plenvo.gp-server.com.',
    'updates_disabled_label'   => 'Проверка обновлений отключена',

    // System info
    'system_info'         => 'Обновление ПО',
    'changelog_since'     => 'Изменения в этом обновлении',
    'view_changelog'      => 'Просмотреть журнал изменений',
    'app_version_label'   => 'Установленная версия',

    // External views
    'overview'                    => 'Обзор',
    'send'                        => 'Отправить',
    'change_status'               => 'Изменить статус',
    'no_tasks_assigned'           => 'Нет назначенных задач.',
    'ext_badge'                   => 'Внеш.',
    'ext_comment_placeholder'     => 'Напишите комментарий… – @ для упоминания',
    'due_label'                   => 'Срок',
    'comment_empty_error'         => 'Комментарий не может быть пустым.',
    'comment_too_long'            => 'Комментарий слишком длинный (макс. 5000 символов).',
    'ext_assign_greeting' => 'Здравствуйте, :name,',
    'ext_assign_intro' => 'Вам назначена задача :task в проекте :project.',
    'ext_assign_link' => 'Показать задачи →',
    'ext_assign_footer' => 'Эта ссылка персональная и даёт вам доступ к вашим задачам в этом проекте.',
    'ext_assign_subject' => 'Назначена задача – :task',
    'app_default_language_label' => 'Язык системы по умолчанию',
    'app_default_language_hint' => 'Используется, когда ни язык браузера пользователя, ни его личная настройка не соответствуют поддерживаемому языку.',
    'domain_lang_title' => 'Сопоставление домен-язык',
    'domain_lang_desc' => 'Внешние получатели получают электронные письма на языке, присвоенном домену их адреса электронной почты.',
    'domain_lang_col_domain' => 'Домен',
    'domain_lang_col_language' => 'Язык',
    'domain_lang_add_btn' => 'Сохранить сопоставление',
    'domain_lang_empty' => 'Сопоставления доменов ещё не настроены.',
    'domain_lang_invalid_domain' => 'Недопустимый домен.',
    'domain_lang_invalid_language' => 'Недопустимый язык.',
    'domain_lang_saved' => 'Сопоставление домена сохранено.',
    'domain_lang_save_failed' => 'Не удалось сохранить сопоставление домена.',
    'domain_lang_deleted' => 'Сопоставление домена удалено.',
    'contact_attachment_label' => 'Файл (необязательно)',
    'contact_attachment_hint' => 'Изображения или PDF, макс. 10 МБ.',
    'contact_err_attachment_type' => 'Разрешены только изображения (jpg, png, gif, webp) и PDF.',
    'contact_err_attachment_size' => 'Файл слишком большой (макс. 10 МБ).',
    'contact_err_attachment_upload' => 'Не удалось загрузить файл.',
    'auto_update_title' => 'Запланированные автоматические обновления',
    'auto_update_desc' => 'Если включено, cron автоматически устанавливает доступные обновления в настроенном временном окне. Требуется регулярный запуск cron.php (например, каждые 5-15 минут) и разрешение обновлений.',
    'auto_update_enabled' => 'Включить автоматические обновления',
    'auto_update_time_label' => 'Запланированное время (ЧЧ:ММ, время сервера)',
    'auto_update_time_hint' => 'Обновления выполняются в цикле cron после этого времени, не более одного раза в день.',
    'hc_migrations' => 'Миграции базы данных',
    'hc_migrations_ok' => 'Все миграции применены',
    'hc_migrations_pending' => ':n в ожидании',
    'hc_migrations_failed' => 'Сбой: :id (:error)',
    'hc_migrations_failed_generic' => 'Сбой, см. журнал сервера',
    'hc_app_version' => 'Версия приложения (код vs. БД)',
    'hc_app_version_ok' => 'Код и БД синхронизированы (:code)',
    'hc_app_version_mismatch' => 'Версия кода :code, версия БД :db',
    'plugin_settings' => 'Настройки',
    'hc_ldap_transport' => 'LDAP-транспорт',
    'hc_ldap_inactive' => 'Плагин LDAP не активирован',
    'hc_ldap_transport_ok' => ':mode активен',
    'hc_ldap_transport_cleartext' => 'Незашифрованный LDAP передаёт учётные данные и пароли в открытом виде',
    'hc_ldap_ca' => 'Сертификат CA LDAP',
    'hc_ldap_ca_none' => 'CA-сертификат не загружен',
    'hc_ldap_ca_unknown' => 'CA сохранён, срок действия неизвестен',
    'hc_ldap_ca_expired' => 'Срок действия CA истёк :days дней назад',
    'hc_ldap_ca_soon' => 'Срок действия CA истекает через :days дней',
    'hc_ldap_ca_ok' => 'CA действителен (осталось :days дней)',
    'hc_ldap_sync' => 'Синхронизация LDAP',
    'hc_ldap_sync_never' => 'Синхронизация ещё не запускалась',
    'hc_ldap_sync_ok' => 'Последний запуск :h ч назад',
    'hc_ldap_sync_warn' => 'Последний запуск :h ч назад (более 4 ч)',
    'hc_ldap_sync_stale' => 'Последний запуск :h ч назад (более 24 ч)',
    'bulk_selected' => 'выбрано',
    'bulk_set_status' => 'Установить статус',
    'bulk_set_priority' => 'Установить приоритет',
    'bulk_set_assignees' => 'Назначить',
    'bulk_set_due_date' => 'Установить срок',
    'bulk_add_label' => 'Добавить метку',
    'bulk_remove_label' => 'Удалить метку',
    'bulk_apply' => 'Применить',
    'bulk_clear' => 'Снять выбор',
    'bulk_delete' => 'Удалить',
    'bulk_confirm_delete' => 'Действительно удалить :n задач?',
    'external' => 'Внешний',
    'clear' => 'Очистить',
    'cmdk_placeholder' => 'Поиск проектов, задач или людей…',
    'cmdk_empty' => 'Ничего не найдено',
    'cmdk_type_more' => 'Введите минимум 2 символа…',
    'cmdk_navigate' => 'навигация',
    'cmdk_open' => 'открыть',
    'shortcuts_title' => 'Сочетания клавиш',
    'shortcuts_open_palette' => 'Открыть быстрый поиск',
    'shortcuts_navigate_results' => 'Перемещение по результатам',
    'shortcuts_open_result' => 'Открыть результат',
    'shortcuts_close' => 'Закрыть диалог',
    'shortcuts_hint' => 'Быстрый поиск находит проекты и задачи, к которым у вас есть доступ. Сочетания клавиш работают везде в Plenvo.',
    'cmdk_people' => 'Люди',
    'cmdk_open_tasks' => 'открытых',
    'managed_tasks_title' => 'Задачи в ваших проектах',
    'managed_tasks_subtitle' => 'Открытые задачи :name в проектах, где вы владелец или менеджер.',
    'managed_tasks_empty' => 'Нет открытых задач в ваших проектах.',
    'plugin_impersonate_desc' => 'Позволяет администраторам использовать приложение от имени другого пользователя.',
    'plugin_provider_edition_desc' => 'Изоляция пользователей по группам, заявки на создание групп и e-mail приглашения.',
    'plugin_ldap_desc' => 'Прозрачно аутентифицирует пользователей Plenvo через сервер LDAP/AD. Поддерживает LDAPS, StartTLS и (с предупреждением) незашифрованное соединение. JIT-инициализация, cron-синхронизация для деактивированных пользователей каталога, опциональная группа администраторов.',
    'plugin_oidc_desc' => 'Единый вход (SSO) через OpenID Connect. Поддерживает Keycloak, Google Workspace, Microsoft Entra ID и любых других OIDC-провайдеров параллельно.',
    'plugin_gdpr_desc' => 'Реализует право доступа по ст. 15 GDPR. Администраторы могут экспортировать копии данных отдельных пользователей; опционально пользователи могут самостоятельно скачать свои данные.',
    'gdpr_export_admin_btn' => 'Экспорт GDPR',
    'gdpr_export_admin_btn_title' => 'Скачать ZIP-архив с персональными данными этого пользователя (ст. 15 GDPR).',
    'gdpr_self_export_card_title' => 'Скачать свои данные (GDPR)',
    'gdpr_self_export_card_desc' => 'Получите ZIP-архив с копией персональных данных, которые этот экземпляр хранит о вас. Загрузка формируется на лету и не сохраняется на сервере.',
    'gdpr_self_export_btn' => 'Скачать мои данные',
    'gdpr_self_export_cooldown' => 'Снова доступно через %d ч.',
    'gdpr_self_export_disabled' => 'Самостоятельный экспорт сейчас отключён оператором.',
    'gdpr_readme_heading' => 'Экспорт данных GDPR — %s',
    'gdpr_readme_for' => 'Для: %s <%s>',
    'gdpr_readme_generated' => 'Создано: %s',
    'gdpr_readme_trigger' => 'Инициировано: %s',
    'gdpr_readme_triggered_admin' => 'администратором от вашего имени',
    'gdpr_readme_triggered_self' => 'вами самостоятельно через страницу самообслуживания',
    'gdpr_readme_contents_heading' => 'Содержимое архива',
    'gdpr_readme_contents' => "Каждый файл JSON внутри этого ZIP соответствует одной категории персональных данных:\n\n  profile.json           Учётная запись и настройки (без хеша пароля, секрета MFA, токенов сброса).\n  projects.json          Проекты, владельцем или участником которых вы являетесь.\n  tasks.json             Задачи, созданные вами или назначенные на вас.\n  comments.json          Комментарии, написанные вами.\n  ai_messages.json       Сообщения, отправленные ИИ-ассистенту (если используется).\n  notifications.json     Уведомления, адресованные вам.\n  activity_log.json      Действия, которые вы выполняли (создание, изменение, смена статуса и т. д.).\n  security_events.json   События безопасности вашей учётной записи (входы, MFA, экспорты).\n  webauthn.json          Метаданные зарегистрированных passkey (без байт открытого ключа).\n  invitations.json       Приглашения, отправленные на ваш e-mail.\n  attachments.json       Метаданные загруженных вами файлов.\n  group_memberships.json Членство в группах (только в установках Provider Edition).\n  attachments/           Сами загруженные файлы, только если оператор включил эту опцию.\n\nНамеренно НЕ включено: хеш пароля, секрет TOTP, коды восстановления MFA, байты открытого ключа WebAuthn, зашифрованные тела писем, временная очередь почты. Их включение не принесло бы вам пользы и ослабило бы безопасность учётной записи.",
    'gdpr_readme_rights_heading' => 'Ваши права согласно GDPR',
    'gdpr_readme_rights' => "Помимо права доступа (ст. 15), которое реализует этот экспорт, у вас также есть:\n\n  - Право на исправление (ст. 16): исправить неточные данные в настройках учётной записи.\n  - Право на удаление (ст. 17): удалить учётную запись со страницы настроек.\n  - Право на ограничение обработки (ст. 18).\n  - Право на переносимость данных (ст. 20): файлы JSON в этом архиве являются машиночитаемыми.\n  - Право на возражение (ст. 21).\n  - Право подать жалобу в надзорный орган (ст. 77).\n\nПо вопросам обработки ваших данных обращайтесь к контролёру, указанному во вступлении выше.",
    'oidc_or_continue_with' => 'Или войти через',
    'oidc_sign_in_with' => 'Войти через',
    'inactive_cleanup_title' => 'Автоматически удалять неактивные аккаунты',
    'nav_inactive_cleanup' => 'Неактивные аккаунты',
    'inactive_cleanup_excluded_label' => 'Никогда не затрагивается',
    'inactive_cleanup_excluded_hint' => 'Учётные записи администраторов и учётные записи, управляемые через LDAP / Active Directory. Их жизненным циклом управляет каталог.',
    'scope_mine' => 'Мои задачи',
    'scope_all_my_projects' => 'Все в моих проектах',
    'assigned_filter_me' => 'Назначены мне',
    'assigned_filter_others' => 'Другие люди',
    'assigned_filter_externals' => 'Внешние участники',
    'assigned_filter_none' => 'Без исполнителя',
    'assigned_filter_anyone' => 'Кто угодно',
    'clear_filters' => 'Сбросить фильтры',
    'clear_filters_hint' => 'Снять все фильтры и показать всё, к чему у вас есть доступ.',
    'inactive_cleanup_desc' => 'Пользователи, не входившие в систему в течение указанного периода, сначала получают предупреждение по e-mail. Если они не входят в систему в течение льготного периода, аккаунт удаляется навсегда. Учётные записи администраторов исключены. Проекты, единственным владельцем которых является пользователь, удаляются вместе с аккаунтом.',
    'inactive_cleanup_enable_label' => 'Активировать',
    'inactive_cleanup_threshold_label' => 'Неактивность (месяцев)',
    'inactive_cleanup_threshold_hint' => 'По умолчанию 12. От 1 до 120.',
    'inactive_cleanup_warning_label' => 'Льготный период (дней)',
    'inactive_cleanup_warning_hint' => 'По умолчанию 14. От 1 до 90.',
    'inactive_cleanup_last_run' => 'Последний запуск :when — :warned предупреждено, :deleted удалено.',
    'mail_inactive_warning_subject' => 'Ваш аккаунт будет удалён через :days дней',
    'mail_inactive_warning_body' => 'Ваш аккаунт долгое время неактивен. Если вы не войдёте в систему в течение :days дней, аккаунт и проекты, единственным владельцем которых вы являетесь, будут безвозвратно удалены.',
    'mail_inactive_warning_cta' => 'Войти сейчас',
    'mail_inactive_warning_footer' => 'Это автоматическое сообщение от Plenvo. Достаточно одного успешного входа, чтобы отменить удаление.',
    'mail_greeting' => 'Здравствуйте, :name,',
    'mail_open_task' => 'Открыть задачу →',
    'mail_show_tasks' => 'Показать задачи →',
    'mail_view_task' => 'Посмотреть задачу',
    'mail_view_comment' => 'Посмотреть комментарий →',
    'mail_personal_link' => 'Эта ссылка персональная и даёт вам доступ к вашим задачам в этом проекте.',
    'mail_project_label' => 'Проект: :name',
    'mail_assigned_subject' => 'Назначена задача – :task',
    'mail_assigned_body' => 'Вам назначена задача :task в проекте :project.',
    'mail_mgr_activity_subject' => 'Активность – :project',
    'mail_mgr_activity_body' => 'Активность в проекте :project: :actor – :action. Задача: :task',
    'mail_activity_inapp' => 'Активность: :task',
    'mail_task_done_subject' => 'Задача завершена – :task',
    'mail_task_done_intro' => 'Следующая задача была завершена:',
    'mail_task_done_by' => 'Завершил: :actor',
    'mail_task_done_inapp' => 'От: :actor | Проект: :project',
    'mail_predec_subject' => 'Задачу можно начать – :task',
    'mail_predec_intro' => 'Все предшествующие задачи :task в проекте :project теперь завершены.',
    'mail_predec_cta' => 'Теперь вы можете начать свою задачу.',
    'mail_predec_inapp' => 'Все предшественники завершены | Проект: :project',
    'mail_reminder_subject' => 'Напоминание – :task',
    'mail_reminder_3days_body' => 'Напоминание: Срок задачи :task в проекте :project — через 3 дня.',
    'mail_reminder_3days_inapp' => 'Срок через 3 дня: :task',
    'mail_comment_subject' => 'Новый комментарий – :task',
    'mail_comment_body_internal' => ':actor прокомментировал задачу :task в проекте :project.',
    'mail_comment_body_external' => 'Задача :task в проекте :project была прокомментирована.',
    'mail_comment_inapp' => 'От: :actor | Проект: :project',
    'mail_change_subject' => 'Задача изменена – :task',
    'mail_change_body' => 'Задача :task в проекте :project была изменена.',
    'mail_unassign_subject' => 'Удалено из задачи – :task',
    'mail_unassign_body' => 'Вы были удалены из задачи :task в проекте :project.',
    'mail_attachment_subject' => 'Новое вложение – :task',
    'mail_attachment_body' => 'К задаче :task в проекте :project было добавлено новое вложение.',
    'mail_task_created_subject' => 'Новая задача – :task',
    'mail_task_created_intro' => 'В проекте :project создана новая задача:',
    'mail_created_by' => 'Создал: :actor',
    'mail_task_created_inapp' => 'Создал: :actor | Проект: :project',
    'mail_mention_subject' => 'Вас упомянули – :task',
    'mail_mention_body_internal' => ':actor упомянул вас в комментарии к задаче :task в проекте :project.',
    'mail_mention_body_external' => 'Вас упомянули в комментарии к задаче :task в проекте :project.',
    'mail_mention_inapp' => 'От: :actor | Проект: :project',
    'mail_dueday_subject' => 'Срок сегодня – :task',
    'mail_dueday_body' => 'Напоминание: Срок задачи :task в проекте :project — сегодня.',
    'mail_overdue_subject' => 'Просроченная задача – :task',
    'mail_overdue_intro' => 'Следующая задача просрочена:',
    'mail_overdue_due_was' => 'Срок был: :date',
    'mail_overdue_inapp' => 'Срок был: :date | Проект: :project',
    'mail_startdate_subject' => 'Задачу можно начать – :task',
    'mail_startdate_body' => 'Задача :task в проекте :project начинается сегодня. Вы можете начать сейчас.',
    'mail_startdate_due_info' => 'Срок: :date.',
    'mail_task_event_body' => ':actor :action:',
    'mail_admin_group_request_subject' => 'Запрос группы от :user',
    'mail_admin_group_request_intro' => 'Пользователь запрашивает разрешение на создание собственных групп:',
    'mail_admin_label_username' => 'Имя пользователя',
    'mail_admin_label_email' => 'Эл. почта',
    'mail_admin_label_time' => 'Время',
    'mail_admin_manage_requests' => 'Управление запросами →',
    'mail_admin_new_reg_subject' => 'Новая регистрация – :user',
    'mail_admin_new_reg_intro' => 'Новый пользователь зарегистрировался и ожидает подтверждения по электронной почте:',
    'mail_admin_open_users' => 'Открыть управление пользователями →',
    'mail_admin_new_reg_inapp' => 'Новая регистрация: :user',
    'security_log_title' => 'Журнал безопасности',
    'security_log_desc' => 'События, связанные с безопасностью (входы, MFA, действия администратора, операции с плагинами/обновлениями). Хранение: :days дней. Отображаются последние 500 записей.',
    'security_log_filter_type' => 'Тип события',
    'security_log_filter_severity' => 'Важность',
    'security_log_filter_all' => 'Все',
    'security_log_empty' => 'Событий безопасности пока не зарегистрировано.',
    'security_log_col_time' => 'Время',
    'security_log_col_severity' => 'Уровень',
    'security_log_col_type' => 'Тип',
    'security_log_col_user' => 'Пользователь',
    'security_log_col_ip' => 'IP',
    'security_log_col_details' => 'Детали',
    'security_log_filter_placeholder' => 'Фильтр…',
    'security_log_filter_no_match' => 'Нет записей, соответствующих текущим фильтрам.',
    'security_log_max_rows' => 'Отображение ограничено 500 записями. Старые записи удаляются автоматически согласно настройке хранения.',
    'security_log_deleted_user' => 'удалён',
    'sec_seclog_title' => 'Журнал событий безопасности',
    'sec_seclog_retention' => 'Хранение (дни)',
    'sec_seclog_retention_hint' => 'Дни до автоматического удаления событий безопасности. 0 = хранить всегда.',
    'apply' => 'Применить',
    'reset' => 'Сбросить',
    'mail_footer_auto_generated' => 'Это письмо сгенерировано автоматически',
    'update_available_notif_title' => 'Plenvo :version доступна',
    'update_available_notif_msg' => 'Доступна новая версия. Обновите сейчас в системных настройках.',
    'plugin_activated_msg' => 'Плагин активирован.',
    'plugin_deactivated_msg' => 'Плагин деактивирован.',
    'preferences_saved_msg' => 'Настройки сохранены.',
    'project_status_added' => 'Статус добавлен',
    'project_status_deleted' => 'Статус удалён',
    'project_label_added' => 'Метка добавлена',
    'project_label_deleted' => 'Метка удалена',
    'ai_request_failed' => 'Запрос ИИ не выполнен. Пожалуйста, попробуйте снова.',
    'contact_admin_mail_title' => 'Новый запрос на контакт',
    'contact_admin_mail_footer' => 'Отправлено с IP :ip в :time',
    'notify_admins_new_registration_label' => 'Уведомлять администраторов о новых регистрациях',
    'notify_admins_new_registration_hint' => 'Если включено, администраторы получают электронное письмо и уведомление в приложении, как только пользователь регистрируется (до подтверждения электронной почты).',
    'unverified_user_max_hours_label' => 'Удалять неподтверждённые аккаунты через (часов)',
    'unverified_user_max_hours_hint' => 'Учётные записи, не подтвердившие электронную почту в течение этого периода после регистрации, автоматически удаляются cron. 0 = не удалять никогда.',
    'timezone_label' => 'Часовой пояс',
    'timezone_user_hint' => 'Оставьте пустым, чтобы использовать часовой пояс установки по умолчанию.',
    'timezone_inherit_default' => '— Системный по умолчанию —',
    'app_default_timezone_label' => 'Часовой пояс по умолчанию',
    'app_default_timezone_hint' => 'Используется, если пользователь не задал собственный часовой пояс. Влияет на отображение даты/времени в письмах и интерфейсе.',
    'save_all_btn' => 'Сохранить все настройки',
    'save_all_in_progress' => 'Сохранение…',
    'save_all_success' => 'Все настройки сохранены',
    'save_all_failed' => 'Сохранение не удалось — перезагрузите и попробуйте снова',
    'toast_click_to_copy' => 'Нажмите, чтобы скопировать',
    'toast_copied' => 'Скопировано в буфер обмена ✓',
    'toast_close' => 'Закрыть',
    'hc_cron_title' => 'Health Check как cron-монитор',
    'hc_cron_desc' => 'Если включено, cron запускает все проверки с заданным интервалом. Письмо отправляется, когда состояние ухудшается (OK → предупреждение/ошибка или предупреждение → ошибка). Каждая проблема сообщается только один раз, пока не улучшится или не будет устранена.',
    'hc_cron_enable_label' => 'Включить cron-монитор',
    'hc_cron_interval_label' => 'Интервал (минуты)',
    'hc_cron_interval_hint' => 'Минимум 5, максимум 1440 минут (24ч).',
    'hc_cron_alert_email_label' => 'Адрес(а) email для оповещений',
    'hc_cron_alert_email_hint' => 'Через запятую или пробел. Пусто = все активные администраторы.',
    'topbar_health_ok' => 'Система в порядке',
    'topbar_health_warn' => 'Система: предупреждения',
    'topbar_health_error' => 'Система: ошибки',
    'topbar_health_unknown' => 'Статус системы неизвестен — cron-монитор ещё не запускался',
    'mail_hc_alert_subject' => 'Оповещение Health Check — :n проблема(ы)',
    'mail_hc_alert_intro' => 'Последняя cron-проверка обнаружила новые проблемы:',
    'mail_hc_resolved_subject' => 'Health Check — :n проблема(ы) устранена(ы)',
    'mail_hc_resolved_intro' => 'Следующие ранее сообщённые проблемы теперь устранены:',
    'mail_hc_at' => 'Проверено :time',
    'hc_paths' => 'Чувствительные пути',
    'hc_paths_ok' => ':n путей недоступны публично',
    'hc_paths_exposed' => 'Доступны публично: :list',
    'hc_key_perms' => 'Права файла ключа',
    'hc_key_missing' => 'data/app.key ещё не существует (создаётся при первом шифровании)',
    'hc_key_ok' => '0600 (только владелец)',
    'hc_key_bad' => 'data/app.key имеет права :perms — должно быть 0600',
    'hc_db_perms' => 'Права файла БД',
    'hc_db_missing' => 'data/database.sqlite не существует',
    'hc_db_ok' => ':perms (не читается всеми)',
    'hc_db_world_readable' => 'data/database.sqlite читается всеми (:perms) — возможна кража данных',
    'hc_https' => 'HTTPS принудительно',
    'hc_https_not_https' => 'app_url равно :url — должно начинаться с https://',
    'hc_https_http_open' => 'http:// возвращает 200 вместо редиректа/блокировки — учётные данные могут передаваться без шифрования',
    'hc_https_ok' => 'app_url использует https и http:// блокирует/перенаправляет',
    'hc_admin_mfa' => 'Учётные записи админов с 2FA',
    'hc_admin_mfa_ok' => 'У всех активных админов есть хотя бы второй фактор',
    'hc_admin_mfa_missing' => ':n админ(ов) без TOTP/Email-MFA/WebAuthn',
    'hc_admin_mfa_check_failed' => 'Проверка не удалась',
    'hc_php_config' => 'Конфигурация PHP',
    'hc_php_config_ok' => 'PHP :v — display_errors/expose_php выкл, сессионные куки HttpOnly',
    'hc_php_config_issues' => 'Нарушены рекомендуемые значения: :list',
    'hc_mail_heartbeat' => 'Сердцебиение отправки почты',
    'hc_mail_heartbeat_disabled' => 'Уведомления отключены',
    'hc_mail_heartbeat_unconfigured' => 'Поставщик почты не настроен',
    'hc_mail_heartbeat_never' => 'Успешных отправок ещё не зафиксировано',
    'hc_mail_heartbeat_ok' => 'Последняя успешная отправка :h час(ов) назад',
    'hc_mail_heartbeat_stale' => 'Последняя успешная отправка :d дней назад — проверьте SMTP/провайдера',
    'hc_disk' => 'Свободное место на диске',
    'hc_disk_unknown' => 'Не удалось определить свободное место',
    'hc_disk_ok' => ':gb ГБ свободно',
    'hc_disk_low' => 'Свободно только :gb ГБ (порог 15 ГБ) — загрузки/резервные копии под угрозой',
    'dl_bsi_hint' => 'Отчёт по безопасности и BSI-соответствию на уровне кода:',

    // ── Опросы по датам (плагин meetingpoll) ────────────────────────────────
    'mp_plugin_desc'        => 'Опросы доступности с несколькими вариантами: предложите несколько дат/времён, поделитесь ссылкой, участники голосуют без входа в систему.',
    'mp_nav'                => 'Опросы по датам',
    'mp_new_poll'           => 'Новый опрос по датам',
    'mp_list_intro'         => 'Предложите несколько дат и поделитесь ссылкой — участники голосуют без учётной записи.',
    'mp_no_polls'           => 'Вы ещё не создали ни одного опроса по датам.',
    'mp_col_title'          => 'Название',
    'mp_col_options'        => 'Варианты',
    'mp_col_responses'      => 'Ответы',
    'mp_col_status'         => 'Статус',
    'mp_status_open'        => 'Открыт',
    'mp_status_closed'      => 'Закрыт',
    'mp_status_finalized'   => 'Дата выбрана',
    'mp_create_title'       => 'Создать опрос по датам',
    'mp_edit_title'         => 'Изменить опрос по датам',
    'mp_field_title'        => 'Название',
    'mp_field_title_ph'     => 'напр. Встреча команды в мае',
    'mp_field_desc'         => 'Описание',
    'mp_field_desc_ph'      => 'О чём речь? (необязательно)',
    'mp_field_location'     => 'Место',
    'mp_field_location_ph'  => 'напр. Переговорная 2 или видеозвонок (необязательно)',
    'mp_field_deadline'     => 'Срок',
    'mp_field_deadline_hint'=> 'После этого момента ответы больше не принимаются (необязательно).',
    'mp_field_options'      => 'Варианты даты/времени',
    'mp_opt_date'           => 'Дата',
    'mp_opt_start'          => 'С',
    'mp_opt_end'            => 'До',
    'mp_add_option'         => 'Добавить вариант',
    'mp_opt_hint'           => 'Оставьте время пустым для варианта «весь день». Требуется хотя бы один вариант.',
    'mp_cal_hint'           => 'Нажмите в календаре на дни, которые хотите предложить как вариант. Повторное нажатие убирает день.',
    'mp_no_dates'           => 'Дни ещё не выбраны.',
    'mp_cal_nojs'           => 'Для выбора дат требуется JavaScript.',
    'mp_default_time'       => 'Время по умолчанию для новых дней:',
    'mp_duration'           => 'Длительность:',
    'mp_dur_none'           => 'Без времени окончания',
    'mp_apply_to_all'       => 'Применить ко всем',
    'mp_edit_time'          => 'Изменить время',
    'mp_invite_title'       => 'Пригласить участников',
    'mp_invite_hint'        => 'Пригласите пользователей Plenvo через поиск или укажите внешние адреса электронной почты. Все получат ссылку на опрос по почте.',
    'mp_invite_users_label' => 'Пользователи Plenvo',
    'mp_invite_search_ph'   => 'Поиск по имени или почте …',
    'mp_invite_emails_label'=> 'Внешние адреса электронной почты',
    'mp_invite_emails_ph'   => 'max@example.com, anna@example.com … (через запятую или с новой строки)',
    'mp_invite_send'        => 'Отправить приглашения',
    'mp_invited_people'     => 'Приглашены',
    'mp_invite_pending'     => 'Ожидание',
    'mp_invite_responded'   => 'Ответил(а)',
    'mp_invite_resend'      => 'Отправить снова',
    'mp_invite_remove'      => 'Убрать из списка',
    'mp_invite_remove_confirm' => 'Убрать это приглашение из списка?',
    'mp_invite_sent'        => 'Отправлено приглашений: :count.',
    'mp_invite_resent'      => 'Приглашение отправлено снова.',
    'mp_invite_removed'     => 'Приглашение удалено.',
    'mp_invite_recently_sent' => 'Это приглашение только что отправлено. Подождите немного.',
    'mp_email_from_invite'  => 'Этот адрес взят из вашего приглашения, поэтому его нельзя изменить.',
    'mp_field_allow_maybe'  => 'Разрешить вариант «при необходимости» (участники могут выбрать «возможно»)',
    'mp_field_hide_results' => 'Скрытый опрос: участники не видят ответы друг друга',
    'mp_field_notify_owner' => 'Присылать мне письмо при каждом новом ответе',
    'mp_create_submit'      => 'Создать опрос',
    'mp_created'            => 'Опрос по датам создан.',
    'mp_saved'              => 'Изменения сохранены.',
    'mp_deleted'            => 'Опрос по датам удалён.',
    'mp_confirm_delete_poll'    => 'Удалить этот опрос по датам и все ответы?',
    'mp_confirm_delete_response'=> 'Удалить этот ответ?',
    'mp_delete_response'    => 'Удалить ответ',
    'mp_response_deleted'   => 'Ответ удалён.',
    'mp_share_link'         => 'Ссылка для доступа',
    'mp_copy_link'          => 'Копировать ссылку',
    'mp_copied'             => 'Скопировано!',
    'mp_open_link'          => 'Открыть',
    'mp_share_hint'         => 'Поделитесь этой ссылкой со всеми участниками — учётная запись не нужна.',
    'mp_manage_poll'        => 'Управление опросом',
    'mp_meta_responses'     => 'Ответов: :count',
    'mp_meta_deadline'      => 'Срок: :date',
    'mp_meta_hidden'        => 'Скрытый опрос',
    'mp_deadline_passed'    => 'Срок истёк :date — дальнейшие ответы невозможны.',
    'mp_voting_closed'      => 'Этот опрос закрыт — голосование больше недоступно.',
    'mp_no_options_yet'     => 'В этот опрос ещё не добавлены варианты даты/времени.',
    'mp_participant'        => 'Участник',
    'mp_all_day'            => 'весь день',
    'mp_no_responses'       => 'Пока нет ответов.',
    'mp_total'              => 'Итого',
    'mp_results'            => 'Результаты',
    'mp_finalize_title'     => 'Выбрать дату',
    'mp_finalize_hint'      => 'Выберите окончательную дату. Позже это можно отменить.',
    'mp_finalize_choose'    => 'Выберите дату …',
    'mp_finalize_notify'    => 'Уведомить участников по почте',
    'mp_finalize_submit'    => 'Выбрать дату',
    'mp_finalized'          => 'Дата выбрана.',
    'mp_finalized_to'       => 'Окончательная дата',
    'mp_reopen'             => 'Отменить выбор',
    'mp_reopened'           => 'Выбор отменён.',
    'mp_your_response'      => 'Ваш ответ',
    'mp_edit_your_response' => 'Изменить ваш ответ',
    'mp_voting_as'          => 'Вы голосуете как :name.',
    'mp_your_name'          => 'Ваше имя',
    'mp_your_email'         => 'Эл. почта',
    'mp_email_ph'           => 'чтобы получить уведомление, когда дата будет выбрана (необязательно)',
    'mp_yes'                => 'Да',
    'mp_maybe'              => 'При необходимости',
    'mp_no'                 => 'Нет',
    'mp_comment'            => 'Комментарий',
    'mp_comment_ph'         => 'необязательно',
    'mp_submit_response'    => 'Сохранить ответ',
    'mp_update_response'    => 'Обновить ответ',
    'mp_vote_saved'         => 'Спасибо! Ваш ответ сохранён.',
    'mp_organized_by'       => 'Организатор: :name',
    'mp_location'           => 'Место',
    'mp_poll_not_found'     => 'Этого опроса по датам (больше) не существует.',
    'mp_err_title_required' => 'Укажите название.',
    'mp_err_title_long'     => 'Название слишком длинное.',
    'mp_err_desc_long'      => 'Описание слишком длинное.',
    'mp_err_loc_long'       => 'Название места слишком длинное.',
    'mp_err_no_options'     => 'Укажите хотя бы один корректный вариант даты/времени.',
    'mp_err_too_many_options'=> 'Слишком много вариантов даты/времени.',
    'mp_err_deadline'       => 'Срок не является корректной датой.',
    'mp_err_option'         => 'Некорректный вариант даты/времени.',
    'mp_err_closed'         => 'Этот опрос закрыт.',
    'mp_err_full'           => 'Этот опрос достиг максимального числа ответов.',
    'mp_err_no_recipients'  => 'Не указаны корректные получатели.',
    'mp_err_invite_cap'     => 'Этот опрос достиг лимита в :max приглашений.',
    'mp_err_name_required'  => 'Укажите ваше имя.',
    'mp_err_email'          => 'Укажите корректный адрес электронной почты.',
    'mp_err_rate_limited'   => 'Слишком много ответов за короткое время. Повторите попытку через минуту.',
    'mp_wd_0'               => 'вс',
    'mp_wd_1'               => 'пн',
    'mp_wd_2'               => 'вт',
    'mp_wd_3'               => 'ср',
    'mp_wd_4'               => 'чт',
    'mp_wd_5'               => 'пт',
    'mp_wd_6'               => 'сб',
    'mp_mail_greeting'      => 'Здравствуйте, :name!',
    'mp_mail_new_response_subject' => 'Новый ответ в вашем опросе по датам: :title',
    'mp_mail_new_response_body'    => ':name ответил(а) в вашем опросе по датам «:title».',
    'mp_mail_view_results'  => 'Посмотреть результаты',
    'mp_mail_finalized_subject'    => 'Дата подтверждена: :title',
    'mp_mail_finalized_body'       => 'Для «:title» выбрана следующая дата:',
    'mp_mail_open_poll'     => 'Открыть опрос',
    'mp_mail_invite_subject'=> 'Приглашение в опрос по датам: :title',
    'mp_mail_invite_body'   => 'Вас пригласили проголосовать в опросе по датам «:title». Выберите подходящие вам даты:',
];
