The "How to Update" modal always rendered Docker commands and claimed the instance runs in Docker, even on bare-metal / LXC installs like Proxmox Community Scripts. It now branches on the is_docker flag the backend already returns: non-Docker installs get a generic "re-run your install method" note plus a link to the update guide. Docker stays the default when the flag is absent, so existing installs are unaffected.
357 lines
30 KiB
TypeScript
357 lines
30 KiB
TypeScript
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.nonDockerText':
|
||
'Этот экземпляр TREK работает не в Docker. Чтобы обновиться до {version}, повторно запустите способ установки или обновления, который вы использовали, — например, в Proxmox Community Scripts выполните обновление из консоли LXC:',
|
||
'admin.update.wikiLink': 'Открыть руководство по обновлению',
|
||
'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;
|