mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-20 22:16:26 +00:00
45ef63cbc1
Four cards per row on desktop with tighter card padding, and a full-width warning banner above the browse grid: installs are at the admin's own risk, a prior quick review does not rule out harmful content, inspect a plugin yourself when in doubt — TREK accepts no responsibility. All 22 locales.
434 lines
37 KiB
TypeScript
434 lines
37 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.tabs.plugins': 'Плагины',
|
||
'admin.plugins.rescan': 'Пересканировать',
|
||
'admin.plugins.rescanned': 'Папка плагинов пересканирована',
|
||
'admin.plugins.browse': 'Обзор плагинов',
|
||
'admin.plugins.installed': 'Установлен',
|
||
'admin.plugins.install': 'Установить',
|
||
'admin.plugins.registryEmpty': 'В реестре пока нет доступных плагинов.',
|
||
'admin.plugins.actionError': 'Не удалось выполнить действие',
|
||
'admin.plugins.activate': 'Активировать',
|
||
'admin.plugins.activated': 'Плагин активирован',
|
||
'admin.plugins.deactivate': 'Деактивировать',
|
||
'admin.plugins.deactivated': 'Плагин деактивирован',
|
||
'admin.plugins.viewErrors': 'Показать журнал ошибок',
|
||
'admin.plugins.errorLog': 'Журнал ошибок',
|
||
'admin.plugins.noErrors': 'Ошибок не зафиксировано.',
|
||
'admin.plugins.uninstalled': 'Плагин удалён',
|
||
'admin.plugins.uninstallTitle': 'Удалить плагин?',
|
||
'admin.plugins.uninstallBody': 'Плагин будет остановлен, его код удалён, а все его данные стёрты. Это действие нельзя отменить.',
|
||
'admin.plugins.trustNote': 'Плагины работают изолированно и получают только одобренные вами разрешения. Устанавливайте код только от авторов, которым доверяете.',
|
||
'admin.plugins.status.starting': 'Запуск…',
|
||
'admin.plugins.type.widget': 'Виджет',
|
||
'admin.plugins.type.page': 'Страница',
|
||
'admin.plugins.type.integration': 'Интеграция',
|
||
'admin.plugins.reviewed': 'Проверен',
|
||
'admin.plugins.unreviewed': 'Не проверен',
|
||
'admin.plugins.updated': 'Плагин обновлён',
|
||
'admin.plugins.updateTo': 'Обновить → v{version}',
|
||
'admin.plugins.enabledToggle': 'Включить плагин',
|
||
'plugins.notFound': 'Плагин не найден',
|
||
'admin.plugins.title': 'Плагины',
|
||
'admin.plugins.subtitle': 'Устанавливайте сторонние плагины и управляйте ими на вашем экземпляре.',
|
||
'admin.plugins.disabledTitle': 'Плагины отключены',
|
||
'admin.plugins.disabledBody': 'Среда выполнения плагинов выключена (TREK_PLUGINS_ENABLED). Плагины не смогут работать, пока администратор не включит её в конфигурации сервера.',
|
||
'admin.plugins.empty': 'Плагины пока не установлены.',
|
||
'admin.plugins.loadError': 'Не удалось загрузить плагины.',
|
||
'admin.plugins.scaffoldNote': 'Установка и активация плагинов появятся в одном из следующих обновлений. Пока эта панель только показывает установленные плагины.',
|
||
'admin.plugins.status.active': 'Активен',
|
||
'admin.plugins.status.inactive': 'Неактивен',
|
||
'admin.plugins.status.disabled': 'Отключён',
|
||
'admin.plugins.status.error': 'Ошибка',
|
||
'admin.plugins.status.incompatible': 'Несовместим',
|
||
'admin.plugins.details': 'Подробности',
|
||
'admin.plugins.detailError': 'Не удалось загрузить сведения о плагине.',
|
||
'admin.plugins.permissionsTitle': 'Разрешения',
|
||
'admin.plugins.noPermissions': 'Этот плагин не запрашивает особых разрешений.',
|
||
'admin.plugins.egressNote': 'Может подключаться к: {hosts}',
|
||
'admin.plugins.setupTitle': 'Настройка',
|
||
'admin.plugins.noSetup': 'Работает сразу — настраивать ничего не нужно.',
|
||
'admin.plugins.scope.instance': 'Для всего экземпляра',
|
||
'admin.plugins.scope.user': 'Для каждого пользователя',
|
||
'admin.plugins.fieldRequired': 'Обязательно',
|
||
'admin.plugins.sourceRepo': 'Репозиторий с исходным кодом',
|
||
'admin.plugins.homepage': 'Домашняя страница',
|
||
'admin.plugins.requiresTrek': 'Требуется TREK {version}+',
|
||
'admin.plugins.reviewedOn': 'Проверен {date}',
|
||
'admin.plugins.perm.db:own': 'Хранить собственные данные в изолированной базе данных',
|
||
'admin.plugins.perm.db:read:trips': 'Читать поездки, доступные текущему пользователю',
|
||
'admin.plugins.perm.db:read:users': 'Читать основную информацию профиля (имя, аватар — но не учётные данные)',
|
||
'admin.plugins.perm.ws:broadcast:trip': 'Отправлять обновления в реальном времени участникам поездки',
|
||
'admin.plugins.perm.ws:broadcast:user': 'Отправлять обновления в реальном времени отдельным пользователям',
|
||
'admin.plugins.perm.hook:photo-provider': 'Предоставлять фотографии для «Воспоминаний»',
|
||
'admin.plugins.perm.hook:calendar-source': 'Предоставлять события для календаря',
|
||
'admin.plugins.perm.http:outbound': 'Выполнять исходящие запросы к заявленным хостам',
|
||
'admin.plugins.riskTitle': 'Установка на свой страх и риск',
|
||
'admin.plugins.riskBody': 'Плагины — это сторонний код. Даже после предварительной беглой проверки плагин всё равно может содержать вредоносное содержимое — при сомнениях проверьте плагин самостоятельно перед установкой. TREK не несёт никакой ответственности.',
|
||
'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.addons.catalog.collections.name': 'Коллекции',
|
||
'admin.addons.catalog.collections.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.providerMapLibre': 'MapLibre (OpenFreeMap)',
|
||
'admin.defaultSettings.mapboxToken': 'Общий токен Mapbox',
|
||
'admin.defaultSettings.mapboxTokenHint':
|
||
'Используется для каждого пользователя, который не ввёл собственный токен — так весь сервер получает Mapbox без необходимости делиться ключом по отдельности. Хранится в зашифрованном виде.',
|
||
'admin.defaultSettings.mapboxStyle': 'Стиль карты',
|
||
'admin.defaultSettings.mapboxStylePlaceholder': 'Выберите стиль…',
|
||
'admin.defaultSettings.mapbox3d': '3D-здания и рельеф',
|
||
'admin.defaultSettings.mapboxQuality': 'Режим высокого качества',
|
||
'admin.group.users': 'Users',
|
||
'admin.group.config': 'Configuration',
|
||
'admin.group.integration': 'Integrations',
|
||
'admin.group.maintenance': 'Maintenance',
|
||
'admin.invite.tripLabel': 'Добавить в поездку (необязательно)',
|
||
'admin.invite.tripNone': 'Без поездки',
|
||
'admin.invite.tripHint': 'Новый пользователь автоматически добавляется в эту поездку при регистрации по ссылке.',
|
||
'admin.invite.boundTo': 'добавляет в {trip}',
|
||
};
|
||
export default admin;
|