SkateSpots/src/i18n/uk/batch2.ts
SkateSpots 6407310213 feat(relay): cut over community relay to self-hosted Newlay
Point SKATE_RELAY, the default relay pools, the DM/CVM/zap relay arrays, the cvm-server + push-service defaults, and the archive default at wss://relay.skate-spots.org, keeping the legacy hosted relay as a fallback during the client-update window. Restored 115/115 archived events; the relay runs behind Caddy with TLS. Docs + AGENTS.md updated.
2026-10-12 12:38:13 +07:00

1653 lines
122 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** uk — batch 2. Filled by the Ukrainian translation pass. */
const ukBatch2 = {
mapUi: {
mapFooter: {
links: "Посилання",
hide: "Сховати панель посилань карти",
},
findingSpots: "Шукаємо Spots",
loadingSpots: "Завантажуємо Spots",
loadingMap: "Завантаження карти...",
mapViewAria: "Вигляд карти",
listViewAria: "Вигляд списку",
layers: "Шари",
mapLayers: "Шари карти",
showOnMap: "Показати на карті",
showResults: "Показати результати",
quickActions: "Швидкі дії",
spots: "Spots",
shops: "Магазини",
gear: "Спорядження",
tours: "Тури",
events: "Події",
crews: "Crews",
spotType: "Тип Spot",
sortBy: "Сортувати за",
trustLevel: "Рівень довіри",
weather: "Погода",
buySellGear: "Купити/Продати спорядження",
stash: "Stash",
more: "Більше",
newHere: "Вперше тут?",
welcomeDesc: "Відкривай скейт-Spots, події та спільноту.",
getOnZapstore: "Завантажити в Zapstore",
dismiss: "Закрити",
addedBy: "Додано",
directions: "Маршрут",
viewDetails: "Детальніше",
viewDetailsArrow: "Детальніше →",
spotDetails: "Деталі Spot",
skateShop: "Скейт-магазин",
skateSpot: "Скейт-Spot",
youAreHere: "Ви тут",
conditions: "Умови",
weatherScoreSuffix: "{{score}}/100 погода",
wind: "Вітер",
humidity: "Вологість",
airQuality: "Якість повітря",
threeDayForecast: "Прогноз на 3 дні",
gearForSale: "Спорядження на продаж ({{count}})",
viewItems: "Переглянути товари →",
viewAllItems: "Переглянути всі {{count}} товарів →",
viewGear: "Переглянути спорядження →",
localTour: "Локальний тур",
meetAt: "Зустріч: {{place}}",
hours: "{{count}} годин",
level: "рівень {{level}}",
viewTour: "Переглянути тур →",
upcomingEvent: "Найближча подія",
viewEvent: "Переглянути подію →",
skateCrew: "Скейт-Crew",
members: "{{count}} учасників",
since: "З {{year}}",
viewCrew: "Переглянути Crew →",
acceptsBitcoin: "Приймає Bitcoin",
boosted: "Просунуто",
website: "Вебсайт",
offlineSavedSpots: "Офлайн · показано збережені Spots",
cantReachRelays: "Не вдається зв'язатися з Relay",
relayOnlineNoAnswer: "Ви онлайн, але спільнотний Relay зараз не відповідає.",
youreOffline: "Ви офлайн.",
savedOnDevice: "Spots, які ви вже бачили, збережені на цьому пристрої й з'являться тут.",
noSpotsMatchTitle: "Немає відповідних Spots",
noSpotsMatchDesc: "Спробуйте інший запит або скиньте фільтри.",
noSpotsMappedYet: "Ще немає Spots на карті",
noSpotsMappedDesc: "Будьте першим, хто нанесе свій Park на карту — це займе хвилину, він ваш, і наступний скейтер, який проїде повз, подякує вам.",
addFirstSpot: "Додати перший Spot",
findSpotsNearMe: "Знайти Spots поблизу",
locating: "Визначаємо місце…",
refiningLocation: "Уточнюємо ваше місце…",
refiningLocationDesc: "Центровано на вашому останньому Spot — отримуємо свіжі дані GPS.",
locatingYou: "Визначаємо ваше місце…",
locatingDesc: "Отримуємо дані GPS. Уперше це може зайняти до хвилини.",
foundYou: "Вас знайдено",
foundYouDesc: "Карту центровано на вашому місці.",
locationPermissionNeeded: "Потрібен дозвіл на місцезнаходження",
permissionNeededDesc: "Дозвольте доступ до місцезнаходження для SkateSpots у Налаштуваннях пристрою → Застосунки → SkateSpots → Дозволи, потім знову натисніть «Поблизу».",
locationTimedOut: "Час очікування місцезнаходження минув",
timeoutNativeDesc: "Не вдалося вчасно визначити місце. Якщо ви в приміщенні, GPS не бачить супутники — увімкніть мережеве визначення місцезнаходження (Налаштування → Місцезнаходження) або вийдіть надвір і спробуйте знову.",
timeoutWebDesc: "Не вдалося вчасно визначити ваше місце. Перевірте сигнал і спробуйте знову.",
noLocationProvider: "Немає постачальника геоданих",
noProviderNativeDesc: "Ваш телефон не надає геодані. На ROM із фокусом на приватність (напр. GrapheneOS) увімкніть мережеве визначення місцезнаходження в Налаштуваннях → Місцезнаходження, або переконайтеся, що GPS увімкнено, і спробуйте надворі.",
noProviderWebDesc: "Постачальник геоданих недоступний. Увімкніть служби геолокації та спробуйте знову.",
locationUnavailable: "Місцезнаходження недоступне",
unavailableNativeDesc: "Увімкніть геолокацію/GPS у налаштуваннях телефону, дозвольте SkateSpots доступ до місцезнаходження (Налаштування → Застосунки → SkateSpots → Дозволи) і спробуйте знову.",
unavailableWebDesc: "Не вдалося визначити ваше місце. Переконайтеся, що служби геолокації увімкнено.",
locationBlocked: "Місцезнаходження заблоковано",
locationBlockedDesc: "Ваш браузер заблокував доступ до місцезнаходження для цього сайту. Ось як його повернути:",
locationPlatformAndroid: "Android Chrome",
locationPlatformIos: "iOS Safari",
locationPlatformDesktop: "Desktop Chrome",
locationPlatformFirefox: "Firefox",
locationStepsAndroid: "Натисніть значок замка в адресному рядку → Налаштування сайту → Місцезнаходження → Дозволити",
locationStepsIos: "Застосунок Налаштування → Safari → Місцезнаходження → Дозволити (або натисніть кнопку «AA» в адресному рядку Safari)",
locationStepsDesktop: "Натисніть значок замка → Налаштування сайту → Місцезнаходження → Дозволити",
locationStepsFirefox: "Натисніть значок замка → З'єднання захищено → Докладніше → Дозволи → Доступ до вашого місцезнаходження → Дозволити",
gotIt: "Зрозуміло",
addSpot: "Додати Spot",
addShop: "Додати магазин",
addEvent: "Додати подію",
addSpotHereTitle: "Додати Spot тут?",
addSpotHereDesc: "Поставте мітку там, де натиснули",
sellGear: "Продати спорядження",
offerTour: "Запропонувати тур",
closeAddMenu: "Закрити меню додавання",
addMenuAria: "Додати Spot, магазин, подію, спорядження або тур",
localChat: "Локальний чат",
localChatDesc: "Живий чат для місця, на якому центрована карта. Оберіть, наскільки широко сягає канал.",
btcMapShowing: "Показано {{count}} місць, де ви можете витратити свої sats поблизу",
btcMapShow: "Показати місця, де можна витратити свої sats (через BTC Map)",
yourPrivateStash: "Ваш приватний Stash",
stashIntro: "Відстежуйте своє спорядження, призначайте ціни й знаходьте обміни з іншими скейтерами.",
encryptionRequired: "Потрібне шифрування",
encryptionRequiredDesc: "Використовуйте підписувач із підтримкою NIP-44 (Alby, nos2x, Amber).",
myStash: "Мій Stash",
encrypted: "Зашифровано",
itemsCount: "{{count}} предметів",
items: "Предмети",
wishlist: "Список бажань",
types: "Типи",
stashEmpty: "Ваш Stash порожній",
addFirstItem: "Додати перший предмет",
wishlistCount: "Список бажань ({{count}})",
myGearCount: "Моє спорядження ({{count}})",
openFullStash: "Відкрити повний Stash",
addItem: "Додати предмет",
searchSpotsPlaceholder: "Пошук Spots...",
selected: "Обрано",
noSpotsFound: "Spots не знайдено. Спробуйте інший запит.",
addingSpotsHint: "Додавання Spots допомагає користувачам знаходити вас під час перегляду конкретних локацій",
report: "Скарга",
spotSingular: "1 Spot",
spotPlural: "{{count}} Spots",
view: "Переглянути",
myCollections: "Мої колекції",
collectionsSubtitle: "Упорядковуйте улюблені Spots у персоналізовані списки",
newCollection: "Нова колекція",
loginToCreate: "Увійдіть, щоб створювати колекції",
loginToCreateDesc: "Зберігайте улюблені Spots у персоналізовані списки, як-от «Поїздка до Барселони 2024» чи «Найкращі Rails у Лос-Анджелесі»",
noCollections: "Ще немає колекцій",
noCollectionsDesc: "Створіть першу колекцію, щоб упорядковувати Spots",
createFirstCollection: "Створіть першу колекцію",
createNewCollection: "Створити нову колекцію",
createCollectionDesc: "Дайте колекції назву та необов'язковий опис",
collectionName: "Назва колекції",
collectionNamePlaceholder: "Поїздка до Барселони 2024",
descriptionOptional: "Опис (необов'язково)",
descriptionPlaceholder: "Мої улюблені Spots з поїздки до Барселони...",
creating: "Створення...",
createCollection: "Створити колекцію",
editCollection: "Редагувати колекцію",
saving: "Збереження...",
saveChanges: "Зберегти зміни",
deleteCollectionTitle: "Видалити колекцію?",
deleteCollectionDesc: "Це назавжди видалить «{{title}}». Самі Spots не постраждають.",
deleting: "Видалення...",
collectionCreated: "Колекцію створено!",
collectionCreatedDesc: "«{{title}}» готовий для Spots",
collectionCreateFailed: "Не вдалося створити колекцію",
collectionUpdated: "Колекцію оновлено!",
changesSaved: "Ваші зміни збережено",
collectionUpdateFailed: "Не вдалося оновити колекцію",
collectionDeleted: "Колекцію видалено",
collectionDeletedDesc: "«{{title}}» видалено",
collectionDeleteFailed: "Не вдалося видалити колекцію",
somethingWentWrong: "Щось пішло не так"
},
mapPage: {
title: "Магазини та Spots",
spots: "Spots",
shops: "Магазини",
filters: "Фільтри",
listView: "Список",
mapView: "Карта",
nearMe: "Поблизу",
searchPlaceholder: "Пошук Spots...",
noSpotsInArea: "У цій області немає Spots",
zoomIn: "Збільшити",
zoomOut: "Зменшити",
myLocation: "Моє місце",
locationsFound: "Знайдено {{count}} локацій",
spotsOnly: "Лише Spots",
shopsOnly: "Лише магазини",
spotsAndShops: "Spots і магазини",
noSpotsMatch: "Жоден Spot не відповідає вашим фільтрам.",
noSpotsYet: "Ще не додано жодного Spot.",
addFirstSpot: "Додати перший Spot"
},
spotUi: {
claim: {
areYouOwner: "Це ваш Spot?",
privateDesc: "Цей Spot позначено як приватний. Якщо він належить вам або ви ним керуєте, заявіть на нього — модератор SkateSpots підтвердить право власності, і ви візьмете оголошення під контроль.",
claimSpot: "Заявити на цей Spot",
nip05Required: "Щоб заявити на приватний Spot, потрібен підтверджений NIP-05 (доказ, що ви контролюєте ідентичність Nostr). Додайте його у профілі та поверніться.",
addNip05: "Додати NIP-05 у налаштуваннях",
pendingTitle: "Заявка на розгляді",
pendingDesc: "Вашу заявку подано. Модератор SkateSpots її розгляне — ви зможете завершити заявлення Spot, щойно її схвалять.",
approvedTitle: "Заявку схвалено",
approvedDesc: "Модератор схвалив вашу заявку. Завершіть, щоб стати власником цього Spot.",
complete: "Завершити заявлення",
submitted: "Заявку подано",
submittedDesc: "Модератор розгляне вашу заявку. Ви візьмете Spot під контроль, коли її схвалять.",
submitFailed: "Не вдалося подати заявку",
submit: "Подати заявку",
submitting: "Надсилання…",
confirmTitle: "Заявити на «{{title}}»?",
confirmIntro: "Ви просите стати власником цього приватного Spot.",
confirmBullet1: "Модератор SkateSpots розглядає запит (ми не можемо перевірити право власності, лише ключі Nostr)",
confirmBullet2: "Якщо схвалять, ви завершите заявлення, станете власником і зможете редагувати Spot",
confirmBullet3: "Початковий Spot залишається в Nostr — мережа децентралізована",
adminTitle: "Заявки на право власності в очікуванні",
adminApprove: "Схвалити",
adminApproved: "Схвалено",
adminApprovedDesc: "Тепер вони можуть завершити заявлення Spot.",
adminApproveFailed: "Не вдалося схвалити заявку",
loginRequired: "Увійдіть, щоб заявити на цей приватний Spot або подати запит на право власності."
},
abandonedDesc: "Востаннє оновлено {{time}}. Якщо початковий власник неактивний, ви можете заявити на цей Spot, щоб підтримувати й покращувати його.",
claimedNotice: "Заявлене оголошення",
claimedNoticeDesc: "Цей Spot було повторно опубліковано новим власником після заявлення. Початкове оголошення може досі існувати окремо.",
abandonedLoginDesc: "Востаннє оновлено {{time}}. Увійдіть, щоб заявити на цей Spot і підтримувати його.",
accessDeniedDesc: "Ви можете редагувати лише Spots, які створили самі.",
accessDeniedTitle: "Доступ заборонено",
addAtLeastOneTag: "Будь ласка, додайте хоча б один тег.",
additionalDetails: "Додаткові деталі (необов'язково)",
additionalDetailsPlaceholder: "Додайте будь-який контекст, який може допомогти...",
addNewTags: "Додати нові теги:",
addNip05InSettings: "Додати NIP-05 у налаштуваннях",
addPhoto: "Додати фото",
addPhotoDesc: "Додайте фото, щоб допомогти іншим відкрити цей Spot.",
addPhotoOrDescription: "Додайте фото або опис",
addPhotoOrDescriptionDesc: "Дайте скейтерам за що зачепитися — знімок або рядок про це місце.",
addPhotos: "Додати фото",
addPhotoToSpot: "Додати фото до Spot",
adminDeleteDialogDesc: "Як адміністратор SkateSpots ви прибираєте «{{title}}». Його буде приховано в усьому застосунку для всіх, і запит на видалення надійде на Relay.",
adminDeleteReason: "Адміністратор SkateSpots видалив Spot «{{title}}»",
airQuality: "Якість повітря",
altSkateSpot: "Скейт-Spot: {{title}}",
areYouShopOwner: "Ви власник магазину?",
askBeforeSkating: "Спитайте перед катанням",
backToSpot: "Назад до Spot",
beFirstToListGear: "Будьте першим, хто виставить спорядження на цьому Spot!",
beFirstToSay: "Будьте першим, хто щось скаже.",
byAuthor: "від {{name}}",
captionPlaceholder: "Додайте підпис (необов'язково) — опишіть, що на фото, коли його знято тощо.",
chatPublicNote: "Будь-хто може це читати — повідомлення публічні й ефемерні. Для приватних розмов використовуйте Direct Messages.",
checkPinBelow: "Перевірте мітку нижче, перш ніж додавати дублікат.",
claimBullet1: "Ви стаєте власником і можете редагувати Spot",
claimBullet2: "Початковий Spot залишається (Nostr децентралізований)",
claimBullet3: "Ваша версія може з'явитися поряд з оригіналом",
claimFailed: "Не вдалося заявити",
claiming: "Заявлення...",
claimIntro: "Ви збираєтеся заявити право власності на цей Spot. Це створить вашу власну версію Spot, яку ви зможете редагувати й підтримувати.",
claimSpot: "Заявити Spot",
claimThisSpot: "Заявити на цей Spot",
claimTitle: "Заявити на «{{title}}»?",
claimWhatHappens: "Що відбувається, коли ви заявляєте:",
coachesAndFilmersAvailable: "Тренери та оператори доступні на цьому Spot",
coachesCount: "Тренери ({{count}})",
coachHere: "Тренер тут",
community: "Спільнота",
communityVerified: "Підтверджено спільнотою",
communityVerifiedTitle: "Інший скейтер зробив внесок тут (фото або звіт про стан).",
conditions: "Умови",
contactForPermission: "Зв'язатися для дозволу",
contactInfo: "Контактна інформація",
contributePhoto: "Додати фото",
contributing: "Додавання...",
couldNotSendMessage: "Не вдалося надіслати повідомлення.",
couldNotSubmit: "Не вдалося надіслати",
couldNotUploadPhoto: "Не вдалося завантажити фото. Ви можете додати його нижче.",
crewsThatSkateHere: "Crews, які катаються тут",
current: "Поточні:",
currentTags: "Поточні теги цього Spot:",
daysAgo: "{{count}} день тому",
daysAgoPlural: "{{count}} днів тому",
deleteDialogDesc: "Це назавжди видалить «{{title}}» з усіх Relay. Цю дію не можна скасувати.",
deletedSpotReason: "Видалений Spot",
deleteFailed: "Не вдалося видалити",
deleteSpot: "Видалити Spot",
deleteSpotTitle: "Видалити Spot?",
differentSpotPublishAnyway: "Це інший Spot — усе одно опублікувати",
dragDropOrClick: "Перетягніть або натисніть",
dropPhotos: "Перетягніть фото",
duplicateOne: "Є Spot у межах 60 м від вашої мітки. Якщо це те саме місце, додайте туди своє фото або звіт про стан замість створення дубліката.",
duplicateOther: "Є Spots у межах 60 м від вашої мітки. Якщо це те саме місце, додайте туди своє фото або звіт про стан замість створення дубліката.",
editSpotSeoDesc: "Редагуйте свій скейт-Spot.",
failedToContribute: "Не вдалося додати",
failedToPublish: "Не вдалося опублікувати",
failedToPublishDesc: "Щось пішло не так. Перевірте консоль для деталей.",
failedToSubmitReport: "Не вдалося надіслати звіт",
failedToSuggestTags: "Не вдалося запропонувати теги",
failedToUpdate: "Не вдалося оновити",
failedToUploadImage: "Не вдалося завантажити зображення",
failedToUploadPhoto: "Не вдалося завантажити фото",
feelsLikeTemp: "Відчувається як {{temp}}°C",
filmersCount: "Оператори ({{count}})",
filmHere: "Знімати тут",
gearSwap: "Обмін спорядженням",
geolocationNotSupported: "Геолокація не підтримується",
geolocationNotSupportedDesc: "Ваш браузер не підтримує геолокацію.",
getDirections: "Прокласти маршрут",
hangTight: "Зачекайте",
hangTightDesc: "Ваше фото ще завантажується. Воно прикріпиться за секунду.",
helpImproveSpot: "Допоможіть покращити цей Spot, додавши фото або запропонувавши теги",
hiddenByModerator: "Приховано модератором",
hiddenByModeratorDesc: "Цей Spot не показується на карті чи в пошуку. Ви все ще бачите його, бо він ваш. Редагування не поверне його — він залишається прихованим, доки модератор не скасує рішення.",
humidity: "Вологість",
imageUploaded: "Зображення завантажено",
imageUploadedDesc: "Ваше зображення успішно завантажено.",
imHere: "Я тут",
invalidCoordinates: "Недійсні координати",
invalidCoordinatesDesc: "Будь ласка, введіть дійсну широту (-90 до 90) і довготу (-180 до 180).",
invalidNpub: "Недійсний npub",
invalidNpubDesc: "Будь ласка, введіть дійсну адресу npub.",
lastReported: "востаннє {{time}}",
listGear: "Виставити спорядження",
listYourGearHere: "Виставте своє спорядження тут",
loadingChat: "Завантаження чату…",
locationError: "Помилка місцезнаходження",
locationFound: "Місцезнаходження знайдено",
locationFoundDesc: "Ваше поточне місце встановлено.",
locationRequired: "Потрібне місцезнаходження",
locationRequiredDesc: "Будь ласка, введіть координати або скористайтеся поточним місцем.",
loginRequiredTitle: "Потрібен вхід",
logInToChat: "Увійдіть, щоб приєднатися до локального чату.",
logInToContributePhotos: "Увійдіть, щоб додавати фото",
loginToEditSpot: "Вам потрібно увійти, щоб редагувати цей Spot.",
logInToReport: "Вам потрібно увійти, щоб поскаржитися на вміст.",
logInToReportStatus: "Увійдіть, щоб повідомити стан цього Spot.",
logInToSuggestTags: "Увійдіть, щоб пропонувати теги",
manageNip05ToClaim: "Керувати NIP-05 для заявлення",
meetAtSpotForPickup: "💡 Зустрічайтеся на цьому Spot для безпечної передачі",
memberOne: "{{count}} учасник",
memberOther: "{{count}} учасників",
messageFailed: "Не вдалося надіслати повідомлення",
messageMapper: "Картограф повідомлень",
messagePlaceholder: "Повідомлення цьому Spot… (спробуйте /me або /who)",
messagesHiddenOne: "{{count}} повідомлення приховано вашим фільтром довіри. Знизьте фільтр, щоб побачити більше.",
messagesHiddenOther: "{{count}} повідомлень приховано вашим фільтром довіри. Знизьте фільтр, щоб побачити більше.",
messagesHiddenShortOne: "{{count}} повідомлення приховано вашим фільтром довіри",
messagesHiddenShortOther: "{{count}} повідомлень приховано вашим фільтром довіри",
metresAway: "{{distance}} м звідси",
moderatorVouchedDesc: "Модератор переглянув цей Spot і поручився за нього. Молодець.",
monthsAgo: "{{count}} місяць тому",
monthsAgoPlural: "{{count}} місяців тому",
newOwnerNpub: "npub нового власника",
newOwnerNpubHint: "Введіть npub користувача, якому хочете передати цей Spot.",
nip05RequiredToClaim: "⚠️ Для заявлення магазинів потрібна верифікація NIP-05",
noCommunitySignalTitle: "Ще немає фото чи звіту про стан від спільноти — ніхто не підтвердив це місце.",
breakdownPhotos: "{{count}} фото",
breakdownStatus: "{{count}} звіт(ів) про стан",
breakdownComments: "{{count}} коментар(ів)",
breakdownReactions: "{{count}} реакція(й)",
breakdownCollections: "{{count}} збереження(нь)",
breakdownZaps: "{{count}} Zap(ів)",
breakdownTags: "{{count}} пропозиція(й) тегів",
breakdownCrews: "{{count}} Crew",
breakdownLab: "{{count}} профільних посилань",
verifyNudgeTitle: "Будьте першим, хто підтвердить цей Spot",
verifyNudgeBody: "Фото або «Я катався тут» — так Spot отримує підтвердження — допоможіть наступному скейтеру.",
verifyNudgeStatus: "Я катався тут",
communityChip: "Спільнота",
seenChip: "Переглянуто",
noGearListedYet: "Спорядження ще не виставлено",
noMessagesYet: "У цьому локальному каналі ще немає повідомлень. Привітайтеся — «хтось катається сьогодні ввечері?»",
noPhoto: "Без фото",
noReportsYet: "Ще немає звітів",
noTags: "Без тегів",
notASkateSpot: "Не скейт-Spot",
offerServicesHere: "💡 Запропонуйте свої послуги на цьому Spot",
photoCaptured: "Фото зроблено!",
photoCapturedDesc: "Ваше фото успішно завантажено.",
photoContributed: "Фото додано!",
photoContributedDesc: "Ваше фото додано до цього Spot.",
photosAdded: "Ваші фото додано.",
photosRecommended: "настійно рекомендується — Spots без фото залишаються позначеними як Неперевірені",
photosUploaded: "Завантажено {{count}} фото",
photoUploaded: "Фото завантажено",
photoUploadedDesc: "Додайте підпис і надішліть, щоб зробити внесок!",
photoUploadFailed: "Не вдалося завантажити фото",
pleaseTryAgain: "Будь ласка, спробуйте знову",
public: "Публічний",
publicChatTitle: "Будь-хто може читати повідомлення в цьому каналі — він публічний і незашифрований.",
recentReports: "Останні звіти",
recipientRequired: "Потрібен отримувач",
recipientRequiredDesc: "Будь ласка, введіть npub нового власника.",
removeAdmin: "Видалити (адмін)",
removeSpot: "Прибрати Spot",
removeSpotAdminTitle: "Прибрати цей Spot? (адмін)",
reportOne: "скарга",
reportContent: "Поскаржитися на вміст",
reportContentDesc: "Допоможіть зберегти спільноту безпечною, повідомляючи про неприйнятний вміст.",
reportedBySkaters: " від {{count}} скейтерів — на розгляді. Якщо це справжній Spot, додайте фото або звіт про стан, щоб підтвердити його.",
reportedNotASpot: "Поскаржилися, що це не скейт-Spot",
reportingType: "Скарга на {{type}}",
reports: "скарги",
reportShop: "Поскаржитися на магазин",
reportSpot: "Поскаржитися на Spot",
reportStatus: "Повідомити стан",
reportSubmitted: "Скаргу надіслано",
reportSubmittedDesc: "Дякуємо, що допомагаєте зберігати SkateSpots у безпеці.",
reportSubmittedLong: "Дякуємо, що допомагаєте зберігати SkateSpots у безпеці й точним. Вашу скаргу розглянуть довірені учасники спільноти.",
reportSubmittedTitle: "Скаргу надіслано",
report: {
notASkateSpot: {
label: "Не скейт-Spot",
description: "Тестовий запис або місце, зовсім не призначене для катання"
},
fakeSpot: {
label: "Фальшивий/неіснуючий Spot",
description: "Цей Spot не існує або місце вказано неправильно"
},
stolenPhotos: {
label: "Вкрадені/фальшиві фото",
description: "Фото — це стокові зображення або вкрадені з іншого місця"
},
spamAd: {
label: "Спам або реклама",
description: "Промо-вміст або дубльовані оголошення"
},
dangerousLocation: {
label: "Небезпечне місце",
description: "Приватна власність, небезпечно або незаконно для доступу"
},
inappropriateContent: {
label: "Неприйнятний вміст",
description: "Містить образливий або дорослий вміст"
},
impersonation: {
label: "Видача себе за іншого",
description: "Хтось видає себе за когось іншого"
},
other: {
label: "Інше",
description: "Щось інше, не зазначене вище"
}
},
targetType: {
spot: "Spot",
event: "Подія",
tour: "Тур",
shop: "Магазин",
user: "Користувач",
listing: "Оголошення",
coach: "Тренер",
filmer: "Оператор"
},
sameOwner: "Той самий власник",
sameOwnerDesc: "Не можна передати поточному власнику.",
saveChanges: "Зберегти зміни",
saving: "Збереження...",
services: "Послуги",
shareSpotText: "Глянь на цей скейт-Spot: {{title}}",
shelter: "Укриття",
shelterHint: "Чи відкритий цей Spot впливу погоди? Допомагає скейтерам знайти сухі місця, коли йде дощ.",
shopClaimDesc: "Якщо він належить вам або ви ним керуєте, ви можете заявити на цей магазин, щоб підтвердити право власності та керувати оголошенням.",
shopClaimNip05Hint: "Щоб заявити на цей магазин, додайте ідентифікатор NIP-05, що відповідає домену сайту магазину.",
skatersActiveDesc: "Люди, які писали в цьому каналі за останні 24 год.",
skatersActiveOne: "{{count}} скейтер активний тут",
skatersActiveOther: "{{count}} скейтерів активні тут",
skatersSellingGear: "Скейтери на цьому Spot продають спорядження",
skateSpot: "Скейт-Spot",
somethingWentWrong: "Щось пішло не так",
spot: "Spot",
spotAdded: "Spot додано!",
spotAddedDesc: "Ваш скейт-Spot опубліковано в мережі.",
spotAddedNoPhoto: "Опубліковано — і позначено як Неперевірений, доки хтось не додасть фото. Фото Spot багато важить.",
spotChat: "Чат Spot",
spotClaimed: "Spot заявлено!",
spotClaimedDesc: "Тепер ви власник цього Spot. Ви можете редагувати його зі свого профілю.",
spotDeleted: "Spot видалено",
spotDeletedDesc: "Запит на видалення надіслано на Relay. Більшість Relay приберуть цей вміст.",
spotMayAlreadyBeOnMap: "Цей Spot, можливо, вже на карті",
spotMayAlreadyExist: "Цей Spot, можливо, вже існує",
spotMayBeAbandoned: "Spot може бути закинутий",
spotPhotoAlt: "Spot",
spotRemoved: "Spot прибрано",
spotRemovedDesc: "Цей Spot було прибрано, і його буде приховано в усьому SkateSpots.",
spotSeoDesc: "Перегляньте цей скейт-Spot на SkateSpots.",
spotStatus: "Стан Spot",
spotStatusDesc: "Чи «{{title}}» все ще катабельний? Повідомте спільноті про його поточний стан.",
spotTypeRequired: "Потрібен тип Spot",
spotTypeRequiredDesc: "Будь ласка, оберіть тип Spot, щоб скейтери знали, до чого вони під'їжджають.",
spotUpdated: "Spot оновлено!",
spotUpdatedDesc: "Ваші зміни опубліковано в мережі.",
staffVerifiedTitle: "Адміністратор SkateSpots переглянув і поручився за цей Spot.",
statusNotePlaceholder: "Необов'язково: додайте деталі (напр. «нові кноби на Ledge», «охорона виганяє після 18:00»)",
statusReported: "Стан повідомлено",
statusReportedDesc: "Дякуємо, що підтримуєте карту свіжою. Ваш звіт опубліковано.",
submitReport: "Надіслати звіт",
submitting: "Надсилання...",
suggestedByUser: "Запропоновано {{count}} користувачем",
suggestedByUsers: "Запропоновано {{count}} користувачами",
suggestedTagsContent: "Запропоновані теги для {{title}}: {{tags}}",
suggestNTags: "Запропонувати {{count}} тегів",
suggestOneTag: "Запропонувати 1 тег",
suggestTags: "Запропонувати теги",
suggestTagsDesc: "Допоможіть категоризувати цей Spot, пропонуючи відповідні теги.",
tags: "Теги",
tagsHint: "Додайте теги для особливостей, покриттів, вайбу (макс. {{max}})",
tagsSuggested: "Теги запропоновано!",
tagsSuggestedDesc: "Ваші пропозиції тегів надіслано.",
takePhoto: "Зробити фото",
threeDayForecast: "Прогноз на 3 дні",
tipTheMapper: "Подякувати картографу",
tipTheMapperDesc: "Цей Spot був корисним? Надішліть Zap, щоб подякувати картографу!",
titleRequired: "Потрібна назва",
titleRequiredDesc: "Будь ласка, введіть назву цього Spot.",
today: "Сьогодні",
tomorrow: "Завтра",
transferDesc: "Передати «{{title}}» іншому користувачу. Цю дію не можна скасувати.",
transferFailed: "Не вдалося передати",
transferOwnership: "Передати право власності",
transferRequestContent: "Запит на передачу права власності на Spot «{{title}}»",
transferRequested: "Передачу запитано",
transferRequestedDesc: "Новому власнику потрібно заявити на Spot, щоб завершити передачу.",
transferring: "Передача...",
transferSpotOwnership: "Передати право власності на Spot",
transferWarningDesc: "Після передачі ви більше не зможете редагувати чи видаляти цей Spot.",
typeToSearchTags: "Введіть для пошуку або додавання тегів...",
underReview: " — на розгляді. Якщо це справжній Spot, додайте фото або звіт про стан, щоб підтвердити його.",
untitledSpot: "Spot без назви",
unverified: "Неперевірений",
updateDetailsFor: "Оновіть деталі для {{title}}",
updateSpotDesc: "Оновіть інформацію про цей Spot. Усі поля з * обов'язкові.",
uploadAPhoto: "Завантажити фото",
uploadAPhotoHint: "Перетягніть або натисніть · JPG, PNG, WebP",
uploadedAlt: "Завантажено",
uploadFailed: "Не вдалося завантажити",
uploadingPhoto: "Завантаження фото…",
uploadPhotoFirst: "Будь ласка, спершу завантажте фото.",
uvIndex: "УФ-індекс",
verifiedBySkateSpots: "Перевірено SkateSpots",
viewPhotoFullScreen: "Переглянути фото на весь екран",
viewPhotoOf: "Фото {{n}} з {{total}}",
warning: "Попередження",
weatherConditions: "Погодні умови",
weatherOnly: "лише погода",
weatherOnlyUnconfirmed: "Лише погода. Ніхто ще не підтвердив, що це скейт-Spot, тож оцінки умов немає — додайте фото або звіт про стан, щоб підтвердити його.",
whyReporting: "Чому ви скаржитеся?",
wind: "Вітер",
yearsAgo: "{{count}} рік тому",
yearsAgoPlural: "{{count}} років тому"
},
diyUi: {
title: "DIY — Зроби сам",
tagline: "Посібники, відкриті інструменти та креслення, щоб зробити власні Deck, рампи й бетонні Spots — а тоді знайти людей, місця й ринок до них.",
doItWithPeople: "Роби це з людьми",
backToDiy: "Назад до DIY",
calc: {
title: "Калькулятор вартості Deck",
intro: "Скільки коштує зробити Deck — праця, обладнання, матеріали, час процесу, пакування й маржа — і справедлива ціна продажу. Збережено на цьому пристрої."
},
designer: {
title: "Конструктор Deck",
intro: "Сформуйте контур скейтборду чи лонгборду, а тоді експортуйте друкований шаблон 1:1, SVG або DXF для CNC. Збережено на цьому пристрої.",
presets: "Пресети",
dimensions: "Розміри",
shape: "Форма",
kicks: "Kicks",
hardware: "Отвори для Trucks",
width: "Макс. ширина",
wheelbase: "Wheelbase",
nose: "Довжина носа",
tail: "Довжина хвоста",
length: "Загальна довжина",
waist: "Талія",
endRound: "Округлість країв",
concave: "Concave",
thickness: "Товщина",
tailKick: "Kick хвоста",
noseKick: "Kick носа",
holeNew: "New school (2.125″)",
holeOld: "Old school (2.5″)",
holeSpacing: "New school — 2.125″ × 1.625″ (54 × 41 мм); old school — 2.5″ × 1.625″. Монтажні отвори 3/16″.",
topView: "Вигляд зверху",
sideView: "Бічний профіль",
concaveSection: "Переріз Concave",
export: "Експорт",
pdfA4: "PDF 1:1 · A4",
pdfLetter: "PDF 1:1 · Letter",
printNote: "Друкуйте PDF на 100% (без «вписати в сторінку»), а тоді склейте аркуші за хрестиками в кутах. SVG теж у натуральну величину.",
note: "Це 2D-контур, який ви обводите й вирізаєте. Для повних 3D-форм і проєктування прес-форм усе ще варто взяти справжній CAD."
},
source: "Джерело",
comingSoon: "Незабаром",
footer: "Покрокові посібники вже в дорозі. Поки що: знайдіть людей, які будують, у The Lab, нанесіть свій Spot на карту та купуйте чи продавайте на Маркетплейсі. Працюйте безпечно — захист, рукавички та окуляри.",
categories: {
boards: "Deck",
ramps: "Рампи та дерев'яні перешкоди",
concrete: "Бетон і DIY Spots",
repairs: "Ремонт і налаштування",
tools: "Інструменти та креслення"
},
cards: {
ossBuild: {
title: "Зібрати скейтборд",
blurb: "Покрокове виготовлення Deck — шпон, форми, преси й оздоблення."
},
sk8cad: {
title: "SK8CAD",
blurb: "Відкритий CAD для форм Deck, Concave та проєктування прес-форм."
},
deckCost: {
title: "Вартість і ціна Deck",
blurb: "Порахуйте матеріали, працю та справедливу ціну продажу ще до того, як почнете."
},
deckDesigner: {
title: "Конструктор Deck",
blurb: "Сформуйте контур і надрукуйте шаблон 1:1 — або експортуйте SVG/DXF для CNC."
},
ledgeBox: {
title: "Збудувати Ledge або бокс",
blurb: "Дерев'яна перешкода для початківців, яку можна зробити за вихідні."
},
quarterpipe: {
title: "Збудувати quarterpipe",
blurb: "Креслення рампи, перехід і коупінг для домашнього міні."
},
flatbar: {
title: "Збудувати flatbar",
blurb: "Дешево, портативно й найкращий спосіб вчити Rails."
},
concreteBasics: {
title: "Основи бетону",
blurb: "Замішування, опалубка та оздоблення Ledge чи банки, що протримається."
},
coping: {
title: "Коупінг і краї",
blurb: "Як виставити коупінг і оздобити перехід для гладкого грінду."
},
buyParts: {
title: "Купити деталі та спорядження",
blurb: "Беріть Deck, кріплення й інструменти в продавців на Маркетплейсі."
},
mapSpot: {
title: "Нанести DIY Spot на карту",
blurb: "Щось збудували? Додайте на карту, щоб інші могли знайти й покататися."
},
regrip: {
title: "Переклеїти Griptape",
blurb: "Зніміть старий гріп і акуратно наклейте новий Griptape."
},
tune: {
title: "Налаштувати Bearings і Trucks",
blurb: "Почистіть Bearings, замініть бушинги й налаштуйте геометрію Trucks."
},
printMolds: {
title: "3D-друковані форми",
blurb: "Файли друкованих прес-форм і вирівнювальних основ від спільноти."
},
sk8cadTools: {
title: "Інструменти для форм і вирівнювання",
blurb: "Проєктуйте форми з вбудованими вирівнювальними основами."
}
},
actions: {
findBuilder: {
title: "Знайти будівельника",
blurb: "Будівельники рамп і DIY у The Lab, які можуть спроєктувати чи залити це для вас."
},
findCrew: {
title: "Знайти DIY Crew",
blurb: "Crews, зосереджені на будівництві — приєднуйтеся до тих, хто втілює Spots у життя."
},
mapSpot: {
title: "Нанести DIY Spot на карту",
blurb: "Додайте Spot, який збудували, щоб він жив на карті."
},
sellBuilds: {
title: "Продавати свої вироби",
blurb: "Виставляйте Deck, рампи чи деталі, які робите, на Маркетплейсі."
},
findCoach: {
title: "Знайти тренера",
blurb: "Тренери, які навчають DIY-модулів зі скейтингу та будівництва Spots."
}
}
},
labelsUi: {
spotCategory: {
street: {
label: "Street",
description: "Випадкові знайдені місця, міський рельєф"
},
transition: {
label: "Transition",
description: "Вигнуті/похилі поверхні"
},
park: {
label: "Park",
description: "Побудовані скейт-Park"
},
plaza: {
label: "Plaza",
description: "Міські площі (як MACBA, Love Park)"
}
},
spotFeature: {
wallrides: "Wallrides",
stairs: "Сходи та поручні",
rails: "Rails",
ledges: "Ledges та бордюри",
gaps: "Gaps",
flatground: "Flatground",
"manual-pads": "Manual Pads",
"half-pipes": "Half Pipes",
"quarter-pipes": "Quarter Pipes",
"mini-ramps": "Mini Ramps",
bowls: "Bowls",
vert: "Vert Ramps",
"mega-ramps": "Mega Ramps",
hubbas: "Hubbas",
"euro-gaps": "Euro Gaps",
banks: "Banks",
"spine-ramps": "Spine Ramps",
"roll-ins": "Roll-ins",
hips: "Hips",
volcano: "Volcano",
pyramids: "Pyramids / Funboxes",
"snake-runs": "Snake Runs",
"pump-track": "Pump Track Rollers",
"flat-bars": "Flat Bars"
},
spotType: {
street: "Street",
transition: "Transition",
park: "Park",
plaza: "Plaza",
wallrides: "Wallrides",
stairs: "Сходи та поручні",
rails: "Rails",
ledges: "Ledges та бордюри",
gaps: "Gaps",
flatground: "Flatground",
"manual-pads": "Manual Pads",
"half-pipes": "Half Pipes",
"quarter-pipes": "Quarter Pipes",
"mini-ramps": "Mini Ramps",
bowls: "Bowls",
vert: "Vert Ramps",
"mega-ramps": "Mega Ramps",
hubbas: "Hubbas",
"euro-gaps": "Euro Gaps",
banks: "Banks",
"spine-ramps": "Spine Ramps",
"roll-ins": "Roll-ins",
hips: "Hips",
volcano: "Volcano",
pyramids: "Pyramids / Funboxes",
"snake-runs": "Snake Runs",
"pump-track": "Pump Track Rollers",
"flat-bars": "Flat Bars",
diy: "DIY",
rail: "Rail",
ledge: "Ledge",
gap: "Gap",
bowl: "Bowl",
stall: "Stall",
slappy: "Slappy"
},
access: {
public: {
label: "Публічне — відкрите для всіх"
},
private: {
label: "Приватна власність — потрібен дозвіл"
},
locals: {
label: "Спершу спитайте місцевих"
}
},
shelter: {
outdoor: {
label: "Відкрите",
short: "Відкрите",
description: "Повністю під відкритим небом — дощ зупиняє катання"
},
partial: {
label: "Частково накрите",
short: "Частково накрите",
description: "Деякі перешкоди залишаються сухими"
},
covered: {
label: "Накрите / під дахом",
short: "Накрите",
description: "Надворі, але під дахом"
},
indoor: {
label: "У приміщенні",
short: "У приміщенні",
description: "Повністю закрите — катання у будь-яку погоду"
}
},
eventType: {
contest: "Contest",
demo: "Demo",
session: "Session",
workshop: "Майстерня",
premiere: "Прем'єра",
tradeshow: "Виставка",
gameskate: "Game of Skate",
concert: "🎸 Концерт",
jam: "🎵 Jam",
festival: "🎪 Фестиваль",
popup: "🎯 Pop-up"
},
gearCategory: {
deck: "Deck",
trucks: "Trucks",
wheels: "Wheels",
bearings: "Bearings",
shoes: "Скейт-взуття",
clothing: "Одяг",
protective: "Захисне спорядження",
stickers: "Стікери",
wax: "Wax",
tools: "Інструменти",
griptape: "Griptape",
rubbrick: "Rub Brick"
},
gearCondition: {
new: {
label: "Нове",
description: "Ніколи не використовувалося, ще в упаковці"
},
like_new: {
label: "Як нове",
description: "Майже не використовувалося, відмінний стан"
},
good: {
label: "Добре",
description: "Звичайне зношення, працює бездоганно"
},
well_used: {
label: "Добре вживане",
description: "Має сліди зносу, але ще працює"
}
},
priceType: {
fixed: {
label: "Фіксована ціна",
description: "Ціна встановлена в USD або sats"
},
free: {
label: "Безкоштовно",
description: "Віддаю"
},
trade: {
label: "Обмін",
description: "Хочу обмінятися"
},
offer: {
label: "Зробити пропозицію",
description: "Ціна договірна"
}
},
listingType: {
selling: {
label: "Продаж",
description: "Спорядження виставлено на продаж"
},
wtb: {
label: "Хочу купити",
description: "Шукаю конкретне спорядження"
}
},
tour: {
spotType: {
street: "Street",
park: "Park",
diy: "DIY",
transition: "Transition",
hidden: "Приховані перлини"
},
category: {
local: {
label: "Локальний тур",
description: "Покажіть приховані Spots у вашому місті"
},
national: {
label: "Національний тур",
description: "Багатоміські поїздки країною"
},
international: {
label: "Міжнародний тур",
description: "Пригоди за кордоном у кількох країнах"
},
destruction: {
label: "World Destruction",
description: "Глобальне командне змагання у стилі KOTR"
}
}
},
crew: {
vibe: {
street: "Street",
transition: "Transition / Vert",
park: "Park",
diy: "DIY",
cruising: "Cruising / Зйомка",
oldschool: "Old School",
allterrain: "All Terrain",
girls: "Дівчата / Жінки",
youth: "Юнь / Ґроми",
adaptive: "Адаптивний",
punk: "Punk",
hiphop: "Rap / Hip-Hop"
},
focus: {
mixed: "Змішаний / Загальний",
builder: "DIY та будівельники",
photo: "Фото та відео",
coaching: "Тренерство",
art: "Мистецтво та дизайн",
music: "Гурт і музика",
wellness: "Тренування та фізіо"
},
focusDescription: {
mixed: "Звичайний скейт-Crew — показується лише на сторінці Crews.",
builder: "Crew з DIY / будівництва Park — також показується в The Lab у розділі Будівельники.",
photo: "Crew зі зйомки, фотографії чи монтажу — також показується в The Lab у розділі Фото та відео.",
coaching: "Crew з тренерства / уроків — також показується в The Lab у розділі Тренерство.",
art: "Колектив з мистецтва, дизайну, графіті чи татуювань — також показується в The Lab у розділі Мистецтво та дизайн.",
music: "Гурт або музичний колектив — також показується в The Lab у розділі Музика.",
wellness: "Crew з тренувань, фітнесу чи фізіо — також показується в The Lab у розділі Тренування."
},
lookingFor: {
filmer: "Оператор",
photographer: "Фотограф",
editor: "Відеомонтажер",
coach: "Тренер",
builder: "Будівельник рамп",
artist: "Художник / Дизайнер",
musician: "Музикант / Гурт",
members: "Нові учасники"
},
role: {
filmer: "Оператор",
photographer: "Фотограф",
editor: "Монтажер",
coach: "Тренер",
builder: "Будівельник",
artist: "Художник",
graffiti: "Графіті",
tattoo: "Тату",
trainer: "Тренер",
musician: "Музикант",
judge: "Суддя",
manager: "Менеджер команди",
og: "OG"
}
},
memberVisibility: {
public: {
label: "Публічно",
description: "Будь-хто бачить вас у цьому Crew — на публічній сторінці Crew і в пошуку товаришів по Crew."
},
crew: {
label: "Лише Crew",
description: "Лише підтверджені товариші по Crew і засновник бачать вас тут. Для всіх інших ви — анонімний «прихований учасник». Зауважте: це приватність на рівні застосунку — ваш тег членства все одно публічно існує на Relay, просто ніколи не показується стороннім."
}
},
tagCategory: {
features: {
name: "Особливості",
description: "Перешкоди та рельєф"
},
surfaces: {
name: "Покриття",
description: "Матеріали та текстури"
},
sizes: {
name: "Розміри",
description: "Габарити та масштаб"
},
stairs: {
name: "Кількість сходинок",
description: "Кількість сходинок"
},
vibes: {
name: "Вайб",
description: "Атмосфера та стан"
},
location: {
name: "Локація",
description: "Контекст розташування"
},
tricks: {
name: "Трюки",
description: "Гарно для конкретних трюків"
}
},
spotTagCategory: {
street: {
label: "Street",
description: "Вуличні Spots — сходи, Rails, Ledges"
},
park: {
label: "Park",
description: "Скейт-Park — публічні чи приватні"
},
diy: {
label: "DIY",
description: "DIY/саморобні Spots"
},
plaza: {
label: "Plaza",
description: "Публічні площі зі скейт-дружньою архітектурою"
}
},
status: {
active: {
label: "Активний",
description: "Усе гаразд — катай."
},
bust: {
label: "Bust",
description: "Високий ризик, що виженуть — охорона чи копи."
},
skate_stopped: {
label: "Закатаний",
description: "Кноби / заглушки, але частково катабельний."
},
closed: {
label: "Закрито",
description: "Тимчасово закрито — будівництво або подія."
},
gone: {
label: "Зник",
description: "Знесено, заасфальтовано чи назавжди огороджено."
}
},
price: {
free: "FREE",
trade: "Обмін",
makeOffer: "Зробити пропозицію",
offer: "Пропозиція"
}
},
feesUi: {
feeFeaturedEventLabel: "Подія в рекомендаціях",
feeFeaturedEventDesc: "Просувайте свою подію на SkateSpots",
feeFeaturedEventBenefit: "Ваша подія з'являється вгорі сторінки подій",
feeLabProfileLabel: "Профіль Lab Pro",
feeLabProfileDesc: "Просувайте свої послуги в The Lab",
feeLabProfileBenefit: "Значок Pro + рекомендоване розміщення, коли скейтери переглядають The Lab",
feeFeaturedShopLabel: "Магазин у рекомендаціях",
feeFeaturedShopDesc: "Просувайте свій скейт-магазин на карті та в каталозі",
feeFeaturedShopBenefit: "Значок «Перевірено» + рекомендована мітка на карті",
feeFeaturedTourLabel: "Тур у рекомендаціях",
feeFeaturedTourDesc: "Просувайте свій тур на SkateSpots",
feeFeaturedTourBenefit: "Значок Pro + розміщення вгорі, коли скейтери переглядають тури",
duration7d: "7 днів",
duration30d: "1 місяць",
duration90d: "3 місяці",
duration365d: "12 місяців",
metaActive: "{{label}} — активний",
daysRemainingOne: "залишився {{count}} день",
daysRemainingMany: "залишилося {{count}} днів",
zapRequestContent: "SkateSpots {{label}} ({{tier}})",
errGenerate: "Не вдалося створити рахунок",
paymentReceived: "⚡ Платіж отримано!",
paymentReceivedDesc: "{{amount}} sats — {{label}} тепер активний.",
autoPayFailed: "Автооплата не вдалася",
autoPayFailedDesc: "Оплатіть вручну за допомогою QR або рахунку нижче.",
payStatusUnknown: "Статус платежу невідомий — можливо, платіж пройшов. Перевірте гаманець, перш ніж платити знову.",
invoiceCopied: "Рахунок скопійовано!",
activeBang: "{{label}} активний!",
chooseDuration: "Оберіть тривалість",
bestValue: "Найвигідніше",
perDay: "{{price}}/день",
validFor: "Дійсний протягом",
amountLine: "~${{usd}} USD · до {{name}} · {{tier}}",
payToContinue: "Сплатіть {{amount}} sats, щоб продовжити",
generating: "Створення рахунку…",
processing: "Обробка платежу…",
invoiceQrAlt: "QR-код рахунку Lightning",
copyInvoice: "Скопіювати рахунок",
openWallet: "Відкрити гаманець",
payConnected: "Сплатити з під'єднаного гаманця",
scanAny: "Скануйте будь-яким Lightning-гаманцем",
tryAgain: "Спробувати знову",
proReceiptTitle: "🦧⚡ Sasquatch Pro — ви в грі!",
proReceiptPass: "Перепустка: {{pass}} ({{sats}} sats)",
proReceiptActiveUntil: "Активна до: {{until}}",
proReceiptUnlocked: "Що ви відкрили:",
proReceiptBullet1: "• Персональний асистент — я читаю ваш Stash, Crews, Spots та оголошення",
proReceiptBullet2: "• Чернетки дій — виставити спорядження, опублікувати стан Spot, планувати поїздки (ви підтверджуєте)",
proReceiptBullet3: "• Відповіді, що використовують ваш особистий контекст, а не лише публічні дані",
proReceiptBullet4: "• ⚡ Ви напряму підтримуєте SkateSpots і зберігаєте його безкоштовним та без реклами",
proReceiptThanks: "Дякуємо, що зберігаєте SkateSpots безкоштовним та без реклами. А тепер — катати. 🛹",
proReceiptSubject: "Квитанція Sasquatch Pro",
receiptContent: "Sasquatch Pro — перепустка прихильника {{tier}} 🦧⚡",
receiptAlt: "Перепустка прихильника Sasquatch Pro ({{tier}}), дійсна до {{until}}",
purchaseComment: "Sasquatch Pro — {{tier}} 🦧",
errLogin: "Увійдіть, щоб перейти на Pro.",
errStart: "Не вдалося розпочати покупку.",
errRecord: "Не вдалося записати вашу перепустку."
},
cardUi: {
save: "Зберегти картку в Nostr",
saved: "Картку збережено",
savedDesc: "Ваша картка тепер підписана й перевірна.",
saveFailed: "Не вдалося зберегти картку",
notPublished: "Не опубліковано",
titleNeon: "Rider",
titleRest: "Card",
saveFrontPng: "Зберегти лицьовий бік (PNG)",
expired: "ПРОСТРОЧЕНО",
logoUploaded: "Логотип завантажено",
logoUploadFailed: "Не вдалося завантажити логотип",
venue: "Прив'язане місце (необов'язково)",
venueNone: "Без місця",
venueHint: "Оберіть один зі своїх Spots, щоб прив'язати цю перепустку до місця. Верифікатор підтвердить, що він ваш.",
venuePick: "Оберіть своє місце",
parkNoVenue: "Перепустку Park може видавати лише власник місця — спершу нанесіть Spot, яким володієте, на карту.",
parkAddVenue: "Додати Spot",
parkNeedsVenue: "Оберіть місце, яким володієте",
parkIssued: "Видані перепустки",
parkRevoke: "Відкликати",
parkRevoked: "Відкликано",
parkRevokeFailed: "Не вдалося відкликати",
v: {
valid: "Дійсна",
validDesc: "Підпис дійсний і виданий місцем.",
expired: "Прострочена",
expiredDesc: "Минула дата дійсності.",
revoked: "Відкликана",
revokedDesc: "Видавець скасував цю перепустку — не приймайте її.",
invalid: "Недійсна",
invalidDesc: "Підпис не перевіряється. Не довіряйте їй.",
notFound: "Не знайдено",
notFoundDesc: "Немає відповідного запису на Relay.",
unverifiedIssuer: "Неперевірений видавець",
unverifiedIssuerDesc: "Ця перепустка вказує місце, яким не володіє ключ видавця.",
notBound: "Не прив'язана",
notBoundDesc: "Не прив'язана до місця — нічого не доводить про доступ.",
noRsvp: "Немає RSVP",
noRsvpDesc: "У власника немає зареєстрованого RSVP на цю подію.",
admitted: "Допущено",
admittedDesc: "Подія організатора + власник підтвердив RSVP.",
noHolder: "У посиланні немає власника",
noHolderDesc: "У цьому QR немає власника квитка (`?h=`), тож власника не можна перевірити."
},
passes: {
tab: "Мої перепустки",
pass: "Перепустка доступу",
none: "Ще немає перепусток. Коли місце чи організатор видасть вам одну, вона з'явиться тут."
},
facets: {
title: "Показати грані ідентичності",
crews: "Crews",
local: "Локальні",
roles: "Ролі Lab"
},
roles: {
coach: "Тренер",
filmer: "Оператор",
editor: "Монтажер",
photographer: "Фотограф",
builder: "Будівельник",
artist: "Художник",
graffiti: "Графіті",
tattoo: "Тату",
trainer: "Тренер",
musician: "Музикант",
judge: "Суддя",
organizer: "Організатор",
barber: "Барбер"
},
crew: {
crewCard: "CREW CARD",
crewSub: "Ваш Crew на картці",
pick: "Оберіть Crew",
none: "Ви ще не в жодному Crew — спершу приєднайтеся чи створіть.",
hint: "Картка будується з власних підписаних даних Crew. Редагуйте Crew на його сторінці, щоб змінити її.",
members: "УЧАСНИКИ",
spots: "SPOTS",
est: "Засн. {{year}}",
openCall: "Відкритий набір",
verifiedCrew: "Перевірений Crew",
viewCrew: "Переглянути Crew"
},
event: {
pass: "EVENT PASS",
passSub: "Перепустка на подію, яку ви відвідуєте",
pick: "Оберіть подію",
none: "Ще немає подій — спершу створіть одну або підтвердьте RSVP.",
hint: "Перепустка будується з власних підписаних даних події. Лише організатор може її змінити.",
admits: "ДОПУСКАЄ",
going: "{{count}} йдуть",
verifiedEvent: "Перевірена подія",
viewEvent: "Переглянути подію",
issuePass: "Видати перепустку для реєстрації",
issuePassBtn: "Видати перепустку",
issuePassHint: "Підписана перепустка для конкретного відвідувача — він показує її на вході.",
notOrganiser: "Лише організатор може видавати перепустки",
passIssued: "Перепустку видано",
issueFailed: "Не вдалося видати перепустку",
issuedPasses: "Видані перепустки для реєстрації"
},
studio: {
unsaved: "Незбережені зміни",
saved: "Збережено",
saveChanges: "Зберегти зміни",
allSaved: "Збережено — усе актуально",
showOnCard: "Показати на картці",
derived: "З вашого профілю скейтера",
noSkaterProfile: "Ще немає профілю скейтера —",
editSkaterProfile: "додайте свої стилі та рівень",
noPhoto: "Ще немає фото профілю —",
addPhoto: "додайте його у профілі",
finishTitle: "Завершіть свою картку",
finishDesc: "Фото та профіль скейтера зроблять її справжньою.",
checkPhoto: "Фото профілю",
checkName: "Відображуване ім'я",
checkProfile: "Стилі та рівень",
checkCrew: "Приєднайтеся до Crew",
moreTypes: "Більше типів карток відкривається, коли ви наносите Spots, якими володієте, приєднуєтеся до Crews або підтверджуєте RSVP на події.",
accent: "Акцентний колір",
accentHint: "Перевизначає акцент теми",
accentClear: "Використати колір теми",
logo: "Власний логотип / герб",
logoAdd: "Завантажити",
logoChange: "Змінити",
logoClear: "Прибрати"
},
back: {
title: "Друкований зворотний бік",
desc: "Crews, ролі, спонсори та посилання на звороті",
showBack: "Показати зворот",
showFront: "Показати лицьовий бік",
empty: "Тут ще нічого немає — додайте Crews, ролі чи спонсорів."
},
verify: {
checking: "Перевіряємо картку…",
notFound: "Картку не знайдено",
notFoundDesc: "На Relay не знайдено відповідної події. Можливо, її видалено або посилання неправильне.",
invalid: "Підпис недійсний",
invalidDesc: "Ця подія існує, але її підпис не перевіряється. Не довіряйте їй.",
authentic: "Справжня",
authenticDesc: "Підпис видавця дійсний.",
kind: "Тип",
kindPark: "Park Access Card",
kindRider: "Rider Card",
kindCrew: "Crew Card",
kindEvent: "Event pass",
organiser: "Організатор",
expired: "Прострочена",
valid: "Дійсна",
holder: "Власник",
ticketHolder: "Власник квитка",
rsvp: "RSVP",
rsvpGoing: "Йду",
rsvpInterested: "Цікавить",
rsvpNone: "RSVP не знайдено",
revoked: "Перепустку відкликано",
revokedDesc: "Видавець скасував цю перепустку — не приймайте її.",
issuedBy: "Видано",
accessLevel: "Рівень доступу",
validThru: "Дійсна до",
selfIssued: "Статус",
selfIssuedDesc: "Самовидана картка ідентичності",
venue: "Місце",
venueVerified: "Перевірено — ключ власника цього місця збігається з видавцем.",
venueMismatch: "Ця перепустка вказує місце, яким не володіє ключ видавця.",
venueNone: "Не прив'язана до місця.",
viewCard: "Переглянути картку",
disclaimer: "Дійсний підпис доводить, хто підписав цю картку, — це не доказ навичок чи прав доступу понад те, що видало місце.",
details: "Деталі",
invalidLink: "Недійсне посилання",
invalidLinkDesc: "Це не схоже на дійсне посилання на картку."
},
public: {
invalid: "Це не схоже на дійсне посилання на картку.",
createYourOwn: "Створіть власну картку",
editYourCard: "Редагуйте свою картку",
backToEditor: "Назад до редактора",
backHome: "На головну",
notCustomised: "Цей скейтер ще не налаштував свою картку — це стандартний вигляд.",
verifyNote: "Скануйте QR-код на картці, щоб перевірити її."
}
},
routeUi: {
destination: "Пункт призначення",
routeTo: "Маршрут до {{label}}",
routeToLabel: "Маршрут до",
search: "Пошук",
description: "Варіанти маршруту та навігація в застосунку.",
routeMapAria: "Карта маршруту",
findingLocation: "Визначаємо ваше місце…",
plottingRoute: "Прокладаємо маршрут…",
refiningLocation: "Уточнюємо місце…",
offlineSavedRoute: "Офлайн · збережений маршрут {{age}}",
tapMapStart: "Натисніть на карту, щоб задати початкову точку",
fitRouteAria: "Показати весь маршрут на карті",
wholeRoute: "Увесь маршрут",
next: "Далі",
nextStep: "Далі · крок {{n}}",
followTheLine: "Рухайтеся по лінії",
toTheTurn: "до повороту",
toGo: "залишилось",
tryAgain: "Спробувати знову",
mode: {
foot: "Skate / Пішки",
bike: "Велосипед",
moto: "Мото",
car: "Авто",
transit: "Транспорт"
},
from: "Звідки",
myLocation: "Моє місце",
tapTheMap: "Натисніть на карту…",
chooseOnMap: "Обрати на карті",
direct: "прямий",
transferOne: "1 пересадка",
transfers: "{{count}} пересадок",
options: "{{count}} варіантів",
ride: "їхати",
arrive: "прибуття",
speedAvg: "{{speed}} км/год у сер.",
stepsCount: "{{count}} кроків",
onABoard: "на дошці",
usesDrivingRoads: "використовує автомобільні дороги",
drivingEstimate: "оцінка для авто",
updating: "оновлення…",
pickMode: "Оберіть режим, щоб побачити маршрут.",
waitingLocation: "Чекаємо на ваше місце…",
routeSteps: "Кроки маршруту",
walkingRoute: "пішохідний маршрут — швидше на дошці",
planningView: "Режим планування — натисніть «Старт», щоб рухатися з живими поворотами, голосом і прибуттям.",
leaveNow: "Вирушити зараз",
departAt: "Виїхати о",
arriveBy: "Прибути до",
departureTime: "Час відправлення",
arrivalTime: "Час прибуття",
only: "Лише",
clear: "очистити",
itinerary: "Маршрут",
group: {
bus: "Автобус",
tram: "Трамвай",
metro: "Метро",
train: "Потяг",
ferry: "Пором"
},
walk: "Пішки",
rideVerb: "Їхати",
walkLower: "йти",
rideLower: "їхати",
toStop: "до",
track: "колія {{track}}",
stopOne: "1 зупинка",
stopsCount: "{{count}} зупинок",
tickets: "квитки ↗",
done: "Готово",
stop: "Зупинити",
start: "Старт",
arrived: "Ви прибули. 🛹",
voiceOnNote: "Екран залишається увімкненим · голос увімкнено — повороти та прибуття озвучуються.",
voiceOffNote: "Екран залишається увімкненим · голос вимкнено.",
followNote: "Повороти, голос і прибуття під час руху. Тримає екран увімкненим.",
voiceOffAria: "Вимкнути голосові підказки",
voiceOnAria: "Увімкнути голосові підказки",
voiceStart: "Початок навігації",
voiceArrived: "Ви прибули",
voiceIn: "Через {{metres}} метрів, {{instruction}}",
voiceContinue: "продовжуйте",
voiceContinueCaps: "Продовжуйте",
errPermissionDenied: "Доступ до місцезнаходження заборонено.",
errWaitingGps: "Чекаємо на GPS…",
errPermissionDeniedLong: "Доступ до місцезнаходження заборонено. Увімкніть геолокацію, щоб прокласти маршрут звідси.",
errNoLocation: "Не вдалося визначити ваше місце. Спробуйте знову.",
errNoLocationShort: "Не вдалося визначити ваше місце.",
errTransitNoRouteFiltered: "Немає маршруту на цей час чи вид транспорту — спробуйте інший час або додайте більше видів.",
errTransitNoRoute: "Тут не знайдено маршруту громадським транспортом — можливо, цей регіон не публікує відкриті розклади.",
errTransitUnreachable: "Не вдалося зв'язатися зі службою транспорту. Перевірте з'єднання та спробуйте знову.",
errRoutingBusy: "Служба маршрутизації зараз зайнята — спробуйте за мить.",
errNoRouteMode: "Немає маршруту для цього режиму — можливо, пункт призначення поза дорожньою мережею. Спробуйте інший режим.",
errRoutingUnreachable: "Не вдалося зв'язатися зі службою маршрутизації. Перевірте з'єднання та спробуйте знову.",
departures: "Відправлення",
upcomingFrom: "Найближчі відправлення від {{stop}}",
loadingDepartures: "Завантаження відправлень…",
noDepartures: "На цій зупинці не знайдено найближчих відправлень.",
live: "наживо",
cancelled: "скасовано",
refresh: "Оновити",
tripLoginTitle: "Увійдіть, щоб зберегти",
tripLoginDesc: "Увійдіть, щоб зберегти цю подорож як Колекцію.",
tripCollectionTitle: "Скейт-подорож до {{destination}} 🛹",
tripCollectionDesc: "План подорожі від The Sasquatch — {{count}} днів у {{destination}}.",
tripCollectionDescOne: "План подорожі від The Sasquatch — {{count}} день у {{destination}}.",
tripSavedTitle: "Збережено в Колекції 🦧",
tripSavedDesc: "Вашу подорож до {{destination}} додано в закладки.",
tripSaveFailed: "Не вдалося зберегти",
tripSaveFailedDesc: "Спробуйте за секунду.",
daysInDestinationOne: "{{count}} день у {{destination}}",
daysInDestination: "{{count}} днів у {{destination}}",
wetForecast: "Дощовий прогноз — знайдіть локальний Crew для накритих/внутрішніх варіантів.",
dayLabel: "День {{n}}",
freeSkate: "Вільне катання — досліджуйте та знімайте. 🎥",
tapToBook: "торкніться, щоб забронювати / Zap ⚡",
localCrews: "Локальні Crews",
saving: "Збереження…",
savedToCollections: "Збережено в Колекції",
saveSpotOne: "Зберегти {{count}} Spot у Колекцію",
saveSpots: "Зберегти {{count}} Spots у Колекцію",
flights: "Рейси",
stays: "Проживання",
gettingAround: "Пересування",
noMiddleman: "Я планую катання — рейси та проживання відкриваються на справжніх сайтах (без KYC, без посередників).",
ageJustNow: "щойно",
ageMinAgo: "{{count}} хв тому",
ageHourAgo: "{{count}} год тому",
ageDayAgo: "{{count}} дн тому",
skateRightHere: "просто тут",
skateMin: "~{{count}} хв їзди",
skateHours: "~{{hours}} год їзди",
maneuver: {
headOut: "Вирушайте",
arrive: "Прибуття на Spot",
continueStraight: "Продовжуйте",
bearLeft: "Тримайтесь лівіше",
bearRight: "Тримайтесь правіше",
turnLeft: "Поверніть ліворуч",
turnRight: "Поверніть праворуч",
sharpLeft: "Різко ліворуч",
sharpRight: "Різко праворуч",
turn: "Поверніть",
keepLeft: "Тримайтесь ліворуч",
keepRight: "Тримайтесь праворуч",
takeFork: "Тримайтесь розгалуження",
merge: "Влийтеся в потік",
roundabout: "Проїдьте кругове",
takeRamp: "З'їзд на рампу",
takeExit: "Скористайтеся з'їздом"
},
maneuverOnto: "{{instruction}} на {{road}}"
},
sasquatchUi: {
live: "наживо",
offline: "офлайн",
genericTitle: "Помічник SkateSpots 🦧",
genericGreeting: "Йо! Я The Sasquatch. Питай мене будь-що про Spots, події, тренерів, спорядження чи те, як працює застосунок. У мене живі дані з Relay SkateSpots!",
q1: "Сплануй мені 3 дні в Лісабоні",
q2: "Знайди Spots поблизу",
q3: "Є найближчі події?",
q4: "Що таке Crews?",
q5: "Як працюють zaps?",
q6: "Що таке Nostr?",
q7: "Що таке Мій Stash?",
q8: "Це безкоштовно?",
bubbleTitle: "Натисніть і перетягніть, щоб перемістити · Торкніться, щоб відкрити",
openGuideAria: "Відкрити путівник Sasquatch",
hideAria: "Сховати помічника Sasquatch",
hide: "Сховати помічника",
showAria: "Показати помічника Sasquatch",
activeUntil: "Активний до {{date}}",
platformOwner: "Власник платформи",
upgradeTitle: "Перейти на Sasquatch Pro",
goPro: "Go Pro",
goProBlurb: "Персональний ШІ · від 2k sats",
aiBalanceTitle: "Баланс кредиту ШІ Sasquatch (лише для власника) — поповніть на {{provider}}",
aiChip: "⚡ ШІ {{balance}}",
minimizeToBubbleAria: "Згорнути в бульбашку",
minimize: "Згорнути",
closePanelAria: "Закрити панель",
close: "Закрити",
askLab: "Спитати про Coaching та Filming",
askMap: "Спитати про Spots, магазини та спорядження",
askAnything: "Питай мене будь-що 🛹",
quickQuestions: "Швидкі запитання:",
you: "🧑 Ви",
thinking: "думаю...",
inputPlaceholder: "Питайте про Spots, події, тренерів...",
liveDataFrom: "Живі дані з",
nostrRelays: "Nostr Relay",
clear: "очистити",
gettingLocation: "📍 Визначаємо ваше місце…",
findingClosest: "🔍 Шукаємо найближчі Spots…",
checkingLive: "🔍 Перевіряємо живі дані…",
planningTrip: "🗺️ Плануємо вашу подорож до {{destination}}...",
searchingRelays: "🔍 Шукаємо в Relay: {{tool}}...",
perk1: "Персональний асистент — Sasquatch читає ваш власний Stash, Crews, Spots та оголошення",
perk2: "Чернетки дій: виставити спорядження, опублікувати скейт-статус, спланувати подорож — ви підтверджуєте, перш ніж щось публікується",
perk3: "Відповіді використовують ваш особистий контекст, а не лише публічні дані",
perk4: "⚡ Прямо підтримуйте SkateSpots і зберігайте його безкоштовним та без реклами",
welcomeTitle: "Дякуємо за підтримку Sasquatch Pro! 🦧⚡",
welcomeDesc: "Платіж надіслано — ваша перепустка активується, щойно провайдер підтвердить її (зазвичай протягом хвилини). Дякуємо, що зберігаєте вулиці вільними.",
invoiceCopied: "Рахунок скопійовано",
dialogDesc: "Підсильте свій ШІ-скейт-путівник. 100% коштів фінансує безкоштовний застосунок без реклами.",
proSupporter: "Ви прихильник Pro ⚡",
extendPrompt: "Хочете продовжити? Оберіть тариф нижче, щоб додати часу.",
scanToPayPre: "Скануйте, щоб сплатити",
scanToPayAmount: "{{sats}} sats",
scanToPayPost: "за {{label}} Pro",
invoiceQrAlt: "QR-код рахунку Lightning",
copyInvoice: "Скопіювати рахунок",
ivePaid: "Я сплатив",
ivePaidHint: "Натисніть «Я сплатив» після підтвердження гаманцем — це запише вашу перепустку на вашу ідентичність Nostr.",
freeStaysPre: "Безкоштовний Sasquatch залишається безкоштовним — публічний пошук Spots/подій/тренерів, планування подорожей + повний глосарій трюків. Pro додає ",
freeStaysEmphasis: "персональний + дійовий",
freeStaysPost: " шар.",
loginFirst: "Спершу увійдіть, щоб перейти на Pro.",
paysTo: "Платить на",
overLightning: "через Lightning. Прив'язано до вашого npub.",
popular: "Популярне",
sats: "sats",
extend: "Продовжити",
done: "Готово!",
cancelledNothing: "Скасовано — нічого не опубліковано.",
draftReview: "Чернетка — перегляньте й підтвердьте",
statusTextPlaceholder: "Текст статусу",
titlePlaceholder: "Заголовок",
priceSatsPlaceholder: "Ціна (sats)",
conditionPlaceholder: "Стан",
cancel: "Скасувати",
aiTitle: "Sasquatch AI",
owner: "Власник",
notConfigured: "не налаштовано",
unavailable: "недоступно",
satsValue: "{{balance}} sats",
theNode: "вузол",
lowBalance: "Баланс закінчується — поповніть на {{provider}}, інакше ШІ перейде на провайдера без ключа.",
aiDesc: "ШІ з оплатою за запит, що фінансується в sats через Routstr. Поповнюється, коли баланс низький.",
tier7d: "7 днів",
tier1m: "1 місяць",
tier3m: "3 місяці",
tier1y: "1 рік",
badgeTry: "Спробувати",
badgeOff20: "знижка 20%",
badgeBest: "Найвигідніше · знижка 40%",
draftPostStatusTitle: "Опублікувати скейт-статус",
draftAutoExpires: "Автоматично спливає через {{count}} хв",
draftPostStatusCta: "Опублікувати статус",
draftCategory: "Категорія: {{value}}",
draftSize: "Розмір: {{value}}",
draftCondition: "Стан: {{value}}",
draftMaxPrice: "Макс. ціна: {{price}} {{currency}}",
draftPriceOpen: "Ціна: відкрита",
draftLookingForTitle: "Шукаю «{{title}}»",
draftWantedCta: "Опублікувати оголошення «шукаю»",
draftPrice: "Ціна: {{price}} {{currency}}",
draftPriceOffer: "Ціна: зробіть пропозицію",
draftListTitle: "Виставити «{{title}}» на продаж",
draftPublishCta: "Опублікувати оголошення",
statusPosted: "Статус опубліковано 🛹",
wantedPublished: "Оголошення «шукаю» опубліковано 🔎",
listingPublished: "Оголошення опубліковано 💸",
mustBeLoggedIn: "Ви маєте увійти."
},
sasquatchChat: {
faq: {
hi: "Привіт! Я The Sasquatch 🦧 Твій ШІ-скейт-путівник. Питай мене про Spots, події, тренерів, спорядження — чи будь-що про застосунок. Що тобі потрібно?",
hello: "Дарова! 🛹 Я The Sasquatch. Питай мене про скейт-Spots, події, тренерів чи те, як працює застосунок. Як справи?",
hey: "Гей, скейтере! 🤙 Питай мене про Spots поблизу, найближчі події, тренерів чи будь-що про SkateSpots.",
whoAreYou: "Я The Sasquatch 🦧 — ШІ-путівник SkateSpots. Я вмію знаходити скейт-Spots по всьому світу, шукати події, тренерів, операторів та оголошення спорядження. Усе працює на живих даних Nostr. Питай!",
whatCanYouDo: "Я вмію знаходити скейт-Spots за містом чи країною, шукати найближчі події, знаходити тренерів та операторів у The Lab, шукати оголошення спорядження й відповідати на запитання про те, як працює застосунок. Спробуй: «Spots у Бангкоку» або «знайди тренера»! 🛹",
whatIsNostr: "Nostr — це простий відкритий протокол для децентралізованих соцмереж. Уявіть Twitter, але жодна компанія ним не керує — ви використовуєте криптографічні ключі замість імен користувачів, обираєте, які Relay зберігають ваші дані (або запускаєте власний), і один акаунт працює в усіх застосунках Nostr! 🔑",
isThisPrivate: "Ось чесний розклад 🛡️\n\n• Ваше **місцезнаходження GPS залишається на вашому пристрої** — «Поблизу» лише центрує карту. Воно ніколи не надсилається нам і не публікується.\n• **Spots, які ви додаєте, публічні** (у цьому сенс спільної карти) — тож не ставте мітку на своїх вхідних дверях.\n• **Особисті повідомлення та чати Crew зашифровані від кінця до кінця** — їх можуть читати лише учасники.\n• Як і будь-який сайт, сервери, до яких ви підключаєтеся (тайли карт, Relay), бачать ваш **IP**. Хочете приховати й це? Використовуйте VPN або Tor.\n\nПовні деталі на [сторінці приватності](/privacy). 🛹",
privacy: "Коротко 🛡️: ваш GPS ніколи не покидає пристрій, Spots, які ви публікуєте, публічні за задумом, а особисті повідомлення й чати Crew зашифровані від кінця до кінця. Сервери все одно бачать ваш IP (нормально для будь-якого сайту) — VPN або Tor це приховає, якщо хочете. Повний розбір на [сторінці приватності](/privacy).",
amITracked: "SkateSpots вас не відстежує — без реклами, без профілювання аналітикою, без продажу даних, і немає сервера SkateSpots, що збирає ваше місцезнаходження. Ваш GPS залишається на пристрої. Єдине, що бачать сервери (тайли карт, Relay), — ваш **IP** — як і на будь-якому сайті. Використовуйте VPN або Tor, щоб це приховати. Більше на [сторінці приватності](/privacy). 🛡️",
doYouTrack: "Ні — без відстеження, без реклами, без збирання даних. Ваш GPS залишається на пристрої, і немає центрального сервера, що вас логує. Сервери, до яких ви підключаєтеся, можуть бачити ваш IP (як будь-який сайт); VPN/Tor це приховає. Дивіться [сторінку приватності](/privacy). 🛹",
vpn: "Цілком необов'язково, але слушно, якщо хочете додаткової приватності 🛡️. VPN приховує ваш **IP** (приблизне місце) від серверів, з якими спілкується SkateSpots — тайлів карт, Relay тощо. Оберіть провайдера без логів, якому довіряєте (напр. Mullvad); уникайте сумнівних безкоштовних.\n\nЗауваження: VPN **не** приховує Spots, які ви публікуєте (вони публічні), і не вмикайте GPS браузера, якщо хочете лишатися анонімним. Повні деталі на [сторінці приватності](/privacy).",
tor: "Tor Browser дає найсильнішу приватність IP — він маршрутизує вас через кілька Relay, тож сервери не бачать ваш справжній IP 🧅. Компроміс: повільніше, а карти й деякі Relay Nostr можуть гальмувати чи блокувати виходи Tor. Чудово для надобережних.\n\nПам'ятайте: Tor приховує ваш IP, а не Spots, які ви публікуєте, і не вмикайте GPS браузера, якщо мета — анонімність. Більше на [сторінці приватності](/privacy).",
hideMyIp: "Два безкоштовні варіанти 🛡️: **надійний VPN** (просто, швидко — приховує ваш IP за їхніми серверами) або **Tor Browser** (максимум приватності, повільніше). Будь-який із них заважає серверам, до яких підключається SkateSpots, бачити ваш справжній IP. Зауважте, вони не приховують Spots, які ви публікуєте. Дивіться [сторінку приватності](/privacy).",
isMyLocation: "Ваше місце в безпеці 📍 — «Поблизу» зчитує ваш GPS лише на пристрої, щоб центрувати карту й сортувати найближчі Spots. Воно ніколи не публікується в Nostr, не надсилається нам, не передається. Публічні лише Spots, які ви свідомо додаєте. Деталі на [сторінці приватності](/privacy).",
whatAreZaps: "Zaps — це миттєві чайові в Bitcoin Lightning, надіслані через Nostr! Натисніть ⚡ на будь-якому вмісті, надішліть sats напряму в гаманець автора. Як «лайк», але зі справжніми грошима. Миттєво, напряму між людьми, без посередників. ⚡",
howToLogin: "Два способи:\n1. **Розширення браузера** (комп'ютер): встановіть Alby або nos2x, тоді натисніть «Увійти»\n2. **Новий користувач**: натисніть «Зареєструватися», щоб згенерувати ключі. Завантажте свій nsec (секретний ключ) і ЗБЕРЕЖІТЬ ЙОГО — це ваш акаунт назавжди!",
whatIsCashu: "Вбудований Bitcoin-гаманець! Токени Cashu ecash, забезпечені Lightning — працюють офлайн на скейт-Spots, з фокусом на приватність (мінти не можуть відстежувати платежі). Перейдіть до Гаманця в Налаштуваннях, щоб скористатися. 🥜",
whatIsNwc: "Nostr Wallet Connect — як USB-C для Lightning-гаманців. Підключіть Alby, Minibits, Zeus або Coinos один раз — і надсилайте Zap одним кліком назавжди. Зашифровано, ви контролюєте ліміти витрат. 🔌⚡",
isItFree: "100% безкоштовно. Без реклами, без підписок, без корпоративного лайна. Створено скейтерами для скейтерів. Фінансується спільнотою через Angor — перегляньте сторінку Прихильників. Ви також можете заробляти Bitcoin через чайові спільноти за якісні Spots. 🛹",
whatCanIDo: "Відкривайте Spots по всьому світу на карті, наймайте професіоналів у The Lab (тренери, оператори, фотографи, монтажери, будівельники рамп), катайтеся з Crew, приєднуйтеся до подій, беріть тури, купуйте/продавайте спорядження, ведіть свій приватний Stash, надсилайте Zap авторам, перевіряйте погоду на Spot і будуйте децентралізовану скейт-спільноту!",
whatIsTheLab: "The Lab — це місце, де ви наймаєте професіоналів скейт-сцени: тренерів, операторів, фотографів, відеомонтажерів та будівельників рамп/Park/DIY. Кожен може бути окремою людиною або колективом (Crew/студія) — учасники підтверджують власними ключами, тож усе легітимно. Усе на Nostr, без фейкових акаунтів. 🎓",
whatIsACrew: "Crews — це ваша скейт-сім'я, прив'язана до карти — ті, з ким ви катаєтеся РАЗОМ, а не кого наймаєте. Кожен Crew має домашню територію на карті (бірюзові мітки), домашні Spots, учасників, вайб і маніфест. Учасники підтверджують власним ключем. Створіть свій у Crews → «Створити Crew». 🤘",
whatAreCrews: "Crews — це ваша скейт-сім'я, прив'язана до карти — ті, з ким ви катаєтеся РАЗОМ, а не кого наймаєте. Кожен Crew має домашню територію на карті (бірюзові мітки), домашні Spots, учасників і маніфест. Учасники підтверджують власним ключем. Перейдіть на вкладку Crews, щоб створити чи приєднатися! 🤘",
howToStartACrew: "Перейдіть на вкладку Crews → «Створити Crew». Назвіть його, позначте домашню територію на карті, додайте вайб (або власний #хештег), прив'яжіть домашні Spots і додайте учасників за npub. Кожен учасник підтверджує власним ключем, тож склад легітимний. 🤘",
whatIsMyStash: "Мій Stash — це ваш ПРИВАТНИЙ зашифрований сховок для спорядження (шифрування NIP-44). Відстежуйте свої Deck, Trucks, Wheels, взуття — із місцем зберігання, станом, рідкістю та ціною. Лише ВИ можете це читати, якщо не позначите предмети публічними. Чудово для страховки чи планування обміну. 🎒",
whatIsStash: "Мій Stash — це ваш ПРИВАТНИЙ зашифрований інвентар спорядження. Записуйте все, що маєте — стан, де зберігається, вартість — усе зашифровано, тож бачите лише ви. Позначайте предмети публічними, якщо хочете продати чи похвалитися. 🎒",
whatIsABuilder: "Будівельники — це Crew з рамп/Park/DIY у The Lab, яких можна найняти, щоб збудувати переходи, Bowls, Rails чи цілий Park. Вони вказують, що будують, матеріали, масштаб проєкту й можуть мати ліцензію/страховку. Часто це колективи — і вони можуть прив'язувати збудовані Spots до карти. 🏗️",
whatIsANutzap: "Nutzaps (NIP-61) — це чайові ecash, надіслані через Nostr — приватні токени Cashu, надіслані Zap напряму комусь. Ви можете налаштувати ОТРИМАННЯ nutzap у Гаманці. (Надсилання повних nutzap впроваджується — поки що використовуйте Lightning zaps.) 🥜⚡",
whatIsClink: "CLINK — це рідний для Nostr платіжний код («noffer»). Магазини, Crews і фахівці The Lab можуть додати його, щоб ви могли їм платити без Lightning-адреси — ви побачите кнопку «Pay via CLINK» із QR-кодом. Скануйте його гаманцем CLINK, як-от ShockWallet. 🔗⚡ [специфікації](https://clinkme.dev/specs.html) [застосунки](https://clinkme.dev/apps.html)",
whatIsNoffer: "Noffer — це платіжний код CLINK — багаторазовий, рідний для Nostr спосіб отримувати оплату без вебсервера чи Lightning-адреси. Додайте свій у профілі магазину/Crew/Lab, і люди зможуть платити вам напряму. 🔗",
whatAreTours: "Тури — це організовані скейт-подорожі — локальні сесії, національні роуд-тріпи чи світові destruction-тури. Знаходьте їх на карті чи в розділі Турів, зустрічайтеся й катайте новий рельєф разом з місцевими. 🗺️🛹",
whatIsAShop: "Скейт-магазини — це місцеві магазини, позначені на карті. Відкривайте й підтримуйте справжні офлайн- (чи онлайн-) скейт-магазини у своєму районі — деякі навіть приймають Bitcoin. 🏪",
howToSellGear: "Перейдіть до Gear Swap / Маркетплейсу й створіть оголошення (NIP-99). Додайте фото, ціну в sats, стан і за бажанням прив'яжіть до Spot, щоб воно з'явилося на карті. Покупці надсилають Zap або пишуть вам напряму. 🛹💸",
supporters: "SkateSpots фінансується спільнотою через Angor (децентралізований краудфандинг на Bitcoin) — без реклами, без інвесторів, без продажу даних. Перегляньте сторінку Прихильників, щоб підтримати проєкт і зберегти вулиці вільними. ❤️⚡",
trustScore: "Оцінки довіри (0–100) на базі Relatr. Аналізує вашу мережу Nostr: підписників, активність, залучення, Zaps. Вище = більше довіри. Допомагає фільтрувати ботів і спам. Перегляньте будь-який профіль, щоб побачити оцінку. 🛡️",
whatRelay: "SkateSpots використовує: 🛹 relay.skate-spots.org (основний, у списку дозволених для якості) + relay.ditto.pub (глобальний) + purplepag.es (агрегатор профілів). Ваші дані реплікуються на всіх них для надійності.",
tripPlanner: "Назвіть місто, і я збудую скейт-подорож день за днем 🗺️ — Spots, події, тренери та локальні Crews, з урахуванням погоди (дощовий день = порада від Crew щодо накритих Spots). Спробуйте «сплануй мені 3 дні в Лісабоні». Я можу зберегти все в Колекцію й передати вас до рейсів/проживання на справжніх сайтах (без KYC, без посередників). 🛹",
planATrip: "Просто скажіть «сплануй мені 3 дні в Барселоні» (чи будь-якому місті), і я розпишу Spots, сесії, тренерів та локальні Crews на кожен день. Збережіть як Колекцію — і гайда катати. 🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ — це Lightning-перепустка прихильника, що відкриває мою персональну сторону:\n\n• 🧠 **Персональний асистент** — я читаю ваш власний Stash, Crews, Spots та оголошення\n• ✨ **Чернетки дій** — виставити спорядження, опублікувати ваш скейт-статус, спланувати подорожі (ви завжди підтверджуєте, перш ніж щось публікується)\n• 💬 **Особистий контекст** — мої відповіді використовують ваші дані, а не лише публічні результати\n• ⚡ **Підтримка проєкту** — ви зберігаєте SkateSpots безкоштовним та без реклами\n\nБезкоштовний Sasquatch залишається безкоштовним: публічний пошук Spots/подій/тренерів/Crew, глосарій і планування подорожей працюють без Pro. Pro лише додає *персональні* речі. Натисніть **⚡ Go Pro** вгорі. Тарифи: 7 днів ~2k sats, 1 місяць ~5k, 3 місяці ~12k, 1 рік ~36k.",
proPerks: "Переваги Pro 🦧⚡: персональний асистент (читає ваш Stash/Crews/Spots/оголошення), чернетки дій (виставити спорядження, опублікувати статус, спланувати подорожі — ви підтверджуєте) та відповіді, що використовують ваш особистий контекст. До того ж ви напряму підтримуєте SkateSpots і зберігаєте його безкоштовним та без реклами. Безкоштовне залишається безкоштовним — Pro додає персональний шар. Натисніть **⚡ Go Pro** вгорі.",
proVersion: "Pro-версія мене 🦧⚡ додає **персонального асистента**: я можу читати ваш власний Stash, Crews, Spots та оголошення, готувати чернетки дій (виставити спорядження, опублікувати статус, спланувати подорож — ви завжди підтверджуєте першими) й використовувати ваш особистий контекст у відповідях. Це також напряму підтримує проєкт. Безкоштовний Sasquatch (пошук Spots/подій/тренерів/Crew, глосарій, планувальник подорожей) залишається безкоштовним. Натисніть **⚡ Go Pro** вгорі.",
perks: "Переваги Pro 🦧⚡: персональний асистент (ваш Stash/Crews/Spots/оголошення), чернетки дій, які ви підтверджуєте, та відповіді, що використовують ваш власний контекст — до того ж ви зберігаєте застосунок безкоштовним та без реклами. Натисніть **⚡ Go Pro** вгорі.",
goPro: "Натисніть кнопку **⚡ Go Pro** вгорі, щоб відкрити вікно оновлення. Pro відкриває мого персонального асистента (Stash/Crews/Spots/оголошення) та чернетки дій, а також напряму підтримує проєкт. Платіть Lightning — від 7 днів ~2k sats до 1 року ~36k sats. Безкоштовні функції залишаються безкоштовними. 🦧",
proPricing: "Тарифи Pro (платіть Lightning ⚡): **7 днів** ~2 000 sats (~$1.20), **1 місяць** ~5 000 sats (~$3), **3 місяці** ~12 000 sats (~$7, знижка 20%), **1 рік** ~36 000 sats (~$21, найвигідніше). Натисніть **⚡ Go Pro** вгорі.",
howMuchIsPro: "Тарифи Pro: 7 днів ~2 000 sats, 1 місяць ~5 000 sats, 3 місяці ~12 000 sats (знижка 20%), 1 рік ~36 000 sats (найвигідніше). Платіть Lightning ⚡. Натисніть **⚡ Go Pro** вгорі.",
upgrade: "Щоб перейти на Sasquatch Pro, натисніть кнопку **⚡ Go Pro** вгорі. Платіть Lightning (від 7 днів ~2k sats до 1 року ~36k). Pro відкриває мого персонального асистента та чернетки дій, а також напряму підтримує проєкт. 🦧⚡"
},
statsTitle: "📊 **SkateSpots у цифрах**",
weatherTemp: "• {{temp}}°C (відчувається {{feels}}°C)",
weatherSkateability: "• Катабельність: **{{label}}** ({{score}}/100)",
weatherError: "Не вдалося прочитати погоду зараз. Спробуйте за секунду. 🌧️",
labelSpots: "Spots",
labelEvents: "події",
labelLabPros: "фахівці Lab",
labelCrews: "Crews",
labelShops: "скейт-магазини",
labelTours: "тури",
labelGear: "оголошення спорядження",
unnamed: "Без назви",
emptyWhere: " у **{{place}}**",
emptyResult: "Зараз не знайдено жодного {{label}}{{where}} 🦧\n\nМожливо, їх ще не додали — або Relay повільно відповіли. Спробуйте за мить, перевірте написання або [додайте перший на карту](https://skate-spots.org/map). 🛹",
foundTitle: "{{emoji}} Знайдено **{{count}}** {{label}}:\n{{lines}}{{more}}",
moreResults: "\n\n…і ще **{{count}}** — [побачити всі на карті](https://skate-spots.org/map) 🗺️",
locationDenied: "Я не бачу вашого місцезнаходження — нічого ніколи не покидає ваш пристрій; я читаю його локально лише коли ви просите, а браузер щойно відмовив. Натисніть 🎯 **Поблизу** на карті або назвіть місто: «Spots у Бангкоку». 🛹",
noNearbySpots: "Поблизу ще немає нанесених Spots 🦧 — [будьте першим, хто додасть](https://skate-spots.org/create-spot). 🛹",
closestTitle: "Найближчі до вас зараз:",
closestFooter: "_Обчислено на вашому пристрої — ваше місцезнаходження його не покидало._",
proNudge: "Це річ **Sasquatch Pro** 🦧⚡ — з Pro я можу читати ваш Stash, Crews, Spots та оголошення, готувати чернетки оголошень спорядження, «шукаю» та скейт-статусів і планувати ваші подорожі. Це Lightning-перепустка прихильника, що зберігає SkateSpots безкоштовним та без реклами. Натисніть кнопку **⚡ Go Pro** вгорі, щоб відкрити. 🛹",
draftingProPerk: "Готувати чернетки дій (публікація статусу, виставлення спорядження) — це перевага **Sasquatch Pro** 🦧⚡ — натисніть **⚡ Go Pro** вгорі, щоб відкрити.",
draftIntro: "Ось чернетка — перегляньте її й натисніть, щоб опублікувати. Нічого не публікується, доки ви не підтвердите. 🛹",
draftFailed: "Мені не вдалося до кінця зібрати ту чернетку — спробуйте знову розповісти деталі (напр. «вистав мої Wheels Spitfire за 8000 sats»).",
tripAskCity: "Куди? Назвіть місто (напр. «сплануй мені 3 дні в Лісабоні»), і я збудую подорож. 🗺️",
tripEmptyMap: "На карті ще нічого немає для **{{destination}}** 🦧 — будьте першим, хто додасть Spots на [skate-spots.org](https://skate-spots.org). Щойно місцеві додадуть Spots, Crews та події, я збудую вам повну подорож.",
tripLocked: "Зафіксовано місію **{{destination}}** для вас 🛹 — Spots, сесії та місцеві нижче. Змініть або збережіть.",
tripFailed: "Не вдалося отримати живі дані, щоб спланувати це зараз. Спробуйте за мить! 🛹",
tripEmptyMapLocal: "На карті ще нічого немає для **{{destination}}** 🦧 — будьте першим на [skate-spots.org](https://skate-spots.org).",
tripMissionLocal: "Ось місія **{{destination}}** 🛹 — Spots, сесії та місцеві нижче.",
relayFailed: "Relay зараз не відповіли вчасно 🛰️ — зазвичай це повільне з'єднання, а не відсутній Spot. Спробуйте ще раз за мить. 🛹",
couldNotProcess: "Хм, не вдалося це обробити. Спробуйте перефразувати!",
freeTierFallback: "Це потребує ШІ-міркування — функція **Sasquatch Pro** ⚡🦧\n\nЯ все ще можу знайти **Spots, події, тренерів, Crews, магазини, тури й спорядження** напряму з Relay — спитайте, напр. «Spots у Барселоні» — а [Глосарій](/glossary) охоплює 150+ трюків і термінів. Натисніть **⚡ Go Pro** вгорі, щоб відкрити ШІ-відповіді.",
aiDownFallback: "Мій ШІ-мозок зараз бере паузу 🦧 — але я все ще поруч:\n\n• 🗺️ [Карта](/) — Spots, магазини, події поблизу\n• 🧪 [The Lab](/lab) — тренери, оператори, монтажери\n• 📖 [Глосарій](/glossary) — 150+ трюків і термінів\n• 👥 [Crews](/crews) — знайдіть своїх\n\nАбо просто назвіть **місто** («Spots у Барселоні») чи **трюк** («що таке nollie») — і я відповім одразу. 🛹",
wentWrong: "Щось пішло не так на моєму боці. Спробуйте за секунду! 🦧",
publishError: "Не вдалося опублікувати: {{error}}. Спробуйте за секунду.",
unknownError: "невідома помилка"
}
};
export { ukBatch2 };
export default ukBatch2;