mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-14 00:01:03 +00:00
94ac7673a5
The settings pages had grown into a mix of styles: folds, dialogs behind rows, full-width rows next to boxed ones, pills for every figure and buttons in four sizes. Every page now uses the same kit. - Cards keep their tinted head band; every part of a card is a rounded block with its own small head (SettingsBlock), and rows sit in rounded boxes. - Nothing folds and nothing hides behind a dialog: the MCP config, OAuth scopes, mail how-to, AI privacy note and addon sub-options are all shown. - Each page is split into two columns balanced by length (SettingsColumns). - Long explanations moved into an info mark next to the label (HintMark). - One button size everywhere (text-control); tab names are one word. - Admin: the old Settings tab is split into Security and Services (?tab=settings still opens Security, and the phone keeps its single Settings section for both); the Integration group is gone, live flights and mail import sit next to the addons they configure. - Addons: one card per type with rows, no search, filter or fold. - Quota, TREK API facts, mail import status and Google's daily limit are compact lines and strips instead of tiles and pills. - Language is a select; routing has its own card under the defaults; storage saves from the foot of its categories card. - Unused keys, FoldSummary and the page-width wrapper are removed.
718 lines
63 KiB
TypeScript
718 lines
63 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const settings: TranslationStrings = {
|
||
'settings.title': 'Налаштування',
|
||
'settings.subtitle': 'Налаштуйте свої персональні параметри',
|
||
'settings.tabs.display': 'Відображення',
|
||
'settings.tabs.map': 'Карта',
|
||
'settings.tabs.notifications': 'Сповіщення',
|
||
'settings.tabs.integrations': 'Інтеграції',
|
||
'settings.plugins.oauth.connected': 'Підключено',
|
||
'settings.plugins.oauth.notConnected': 'Не підключено',
|
||
'settings.plugins.oauth.connect': 'Підключити',
|
||
'settings.plugins.oauth.disconnect': 'Відключити',
|
||
'settings.tabs.plugins': 'Плагіни',
|
||
'settings.plugins.title': 'Налаштування плагінів',
|
||
'settings.plugins.subtitle':
|
||
'Ваші особисті налаштування для плагінів, які ви використовуєте (ключі API, уподобання).',
|
||
'settings.plugins.empty': 'Немає активних плагінів.',
|
||
'settings.plugins.saved': 'Налаштування збережено',
|
||
'settings.plugins.requiredMissing': '«{field}» обов’язкове',
|
||
'settings.tabs.account': 'Акаунт',
|
||
'settings.tabs.offline': 'Офлайн',
|
||
'settings.tabs.device': 'Застосунок',
|
||
'settings.groups.account': 'Ваш обліковий запис',
|
||
'settings.groups.device': 'Цей пристрій',
|
||
'settings.tabs.about': 'Про застосунок',
|
||
'settings.map': 'Карта',
|
||
'settings.mapTemplate': 'Шаблон карти',
|
||
'settings.mapTemplatePlaceholder.select': 'Виберіть шаблон...',
|
||
'settings.mapDefaultHint': 'Залиште порожнім для OpenStreetMap (за замовчуванням)',
|
||
'settings.routingBase': 'Власний сервер маршрутів',
|
||
'settings.routingBaseHint':
|
||
'Власний примірник OSRM. Порожньо — використовуються публічні сервери з обмеженням близько одного запиту на секунду: на день вистачає, для автоподорожі мало. Діє після перезапуску сервера.',
|
||
'settings.valhallaBase': 'Власний сервер Valhalla',
|
||
'settings.valhallaBaseHint':
|
||
'Власна Valhalla, до якої звертаються, якщо сервіс маршрутизації вище встановлено на неї або на «Автоматично». Якщо налаштовано лише власний сервер маршрутизації і сервіс не вибрано, жодна Valhalla не опитується. Після введення URL перезапустіть сервер і оновіть сторінку.',
|
||
'settings.valhallaProvider': 'Сервіс маршрутизації',
|
||
'settings.valhallaProviderHint':
|
||
'Із сервісами TREK або власною Valhalla всі маршрути розраховує Valhalla: дні та автоподорожі пішки, велосипедом і автомобілем, маршрути без платних доріг, автомагістралей і поромів, а також маршрути, висоти й стежки походів. Якщо вона не може відповісти, цей день розраховує OSRM. Сервіси TREK опитуються через цей сервер. Із публічною Valhalla FOSSGIS маршрути розраховує OSRM, а Valhalla відповідає лише на те, чого не вміє OSRM. «Автоматично» опитує сервіси TREK, якщо не задано власну Valhalla або лише власний сервер маршрутизації.',
|
||
'settings.valhallaProviderOption.auto': 'Автоматично',
|
||
'settings.valhallaProviderOption.trek': 'Сервіси TREK',
|
||
'settings.valhallaProviderOption.fossgis': 'Публічна Valhalla (FOSSGIS)',
|
||
'settings.valhallaProviderOption.custom': 'Власний екземпляр Valhalla',
|
||
'settings.mapHint': 'URL-шаблон для тайлів карти',
|
||
'settings.mapProvider': 'Провайдер карти',
|
||
'settings.mapProviderHint': 'Застосовується до Trip Planner та Journey. Atlas завжди використовує Leaflet.',
|
||
'settings.mapLeafletSubtitle': 'Класичні 2D, будь-які растрові тайли',
|
||
'settings.mapMapboxSubtitle': 'Векторні тайли, 3D-будинки та рельєф',
|
||
'settings.mapMapLibreSubtitle': 'Векторні тайли OpenFreeMap, без токена',
|
||
'settings.mapExperimental': 'Експериментально',
|
||
'settings.mapMapboxToken': 'Токен доступу Mapbox',
|
||
'settings.mapMapboxTokenHint': 'Публічний токен (pk.*) з',
|
||
'settings.mapMapboxTokenLink': 'mapbox.com → Токени доступу',
|
||
'settings.mapCartoKey': 'Ключ API CARTO',
|
||
'settings.mapCartoKeyHint':
|
||
'Без ключа базові карти CARTO показують водяний знак. Безкоштовно та без облікового запису, на',
|
||
'settings.mapCartoKeyLink': 'ключ API базових карт carto.com',
|
||
'settings.mapCartoKeyMissing':
|
||
'Цей шаблон є базовою картою CARTO. Без ключа CARTO наносить "API KEY REQUIRED" на кожен тайл. Доки ключ не вказано, TREK показує базову карту за замовчуванням.',
|
||
'settings.mapStyle': 'Стиль карти',
|
||
'settings.mapStylePlaceholder': 'Виберіть стиль Mapbox',
|
||
'settings.mapStyleHint': 'Preset або власний URL mapbox://styles/USER/ID',
|
||
'settings.mapOpenFreeMapStylePlaceholder': 'Виберіть стиль OpenFreeMap',
|
||
'settings.mapOpenFreeMapStyleHint': 'Preset або URL стилю OpenFreeMap. Стилі OpenFreeMap працюють без токена.',
|
||
'settings.map3dBuildings': '3D-будинки та рельєф',
|
||
'settings.map3dHint': 'Нахил + справжні 3D-будинки — працює з усіма стилями, включаючи супутник.',
|
||
'settings.mapHighQuality': 'Режим високої якості',
|
||
'settings.mapHighQualityHint':
|
||
'Згладжування + проекція глобуса для більш чітких країв та реалістичного вигляду світу.',
|
||
'settings.mapHighQualityWarning': 'Може вплинути на продуктивність на слабких пристроях.',
|
||
'settings.mapHidePois': 'Сховати цікаві місця',
|
||
'settings.mapHidePoisHint':
|
||
'Ховає магазини, ресторани й пам’ятки, які Mapbox позначає сам, щоб виділялися лише твої місця. Лише для стилів Standard.',
|
||
'settings.mapTipLabel': 'Порада:',
|
||
'settings.mapTip':
|
||
'Затисніть праву кнопку миші та перетягніть, щоб повернути/нахилити карту. Клік середньою кнопкою — додати місце (права кнопка зарезервована для обертання).',
|
||
'settings.saveMap': 'Зберегти карту',
|
||
'settings.apiKeys': 'API-ключі',
|
||
'settings.mapsKey': 'API-ключ Google Maps',
|
||
'settings.mapsKeyHint': 'Для пошуку місць. Потрібен Places API (New). Отримайте на console.cloud.google.com',
|
||
'settings.weatherKey': 'API-ключ OpenWeatherMap',
|
||
'settings.weatherKeyHint': 'Для даних про погоду. Безкоштовно на openweathermap.org/api',
|
||
'settings.keyPlaceholder': 'Введіть ключ...',
|
||
'settings.configured': 'Налаштовано',
|
||
'settings.notSetUp': 'Не налаштовано',
|
||
'settings.mcp.appsConnected': '{count} застосунку підключено',
|
||
'settings.mcp.appsConnected.one': '{count} застосунок підключено',
|
||
'settings.mcp.appsConnected.few': '{count} застосунки підключено',
|
||
'settings.mcp.appsConnected.many': '{count} застосунків підключено',
|
||
'settings.saveKeys': 'Зберегти ключі',
|
||
'settings.display': 'Відображення',
|
||
'settings.colorMode': 'Кольорова схема',
|
||
'settings.light': 'Світла',
|
||
'settings.dark': 'Темна',
|
||
'settings.auto': 'Авто',
|
||
'settings.language': 'Мова',
|
||
'settings.temperature': 'Одиниця температури',
|
||
'settings.distance': 'Одиниця відстані',
|
||
'settings.timeFormat': 'Формат часу',
|
||
'settings.weekStart': 'Тиждень починається з',
|
||
'settings.weekStartHint': 'Перший день тижня в усіх виборах дати. Vacay має власне налаштування.',
|
||
'settings.dateFormat': 'Формат дати',
|
||
'settings.dateFormatHint':
|
||
'Як записуються дати в усіх полях дати та списках. Дати з назвою місяця зберігають написання вашої мови.',
|
||
'settings.dateFormatAuto': 'Автоматично',
|
||
'settings.preferredNavApp': 'Відкривати місця в',
|
||
'settings.preferredNavAppAsk': 'Питати щоразу',
|
||
'settings.preferredNavAppHint':
|
||
'Якщо застосунок вибрано, кнопка навігації одразу відкриває його замість списку всіх картографічних застосунків.',
|
||
'settings.blurBookingCodes': 'Приховати коди бронювання',
|
||
'settings.aiAlwaysRetry': 'Завжди повторювати імпорт бронювань через AI',
|
||
'settings.aiAlwaysRetryHint':
|
||
'Якщо стандартний парсер не може прочитати файл, автоматично повторити спробу через AI.',
|
||
'settings.optimizeFromAccommodation': 'Оптимізувати маршрут від житла',
|
||
'settings.optimizeFromAccommodationHint':
|
||
'Під час оптимізації дня починайте маршрут від готелю, у якому ви прокидаєтеся, і завершуйте його тим, у який ви заселяєтеся ввечері.',
|
||
'settings.notifications': 'Сповіщення',
|
||
'settings.notifyTripInvite': 'Запрошення до поїздки',
|
||
'settings.notifyBookingChange': 'Зміни бронювань',
|
||
'settings.notifyFlightDeparted': 'Вильоти',
|
||
'settings.notifyFlightDelayed': 'Затримки рейсів',
|
||
'settings.notifyFlightLanded': 'Посадки',
|
||
'settings.notifyTripReminder': 'Нагадування про поїздку',
|
||
'settings.notifyMailBookingAdded': 'Бронювання, додані з листів',
|
||
'settings.notifyMailBookingPending': 'Переслані бронювання для перевірки',
|
||
'settings.notifyMailIngestPaused': 'Імпорт листів призупинено',
|
||
'settings.notifyTodoDue': 'Завдання до терміну',
|
||
'settings.notifyVacayInvite': "Запрошення об'єднання Vacay",
|
||
'settings.notifyVacayShare': 'Спільний доступ до календарів Vacay',
|
||
'settings.notifyCollectionInvite': 'Запрошення до колекцій',
|
||
'settings.notifySynologySessionCleared': 'Сеанс Synology скинуто',
|
||
'settings.notifyPluginNotification': 'Сповіщення плагінів',
|
||
'settings.notifyPhotosShared': 'Спільні фото (Immich)',
|
||
'settings.notifyCollabMessage': 'Повідомлення чату (Collab)',
|
||
'settings.notifyPackingTagged': 'Список речей: призначення',
|
||
'settings.notifyWandererSourceHint': 'wanderer: підказки щодо ваших маршрутів',
|
||
'settings.notifyWebhook': 'Webhook-сповіщення',
|
||
'settings.notificationsDisabled':
|
||
'Сповіщення не налаштовані. Попросіть адміністратора ввімкнути сповіщення електронною поштою або webhook.',
|
||
'settings.notificationsActive': 'Активний канал',
|
||
'settings.notificationsManagedByAdmin': 'Події сповіщень налаштовуються адміністратором.',
|
||
'settings.on': 'Увімк.',
|
||
'settings.off': 'Вимк.',
|
||
'settings.mcp.title': 'Налаштування MCP',
|
||
'settings.mcp.endpoint': 'MCP-ендпоінт',
|
||
'settings.mcp.clientConfig': 'Конфігурація клієнта',
|
||
'settings.mcp.clientConfigHint':
|
||
'Замініть <your_token> на API-токен зі списку нижче. Шлях до npx може потребувати налаштування для вашої системи (наприклад, C:\\PROGRA~1\\nodejs\\npx.cmd у Windows).',
|
||
'settings.mcp.clientConfigHintOAuth':
|
||
'Замініть <your_client_id> і <your_client_secret> на облікові дані з вищезазначеного клієнта OAuth 2.1. При першому підключенні mcp-remote відкриє браузер для завершення авторизації. Шлях до npx може потребувати налаштування для вашої системи (наприклад, C:\\PROGRA~1\\nodejs\\npx.cmd у Windows).',
|
||
'settings.mcp.copy': 'Копіювати',
|
||
'settings.mcp.copied': 'Скопійовано!',
|
||
'settings.mcp.apiTokens': 'API-токени',
|
||
'settings.mcp.createToken': 'Створити токен',
|
||
'settings.mcp.noTokens': 'Токенів поки немає. Створіть один для підключення MCP-клієнтів.',
|
||
'settings.mcp.tokenCreatedAt': 'Створено',
|
||
'settings.mcp.tokenUsedAt': 'Використано',
|
||
'settings.mcp.deleteTokenTitle': 'Видалити токен',
|
||
'settings.mcp.deleteTokenMessage':
|
||
'Цей токен перестане працювати одразу. Будь-який MCP-клієнт, що його використовує, втратить доступ.',
|
||
'settings.mcp.modal.createTitle': 'Створити API-токен',
|
||
'settings.mcp.modal.tokenName': 'Назва токена',
|
||
'settings.mcp.modal.tokenNamePlaceholder': 'наприклад Claude Desktop, Робочий ноутбук',
|
||
'settings.mcp.modal.creating': 'Створення…',
|
||
'settings.mcp.modal.create': 'Створити токен',
|
||
'settings.mcp.modal.createdTitle': 'Токен створено',
|
||
'settings.mcp.modal.createdWarning':
|
||
'Цей токен буде показано лише один раз. Скопіюйте і збережіть його зараз: відновити його не можна.',
|
||
'settings.mcp.modal.done': 'Готово',
|
||
'settings.mcp.toast.created': 'Токен створено',
|
||
'settings.mcp.toast.createError': 'Не вдалося створити токен',
|
||
'settings.mcp.toast.deleted': 'Токен видалено',
|
||
'settings.mcp.toast.deleteError': 'Не вдалося видалити токен',
|
||
'settings.mcp.apiTokensDeprecated':
|
||
'API-токени застаріли і будуть видалені в наступній версії. Будь ласка, використовуйте клієнти OAuth 2.1.',
|
||
'settings.oauth.clients': 'Клієнти OAuth 2.1',
|
||
'settings.oauth.clientsHint':
|
||
'Зареєструйте клієнтів OAuth 2.1, щоб сторонні MCP-застосунки (Claude Web, Cursor тощо) могли підключатися без статичних токенів.',
|
||
'settings.oauth.createClient': 'Новий клієнт',
|
||
'settings.oauth.noClients': 'Немає зареєстрованих клієнтів OAuth.',
|
||
'settings.oauth.clientId': 'ID клієнта',
|
||
'settings.oauth.clientSecret': 'Секрет клієнта',
|
||
'settings.oauth.deleteClient': 'Видалити клієнта',
|
||
'settings.oauth.deleteClientMessage':
|
||
'Цей клієнт і всі активні сесії будуть видалені назавжди. Будь-який застосунок, що його використовує, одразу втратить доступ.',
|
||
'settings.oauth.rotateSecret': 'Оновити секрет',
|
||
'settings.oauth.rotateSecretMessage':
|
||
'Буде згенеровано новий секрет клієнта, а всі існуючі сесії будуть негайно анульовані. Оновіть застосунок перед закриттям цього діалогу.',
|
||
'settings.oauth.rotateSecretConfirm': 'Оновити',
|
||
'settings.oauth.rotateSecretConfirming': 'Оновлення…',
|
||
'settings.oauth.rotateSecretDoneTitle': 'Новий секрет згенеровано',
|
||
'settings.oauth.rotateSecretDoneWarning':
|
||
'Цей секрет відображається лише один раз. Скопіюйте його зараз і оновіть застосунок — всі попередні сесії були анульовані.',
|
||
'settings.oauth.activeSessions': 'Активні сесії OAuth',
|
||
'settings.oauth.sessionScopes': 'Області доступу',
|
||
'settings.oauth.sessionExpires': 'Закінчується',
|
||
'settings.oauth.revoke': 'Відкликати',
|
||
'settings.oauth.revokeSession': 'Відкликати сесію',
|
||
'settings.oauth.revokeSessionMessage': 'Це негайно відкличе доступ для даної сесії OAuth.',
|
||
'settings.oauth.modal.createTitle': 'Зареєструвати клієнта OAuth',
|
||
'settings.oauth.modal.presets': 'Швидкі налаштування',
|
||
'settings.oauth.modal.clientName': 'Назва застосунку',
|
||
'settings.oauth.modal.clientNamePlaceholder': 'напр. Claude Web, Мій MCP-застосунок',
|
||
'settings.oauth.modal.redirectUris': 'URI перенаправлення',
|
||
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
|
||
'settings.oauth.modal.redirectUrisHint':
|
||
'Один URI на рядок. HTTPS, локальний HTTP або власна схема застосунку (myapp://). Потрібне точне співпадіння, окрім порту локального URI.',
|
||
'settings.oauth.modal.scopes': 'Дозволені області доступу',
|
||
'settings.oauth.modal.scopesHint':
|
||
'list_trips і get_trip_summary завжди доступні: область не потрібна. Вони допомагають ШІ знаходити потрібні ID поїздок.',
|
||
'settings.oauth.modal.selectAll': 'Вибрати все',
|
||
'settings.oauth.modal.deselectAll': 'Зняти вибір',
|
||
'settings.oauth.modal.creating': 'Реєстрація…',
|
||
'settings.oauth.modal.create': 'Зареєструвати клієнта',
|
||
'settings.oauth.modal.createdTitle': 'Клієнт зареєстровано',
|
||
'settings.oauth.modal.createdWarning':
|
||
'Секрет клієнта показується лише один раз. Скопіюйте його зараз: його не можна буде відновити.',
|
||
'settings.oauth.toast.createError': 'Не вдалося зареєструвати клієнта OAuth',
|
||
'settings.oauth.toast.deleted': 'Клієнт OAuth видалено',
|
||
'settings.oauth.toast.deleteError': 'Не вдалося видалити клієнта OAuth',
|
||
'settings.oauth.toast.revoked': 'Сесію відкликано',
|
||
'settings.oauth.toast.revokeError': 'Не вдалося відкликати сесію',
|
||
'settings.oauth.toast.rotateError': 'Не вдалося оновити секрет клієнта',
|
||
'settings.account': 'Обліковий запис',
|
||
'settings.about': 'Про застосунок',
|
||
'settings.about.reportBug': 'Повідомити про помилку',
|
||
'settings.about.reportBugHint': 'Знайшли проблему? Повідомте нам',
|
||
'settings.about.featureRequest': 'Запропонувати функцію',
|
||
'settings.about.featureRequestHint': 'Запропонуйте нову функцію',
|
||
'settings.about.wikiHint': 'Документація та керівництва',
|
||
'settings.about.sponsor.eyebrow': 'Спонсорована інфраструктура',
|
||
'settings.about.sponsor.title': 'Власні сервери TREK працюють на dataforest cloud',
|
||
'settings.about.sponsor.body':
|
||
'Пошук місць, пошук адрес і маршрути працюють на власних серверах TREK замість Google і компанії, а машини для них спонсорує dataforest cloud.',
|
||
'settings.about.sponsor.cta': 'Перейти на dataforest cloud',
|
||
'settings.about.sponsor.search': 'Пошук місць',
|
||
'settings.about.sponsor.address': 'Пошук адрес',
|
||
'settings.about.sponsor.routing': 'Маршрути',
|
||
'settings.about.descriptionManaged':
|
||
'TREK допомагає організувати подорожі від першої ідеї до останнього спогаду. Планування днів, бюджет, списки речей, фото та багато іншого в одному місці.',
|
||
'settings.about.sourceTitle': 'Вихідний код',
|
||
'settings.about.sourceHint': 'TREK має відкритий код, ліцензія AGPL-3.0',
|
||
'settings.about.supporters.badge': 'Щомісячні спонсори',
|
||
'settings.about.supporters.title': 'Спутники TREK',
|
||
'settings.about.supporters.subtitle':
|
||
'Поки ти плануєш наступний маршрут, ці люди разом зі мною планують майбутнє TREK. Їхній щомісячний внесок йде безпосередньо в розробку та реальні витрачені години — щоб TREK залишався Open Source.',
|
||
'settings.about.supporters.since': 'спонсор з {date}',
|
||
'settings.about.supporters.tierEmpty': 'Стань першим',
|
||
'settings.about.supporter.tier.noReturnTicket': 'Без квитка назад',
|
||
'settings.about.supporter.tier.lostLuggageVip': 'VIP загубленого багажу',
|
||
'settings.about.supporter.tier.businessClassDreamer': 'Мрійник про бізнес-клас',
|
||
'settings.about.supporter.tier.budgetTraveller': 'Бюджетний мандрівник',
|
||
'settings.about.supporter.tier.hostelBunkmate': 'Сусід по койці в хостелі',
|
||
'settings.about.description':
|
||
'TREK — це self-hosted планувальник подорожей, який допомагає організувати поїздки від першої ідеї до останнього спогаду. Планування по днях, бюджет, списки речей, фото та багато іншого — все в одному місці, на вашому власному сервері.',
|
||
'settings.about.madeWith': 'Зроблено з',
|
||
'settings.about.madeBy': 'Морісом і зростаючою open-source спільнотою.',
|
||
'settings.username': "Ім'я користувача",
|
||
'settings.email': 'Ел. пошта',
|
||
'settings.role': 'Роль',
|
||
'settings.roleAdmin': 'Адміністратор',
|
||
'settings.oidcLinked': 'Пов’язаний з',
|
||
'settings.changePassword': 'Змінити пароль',
|
||
'settings.mustChangePassword':
|
||
'Ви повинні змінити пароль перед продовженням. Будь ласка, встановіть новий пароль нижче.',
|
||
'settings.currentPassword': 'Поточний пароль',
|
||
'settings.currentPasswordRequired': 'Поточний пароль обов’язковий',
|
||
'settings.newPassword': 'Новий пароль',
|
||
'settings.confirmPassword': 'Підтвердіть новий пароль',
|
||
'settings.updatePassword': 'Оновити пароль',
|
||
'settings.passwordRequired': 'Введіть поточний та новий паролі',
|
||
'settings.passwordTooShort': 'Пароль повинен містити не менше 8 символів',
|
||
'settings.passwordMismatch': 'Паролі не збігаються',
|
||
'settings.passwordWeak': 'Пароль повинен містити великі й малі літери, цифру та спеціальний символ',
|
||
'settings.passwordCommon': 'Цей пароль надто поширений. Виберіть унікальний.',
|
||
'settings.passwordRepetitive': 'Пароль надто одноманітний',
|
||
'settings.passwordRules': 'Вимоги до пароля',
|
||
'settings.passwordRule.length': 'Щонайменше 8 символів',
|
||
'settings.passwordRule.upper': 'Велика літера',
|
||
'settings.passwordRule.lower': 'Мала літера',
|
||
'settings.passwordRule.digit': 'Цифра',
|
||
'settings.passwordRule.special': 'Спецсимвол',
|
||
'settings.passwordChanged': 'Пароль успішно змінено',
|
||
'settings.deleteAccount': 'Видалити акаунт',
|
||
'settings.deleteAccountTitle': 'Видалити ваш акаунт?',
|
||
'settings.deleteAccountWarning':
|
||
'Ваш акаунт і всі поїздки, журнали, місця та файли, якими ви володієте, буде остаточно видалено, зокрема поїздки, спільні з іншими учасниками, які втратять доступ. Поїздки, що належать іншим, залишаться, а вас буде з них вилучено. Цю дію неможливо скасувати.',
|
||
'settings.deleteAccountConfirm': 'Видалити безповоротно',
|
||
'settings.deleteBlockedTitle': 'Видалення неможливе',
|
||
'settings.deleteBlockedMessage':
|
||
'Ви єдиний адміністратор. Призначте іншого користувача адміністратором перед видаленням свого акаунта.',
|
||
'settings.roleUser': 'Користувач',
|
||
'settings.saveProfile': 'Зберегти профіль',
|
||
'settings.mfa.title': 'Двофакторна аутентифікація (2FA)',
|
||
'settings.mfa.description':
|
||
'Додає другий крок при вході. Використовуйте додаток-аутентифікатор (Google Authenticator, Authy та ін.).',
|
||
'settings.mfa.requiredByPolicy':
|
||
'Адміністратор вимагає двофакторної аутентифікації. Налаштуйте додаток-аутентифікатор нижче, перш ніж продовжити.',
|
||
'settings.mfa.backupTitle': 'Резервні коди',
|
||
'settings.mfa.backupDescription':
|
||
'Використовуйте ці одноразові коди, якщо втратите доступ до додатку-аутентифікатора.',
|
||
'settings.mfa.backupWarning': 'Збережіть їх зараз. Кожен код можна використати лише один раз.',
|
||
'settings.mfa.backupCopy': 'Скопіювати коди',
|
||
'settings.mfa.backupDownload': 'Завантажити TXT',
|
||
'settings.mfa.backupPrint': 'Друк / PDF',
|
||
'settings.mfa.backupCopied': 'Резервні коди скопійовано',
|
||
'settings.mfa.enabled': '2FA увімкнено для вашого акаунта.',
|
||
'settings.mfa.disabled': '2FA не увімкнено.',
|
||
'settings.mfa.setup': 'Налаштувати автентифікатор',
|
||
'settings.mfa.scanQr': 'Відскануйте QR-код додатком або введіть ключ вручну.',
|
||
'settings.mfa.secretLabel': 'Секретний ключ (ручний ввід)',
|
||
'settings.mfa.codePlaceholder': '6-значний код',
|
||
'settings.mfa.enable': 'Увімкнути 2FA',
|
||
'settings.mfa.cancelSetup': 'Скасувати',
|
||
'settings.mfa.disableTitle': 'Вимкнути 2FA',
|
||
'settings.mfa.disableHint':
|
||
'Введіть пароль акаунта та поточний код з автентифікатора або невикористаний резервний код.',
|
||
'settings.mfa.disable': 'Вимкнути 2FA',
|
||
'settings.mfa.toastEnabled': 'Двофакторна автентифікація увімкнена',
|
||
'settings.mfa.toastDisabled': 'Двофакторна автентифікація вимкнена',
|
||
'settings.toast.mapSaved': 'Налаштування карти збережено',
|
||
'settings.toast.keysSaved': 'API-ключі збережено',
|
||
'settings.toast.displaySaved': 'Налаштування відображення збережено',
|
||
'settings.toast.profileSaved': 'Профіль збережено',
|
||
'settings.uploadAvatar': 'Завантажити фото профілю',
|
||
'settings.removeAvatar': 'Видалити фото профілю',
|
||
'settings.avatarUploaded': 'Фото профілю оновлено',
|
||
'settings.avatarRemoved': 'Фото профілю видалено',
|
||
'settings.avatarError': 'Помилка завантаження',
|
||
'settings.avatarRemoveError': 'Помилка видалення',
|
||
'settings.bookingLabels': 'Підписи маршрутів бронювань',
|
||
'settings.bookingLabelsHint': 'Показує назви станцій / аеропортів на карті. Якщо вимкнено, показується лише значок.',
|
||
'settings.notifyVersionAvailable': 'Доступна нова версія',
|
||
'settings.notifyReplicaFailure': 'Збій репліки сховища',
|
||
'settings.notifyPaddleRegionRequested': 'Запитано регіон для сплаву',
|
||
'settings.notificationPreferences.noChannels':
|
||
'Канали сповіщень не налаштовані. Попросіть адміністратора налаштувати сповіщення електронною поштою або через webhook.',
|
||
'settings.webhookUrl.label': 'URL вебхука',
|
||
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
|
||
'settings.webhookUrl.hint': 'Введіть URL вашого вебхука Discord, Slack або власного для отримання сповіщень.',
|
||
'settings.webhookUrl.saved': 'URL вебхука збережено',
|
||
'settings.webhookUrl.test': 'Тест',
|
||
'settings.webhookUrl.testSuccess': 'Тестовий вебхук успішно надіслано',
|
||
'settings.webhookUrl.testFailed': 'Помилка тестового вебхука',
|
||
'settings.ntfyUrl.topicLabel': 'Тема Ntfy',
|
||
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
|
||
'settings.ntfyUrl.serverLabel': 'URL сервера Ntfy (необов’язково)',
|
||
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
|
||
'settings.ntfyUrl.hint':
|
||
'Введіть тему Ntfy для отримання push-сповіщень. Залиште поле сервера пустим, щоб використовувати налаштування за замовчуванням, задані адміністратором.',
|
||
'settings.ntfyUrl.tokenLabel': 'Токен доступу (необов’язково)',
|
||
'settings.ntfyUrl.tokenHint': 'Потрібно для тем, захищених паролем.',
|
||
'settings.ntfyUrl.saved': 'Налаштування Ntfy збережені',
|
||
'settings.ntfyUrl.test': 'Тест',
|
||
'settings.ntfyUrl.testSuccess': 'Тестове сповіщення Ntfy успішно надіслано',
|
||
'settings.ntfyUrl.testFailed': 'Помилка надсилання тестового сповіщення Ntfy',
|
||
'settings.ntfyUrl.tokenCleared': 'Токен доступу очищено',
|
||
'settings.notificationPreferences.inapp': 'In-App',
|
||
'settings.notificationPreferences.notConfigured': 'Ще не налаштовано — налаштуйте в параметрах плагіна',
|
||
'settings.notificationPreferences.lockedByAdmin': 'Вимкнено адміністратором для всіх',
|
||
'settings.plugins.actions': 'Дії',
|
||
'settings.plugins.actions.confirm': 'Виконати цю дію?',
|
||
'settings.notificationPreferences.sendTest': 'Надіслати тест',
|
||
'settings.notificationPreferences.configure': 'Налаштувати',
|
||
'settings.notificationPreferences.testSuccess': 'Тестове сповіщення надіслано.',
|
||
'settings.notificationPreferences.testFailed': 'Тест не вдався.',
|
||
'settings.notificationPreferences.pluginConfigured': 'Налаштовано. Облікові дані — на сторінці налаштувань плагіна.',
|
||
'settings.notificationPreferences.webhook': 'Webhook',
|
||
'settings.notificationPreferences.email': 'Email',
|
||
'settings.notificationPreferences.ntfy': 'Ntfy',
|
||
'settings.notificationPreferences.push': 'Push',
|
||
'settings.webPush.title': 'Push-сповіщення на цьому пристрої',
|
||
'settings.webPush.hint':
|
||
'Показує сповіщення TREK на цьому пристрої, навіть коли TREK закрито. Які події надходять, визначає стовпець Push.',
|
||
'settings.webPush.enable': 'Увімкнути на цьому пристрої',
|
||
'settings.webPush.disable': 'Вимкнути на цьому пристрої',
|
||
'settings.webPush.enabled': 'Увімкнено на цьому пристрої',
|
||
'settings.webPush.unsupported': 'Цей браузер не може отримувати push-сповіщення.',
|
||
'settings.webPush.insecure': 'Для push TREK має бути відкрито через HTTPS.',
|
||
'settings.webPush.iosInstall': 'На iPhone та iPad спершу додайте TREK на початковий екран і відкрийте його звідти.',
|
||
'settings.webPush.denied':
|
||
'Сповіщення для TREK заблоковано в цьому браузері. Дозвольте їх у налаштуваннях браузера й спробуйте ще раз.',
|
||
'settings.webPush.failed': 'Не вдалося увімкнути push на цьому пристрої.',
|
||
'settings.oauth.modal.machineClient': 'Машинний клієнт (без входу через браузер)',
|
||
'settings.oauth.modal.machineClientHint':
|
||
'Використовуйте надання client_credentials — URI перенаправлення не потрібні. Токен видається безпосередньо через client_id + client_secret і діє від вашого імені в межах вибраних областей.',
|
||
'settings.oauth.modal.machineClientUsage':
|
||
'Отримати токен: POST /oauth/token з grant_type=client_credentials, client_id і client_secret. Без браузера, без токена оновлення.',
|
||
'settings.oauth.badge.machine': 'машина',
|
||
'settings.currency': 'Валюта відображення',
|
||
'settings.currencyHint':
|
||
'Суми в розділі «Витрати» відображаються в цій валюті лише для перегляду; початкові суми не змінюються.',
|
||
'settings.currencyTrip': 'Валюта подорожі',
|
||
'settings.placeLanguage': 'Назви місць',
|
||
'settings.placeLanguageApp': 'Як у застосунку',
|
||
'settings.placeLanguageHint':
|
||
'Мова, якою відповідають пошук місць, підказки та адреси. Якщо місце не має назви цією мовою, показується його місцева назва.',
|
||
'settings.passkey.title': 'Ключі доступу',
|
||
'settings.passkey.description':
|
||
'Входьте швидше та з захистом від фішингу за допомогою passkey: відбитка пальця, обличчя, PIN-коду або апаратного ключа. Ваш пароль залишається як резервний варіант.',
|
||
'settings.passkey.notConfigured':
|
||
'Passkeys увімкнено, але цей сервер ще не повністю налаштовано. Попросіть адміністратора вказати домен WebAuthn.',
|
||
'settings.passkey.add': 'Додати passkey',
|
||
'settings.passkey.addTitle': 'Додати passkey',
|
||
'settings.passkey.passwordPrompt': 'Підтвердіть поточний пароль, а потім дотримуйтесь підказок на вашому пристрої.',
|
||
'settings.passkey.passwordRequired': 'Потрібен ваш поточний пароль.',
|
||
'settings.passkey.namePlaceholder': 'Назва (необов’язково, напр. "iPhone")',
|
||
'settings.passkey.addedToast': 'Passkey додано',
|
||
'settings.passkey.added': 'Додано',
|
||
'settings.passkey.addError': 'Не вдалося додати passkey',
|
||
'settings.passkey.cancelled': 'Налаштування passkey скасовано',
|
||
'settings.passkey.deleted': 'Passkey видалено',
|
||
'settings.passkey.deleteConfirm': 'Видалити цей passkey? Підтвердіть паролем.',
|
||
'settings.passkey.rename': 'Перейменувати',
|
||
'settings.passkey.defaultName': 'Ключ доступу',
|
||
'settings.passkey.synced': 'Синхронізовано',
|
||
'settings.passkey.deviceBound': 'Цей пристрій',
|
||
'settings.passkey.lastUsed': 'Останнє використання',
|
||
'settings.passkey.neverUsed': 'Не використовувався',
|
||
'settings.mapPoiPill': 'Досліджуйте місця на карті',
|
||
'settings.mapPoiPillHint':
|
||
'Показувати на карті подорожі плашку категорій, щоб знаходити поблизу ресторани, готелі та інше з OpenStreetMap.',
|
||
'settings.airtrail.title': 'AirTrail',
|
||
'settings.airtrail.hint':
|
||
'Підключіть свій самостійно розміщений AirTrail, щоб імпортувати та синхронізувати рейси. Створіть API-ключ в AirTrail у розділі Налаштування → Безпека.',
|
||
'settings.airtrail.url': 'URL екземпляра',
|
||
'settings.airtrail.apiKey': 'API-ключ',
|
||
'settings.airtrail.apiKeyPlaceholder': 'Bearer API-ключ',
|
||
'settings.airtrail.apiKeyHint':
|
||
'Згенеровано в AirTrail у розділі Налаштування → Безпека. Зберігається в зашифрованому вигляді.',
|
||
'settings.airtrail.allowInsecureTls': 'Дозволити самопідписані сертифікати',
|
||
'settings.airtrail.allowInsecureTlsHint': 'Вмикайте лише для довіреного екземпляра у вашій власній мережі.',
|
||
'settings.airtrail.writeBack': 'Записувати зміни назад у AirTrail',
|
||
'settings.airtrail.writeBackHint':
|
||
'Типово вимкнено: AirTrail є джерелом істини, а TREK лише читає з нього. Увімкніть, щоб надсилати зміни, зроблені в TREK, назад до AirTrail.',
|
||
'settings.airtrail.connected': 'Підключено',
|
||
'settings.airtrail.notConnected': 'Не підключено',
|
||
'settings.airtrail.toast.saved': 'Підключення AirTrail збережено',
|
||
'settings.airtrail.toast.saveError': 'Не вдалося зберегти підключення',
|
||
'settings.airtrail.test.button': 'Перевірити підключення',
|
||
'settings.airtrail.test.success': 'Підключено. Знайдено {count} рейсу',
|
||
'settings.airtrail.test.success.one': 'Підключено. Знайдено {count} рейс',
|
||
'settings.airtrail.test.success.few': 'Підключено. Знайдено {count} рейси',
|
||
'settings.airtrail.test.success.many': 'Підключено. Знайдено {count} рейсів',
|
||
'settings.airtrail.test.failed': 'Не вдалося підключитися',
|
||
'settings.aiParsing.title': 'Розпізнавання ШІ',
|
||
'settings.aiParsing.hint':
|
||
'Виберіть модель ШІ для вилучення бронювань із завантажених файлів. Це діє лише тоді, коли адміністратор не налаштував модель для всього екземпляра.',
|
||
'settings.aiParsing.provider': 'Постачальник',
|
||
'settings.aiParsing.providerLocal': 'Локальний (Ollama)',
|
||
'settings.aiParsing.providerOpenai': 'OpenAI',
|
||
'settings.aiParsing.providerAnthropic': 'Anthropic',
|
||
'settings.aiParsing.localAdminOnly':
|
||
'Локальна кінцева точка (Ollama) налаштовується один раз для всього екземпляра в налаштуваннях адміністратора. Власний ключ OpenAI або Anthropic ви можете використовувати тут і надалі.',
|
||
'settings.aiParsing.model': 'Модель',
|
||
'settings.aiParsing.baseUrl': 'Базова URL-адреса',
|
||
'settings.aiParsing.baseUrlHint': 'Де працює модель — локальний сервер Ollama або сумісна з OpenAI кінцева точка.',
|
||
'settings.aiParsing.apiKey': 'Ключ API',
|
||
'settings.aiParsing.apiKeyHint':
|
||
'Зберігається в зашифрованому вигляді. Залиште порожнім, щоб зберегти поточний ключ.',
|
||
'settings.aiParsing.multimodal': 'Модель читає зображення',
|
||
'settings.aiParsing.multimodalHint':
|
||
'Увімкніть для моделі, яка читає зображення, щоб фотографію можна було імпортувати чи відсканувати.',
|
||
'settings.aiParsing.toast.saved': 'Налаштування ШІ збережено',
|
||
'settings.aiParsing.toast.saveError': 'Не вдалося зберегти налаштування ШІ',
|
||
'settings.tabs.appearance': 'Вигляд',
|
||
'settings.appearance.theme': 'Тема',
|
||
'settings.appearance.scheme': 'Колірна схема',
|
||
'settings.appearance.scheme.default': 'Типова',
|
||
'settings.appearance.scheme.highContrast': 'Висока контрастність',
|
||
'settings.appearance.scheme.indigo': 'Індиго',
|
||
'settings.appearance.scheme.teal': 'Бірюзова',
|
||
'settings.appearance.scheme.rose': 'Рожева',
|
||
'settings.appearance.scheme.amber': 'Бурштинова',
|
||
'settings.appearance.scheme.violet': 'Фіалкова',
|
||
'settings.appearance.scheme.custom': 'Власна',
|
||
'settings.appearance.customAccent': 'Власний акцент',
|
||
'settings.appearance.contrastOk': 'Хороша контрастність',
|
||
'settings.appearance.contrastLow': 'Низька контрастність',
|
||
'settings.appearance.readability': 'Читабельність',
|
||
'settings.appearance.transparency': 'Прозорість',
|
||
'settings.appearance.transparencyHint':
|
||
'Скляні напівпрозорі поверхні. Вимкни для суцільного фону з вищою контрастністю.',
|
||
'settings.appearance.reduceMotion': 'Зменшити анімацію',
|
||
'settings.appearance.reduceMotionHint': 'Мінімізувати анімації та переходи.',
|
||
'settings.appearance.density': 'Щільність',
|
||
'settings.appearance.comfortable': 'Зручна',
|
||
'settings.appearance.compact': 'Компактна',
|
||
'settings.appearance.textSize': 'Розмір тексту',
|
||
'settings.appearance.advancedTextSizes': 'Розширені розміри тексту',
|
||
'settings.appearance.hideAdvanced': 'Сховати розширені',
|
||
'settings.appearance.tier.title': 'Заголовки',
|
||
'settings.appearance.tier.subtitle': 'Підзаголовки',
|
||
'settings.appearance.tier.body': 'Основний текст',
|
||
'settings.appearance.tier.caption': 'Підписи',
|
||
'settings.appearance.dashboardWidgets': 'Віджети панелі',
|
||
'settings.appearance.dashboardWidgetsHint': "Показуй або ховай віджети панелі окремо для комп'ютера та мобільного.",
|
||
'settings.appearance.desktop': "Комп'ютер",
|
||
'settings.appearance.mobile': 'Мобільний',
|
||
'settings.appearance.widget.sidebar': 'Права панель',
|
||
'settings.appearance.widget.currency': 'Валюта',
|
||
'settings.appearance.widget.collections': 'Колекції',
|
||
'settings.appearance.widget.timezones': 'Часові пояси',
|
||
'settings.appearance.widget.upcomingReservations': 'Найближчі бронювання',
|
||
'settings.appearance.widget.atlas': 'Atlas / країни',
|
||
'settings.appearance.widget.tripsTotal': 'Усього подорожей',
|
||
'settings.appearance.widget.daysTraveled': 'Днів у подорожах',
|
||
'settings.appearance.widget.distanceFlown': 'Налітана відстань',
|
||
'settings.appearance.reset': 'Скинути до типових',
|
||
'settings.appearance.group.belowHero': 'Під головним блоком',
|
||
'settings.appearance.group.bottomOfPage': 'Внизу сторінки',
|
||
'settings.appearance.sidebarHint': 'Уся права колонка. Якщо вимкнути, панель вирівняється по центру.',
|
||
'settings.appearance.densityHint':
|
||
'Компактна зменшує відступи для щільнішого макета, в якому на екрані вміщується більше.',
|
||
'settings.appearance.textSizeAll': 'Усе',
|
||
'settings.appearance.perSize': 'Налаштувати кожен розмір окремо',
|
||
'settings.appearance.size.large': 'Великий',
|
||
'settings.appearance.size.medium': 'Середній',
|
||
'settings.appearance.size.normal': 'Звичайний',
|
||
'settings.appearance.size.small': 'Малий',
|
||
'settings.appearance.preview.large': 'Великий заголовок',
|
||
'settings.appearance.preview.medium': 'Середній підзаголовок',
|
||
'settings.appearance.preview.normal': 'Звичайний основний текст',
|
||
'settings.appearance.preview.small': 'Малий підпис / адреса',
|
||
'settings.appearance.example.large': 'Заголовки, великі числа',
|
||
'settings.appearance.example.medium': 'Підзаголовки',
|
||
'settings.appearance.example.normal': 'Назви місць, описи',
|
||
'settings.appearance.example.small': 'Адреси, мітки',
|
||
'settings.appearance.experimental': 'Експериментально',
|
||
'settings.appearance.mobileNav': 'Нижня панель навігації',
|
||
'settings.appearance.mobileNav.hint':
|
||
'Виберіть, які елементи показувати на панелі, а які — під «Ще». «Головна» завжди залишається першою.',
|
||
'settings.appearance.mobileNav.inBar': 'На панелі',
|
||
'settings.appearance.mobileNav.underMore': 'Під «Ще»',
|
||
'settings.appearance.mobileNav.moreEmpty': 'Поки що порожньо — усе вміщається на панелі.',
|
||
'settings.appearance.mobileNav.pinned': 'Закріплено',
|
||
'settings.appearance.mobileNav.toMore': 'Перемістити під «Ще»',
|
||
'settings.appearance.mobileNav.toBar': 'Перемістити на панель',
|
||
'settings.appearance.dashOrder': 'Порядок панелі',
|
||
'settings.appearance.dashOrder.hint':
|
||
'Змініть порядок, у якому список подорожей і віджети розташовуються на панелі телефона. Виділена подорож завжди залишається вгорі.',
|
||
'settings.appearance.dashOrder.trips': 'Подорожі',
|
||
'settings.appearance.dashOrder.hidden': 'Приховано',
|
||
'settings.general.languageRegion': 'Мова та регіон',
|
||
'settings.general.travelMap': 'Подорожі та карта',
|
||
'settings.general.startup': 'Запуск',
|
||
'settings.dayDateFirst': 'Дата першою в заголовках днів',
|
||
'settings.compactUnplanned': 'Компактні позначки для незапланованих місць',
|
||
'settings.compactUnplannedHint':
|
||
'Місця, не заплановані на жоден день, показуються маленькими позначками без фото, щоб заплановані зупинки вирізнялися.',
|
||
'settings.dayDateFirstHint':
|
||
'Починати кожен день з його календарної дати, а поруч показувати «День 1» або власну назву дня.',
|
||
'settings.startPage': 'Стартова сторінка',
|
||
'settings.startPageDashboard': 'Панель',
|
||
'settings.startPageActiveTrip': 'Активна поїздка',
|
||
'settings.startPageHint':
|
||
'TREK одразу відкриває поїздку, яка триває зараз, інакше найближчу майбутню. Це та сама поїздка, яку виділяє панель.',
|
||
'settings.startTripTab': 'Стартова вкладка',
|
||
'settings.startTripTabHint':
|
||
'Вкладка, з якою відкривається поїздка. Якщо вона належить до вимкненого доповнення, натомість відкриється план.',
|
||
|
||
// ── Offline (#1135)
|
||
'settings.offline.cache.title': 'Офлайн-кеш',
|
||
'settings.offline.mode.title': 'Офлайн-режим',
|
||
'settings.offline.mode.force': 'Примусовий офлайн-режим',
|
||
'settings.offline.mode.forceHint':
|
||
'Працюйте лише з кешованими даними та ставте свої зміни в чергу. Вимкніть, щоб знову підключитися та синхронізувати.',
|
||
'settings.offline.mode.active':
|
||
'Офлайн-режим увімкнено: ваші зміни поставлені в чергу й синхронізуються, коли ви його вимкнете.',
|
||
'settings.offline.prepare.title': 'Підготуватися до офлайну',
|
||
'settings.offline.prepare.hint':
|
||
'Завантажте все необхідне (дані поїздок, документи та тайли карти) перш ніж втратите зв’язок.',
|
||
'settings.offline.prepare.button': 'Завантажити для офлайн-використання',
|
||
'settings.offline.prepare.running': 'Завантаження…',
|
||
'settings.offline.prepare.done': 'Готово до офлайн-використання',
|
||
'settings.offline.prepare.phase.trips': 'Дані поїздок',
|
||
'settings.offline.prepare.phase.files': 'Документи',
|
||
'settings.offline.prepare.phase.tiles': 'Тайли карти',
|
||
'settings.offline.resync': 'Синхронізувати зараз',
|
||
'settings.offline.resyncing': 'Синхронізація…',
|
||
'settings.offline.storage.title': 'Що зберігати офлайн',
|
||
'settings.offline.storage.tiles': 'Зберігати тайли карти офлайн',
|
||
'settings.offline.storage.tilesHint':
|
||
'Тайли карти займають найбільше місця. Вимкніть, щоб зберігати офлайн лише дані поїздок і документи.',
|
||
'settings.offline.storage.tripsTitle': 'Поїздки',
|
||
'settings.offline.storage.tripOn': 'Збережено офлайн',
|
||
'settings.offline.storage.tripOff': 'Не збережено',
|
||
'settings.offline.storage.tripFinished': 'Завершено. Зберігається, лише якщо ви це увімкнете.',
|
||
'settings.offline.notice.stored': 'На цьому пристрої збережено {count} подорожі',
|
||
'settings.offline.notice.stored.one': 'На цьому пристрої збережено {count} подорож',
|
||
'settings.offline.notice.stored.few': 'На цьому пристрої збережено {count} подорожі',
|
||
'settings.offline.notice.stored.many': 'На цьому пристрої збережено {count} подорожей',
|
||
'settings.offline.notice.nothing': 'Нічого зберігати. Увімкніть подорожі, які хочете залишити.',
|
||
'settings.offline.notice.busy': 'Синхронізація вже триває. Спробуйте ще раз за мить.',
|
||
'settings.offline.notice.offline': 'Немає з’єднання. Під’єднайтеся, щоб зберегти подорожі офлайн.',
|
||
'settings.offline.notice.signedOut': 'Сеанс завершився. Увійдіть знову, щоб синхронізувати.',
|
||
'settings.offline.notice.failed': 'Не вдалося завершити завантаження. Перевірте з’єднання і спробуйте ще раз.',
|
||
'settings.offline.notice.loadFailed':
|
||
'Не вдалося прочитати офлайн-сховище цього пристрою. Зазвичай допомагає очищення кешу.',
|
||
'settings.offline.clear': 'Очистити кеш',
|
||
'settings.offline.clearConfirm':
|
||
'Очистити всі офлайн-дані поїздок? Ви можете синхронізувати їх будь-коли в режимі онлайн.',
|
||
'settings.offline.stats.trips': 'Кешовані поїздки',
|
||
'settings.offline.stats.pending': 'Зміни в очікуванні',
|
||
'settings.offline.stats.failed': 'Невдалі зміни',
|
||
'settings.offline.failed.hint':
|
||
'Ці зміни так і не потрапили на сервер. Спробуйте ще раз або відкиньте їх, щоб залишити версію із сервера.',
|
||
'settings.offline.failed.retry': 'Спробувати ще раз',
|
||
'settings.offline.failed.discard': 'Відкинути',
|
||
'settings.offline.stats.conflicts': 'Конфлікти',
|
||
'settings.offline.empty': 'Поки що немає кешованих поїздок. Підключіться до інтернету, щоб синхронізувати.',
|
||
'settings.offline.loading': 'Завантаження…',
|
||
'settings.offline.conflicts.title': 'Конфлікти синхронізації',
|
||
'settings.offline.conflicts.hint':
|
||
'Зміни, які ви зробили офлайн, конфліктують із новішими змінами на сервері. Виберіть, яку версію залишити.',
|
||
'settings.offline.conflicts.keepMine': 'Залишити мою',
|
||
'settings.offline.conflicts.keepServer': 'Залишити їхню',
|
||
'settings.offline.conflicts.mine': 'Ваша версія',
|
||
'settings.offline.conflicts.server': 'Версія сервера',
|
||
'settings.offline.conflicts.item': 'Зміна в “{name}”',
|
||
'settings.offline.conflicts.strategyTitle': 'Коли виникає конфлікт',
|
||
'settings.offline.conflicts.strategy.ask': 'Запитувати мене щоразу',
|
||
'settings.offline.conflicts.strategy.mine': 'Завжди залишати мою версію',
|
||
'settings.offline.conflicts.strategy.server': 'Завжди залишати версію сервера',
|
||
'settings.offline.banner.offline': 'Офлайн',
|
||
'settings.offline.banner.forced': 'Офлайн-режим',
|
||
'settings.offline.banner.queued': 'Офлайн · {count} у черзі',
|
||
'settings.offline.banner.queued.one': 'Офлайн · {count} у черзі',
|
||
'settings.offline.banner.queued.few': 'Офлайн · {count} у черзі',
|
||
'settings.offline.banner.queued.many': 'Офлайн · {count} у черзі',
|
||
'settings.offline.banner.syncing': 'Синхронізація {count}…',
|
||
'settings.offline.banner.syncing.one': 'Синхронізація {count}…',
|
||
'settings.offline.banner.syncing.few': 'Синхронізація {count}…',
|
||
'settings.offline.banner.syncing.many': 'Синхронізація {count}…',
|
||
'settings.offline.banner.failed': 'Не вдалося синхронізувати: {count}',
|
||
'settings.offline.banner.failed.one': 'Не вдалося синхронізувати: {count}',
|
||
'settings.offline.banner.failed.few': 'Не вдалося синхронізувати: {count}',
|
||
'settings.offline.banner.failed.many': 'Не вдалося синхронізувати: {count}',
|
||
'settings.offline.banner.conflicts': 'Конфлікти: {count}',
|
||
'settings.offline.banner.conflicts.one': 'Конфлікти: {count}',
|
||
'settings.offline.banner.conflicts.few': 'Конфлікти: {count}',
|
||
'settings.offline.banner.conflicts.many': 'Конфлікти: {count}',
|
||
'settings.pluginActivity.title': 'Активність плагінів',
|
||
'settings.pluginActivity.description': 'Кожна дія, яку плагін виконав від вашого імені, найновіші спершу.',
|
||
'settings.pluginActivity.empty': 'Активності плагінів поки немає.',
|
||
'settings.pluginActivity.refresh': 'Оновити',
|
||
'settings.pluginActivity.columns.plugin': 'Плагін',
|
||
'settings.pluginActivity.columns.action': 'Дія',
|
||
'settings.pluginActivity.columns.resource': 'Ресурс',
|
||
'settings.pluginActivity.columns.when': 'Коли',
|
||
'settings.pluginActivity.columns.status': 'Результат',
|
||
'settings.alwaysShowRoutes': 'Завжди показувати маршрути бронювань',
|
||
'settings.alwaysShowRoutesHint':
|
||
'Автоматично показує на карті маршрут для кожного рейсу, поїзда та іншого бронювання, без потреби вмикати це окремо для кожного елемента.',
|
||
// Public API keys (Settings -> Integrations)
|
||
// ── API keys: what a key may read ─────────────────────────────────────────
|
||
'settings.apiScopes.title': 'Що цей ключ може читати',
|
||
'settings.apiScopes.hint':
|
||
'Залиште все увімкненим для ключа, який має бачити геть усе. Усе, що ви вимкнете, для цього ключа буде заборонено, а не просто пропущено у відповіді.',
|
||
'settings.apiScopes.all': 'Усе',
|
||
'settings.apiScopes.noneSelected': 'Виберіть принаймні один розділ, інакше ключ не зможе нічого прочитати.',
|
||
'settings.apiScopes.limited': '{count} з {total}',
|
||
'settings.apiScopes.limited.one': '{count} з {total}',
|
||
'settings.apiScopes.limited.few': '{count} з {total}',
|
||
'settings.apiScopes.limited.many': '{count} з {total}',
|
||
'settings.apiScopes.trips': 'Подорожі',
|
||
'settings.apiScopes.days': 'Дні',
|
||
'settings.apiScopes.places': 'Місця',
|
||
'settings.apiScopes.notes': 'Нотатки дня',
|
||
'settings.apiScopes.reservations': 'Бронювання',
|
||
'settings.apiScopes.accommodations': 'Проживання',
|
||
'settings.apiScopes.travellers': 'Хто їде',
|
||
'settings.apiScopes.bucket-list': 'Список бажань',
|
||
'settings.apiScopes.stats': 'Підсумки',
|
||
'settings.apiKeys.title': 'Ключі API',
|
||
'settings.apiKeys.description':
|
||
'Ключі для публічного API, щоб інші програми могли читати ваші подорожі. Лише читання: ключ нічого не змінить і не видалить.',
|
||
'settings.apiKeys.create': 'Створити ключ',
|
||
'settings.apiKeys.empty': 'Ключів ще немає. Створіть один, щоб підключити іншу програму.',
|
||
'settings.apiKeys.createdAt': 'створено',
|
||
'settings.apiKeys.usedAt': 'востаннє використано',
|
||
'settings.apiKeys.deleteTitle': 'Видалити ключ',
|
||
'settings.apiKeys.deleteMessage': 'Усе, що використовує цей ключ, одразу перестане працювати. Скасувати не можна.',
|
||
'settings.apiKeys.deleted': 'Ключ видалено',
|
||
'settings.apiKeys.deleteFailed': 'Не вдалося видалити ключ',
|
||
'settings.apiKeys.createFailed': 'Не вдалося створити ключ',
|
||
'settings.apiKeys.copy': 'Копіювати',
|
||
'settings.apiKeys.docsHint': 'Надсилайте ключ як "Authorization: Bearer ..." або "X-API-Key: ..." на /api/v1.',
|
||
'settings.apiKeys.endpoint': 'Ендпоінт',
|
||
'settings.apiKeys.neverUsed': 'не використовувався',
|
||
'settings.apiKeys.loadFailed': 'Не вдалося завантажити ключі. Оновіть сторінку, щоб спробувати ще раз.',
|
||
'settings.apiKeys.limitReached':
|
||
'У вас {count} ключа, це максимум для одного облікового запису. Видаліть непотрібний ключ, щоб створити новий.',
|
||
'settings.apiKeys.limitReached.one':
|
||
'У вас {count} ключ, це максимум для одного облікового запису. Видаліть непотрібний ключ, щоб створити новий.',
|
||
'settings.apiKeys.limitReached.few':
|
||
'У вас {count} ключі, це максимум для одного облікового запису. Видаліть непотрібний ключ, щоб створити новий.',
|
||
'settings.apiKeys.limitReached.many':
|
||
'У вас {count} ключів, це максимум для одного облікового запису. Видаліть непотрібний ключ, щоб створити новий.',
|
||
'settings.apiKeys.copyFailed': 'Не вдалося скопіювати. Виділіть текст і скопіюйте його вручну.',
|
||
'settings.apiKeys.modal.createTitle': 'Створити ключ API',
|
||
'settings.apiKeys.modal.name': 'Назва',
|
||
'settings.apiKeys.modal.namePlaceholder': 'наприклад, Домашня панель',
|
||
'settings.apiKeys.modal.nameHint': 'Лише для вас, щоб пізніше впізнати ключ.',
|
||
'settings.apiKeys.modal.creating': 'Створення...',
|
||
'settings.apiKeys.modal.create': 'Створити',
|
||
'settings.apiKeys.modal.createdTitle': 'Ключ API створено',
|
||
'settings.apiKeys.modal.createdWarning': 'Скопіюйте ключ зараз. Він показується один раз, пізніше його не отримати.',
|
||
'settings.apiKeys.modal.done': 'Готово',
|
||
'settings.mcp.deprecated': 'Застаріло',
|
||
'settings.offline.cache.dateRange': 'з {start} по {end}',
|
||
'settings.offline.tileStore.title': 'Переглянуті плитки карти',
|
||
'settings.offline.tileStore.usage': '{used} з {limit} на цьому пристрої, зберігаються до 30 днів',
|
||
'settings.offline.tileStore.clear': 'Очистити',
|
||
};
|
||
|
||
export default settings;
|