mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-29 18:21:46 +00:00
9669642c62
Adds MapLibre GL with OpenFreeMap as a tokenless third map provider alongside Leaflet and Mapbox: a provider abstraction with style presets, CSP + service-worker entries for tiles.openfreemap.org, and the map_provider allow-list entry. Mapbox-only APIs stay gated behind the mapbox provider, and existing Mapbox/Leaflet users are unaffected. Maintainer review follow-ups folded in: the new map-settings strings are translated across all locales; the GL engine is lazy-loaded so Leaflet-only installs don't download it; MapLibre gets its own maplibre_style slot so switching providers no longer overwrites a custom Mapbox style; and the MapLibre render path plus the OpenFreeMap style-guards are covered by tests.
333 lines
28 KiB
TypeScript
333 lines
28 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.tabs.account': 'Обліковий запис',
|
||
'settings.tabs.offline': 'Офлайн',
|
||
'settings.tabs.about': 'Про застосунок',
|
||
'settings.map': 'Карта',
|
||
'settings.mapTemplate': 'Шаблон карти',
|
||
'settings.mapTemplatePlaceholder.select': 'Виберіть шаблон...',
|
||
'settings.mapDefaultHint': 'Залиште порожнім для OpenStreetMap (за замовчуванням)',
|
||
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
||
'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.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.mapTipLabel': 'Порада:',
|
||
'settings.mapTip':
|
||
'Затисніть праву кнопку миші та перетягніть, щоб повернути/нахилити карту. Клік середньою кнопкою — додати місце (права кнопка зарезервована для обертання).',
|
||
'settings.latitude': 'Широта',
|
||
'settings.longitude': 'Довгота',
|
||
'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.saveKeys': 'Зберегти ключі',
|
||
'settings.display': 'Відображення',
|
||
'settings.colorMode': 'Кольорова схема',
|
||
'settings.light': 'Світла',
|
||
'settings.dark': 'Темна',
|
||
'settings.auto': 'Авто',
|
||
'settings.language': 'Мова',
|
||
'settings.temperature': 'Одиниця температури',
|
||
'settings.distance': 'Одиниця відстані',
|
||
'settings.timeFormat': 'Формат часу',
|
||
'settings.blurBookingCodes': 'Приховати коди бронювання',
|
||
'settings.optimizeFromAccommodation': 'Оптимізувати маршрут від житла',
|
||
'settings.optimizeFromAccommodationHint':
|
||
'Під час оптимізації дня починайте маршрут від готелю, у якому ви прокидаєтеся, і завершуйте його тим, у який ви заселяєтеся ввечері.',
|
||
'settings.notifications': 'Сповіщення',
|
||
'settings.notifyTripInvite': 'Запрошення до поїздки',
|
||
'settings.notifyBookingChange': 'Зміни бронювань',
|
||
'settings.notifyTripReminder': 'Нагадування про поїздку',
|
||
'settings.notifyTodoDue': 'Завдання до терміну',
|
||
'settings.notifyVacayInvite': "Запрошення об'єднання Vacay",
|
||
'settings.notifyPhotosShared': 'Спільні фото (Immich)',
|
||
'settings.notifyCollabMessage': 'Повідомлення чату (Collab)',
|
||
'settings.notifyPackingTagged': 'Список речей: призначення',
|
||
'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 (localhost виключено). Потрібне точне співпадіння.',
|
||
'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.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': 'No Return Ticket',
|
||
'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP',
|
||
'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer',
|
||
'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller',
|
||
'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate',
|
||
'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.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.mfa.demoBlocked': 'Недоступно в демо-режимі',
|
||
'settings.toast.mapSaved': 'Налаштування карти збережено',
|
||
'settings.toast.keysSaved': 'API-ключі збережено',
|
||
'settings.toast.displaySaved': 'Налаштування відображення збережено',
|
||
'settings.toast.profileSaved': 'Профіль збережено',
|
||
'settings.uploadAvatar': 'Завантажити фото профілю',
|
||
'settings.removeAvatar': 'Видалити фото профілю',
|
||
'settings.avatarUploaded': 'Фото профілю оновлено',
|
||
'settings.avatarRemoved': 'Фото профілю видалено',
|
||
'settings.avatarError': 'Помилка завантаження',
|
||
'settings.bookingLabels': 'Підписи маршрутів бронювань',
|
||
'settings.bookingLabelsHint': 'Показує назви станцій / аеропортів на карті. Якщо вимкнено, показується лише значок.',
|
||
'settings.notifyVersionAvailable': 'Доступна нова версія',
|
||
'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.webhook': 'Webhook',
|
||
'settings.notificationPreferences.email': 'Email',
|
||
'settings.notificationPreferences.ntfy': 'Ntfy',
|
||
'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': 'Currency',
|
||
'settings.currencyHint': 'All amounts in Costs are converted to and shown in this currency.',
|
||
'settings.passkey.title': 'Passkeys',
|
||
'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': 'Passkey',
|
||
'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.failed': 'Не вдалося підключитися',
|
||
};
|
||
|
||
export default settings;
|