import type { TranslationStrings } from '../types'; const admin: TranslationStrings = { 'admin.notifications.title': 'Уведомления', 'admin.notifications.hint': 'Выберите канал уведомлений. Одновременно может быть активен только один.', 'admin.notifications.none': 'Отключено', 'admin.notifications.email': 'Эл. почта (SMTP)', 'admin.notifications.webhook': 'Webhook', 'admin.notifications.save': 'Сохранить настройки уведомлений', 'admin.notifications.saved': 'Настройки уведомлений сохранены', 'admin.notifications.testWebhook': 'Отправить тестовый вебхук', 'admin.notifications.testWebhookSuccess': 'Тестовый вебхук успешно отправлен', 'admin.notifications.testWebhookFailed': 'Ошибка отправки тестового вебхука', 'admin.smtp.title': 'Почта и уведомления', 'admin.smtp.hint': 'Конфигурация SMTP для отправки уведомлений по электронной почте.', 'admin.smtp.testButton': 'Отправить тестовое письмо', 'admin.webhook.hint': 'Отправлять уведомления через внешний webhook (Discord, Slack и т.д.).', 'admin.smtp.testSuccess': 'Тестовое письмо успешно отправлено', 'admin.smtp.testFailed': 'Ошибка отправки тестового письма', 'admin.title': 'Администрирование', 'admin.subtitle': 'Управление пользователями и системные настройки', 'admin.tabs.users': 'Пользователи', 'admin.tabs.categories': 'Категории', 'admin.tabs.backup': 'Резервная копия', 'admin.tabs.audit': 'Аудит', 'admin.stats.users': 'Пользователи', 'admin.stats.trips': 'Поездки', 'admin.stats.places': 'Места', 'admin.stats.photos': 'Фото', 'admin.stats.files': 'Файлы', 'admin.table.user': 'Пользователь', 'admin.table.email': 'Эл. почта', 'admin.table.role': 'Роль', 'admin.table.created': 'Создан', 'admin.table.lastLogin': 'Последний вход', 'admin.table.actions': 'Действия', 'admin.you': '(Вы)', 'admin.editUser': 'Редактировать пользователя', 'admin.newPassword': 'Новый пароль', 'admin.newPasswordHint': 'Оставьте пустым, чтобы сохранить текущий пароль', 'admin.deleteUser': 'Удалить пользователя «{name}»? Все поездки будут безвозвратно удалены.', 'admin.deleteUserTitle': 'Удалить пользователя', 'admin.newPasswordPlaceholder': 'Введите новый пароль…', 'admin.toast.loadError': 'Не удалось загрузить данные администрирования', 'admin.toast.userUpdated': 'Пользователь обновлён', 'admin.toast.updateError': 'Ошибка обновления', 'admin.toast.userDeleted': 'Пользователь удалён', 'admin.toast.deleteError': 'Ошибка удаления', 'admin.toast.cannotDeleteSelf': 'Нельзя удалить собственный аккаунт', 'admin.toast.userCreated': 'Пользователь создан', 'admin.toast.createError': 'Ошибка создания пользователя', 'admin.toast.fieldsRequired': 'Имя пользователя, эл. почта и пароль обязательны', 'admin.createUser': 'Создать пользователя', 'admin.invite.title': 'Ссылки-приглашения', 'admin.invite.subtitle': 'Создание одноразовых ссылок для регистрации', 'admin.invite.create': 'Создать ссылку', 'admin.invite.createAndCopy': 'Создать и скопировать', 'admin.invite.empty': 'Ссылки-приглашения ещё не созданы', 'admin.invite.maxUses': 'Макс. использований', 'admin.invite.expiry': 'Действует', 'admin.invite.uses': 'использовано', 'admin.invite.expiresAt': 'истекает', 'admin.invite.createdBy': 'от', 'admin.invite.active': 'Активна', 'admin.invite.expired': 'Истекла', 'admin.invite.usedUp': 'Исчерпана', 'admin.invite.copied': 'Ссылка-приглашение скопирована', 'admin.invite.copyLink': 'Копировать ссылку', 'admin.invite.deleted': 'Ссылка-приглашение удалена', 'admin.invite.createError': 'Ошибка при создании ссылки', 'admin.invite.deleteError': 'Ошибка при удалении ссылки', 'admin.tabs.settings': 'Настройки', 'admin.allowRegistration': 'Разрешить регистрацию', 'admin.allowRegistrationHint': 'Новые пользователи могут регистрироваться самостоятельно', 'admin.authMethods': 'Authentication Methods', 'admin.passwordLogin': 'Password Login', 'admin.passwordLoginHint': 'Allow users to sign in with email and password', 'admin.passwordRegistration': 'Password Registration', 'admin.passwordRegistrationHint': 'Allow new users to register with email and password', 'admin.oidcLogin': 'SSO Login', 'admin.oidcLoginHint': 'Allow users to sign in with SSO', 'admin.oidcRegistration': 'SSO Auto-Provisioning', 'admin.oidcRegistrationHint': 'Automatically create accounts for new SSO users', 'admin.envOverrideHint': 'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.', 'admin.lockoutWarning': 'At least one login method must remain enabled', 'admin.requireMfa': 'Требовать двухфакторную аутентификацию (2FA)', 'admin.requireMfaHint': 'Пользователи без 2FA должны завершить настройку в разделе «Настройки» перед использованием приложения.', 'admin.apiKeys': 'API-ключи', 'admin.apiKeysHint': 'Необязательно. Включает расширенные данные о местах, такие как фото и погода.', 'admin.mapsKey': 'API-ключ Google Maps', 'admin.mapsKeyHint': 'Необходим для поиска мест. Получите на console.cloud.google.com', 'admin.mapsKeyHintLong': 'Без API-ключа используется OpenStreetMap для поиска мест. С ключом Google API можно загружать фото, рейтинги и часы работы. Получите ключ на console.cloud.google.com.', 'admin.recommended': 'Рекомендуется', 'admin.weatherKey': 'API-ключ OpenWeatherMap', 'admin.weatherKeyHint': 'Для данных о погоде. Бесплатно на openweathermap.org', 'admin.validateKey': 'Проверить', 'admin.keyValid': 'Подключено', 'admin.keyInvalid': 'Недействителен', 'admin.keySaved': 'API-ключи сохранены', 'admin.oidcTitle': 'Единый вход (OIDC)', 'admin.oidcSubtitle': 'Разрешить вход через внешних провайдеров, таких как Google, Apple, Authentik или Keycloak.', 'admin.oidcDisplayName': 'Отображаемое имя', 'admin.oidcIssuer': 'URL издателя', 'admin.oidcIssuerHint': 'URL издателя OpenID Connect провайдера. Напр. https://accounts.google.com', 'admin.oidcSaved': 'Конфигурация OIDC сохранена', 'admin.oidcOnlyMode': 'Отключить вход по паролю', 'admin.oidcOnlyModeHint': 'При включении разрешён только вход через SSO. Вход и регистрация по паролю будут заблокированы.', 'admin.fileTypes': 'Разрешённые типы файлов', 'admin.fileTypesHint': 'Настройте, какие типы файлов могут загружать пользователи.', 'admin.fileTypesFormat': 'Расширения через запятую (напр. jpg,png,pdf,doc). Используйте * для разрешения всех типов.', 'admin.fileTypesSaved': 'Настройки типов файлов сохранены', 'admin.placesPhotos.title': 'Фотографии мест', 'admin.placesPhotos.subtitle': 'Загрузка фотографий из Google Places API. Отключите для экономии квоты API. Фотографии Wikimedia не затронуты.', 'admin.placesAutocomplete.title': 'Автодополнение мест', 'admin.placesAutocomplete.subtitle': 'Использование Google Places API для поисковых подсказок. Отключите для экономии квоты API.', 'admin.placesDetails.title': 'Сведения о месте', 'admin.placesDetails.subtitle': 'Загрузка подробной информации о месте (часы работы, рейтинг, веб-сайт) из Google Places API. Отключите для экономии квоты API.', 'admin.bagTracking.title': 'Отслеживание багажа', 'admin.bagTracking.subtitle': 'Включить вес и привязку к багажу для вещей', 'admin.collab.chat.title': 'Чат', 'admin.collab.chat.subtitle': 'Обмен сообщениями для совместной работы', 'admin.collab.notes.title': 'Заметки', 'admin.collab.notes.subtitle': 'Общие заметки и документы', 'admin.collab.polls.title': 'Опросы', 'admin.collab.polls.subtitle': 'Групповые опросы и голосования', 'admin.collab.whatsnext.title': 'Что дальше', 'admin.collab.whatsnext.subtitle': 'Предложения активностей и следующие шаги', 'admin.tabs.config': 'Персонализация', 'admin.tabs.defaults': 'Настройки по умолчанию', 'admin.defaultSettings.title': 'Настройки пользователей по умолчанию', 'admin.defaultSettings.description': 'Задайте значения по умолчанию для всего экземпляра. Пользователи, не изменившие параметр, увидят эти значения. Их собственные изменения всегда имеют приоритет.', 'admin.defaultSettings.saved': 'Значение по умолчанию сохранено', 'admin.defaultSettings.reset': 'Сбросить до встроенного значения', 'admin.defaultSettings.resetToBuiltIn': 'сбросить', 'admin.tabs.templates': 'Шаблоны упаковки', 'admin.packingTemplates.title': 'Шаблоны упаковки', 'admin.packingTemplates.subtitle': 'Создавайте многоразовые списки вещей для поездок', 'admin.packingTemplates.create': 'Новый шаблон', 'admin.packingTemplates.namePlaceholder': 'Название шаблона (напр. Пляжный отдых)', 'admin.packingTemplates.empty': 'Шаблоны ещё не созданы', 'admin.packingTemplates.items': 'вещей', 'admin.packingTemplates.categories': 'категорий', 'admin.packingTemplates.itemName': 'Название вещи', 'admin.packingTemplates.itemCategory': 'Категория', 'admin.packingTemplates.categoryName': 'Название категории (напр. Одежда)', 'admin.packingTemplates.addCategory': 'Добавить категорию', 'admin.packingTemplates.created': 'Шаблон создан', 'admin.packingTemplates.deleted': 'Шаблон удалён', 'admin.packingTemplates.loadError': 'Ошибка загрузки шаблонов', 'admin.packingTemplates.createError': 'Ошибка создания шаблона', 'admin.packingTemplates.deleteError': 'Ошибка удаления шаблона', 'admin.packingTemplates.saveError': 'Ошибка сохранения', 'admin.tabs.addons': 'Дополнения', 'admin.addons.title': 'Дополнения', 'admin.addons.subtitle': 'Включайте или отключайте функции для настройки TREK под себя.', 'admin.addons.catalog.memories.name': 'Фото (Immich)', 'admin.addons.catalog.memories.description': 'Делитесь фотографиями из поездок через Immich', 'admin.addons.catalog.mcp.name': 'MCP', 'admin.addons.catalog.mcp.description': 'Протокол контекста модели для интеграции с ИИ-ассистентами', 'admin.addons.catalog.packing.name': 'Списки', 'admin.addons.catalog.packing.description': 'Списки вещей и задачи для ваших поездок', 'admin.addons.catalog.budget.name': 'Бюджет', 'admin.addons.catalog.budget.description': 'Отслеживайте расходы и планируйте бюджет поездки', 'admin.addons.catalog.documents.name': 'Документы', 'admin.addons.catalog.documents.description': 'Храните и управляйте документами для путешествий', 'admin.addons.catalog.vacay.name': 'Vacay', 'admin.addons.catalog.vacay.description': 'Личный планировщик отпусков с календарём', 'admin.addons.catalog.atlas.name': 'Atlas', 'admin.addons.catalog.atlas.description': 'Карта мира с посещёнными странами и статистикой путешествий', 'admin.addons.catalog.collab.name': 'Collab', 'admin.addons.catalog.collab.description': 'Заметки в реальном времени, опросы и чат для планирования поездок', 'admin.addons.subtitleBefore': 'Включайте или отключайте функции для настройки ', 'admin.addons.subtitleAfter': ' под себя.', 'admin.addons.enabled': 'Включено', 'admin.addons.disabled': 'Отключено', 'admin.addons.type.trip': 'Поездка', 'admin.addons.type.global': 'Глобально', 'admin.addons.type.integration': 'Интеграция', 'admin.addons.tripHint': 'Доступно как вкладка внутри каждой поездки', 'admin.addons.globalHint': 'Доступно как отдельный раздел в основной навигации', 'admin.addons.integrationHint': 'Фоновые сервисы и API-интеграции без отдельной страницы', 'admin.addons.toast.updated': 'Дополнение обновлено', 'admin.addons.toast.error': 'Не удалось обновить дополнение', 'admin.addons.noAddons': 'Нет доступных дополнений', 'admin.weather.title': 'Данные о погоде', 'admin.weather.badge': 'С 24 марта 2026', 'admin.weather.description': 'TREK использует Open-Meteo как источник данных о погоде. Open-Meteo — бесплатный сервис с открытым кодом, API-ключ не требуется.', 'admin.weather.forecast': 'Прогноз на 16 дней', 'admin.weather.forecastDesc': 'Ранее 5 дней (OpenWeatherMap)', 'admin.weather.climate': 'Исторические климатические данные', 'admin.weather.climateDesc': 'Средние значения за последние 85 лет для дней за пределами 16-дневного прогноза', 'admin.weather.requests': '10 000 запросов / день', 'admin.weather.requestsDesc': 'Бесплатно, API-ключ не требуется', 'admin.weather.locationHint': 'Погода основана на первом месте с координатами в каждом дне. Если ни одно место не назначено на день, в качестве ориентира используется любое место из списка.', 'admin.tabs.mcpTokens': 'MCP-доступ', 'admin.mcpTokens.title': 'MCP-доступ', 'admin.mcpTokens.subtitle': 'Управление OAuth-сессиями и API-токенами всех пользователей', 'admin.mcpTokens.sectionTitle': 'API-токены', 'admin.mcpTokens.owner': 'Владелец', 'admin.mcpTokens.tokenName': 'Название токена', 'admin.mcpTokens.created': 'Создан', 'admin.mcpTokens.lastUsed': 'Последнее использование', 'admin.mcpTokens.never': 'Никогда', 'admin.mcpTokens.empty': 'MCP-токены ещё не созданы', 'admin.mcpTokens.deleteTitle': 'Удалить токен', 'admin.mcpTokens.deleteMessage': 'Токен будет немедленно отозван. Пользователь потеряет доступ к MCP через этот токен.', 'admin.mcpTokens.deleteSuccess': 'Токен удалён', 'admin.mcpTokens.deleteError': 'Не удалось удалить токен', 'admin.mcpTokens.loadError': 'Не удалось загрузить токены', 'admin.oauthSessions.sectionTitle': 'OAuth-сессии', 'admin.oauthSessions.clientName': 'Клиент', 'admin.oauthSessions.owner': 'Владелец', 'admin.oauthSessions.scopes': 'Права доступа', 'admin.oauthSessions.created': 'Создано', 'admin.oauthSessions.empty': 'Нет активных OAuth-сессий', 'admin.oauthSessions.revokeTitle': 'Отозвать сессию', 'admin.oauthSessions.revokeMessage': 'Эта OAuth-сессия будет немедленно отозвана. Клиент потеряет доступ к MCP.', 'admin.oauthSessions.revokeSuccess': 'Сессия отозвана', 'admin.oauthSessions.revokeError': 'Не удалось отозвать сессию', 'admin.oauthSessions.loadError': 'Не удалось загрузить OAuth-сессии', 'admin.tabs.github': 'GitHub', 'admin.audit.subtitle': 'События, связанные с безопасностью и администрированием (резервные копии, пользователи, MFA, настройки).', 'admin.audit.empty': 'Записей аудита пока нет.', 'admin.audit.refresh': 'Обновить', 'admin.audit.loadMore': 'Загрузить ещё', 'admin.audit.showing': 'Загружено: {count} · всего {total}', 'admin.audit.col.time': 'Время', 'admin.audit.col.user': 'Пользователь', 'admin.audit.col.action': 'Действие', 'admin.audit.col.resource': 'Объект', 'admin.audit.col.ip': 'IP', 'admin.audit.col.details': 'Подробности', 'admin.github.title': 'История релизов', 'admin.github.subtitle': 'Последние обновления из {repo}', 'admin.github.latest': 'Последний', 'admin.github.prerelease': 'Пре-релиз', 'admin.github.showDetails': 'Показать подробности', 'admin.github.hideDetails': 'Скрыть подробности', 'admin.github.loadMore': 'Загрузить ещё', 'admin.github.loading': 'Загрузка...', 'admin.github.support': 'Помогает продолжать разработку TREK', 'admin.github.error': 'Не удалось загрузить релизы', 'admin.github.by': 'от', 'admin.update.available': 'Доступно обновление', 'admin.update.text': 'Доступна версия TREK {version}. У вас установлена {current}.', 'admin.update.button': 'Посмотреть на GitHub', 'admin.update.install': 'Установить обновление', 'admin.update.confirmTitle': 'Установить обновление?', 'admin.update.confirmText': 'TREK будет обновлён с {current} до {version}. Сервер перезапустится автоматически.', 'admin.update.dataInfo': 'Все ваши данные (поездки, пользователи, API-ключи, загрузки, Vacay, Atlas, бюджеты) будут сохранены.', 'admin.update.warning': 'Приложение будет кратковременно недоступно во время перезапуска.', 'admin.update.confirm': 'Обновить сейчас', 'admin.update.installing': 'Обновление…', 'admin.update.success': 'Обновление установлено! Сервер перезапускается…', 'admin.update.failed': 'Ошибка обновления', 'admin.update.backupHint': 'Рекомендуем создать резервную копию перед обновлением.', 'admin.update.backupLink': 'Перейти к резервным копиям', 'admin.update.howTo': 'Как обновить', 'admin.update.dockerText': 'Ваш экземпляр TREK работает в Docker. Для обновления до {version} выполните следующие команды на сервере:', 'admin.update.reloadHint': 'Перезагрузите страницу через несколько секунд.', 'admin.tabs.permissions': 'Разрешения', 'admin.notifications.emailPanel.title': 'Email (SMTP)', 'admin.notifications.webhookPanel.title': 'Webhook', 'admin.notifications.inappPanel.title': 'In-App', 'admin.notifications.inappPanel.hint': 'Уведомления в приложении всегда активны и не могут быть отключены глобально.', 'admin.notifications.adminWebhookPanel.title': 'Вебхук администратора', 'admin.notifications.adminWebhookPanel.hint': 'Этот вебхук используется исключительно для уведомлений администратора (например, оповещения о версиях). Он независим от пользовательских вебхуков и отправляется автоматически при наличии URL.', 'admin.notifications.adminWebhookPanel.saved': 'URL вебхука администратора сохранён', 'admin.notifications.adminWebhookPanel.testSuccess': 'Тестовый вебхук успешно отправлен', 'admin.notifications.adminWebhookPanel.testFailed': 'Ошибка тестового вебхука', 'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Вебхук администратора отправляется автоматически при наличии URL', 'admin.notifications.ntfy': 'Ntfy', 'admin.ntfy.hint': 'Позволяет пользователям настраивать собственные темы ntfy для push-уведомлений. Установите сервер по умолчанию ниже, чтобы предварительно заполнить настройки пользователей.', 'admin.notifications.testNtfy': 'Отправить тестовое Ntfy', 'admin.notifications.testNtfySuccess': 'Тестовое Ntfy успешно отправлено', 'admin.notifications.testNtfyFailed': 'Ошибка отправки тестового Ntfy', 'admin.notifications.adminNtfyPanel.title': 'Ntfy администратора', 'admin.notifications.adminNtfyPanel.hint': 'Эта тема Ntfy используется исключительно для уведомлений администратора (например, оповещения о версиях). Она независима от тем пользователей и всегда отправляется при наличии настройки.', 'admin.notifications.adminNtfyPanel.serverLabel': 'URL сервера Ntfy', 'admin.notifications.adminNtfyPanel.serverHint': 'Также используется как сервер по умолчанию для ntfy-уведомлений пользователей. Оставьте пустым, чтобы использовать ntfy.sh. Пользователи могут изменить это в своих настройках.', 'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh', 'admin.notifications.adminNtfyPanel.topicLabel': 'Тема администратора', 'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts', 'admin.notifications.adminNtfyPanel.tokenLabel': 'Токен доступа (необязательно)', 'admin.notifications.adminNtfyPanel.tokenCleared': 'Токен доступа администратора очищен', 'admin.notifications.adminNtfyPanel.saved': 'Настройки Ntfy администратора сохранены', 'admin.notifications.adminNtfyPanel.test': 'Отправить тестовое Ntfy', 'admin.notifications.adminNtfyPanel.testSuccess': 'Тестовое Ntfy успешно отправлено', 'admin.notifications.adminNtfyPanel.testFailed': 'Ошибка отправки тестового Ntfy', 'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Ntfy администратора всегда отправляется при наличии настроенной темы', 'admin.notifications.adminNotificationsHint': 'Настройте, какие каналы доставляют уведомления администратора (например, оповещения о версиях). Вебхук отправляется автоматически, если задан URL вебхука администратора.', 'admin.notifications.tripReminders.title': 'Напоминания о поездках', 'admin.notifications.tripReminders.hint': 'Отправляет напоминание перед началом поездки (необходимо указать дни напоминания в параметрах поездки).', 'admin.notifications.tripReminders.enabled': 'Напоминания о поездках включены', 'admin.notifications.tripReminders.disabled': 'Напоминания о поездках отключены', 'admin.tabs.notifications': 'Уведомления', 'admin.addons.catalog.journey.name': 'Путешествие', 'admin.addons.catalog.journey.description': 'Отслеживание поездок и дневник путешествий с отметками, фото и ежедневными историями', 'admin.passkey.title': 'Вход по passkey', 'admin.passkey.cardHint': 'Разрешите пользователям входить с помощью passkeys (WebAuthn). По умолчанию выключено.', 'admin.passkey.login': 'Включить вход по passkey', 'admin.passkey.loginHint': 'Показывать вариант «Войти с помощью passkey» и разрешить пользователям регистрировать passkeys в своих настройках.', 'admin.passkey.notConfigured': 'Для этого развёртывания пока не определён домен WebAuthn. Задайте APP_URL или Relying Party ID ниже — до этого passkeys остаются скрытыми.', 'admin.passkey.rpId': 'Relying Party ID (домен)', 'admin.passkey.rpIdHint': 'Голый домен, к которому привязаны passkeys, напр. trek.example.org. Оставьте пустым, чтобы определить его из APP_URL. Последующее изменение делает существующие passkeys недействительными.', 'admin.passkey.origins': 'Разрешённые источники', 'admin.passkey.originsHint': 'Полные источники через запятую, напр. https://trek.example.org. Оставьте пустым, чтобы использовать APP_URL.', 'admin.passkey.reset': 'Сбросить passkeys', 'admin.passkey.resetHint': 'Удалить все passkeys этого пользователя (напр. при потере устройства). Он по-прежнему сможет войти по паролю.', 'admin.passkey.resetConfirm': 'Удалить все passkeys пользователя {name}?', 'admin.passkey.resetDone': 'Удалено passkeys: {count}', 'admin.defaultSettings.mapProvider': 'Картографический движок', 'admin.defaultSettings.mapProviderHint': 'Карта по умолчанию для всех на этом сервере. Каждый пользователь по-прежнему может изменить её в своих настройках.', 'admin.defaultSettings.providerLeaflet': 'Стандартная (бесплатно)', 'admin.defaultSettings.providerMapbox': 'Mapbox (3D)', 'admin.defaultSettings.mapboxToken': 'Общий токен Mapbox', 'admin.defaultSettings.mapboxTokenHint': 'Используется для каждого пользователя, который не ввёл собственный токен — так весь сервер получает Mapbox без необходимости делиться ключом по отдельности. Хранится в зашифрованном виде.', 'admin.defaultSettings.mapboxStyle': 'Стиль карты', 'admin.defaultSettings.mapboxStylePlaceholder': 'Выберите стиль…', 'admin.defaultSettings.mapbox3d': '3D-здания и рельеф', 'admin.defaultSettings.mapboxQuality': 'Режим высокого качества', }; export default admin;