/** uk — batch 3. */ const ukBatch3 = { settingsUi: { proSupport: { title: "Pro та підтримка", subtitle: "Необов'язкові додатки, що тримають SkateSpots безкоштовним", prepaidTitle: "Передоплата, а не підписка", prepaidBody: "Кожна покупка — разовий платіж у Bitcoin/Lightning: без акаунта, без регулярних списань, без зберігання коштів у нас. Повторна оплата продовжує ваш термін.", sasquatchTitle: "Sasquatch Pro", sasquatchBenefit: "Відкриває персонального AI-асистента — він може читати ваш власний Stash, Crew та оголошення — і допомагає фінансувати проєкт.", active: "Активний", activeUntil: "Активний до {{date}}", daysLeft: "Залишилось {{count}} дн.", notActive: "Неактивний", goPro: "Перейти на Pro", extend: "Продовжити Pro", day: "день", featuredTitle: "Рекламне розміщення", featuredBenefit: "Підніміть оголошення вгору з бейджем Pro — для профілів The Lab, подій, Shop-ів і турів.", featuredHow: "Рівні тривалості застосовуються до кожного типу; триваліші зобов'язання коштують дешевше за день. Ви додаєте розміщення, коли створюєте або редагуєте оголошення.", featuredUntil: "До {{date}}", yourFeatured: "Ваші рекламні оголошення", noneFeatured: "Немає активних рекламних розміщень.", freeTitle: "Безкоштовні шляхи", freeBody: "AI FAQ і локальний пошук завжди безкоштовні, і ви можете опублікувати оголошення на маркетплейсі за допомогою безкоштовного proof-of-work замість плати в sats." }, notFound: { seoTitle: "404 – Сторінку не знайдено", seoDescription: "Сторінку, яку ви шукаєте, не знайдено. Поверніться на головну, щоб продовжити перегляд.", message: "Ой! Сторінку не знайдено", returnHome: "Повернутися на головну" }, loginArea: { signUp: "Реєстрація", logIn: "Увійти" }, accountSwitcher: { switchAccount: "Змінити акаунт", walletSettings: "Налаштування гаманця", addAccount: "Додати ще один акаунт", logout: "Вийти" }, amberHint: { defaultAction: "надіслати", multiBefore: "Ваш підписувач попросить вас підтвердити", multiTimes: "{{approvals}} разів", multiAfter: "щоб {{action}} — це нормально для зашифрованих повідомлень (одне підтвердження на отримувача). Підтвердьте кожне.", single: "Ваш підписувач попросить вас підтвердити, щоб {{action}}." }, amberCallback: { processing: "Обробка входу через Amber...", gotResult: "Отримано результат: {{result}}", noResultDebug: "Немає результату від Amber", noResultToast: "Результат від Amber не отримано. Можливо, операцію скасовано.", validPubkey: "Дійсний pubkey! Виконується вхід...", loginSuccessful: "Вхід успішний!", loginErrorDebug: "Помилка входу: {{error}}", invalidResultDebug: "Невірний формат результату: {{result}}", loggedInTitle: "Ви увійшли", amberLoginDesc: "Успішний вхід через Amber!", loginFailedTitle: "Не вдалося увійти", loginFailedDesc: "Не вдалося завершити вхід через Amber. Спробуйте ще раз.", invalidPubkeyDesc: "Від Amber отримано недійсний pubkey.", sessionLostToast: "Дані сесії втрачено. Спробуйте ще раз.", eventSignedTitle: "Подію підписано", eventSignedDesc: "Вашу подію підписано через Amber.", signingFailedTitle: "Не вдалося підписати", signingFailedDesc: "Не вдалося обробити підписану подію від Amber.", operationCompleteTitle: "Операцію завершено", operationCompleteDesc: "{{op}} завершено." }, loginDialog: { loginWithAmber: "Вхід через Amber (Android)", welcomeTitle: "Ласкаво просимо до SkateSpots", welcomeSubtitle: "Зареєструйтесь або увійдіть, щоб продовжити", newHere: "Вперше тут?", createFree: "Створіть безкоштовний акаунт. Електронна пошта не потрібна.", createAccount: "Створити акаунт", orLogIn: "Або увійдіть", loggedInTitle: "🛹 Ви увійшли!", loggedIn: "Ви увійшли!", connectedAmber: "Підключено через Amber!", amberLoginFailed: "Не вдалося увійти через Amber", amberCancelled: "Вхід скасовано. Торкніться «Відкрити Amber», щоб спробувати ще раз.", amberNotFound: "Amber не знайдено. Переконайтеся, що Amber встановлено із ZapStore.", loginFailed: "Не вдалося увійти", pubkeyError: "Вставте свій hex pubkey (64 символи) або npub з Amber", pairedSigner: "З'єднано з вашим підписувачем.", connectFailed: "Не вдалося підключитися до вашого підписувача.", openedEncrypted: "Ваш зашифрований ключ відкрито.", openKeyFailed: "Не вдалося відкрити цей ключ.", bunkerPrefix: "Має починатися з bunker://", connectedBunker: "Підключено через bunker!", bunkerFailed: "Помилка: {{error}}", checkBunkerUri: "Перевірте свій bunker URI", nsecPrefix: "Має починатися з nsec1", invalidNsec: "Недійсний nsec: {{error}}", checkKey: "Перевірте свій ключ", noExtensionTitle: "Розширення не знайдено", noExtensionDesc: "Встановіть Alby або інше розширення NIP-07.", amberIdleDesc: "Ваш ключ залишається всередині Amber. Одне торкання — підтвердьте в Amber, і ви повернетесь сюди вже з входом. Нічого копіювати не потрібно.", continueWithAmber: "Продовжити з Amber", noAmberGetIt: "Немає Amber? Отримайте його →", waitingAmberTitle: "Очікування Amber…", waitingAmberDesc: "Підтвердьте запит в Amber. Ви увійдете автоматично, щойно повернетесь.", openAmberAgain: "Відкрити Amber знову", havingTrouble: "Виникли труднощі? Введіть ключ вручну", enterPublicKey: "Введіть свій публічний ключ", enterPublicKeyDescBefore: "Лише якщо автоматичний процес не спрацював. В Amber: торкніться свого профілю →", copyPublicKey: "Копіювати публічний ключ", enterPublicKeyDescAfter: "потім вставте його сюди.", connect: "Підключити", back: "← Назад", signInWithPhone: "Увійдіть за допомогою телефону", signInWithPhoneDesc: "Скануйте за допомогою застосунку-підписувача (Amber, nsec.app). Ваш ключ ніколи не залишає телефон.", showPairingCode: "Показати код з'єднання", waitingSigner: "Очікування вашого підписувача…", copyLink: "Копіювати посилання", orPasteBunker: "або вставте bunker URL", bunkerTitle: "Bunker (NIP-46)", bunkerPasteBefore: "Вставте свій", bunkerPasteAfter: "URI.", amberInstructions: "Налаштування → NIP-46 Bunker → Створити → Копіювати", nsecAppInstructions: "Підключити застосунок → Копіювати bunker URI", secretKeyTitle: "Секретний ключ", secretKeyRawDesc: "Вставте свій секретний ключ Nostr безпосередньо.", secretKeyEncDesc: "Відкрийте резервну копію ключа, захищену паролем.", rawNsec: "Необроблений nsec", encryptedNip49: "Зашифрований (NIP-49)", nsecWarning: "⚠️ Використовуйте це лише на довіреному пристрої. Ніколи нікому не передавайте свій nsec.", login: "Увійти", encSaferDesc: "Безпечніше: ключ залишається зашифрованим, доки ви не введете пароль, тож резервну копію можна безпечно зберігати в хмарі чи менеджері паролів.", password: "Пароль", openEncryptedKey: "Відкрити зашифрований ключ", browserExtensionTitle: "Розширення браузера (NIP-07)", browserExtensionDesc: "Найкраще для комп'ютера. Працює з Alby, nos2x, Flamingo.", loginWithExtension: "Увійти через розширення" }, signupDialog: { download: "Завантажити", stepChoose: "Вибір", stepProfile: "Профіль", stepSaveKey: "Зберегти ключ", somethingWrong: "Щось пішло не так", createFailed: "Не вдалося створити ваш акаунт. Спробуйте ще раз.", keySavedTitle: "Секретний ключ збережено!", keySavedDesc: "Ваш ключ безпечно збережено.", downloadFailedTitle: "Не вдалося завантажити", downloadFailedDesc: "Не вдалося завантажити файл ключа. Скопіюйте його вручну.", encSavedTitle: "Зашифровану резервну копію збережено 🔐", encSavedDesc: "Збережіть і файл, і пароль — для повторного входу потрібні обидва.", encFailed: "Не вдалося зашифрувати цей ключ.", invalidFileTitle: "Недійсний тип файлу", invalidFileDesc: "Виберіть файл зображення для вашого аватара.", fileTooLargeTitle: "Файл завеликий", fileTooLargeDesc: "Зображення аватара має бути меншим за 5 МБ.", avatarUploadedTitle: "Аватар завантажено!", avatarUploadedDesc: "Ваш аватар успішно завантажено.", uploadFailedTitle: "Не вдалося завантажити", uploadFailedDesc: "Не вдалося завантажити аватар. Спробуйте ще раз.", nameRequiredTitle: "Потрібне відображуване ім'я", nameRequiredDesc: "Виберіть відображуване ім'я, щоб інші скейтери знали, хто ви. Ви можете змінити його будь-коли.", reserveFailedTitle: "Не вдалося зарезервувати це ім'я", reserveFailedDesc: "{{error}} Ви можете зайняти його пізніше в налаштуваннях.", profileCreatedTitle: "Профіль створено!", profileCreatedDesc: "Ваш профіль налаштовано.", profileFailedTitle: "Не вдалося налаштувати профіль", profileFailedDesc: "Ваш акаунт створено, але налаштування профілю не вдалося. Ви можете оновити його пізніше.", welcomeToastTitle: "Ласкаво просимо!", welcomeToastDesc: "Ваш акаунт готовий.", titleWelcome: "Приєднуйтесь до SkateSpots", titleProfile: "Налаштуйте свій профіль", titleDone: "Ласкаво просимо!", createFreeAccount: "Створіть свій безкоштовний акаунт", createFreeAccountDesc: "Без пошти, без телефону, без пароля. Ваш акаунт — це ключ Nostr; виберіть, де він зберігається.", recommended: "Рекомендовано", signUpWithAmber: "Зареєструватися через Amber", signUpWithAmberDesc: "Ваш ключ створюється й зберігається всередині застосунку Amber — SkateSpots ніколи до нього не торкається. Найбезпечніше. Одне торкання для підтвердження.", continueWithAmber: "Продовжити з Amber", orQuickWay: "або швидкий спосіб", quickAccount: "Швидкий акаунт на цьому пристрої", quickAccountDesc: "Ми генеруємо ключ, який живе на цьому пристрої. Найшвидший старт — одразу після цього ми допоможемо зберегти резервну копію.", createQuickAccount: "Створити швидкий акаунт", quickReassurance: "Забирає 5 секунд · живе на цьому пристрої · невдовзі допоможемо зробити резервну копію", preferAnotherSigner: "Віддаєте перевагу іншому підписувачу?", iosDesktopNudge: "На iOS чи комп'ютері? Застосунок-підписувач або розширення браузера — найбезпечніший варіант —", seeAllOptions: "Побачити всі варіанти", youreInPickName: "Ви в грі! 🛹 Виберіть відображуване ім'я, щоб скейтери знали, хто ви", changeAnytime: "Ви можете змінити його будь-коли. Біо й аватар — необов'язкові.", publishingProfile: "Публікація вашого профілю...", displayName: "Відображуване ім'я", displayNamePlaceholder: "напр. Tony, gnarlyGrind або назва вашого Crew", displayNameHint: "Обов'язково — як вас бачитимуть у всьому SkateSpots. Змініть будь-коли.", skateName: "Ваше ім'я в SkateSpots", skateNameHint: "Безкоштовно й необов'язково — перевірений нікнейм, що показує ✓ у вашому профілі.", bio: "Біо", bioPlaceholder: "Розкажіть іншим про себе...", avatar: "Аватар", uploadAvatar: "Завантажити зображення аватара", saving: "Збереження...", saveAndStart: "Зберегти й почати катати", addNameToContinue: "Додайте відображуване ім'я, щоб продовжити.", savingPublishesNote: "Збереження публікує ваш профіль у Nostr — ваш підписувач може попросити підтвердити один раз.", youreIn: "Ви в грі! 🛹", oneQuickThing: "Одна швидка річ, перш ніж ви почнете…", saveLoginKey: "Збережіть свій ключ входу", saveLoginKeyBefore: "Це", only: "єдиний", saveLoginKeyAfter: "спосіб повернутися до свого акаунта — без пошти, без скидання пароля. Збережіть його зараз, і ви зможете увійти на будь-якому пристрої, будь-де, де катаєтесь.", revealSaveKey: "Показати й зберегти мій ключ", recoveryCopied: "Код відновлення скопійовано. Зберігайте його в надійному місці.", saved: "Збережено", treatLikeBoardKeys: "Ставтеся до нього як до ключів від своєї дошки — будь-хто з цим кодом керує вашим акаунтом. Ніколи нікому його не передавайте.", hideEncBackup: "Сховати зашифровану копію", saveEncBackup: "Зберегти зашифровану резервну копію", encBackupBefore: "Копія, захищена паролем — безпечна для зберігання в хмарі чи менеджері паролів. Вам знадобиться файл", and: "і", encBackupAfter: "пароль.", choosePassword: "Виберіть пароль", saveEncBackupCta: "Зберегти зашифровану копію", savedCodeAria: "Я зберіг свій код відновлення", savedCodeLabel: "Я зберіг свій код відновлення в надійному місці — менеджері паролів або записав офлайн.", letsSkate: "Погнали", saveLater: "Я збережу пізніше в налаштуваннях", advancedSigner: "Для досвідчених: скористайтеся застосунком-підписувачем" }, mnemonic: { generatedTitle: "Фразу відновлення згенеровано! 🎉", generatedDesc: "Запишіть ці 12 слів по порядку. Вони — ключ до вашого акаунта!", savedTitle: "Фразу відновлення збережено!", savedDesc: "Зберігайте цей файл у надійному місці.", downloadFailedTitle: "Не вдалося завантажити", downloadFailedDesc: "Не вдалося завантажити файл. Скопіюйте вручну.", copiedTitle: "Скопійовано в буфер обміну!", copiedDesc: "Вашу фразу відновлення скопійовано.", qrWindowTitle: "QR-код фрази відновлення", qrHeading: "QR-код вашої фрази відновлення", qrAlt: "QR-код фрази відновлення", qrWarning: "Тримайте цей QR-код у таємниці та безпеці!", qrPrint: "Друкувати QR-код", qrFailedTitle: "Помилка QR-коду", qrFailedDesc: "Не вдалося згенерувати QR-код.", accountCreatedTitle: "Акаунт створено! 🎉", accountCreatedDesc: "Усе готово! Ваша фраза відновлення в безпеці.", loginFailedTitle: "Не вдалося увійти", loginFailedDesc: "Не вдалося створити акаунт. Спробуйте ще раз.", verifyFailedTitle: "Перевірка не вдалася", verifyFailedDesc: "Слова не збігаються. Перевірте й спробуйте ще раз.", titlePrefix: "Створити акаунт за допомогою", titleSuffix: "фрази відновлення", twelveWordTitle: "Фраза відновлення з 12 слів", twelveWordDesc: "Ваша фраза відновлення схожа на майстер-пароль. Запишіть її на папері й зберігайте в безпеці. Вона знадобиться, щоб отримати доступ до акаунта з інших пристроїв або якщо ви очистите дані браузера.", generate: "Згенерувати фразу відновлення", useNsecInstead: "Натомість використати розширений nsec-ключ", yourPhrase: "Ваша фраза відновлення", copy: "Копіювати", download: "Завантажити", qrCode: "QR-код", criticalWarning: "Критичне попередження про безпеку", warnWriteStrong: "Запишіть її", warnWrite: "на папері та зберігайте в безпеці", warnNeverShareStrong: "Ніколи не передавайте", warnNeverShare: "свою фразу відновлення нікому", warnBackupsStrong: "Тримайте кілька резервних копій", warnBackups: "у різних надійних місцях", warnAnyoneStrong: "Будь-хто з цією фразою", warnAnyone: "назавжди контролює ваш акаунт", warnLoseStrong: "Якщо ви її втратите", warnLose: "ви назавжди втратите свій акаунт", savedSecurely: "Я зберіг її надійно", verifyTitle: "Підтвердьте свою фразу відновлення", verifyDesc: "Щоб переконатися, що ви зберегли її правильно, введіть ці слова:", wordLabel: "Слово №{{n}}", wordPlaceholder: "Введіть слово №{{n}}", goBack: "Назад", verifyCreate: "Підтвердити й створити акаунт", completeTitle: "Акаунт створено!", completeDesc: "Ваш акаунт Nostr готовий!", signerTitle: "Рекомендовано: налаштуйте застосунок-підписувач", signerSubtitle: "Тримайте свої ключі в додатковій безпеці", signerDesc: "Для кращої безпеки використовуйте спеціальний застосунок-підписувач, а не вставляйте свою фразу відновлення всюди. Застосунки-підписувачі зберігають ваші ключі в безпеці, дозволяючи користуватися будь-яким застосунком Nostr.", signerCta: "Дізнатися про застосунки-підписувачі", skip: "Поки що пропустити" }, signupMethod: { titlePrefix: "Виберіть свій", titleSuffix: "спосіб реєстрації", subtitle: "Обидва способи безпечні. Виберіть той, що вам найзручніший!", recommended: "Рекомендовано", mnemonicTitle: "Фраза відновлення", mnemonicDesc: "12 легких для запам'ятовування слів. Галузевий стандарт, який використовують Bitcoin, Ethereum та більшість криптогаманців.", mnemonicF1: "Легко записати на папері", mnemonicF2: "Працює з іншими застосунками Nostr (NIP-06)", mnemonicF3: "Може генерувати кілька акаунтів", mnemonicF4: "Звична для користувачів криптовалют", useMnemonic: "Використати фразу відновлення", advanced: "Для досвідчених", nsecTitle: "Секретний ключ (nsec)", nsecDesc: "Необроблений криптографічний ключ. Технічніший, але дає прямий доступ до вашої ідентичності Nostr.", nsecF1: "Прямий криптографічний контроль", nsecF2: "Сумісний з усіма застосунками Nostr", nsecF3: "Один рядок для резервної копії", nsecF4: "Без шару виведення", useNsec: "Використати секретний ключ", footer: "🔒 Обидва способи однаково безпечні. Виберіть за своїми вподобаннями!" }, skateNip05: { placeholder: "вашеім'я", claimedSuffix: "— ваше — збережіть профіль, щоб опублікувати його.", checking: "Перевірка доступності…", available: "{{name}}@{{domain}} доступний", claim: "Зайняти його", hint: "Літери, цифри, дефіси. Безкоштовно й показується як значок ✓ у вашому профілі." }, nip05Required: { getFree: "Отримати безкоштовний / дешевий NIP-05", paid: "Платно", requiredTitle: "Потрібна верифікація NIP-05", bannerReason: "Щоб запобігти спаму й зміцнити довіру, {{role}} потрібна перевірена адреса Nostr (NIP-05).", gateReason: "Щоб запобігти спаму й зміцнити довіру, {{role}} мусить мати верифікацію NIP-05.", addInSettings: "Додати NIP-05 у налаштуваннях", explainer: "NIP-05 доводить вашу особу, прив'язуючи ваш профіль Nostr до домену — як", updateProfile: "Оновити свій профіль" }, editProfile: { uploadSuccessTitle: "Успіх", uploadSuccessDesc: "{{field}} успішно завантажено", uploadErrorDesc: "Не вдалося завантажити {{field}}. Спробуйте ще раз.", mustBeLoggedIn: "Ви маєте увійти, щоб оновити свій профіль", invalidClinkTitle: "Недійсний код CLINK", invalidClinkDesc: "Це не схоже на дійсний код noffer1… Очистіть його або вставте дійсний.", invalidLightningTitle: "Недійсна адреса Lightning", invalidLightningDesc: "Використовуйте адресу у форматі електронної пошти, наприклад you@walletofsatoshi.com.", invalidSpTitle: "Недійсна адреса Silent Payment", invalidSpDesc: "Адреса Silent Payment починається з «sp1» і досить довга. Очистіть її або вставте дійсну.", invalidCordnTitle: "Недійсне посилання Cordn", invalidCordnDesc: "Вставте повне контактне посилання Cordn https://…", updateSuccessTitle: "Успіх", updateSuccessDesc: "Ваш профіль оновлено", updateErrorDesc: "Не вдалося опублікувати профіль. Перевірте підключення до Relay у Налаштуваннях > Relay", identityTitle: "Ідентичність", identityDesc: "Як вас бачать у всьому SkateSpots.", displayName: "Відображуване ім'я", displayNamePlaceholder: "Ваше ім'я", bio: "Біо", bioPlaceholder: "Кілька слів про вас і ваше катання…", profilePicture: "Фото профілю", pictureDesc: "Завантажте або вставте квадратне зображення.", bannerImage: "Банер", bannerDesc: "Широке зображення для верхньої частини вашого профілю.", website: "Вебсайт", openToSponsorships: "Відкритий до спонсорства", openToSponsorshipsHint: "Показує картку спонсора/колаборації у вашому профілі. Нічого не публікується, доки хтось не напише вам.", sponsorNote: "Нотатка про спонсорство (необов’язково)", sponsorNotePlaceholder: "наприклад: відкритий до партнерів із деками, взуттям, мандрівками та подіями.", bitcoinTitle: "Bitcoin і платежі", bitcoinDesc: "Дозвольте людям надсилати вам Zap, чайові та платити напряму — без посередників.", lightningAddress: "Адреса Lightning", lud16Invalid: "Використовуйте адресу у форматі електронної пошти, напр. you@yourdomain.com.", lud16Ok: "Живить кнопку «Zap» у вашому профілі.", lud16Hint: "Миттєві чайові в Bitcoin. Живить кнопку «Zap» у вашому профілі.", silentPaymentAddress: "Адреса Silent Payment", spInvalid: "Має починатися з «sp1» і бути досить довгою.", spOk: "Дійсна — багаторазова приватна адреса в мережі.", spHint: "Повторно використовувана статична адреса в мережі (BIP-352). Поділіться нею один раз; кожен платіж неможливо пов'язати.", clinkTipCode: "Код чайових CLINK", nofferInvalid: "Це не схоже на дійсний код noffer1…", nofferOk: "Дійсний — кнопка «Чайові в Bitcoin» з'явиться у вашому профілі.", nofferHint: "Код CLINK із самостійним зберіганням, щоб будь-хто міг надіслати вам чайові через Nostr — без посередників.", skateProfileTitle: "Профіль скейтера", skateProfileDesc: "Показуйте своїх спонсорів і як Crew може з вами зв'язатися.", badges: "Значки", badgesHint: "(напис + необов'язкове посилання)", badgeExample: "напр. Independent Trucks", badgeLabelPlaceholder: "Напис значка…", badgeUrlPlaceholder: "https://… (необов'язково)", removeBadge: "Видалити значок", addBadge: "Додати значок", badgesDescBefore: "Спонсори, Shop-и чи люди, які підтримують ваше катання — і будь-що інше, чим хочете похвалитися. Кожен стає клікабельним чипом у вашому профілі. Ваш", badgesDescAfter: "значок учасника додається автоматично.", coordinator: "Координатор", cordnInvalid: "Це не схоже на координатора. Вставте nprofile, посилання cordn.net або URL https://.", cordnOk: "Показується у вашому профілі — інші можуть додати його одним торканням.", cordnHint: "Координатор Cordn, який інші використовують, щоб писати вам. Приватний, зашифрований, ваш.", useMyCoordinator: "Використати мій координатор", accountTitle: "Акаунт", accountDesc: "Додаткові налаштування акаунта.", botAccount: "Акаунт-бот", botAccountDesc: "Позначити цей акаунт як автоматизований або бота.", saving: "Збереження…", saveProfile: "Зберегти профіль", nip05VerifiedHandle: "Перевірений нікнейм NIP-05", nip05How: "Як?", extraHandles: "Додаткові нікнейми", extraHandlesHint: "необов'язково — додайте до 5", nip05HintEmpty: "Перевірений нікнейм на кшталт you@yourdomain.com — версія синьої галочки від Nostr. Показує значок ✓ у вашому профілі та відкриває фільтр «Перевірені» в довіднику скейтерів.", nip05Invalid: "Використовуйте нікнейм у форматі електронної пошти, напр. you@yourdomain.com — без «https://» і пробілів.", nip05Checking: "Перевірка вашого домену…", nip05Verified: "Перевірено — ваш домен підтверджує, що цей нікнейм належить вам. ✓", nip05Mismatch: "Ваш домен прив'язує цей нікнейм до ІНШОГО ключа. Виправте свій .well-known/nostr.json, щоб він указував на цей акаунт.", nip05Unreachable: "Поки що не вдалося достукатися до /.well-known/nostr.json вашого домену. Збережені нікнейми все одно працюватимуть, щойно домен налаштовано правильно.", nip05Enter: "Введіть свій нікнейм NIP-05.", freeHandleBefore: "Немає власного домену? Займіть безкоштовний", freeHandleAfter: "нікнейм від SkateSpots.", uploadLabel: "Завантажити {{label}}", previewLabel: "Попередній перегляд {{label}}" }, security: { recoveryCopied: "Код відновлення скопійовано. Зберігайте його в надійному місці.", savedTitle: "Збережено!", recoveryDownloaded: "Код відновлення завантажено. Зберігайте його в надійному місці.", downloadFailedTitle: "Не вдалося завантажити", downloadFailedDesc: "Скопіюйте його вручну.", loginRequired: "Потрібен вхід", loginRequiredDesc: "Увійдіть, щоб отримати доступ до налаштувань безпеки.", backupConfirmedTitle: "Резервну копію підтверджено! ✅", backupConfirmedDesc: "Чудово! Ваші ключі в безпеці.", yourRecoveryCode: "Ваш код відновлення", recoveryCodeDesc: "Не зберегли його під час реєстрації? Ви можете взяти його тут будь-коли.", recoveryCodeBefore: "Цей код —", only: "єдиний", recoveryCodeAfter: "спосіб знову увійти на новому пристрої чи в браузері. Збережіть його в надійному місці (менеджер паролів або записаний на папері). Будь-хто, хто його має, контролює ваш акаунт — ніколи не передавайте його.", revealRecovery: "Показати мій код відновлення", qrHint: "Скануйте іншим застосунком Nostr для входу. Тримайте цей екран у таємниці.", neverShareHide: "⚠️ Ніколи не передавайте це. Сховайте, коли закінчите.", hide: "Сховати", amberNoteBefore: "Ви увійшли через", amberNoteAfter: ". Ваш код відновлення зберігається всередині Amber — відкрийте застосунок Amber, щоб зробити його копію. SkateSpots ніколи не бачить ваш ключ.", bunkerNoteBefore: "Ви увійшли через", remoteSigner: "віддалений підписувач (bunker)", bunkerNoteAfter: ". Ваш код відновлення зберігається у службі-підписувачі, а не в SkateSpots. Зробіть його копію там.", extensionNoteBefore: "Ви увійшли через", browserExtension: "розширення браузера", extensionNoteAfter: ". Ваш код відновлення зберігається в розширенні — скористайтеся його власним варіантом резервного копіювання/експорту. SkateSpots ніколи не бачить ваш ключ.", otherNote: "Вашим кодом відновлення керує застосунок-підписувач, а не SkateSpots. Зробіть його копію там.", backupWarningTitle: "⚠️ Ви зробили резервну копію своєї фрази відновлення чи секретного ключа?", backupWarningBody: "Ваші ключі — ЄДИНИЙ спосіб отримати доступ до акаунта. Якщо ви їх втратите, ви втратите все — скидання пароля не існує!", iveBackedUp: "Я зробив резервну копію своїх ключів", backupConfirmed: "✅ Резервну копію підтверджено", backupNotConfirmed: "⚠️ Резервну копію не підтверджено", backupConfirmedStatusDesc: "Ви підтвердили, що ваші ключі надійно збережено.", backupNotConfirmedDesc: "Обов'язково зробіть резервну копію фрази відновлення або секретного ключа!", notSavedYetBefore: "Ще не зберегли свій код відновлення? Не проблема — візьміть його з", notSavedYetAfter: "розділу вище, збережіть у надійному місці, а потім підтвердьте нижче.", yesBackedUp: "Так, я зробив резервну копію своїх ключів", bestPracticesTitle: "Найкращі практики захисту ключів", bestPracticesDesc: "Як зберегти свій акаунт Nostr у безпеці", bp1Title: "Запишіть його на папері", bp1Desc: "Фізична резервна копія — найбезпечніша. Зберігайте в надійному місці, як-от сейф.", bp2Title: "Кілька резервних копій", bp2Desc: "Тримайте копії в різних надійних місцях (домашній сейф, банківська комірка тощо)", bp3Title: "Ніколи не передавайте свої ключі", bp3Desc: "Справжні застосунки Nostr НІКОЛИ не запитують ваш nsec чи фразу відновлення після початкового входу", bp4Title: "Не зберігайте в хмарі без шифрування", bp4Desc: "Уникайте Google Docs, чернеток електронної пошти чи хмарних сховищ зі звичайним текстом", bp5Title: "Подумайте про використання розширення браузера", bp5Desc: "Alby, nos2x або Flamingo зберігають ваші ключі в безпеці й ніколи не розкривають їх вебсайтам", importantReminders: "⚠️ Важливі нагадування", rem1: "Якщо ви втратите ключі, ви назавжди втратите акаунт", rem2: "Жодна компанія чи людина не може скинути ваш пароль — навіть ми", rem3: "Будь-хто з вашими ключами має повний контроль над вашим акаунтом", rem4: "Ваші ключі керують усіма вашими даними Nostr у ВСІХ застосунках", recommendedSigners: "🔌 Рекомендовані підписувачі Nostr", recommendedSignersDesc: "Використовуйте підписувач Nostr для кращої безпеки та зручності", recommended: "Рекомендовано", amberDesc: "Безпечний підписувач Nostr для Android. Зберігає ваші ключі в безпеці на телефоні та підписує події, не розкриваючи їх.", albyDesc: "Повнофункціональне розширення з гаманцем Lightning, підтримкою WebLN і NWC.", flamingoDesc: "Простий, чистий інтерфейс. Зосереджений на підписуванні Nostr без функцій гаманця.", nos2xDesc: "Мінімальне, легке розширення для досвідчених користувачів.", nostrConnectTitle: "☁️ Nostr Connect (віддалені підписувачі)", nostrConnectDesc: "Використовуйте віддалений підписувач, щоб отримати доступ до акаунта з будь-якого пристрою", nostrConnectBody: "Nostr Connect (також званий «bunker») дозволяє зберігати ключі на захищеному сервері та входити з будь-якого пристрою. Ваші ключі ніколи не залишають сервер, але ви можете користуватися акаунтом будь-де!", nsecAppDesc: "Безкоштовний, безпечний віддалений підписувач. Створіть bunker:// URI і вставте його під час входу.", nostrumDesc: "Ще один варіант віддаленого підписувача з підтримкою мобільних пристроїв.", howToUse: "💡 Як користуватися:", howToUseDesc: "Створіть акаунт на одному з цих сервісів, отримайте свій рядок підключення bunker://, а потім вставте його на вкладці «Nostr Connect» під час входу." }, relayList: { connected: "Підключено", connecting: "Підключення…", offline: "Офлайн", removeUrl: "Видалити {{url}}", add: "Додати", publishedTitle: "Список Relay опубліковано", publishedDesc: "Синхронізовано з Nostr (kind 10002).", publishFailedTitle: "Не вдалося опублікувати список Relay", invalidUrlTitle: "Недійсний URL Relay", invalidUrlDesc: "Спробуйте щось на кшталт wss://relay.example.com", alreadyInList: "Relay уже у вашому списку", keepReadWriteTitle: "Залиште читання або запис увімкненим", keepReadWriteDesc: "Relay потребує принаймні одного з: читання/запис.", alreadyInThisList: "Relay уже в цьому списку", dmPublishedTitle: "DM Relay опубліковано", dmPublishedDesc: "Вхідні NIP-17 оновлено.", dmPublishFailedTitle: "Не вдалося опублікувати DM Relay", nip65Title: "Relay (NIP-65)", nip65DescUser: "Торкніться «Читання» / «Запис», щоб перемкнути. Публікується в Nostr як ваш список kind 10002.", nip65DescLoggedOut: "Торкніться «Читання» / «Запис», щоб перемкнути. Увійдіть, щоб опублікувати свій список у Nostr.", noRelays: "Relay поки немає — додайте нижче.", local: "Локальний", read: "Читання", readHint: "Отримувати контент із цього Relay", write: "Запис", writeHint: "Публікувати свої події на цей Relay", dmTitle: "Relay вхідних DM", dmDesc: "Де ви отримуєте прямі повідомлення NIP-17 (kind 10050). Якщо порожньо, використовуються ваші Relay для запису.", localTitle: "Локальні Relay", localDesc: "Лише для застосунку (напр. вузол у локальній мережі). Використовується для читання й запису; ніколи не публікується.", blockedTitle: "Заблоковані Relay", blockedDesc: "Ніколи не підключатися до них — виключені з кожного читання й запису." }, relatr: { searchingTitle: "Пошук служби Relatr...", searchingDesc: "Запит до Nostr про профілі Relatr", foundTitle: "Службу Relatr знайдено!", foundDesc: "Служба: {{name}}", unknown: "Невідомо", notFoundTitle: "Службу Relatr не знайдено", notFoundDesc: "Спробуйте ввести pubkey вручну або перевірте https://www.relatr.xyz/", searchFailedTitle: "Пошук не вдався", searchFailedDesc: "Не вдалося запитати Nostr про профілі Relatr", invalidPubkeyTitle: "Недійсний pubkey", invalidPubkeyDesc: "Введіть дійсний hex pubkey з 64 символів", enabledTitle: "Relatr увімкнено!", enabledDesc: "Глобальні оцінки довіри тепер активні.", disabledTitle: "Relatr вимкнено", disabledDesc: "Оцінки довіри більше не завантажуються.", title: "Оцінки довіри Relatr", desc: "Глобальні оцінки довіри допомагають визначати надійних користувачів і зменшувати спам", status: "Статус", active: "Активно", disabled: "Вимкнено", activeStrong: "Relatr активний.", activeDesc: "Оцінки довіри з глобального аналізу мережі ContextVM допомагають визначати надійних скейтерів і зменшувати спам.", disabledStrong: "Relatr вимкнено.", disabledHint: "Увімкніть його, щоб отримувати оцінки довіри з глобальної мережі Nostr.", disable: "Вимкнути Relatr", enable: "Увімкнути Relatr", advancedSettings: "Розширені налаштування", servicePubkey: "Pubkey служби Relatr", pubkeyPlaceholder: "Введіть hex pubkey з 64 символів...", searching: "Пошук...", autoDiscover: "Автовиявлення", pubkeyDefault: "За замовчуванням: офіційна служба Relatr від ContextVM (npub1dvmc...)", relayLabel: "Relay (де Relatr публікує оцінки)", relayDefault: "За замовчуванням: wss://relay.contextvm.org (офіційний Relay ContextVM)", applyChanges: "Застосувати зміни", learnMore: "Дізнатися більше:", website: "Вебсайт Relatr", github: "GitHub Relatr", nip85Spec: "Специфікація NIP-85" }, followList: { unfollow: "Відписатися", title: "Ваша мережа Nostr", desc: "Керуйте тими, на кого підписані. Підписка на користувачів допомагає будувати вашу Мережу довіри та визначає, які Spot показують значки довіри.", following: "Підписки ({{count}})", followers: "Підписники ({{count}})", follow: "Підписатися", followHint: "💡 Вставте pubkey Nostr (npub1...), адресу NIP-05 (user@domain.com) або hex pubkey", notFollowing: "Ви ще ні на кого не підписані", notFollowingHint: "Підписуйтесь на скейтерів, щоб бачити їхні Spot із значками ✅ ПЕРЕВІРЕНО", trustActiveStrong: "✅ Значки довіри активні:", trustActive: "Spot, створені людьми, на яких ви підписані, тепер показуватимуть значки ПЕРЕВІРЕНО. Spot від їхніх друзів показуватимуть значки ДОВІРЕНО.", noFollowers: "Підписників поки немає", noFollowersHint: "Поділіться своїм профілем Nostr, щоб отримати підписників!", howTitle: "💡 Як підписки впливають на значки довіри", verifiedStrong: "✅ ПЕРЕВІРЕНО (зелений):", verifiedDesc: "Spot, створені людьми, на яких ви підписані напряму", trustedStrong: "🟡 ДОВІРЕНО (жовтий):", trustedDesc: "Spot, створені людьми, на яких підписані ваші друзі (2 кроки)", unverifiedStrong: "⚪ Неперевірено:", unverifiedDesc: "Spot від користувачів без зв'язку з вашою мережею", tip: "💡 Порада: підписуйтесь на активних скейтбордистів, щоб бачити більше перевірених Spot і будувати свою мережу довіри!" }, notify: { enableTitle: "Увімкнути сповіщення", enableDesc: "Подавайте сигнал на цей пристрій, коли щось потребує вашої уваги.", checkingPermission: "Перевірка дозволу…", unsupported: "Цей пристрій тут не підтримує сповіщення. Перебудуйте застосунок Android, щоб увімкнути їх на телефоні.", denied: "Сповіщення заблоковано для цього сайту. Дозвольте їх у налаштуваннях браузера/ОС, потім спробуйте ще раз.", backgroundTitle: "Фонові сповіщення", backgroundDesc: "Отримуйте сигнали про повідомлення й угоди, навіть коли SkateSpots закрито.", pushUnsupported: "Цей браузер не підтримує фоновий push. На мобільному додайте SkateSpots на головний екран.", pushPrivacy: "Щоб досягти вас, коли застосунок закрито, сервер сповіщень SkateSpots отримує сигнал від вашого Relay, коли для вашого ключа щось надходить, і передає його в службу push вашого телефону. Він бачить лише те, що для вашого ключа щось є — ніколи не те, хто надіслав чи що там написано, і не може розшифрувати ваші повідомлення. Згода на кожен пристрій окремо.", bgDeliveryTitle: "Фонова доставка (Android)", bgDeliveryDesc: "Перевіряйте нові повідомлення, пропозиції та угоди, поки застосунок закрито — без сервісів Google.", off: "Вимкнено", standard: "Стандартно (~15 хв)", fast: "Швидко (~5 хв)", bgDeliveryNote: "Стандартно — за можливості; Android може відкласти це під час Doze. Швидко показує постійне сповіщення й витрачає більше батареї. Нічого не розшифровується на нашому сервері.", notifyMeAbout: "Сповіщати мене про", couldNotEnable: "Не вдалося увімкнути", sendTest: "Надіслати тестове сповіщення", testTitle: "Сповіщення SkateSpots увімкнено 🛹", testBody: "Ось як виглядатиме DM, Zap чи запрошення до Crew.", footerBefore: "Сповіщення створюються на вашому пристрої з даних, які застосунок уже має, а сповіщення про прямі повідомлення ніколи не розшифровують ваші повідомлення — тож Amber ніколи не просять відкрити якесь із них. Якщо", footerAfter: "вимкнено, до повністю закритого застосунку не достукатися, тож сповіщення надійдуть наступного разу, коли ви відкриєте SkateSpots.", cat_dms_label: "Прямі повідомлення", cat_dms_hint: "Хтось надсилає вам приватне повідомлення", cat_crew_label: "Crew", cat_crew_hint: "Запрошення, запити на приєднання та підтвердження членства", cat_social_label: "Zap, відповіді та згадки", cat_social_hint: "Реакції, репости, Zap, відповіді та оновлення подій", cat_newsletter_label: "Розсилка", cat_newsletter_hint: "Нові випуски SkateSpots (лише для підписників)", cat_trades_label: "Пропозиції та угоди", cat_trades_hint: "Пропозиції, зустрічні пропозиції та підтвердження угод", cat_reminders_label: "Нагадування про події", cat_reminders_hint: "Нагадування за годину до подій, на які ви йдете (застосунок Android)" }, regionBackfill: { taggedTitle: "Позначено {{count}} місце{{s}}", taggedSkipped: "{{count}} пропущено (немає координат або збігу в геокодері).", taggedOk: "Теги регіонів записано на громадський Relay.", nothingTitle: "Нічого позначати", nothingDesc: "Жодну мітку не вдалося геокодувати. Спробуйте пізніше.", failedTitle: "Заповнення не вдалося", title: "Заповнити теги регіонів", admin: "Адмін", descBefore: "Мітки, створені до появи геокодування, мають координати, але без тегу міста/країни, тож мапа малює їх, а статистика спільноти може лише сказати «Без категорії». Це повторно виводить теги з кожної мітки та повторно публікує", descStrong: "ваші власні", descAfter: "Spot і Shop без тегів.", scanning: "Сканування ваших Spot…", allTagged: "Кожен ваш Spot і Shop уже має тег регіону. 🎉 Будь-які решта міток «Без категорії» належать іншим картографам — лише їхні власні ключі можуть їх позначити.", countLine: "{{count}} ваших Spot{{s}}/Shop не мають тегу регіону. Ваш підписувач може попросити підтвердити кожен.", tagging: "Позначення {{done}}/{{total}}…", run: "Заповнити теги регіонів", summary: "{{updated}} оновлено · {{skipped}} пропущено · {{failed}} з помилками" }, adminReview: { title: "Черга перевірки", flagged: "{{count}} Spot{{s}} подають сигнали сміття — сховайте або відхиліть.", clean: "Spot, схожі на тестові записи чи офтопні мітки." }, grantPro: { invalidNpub: "Введіть дійсний npub (або hex pubkey)", invalidDays: "Кількість днів має бути додатним числом", grantedTitle: "Pro надано ⚡", grantedDesc: "{{npub}} до {{date}}", failedTitle: "Не вдалося надати", title: "Надати Sasquatch Pro", owner: "Власник", desc: "Ручний варіант на випадок підтвердженого платежу, який пропустив Zap-квитанцію. Публікує надання, підписане власником; користувач не може його підробити.", targetPlaceholder: "npub1… (або hex)", grant: "Надати" }, myData: { reactionTitle: "Реакція {{emoji}}", deleting: "Видалення...", requestDeletion: "Запросити видалення", selectContentTitle: "Виберіть контент для видалення", selectContentDesc: "Виберіть конкретні елементи, для яких хочете запросити видалення.", all: "Усе", spots: "Spot", events: "Події", shops: "Shop", listings: "Оголошення", collections: "Колекції", lab: "Lab", posts: "Дописи", reactions: "Реакції", selectAll: "Вибрати все", selectAllVisible: "Вибрати все видиме", selectedCount: "{{count}} вибрано", noItemsCategory: "У цій категорії немає елементів", decentralizedStrong: "Важливо:", decentralizedNote: "Nostr децентралізований. Relay мають виконувати запити на видалення, але деякі можуть цього не робити. Це не гарантоване остаточне видалення.", deleteCount: "Видалити {{count}} елемент{{s}}", noDataTitle: "Немає даних для експорту", noDataDesc: "Ви ще не опублікували жодної події.", exportedTitle: "Дані експортовано!", exportedDesc: "Завантажено {{count}} подій у форматі JSON.", deletionRequestedTitle: "Видалення запитано", deletionRequestedDesc: "Запит на видалення опубліковано на Relay.", deletionRequestedMany: "Запрошено видалення {{count}} елементів. Зауважте: деякі Relay можуть не виконати цей запит.", deletionFailedTitle: "Видалення не вдалося", deletionFailedDesc: "Не вдалося опублікувати запит на видалення. Спробуйте ще раз.", loginRequired: "Потрібен вхід", loginRequiredDesc: "Увійдіть, щоб переглядати свої дані та керувати ними.", title: "Мої дані", desc: "Ваш контент у мережі Nostr. Ви володієте цими даними — експортуйте будь-коли або запросіть видалення.", coachFilmer: "Тренер/Оператор", zaps: "Zap", received: "Отримано", exportAll: "Експортувати всі дані", recentActivity: "Остання активність", viewAll: "Переглянути все ({{count}})", noDataPublished: "Даних ще не опубліковано", startBy: "Почніть із", addingASpot: "додавання Spot", aboutYourData: "Про ваші дані", ownDataStrong: "Ви володієте своїми даними.", ownData: "Увесь контент підписано вашими криптографічними ключами та збережено на Relay Nostr. Жодна компанія ним не керує.", exportAnytimeStrong: "Експортуйте будь-коли", exportAnytime: "- Завантажте всі свої події у форматі JSON", portableStrong: "Портативність", portable: "- Використовуйте свої ключі в будь-якому застосунку Nostr", selectiveStrong: "Вибіркове видалення", selective: "- Виберіть, що саме видалити", caveatStrong: "Застереження щодо децентралізації", caveat: "- Деякі Relay можуть зберігати дані попри запити на видалення" }, settingsPage: { seoTitle: "Налаштування - SkateSpots", seoDescription: "Керуйте налаштуваннями свого акаунта SkateSpots.", heading: "НАЛАШТУВАННЯ", subtitle: "Налаштування акаунта й застосунку", editProfile: "Редагувати профіль", profileRefreshed: "Профіль оновлено!", found: "Знайдено: {{name}}", unnamed: "без імені", profileNotFound: "Профіль не знайдено", notFoundOnRelay: "Не знайдено на жодному Relay.", refreshFailed: "Оновлення не вдалося", refreshFailedDesc: "Не вдалося підключитися до Relay.", loginToEdit: "Увійдіть, щоб редагувати свій профіль", noProfileRelays: "Нам не вдалося знайти профіль на Relay. Якщо ви вже його налаштовували, спробуйте оновити.", checkDisplayName: "відображуване ім'я", checkPhoto: "фото профілю", checkBio: "коротке біо", checkLightning: "адресу Lightning, щоб люди могли надсилати вам Zap", checkHandle: "безкоштовний нікнейм @skate-spots.org", finishProfile: "Завершіть свій профіль", addItem: "Додати {{item}}", nip05Title: "Верифікація NIP-05", nip05Desc: "Отримайте перевірену адресу Nostr (як name@domain.com), щоб зміцнити довіру. Потрібна для створення подій, профілів тренерів і Shop-ів.", freeFromSkateSpots: "Безкоштовно від SkateSpots", claimHandleBefore: "Займіть нікнейм на кшталт", claimHandleAfter: "— без реєстрації, без витрат, без домену для обслуговування. Займіть його на вкладці «Профіль», потім збережіть.", claimInProfile: "Зайняти в профілі", nip05Footer: "Отримавши свій NIP-05, додайте його в поле профілю та збережіть.", localRelayOn: "Локальний Relay увімкнено", localRelayOff: "Локальний Relay вимкнено", lookingForCitrine: "Пошук Citrine на цьому пристрої…", noLongerUsing: "Більше не використовується локальний Relay.", localRelay: "Локальний Relay", citrineOff: "Швидше читання й офлайн-резервна копія на цьому пристрої", citrineSearching: "Пошук Citrine на цьому пристрої…", citrineLive: "Підключено — читання й резервне копіювання локально", citrineWaiting: "Увімкнено — запустіть Citrine для підключення", toggleCitrine: "Перемкнути локальний Relay Citrine", citrineDetected: "Relay Citrine виявлено", citrineLooking: "Пошук Citrine…", citrineNotDetected: "Citrine не виявлено", recheckCitrine: "Перевірити Relay Citrine ще раз", checking: "Перевірка", recheck: "Перевірити ще раз", chipInstantReads: "Миттєве читання", chipWorksOffline: "Працює офлайн", chipOnDeviceBackup: "Резервна копія на пристрої", cantReachStrong: "Не вдається достукатися до Citrine.", cantReachBefore: "Переконайтеся, що безкоштовний застосунок Citrine встановлено, а його Relay", started: "запущено", cantReachAfter: ", потім торкніться «Перевірити ще раз». Він запускає приватний Relay Nostr на вашому телефоні для миттєвого читання й офлайн-резервної копії.", citrineStep1Before: "Відкрийте Citrine → торкніться", start: "Запустити", citrineStep2Before: "Поверніться сюди → торкніться", getCitrine: "Отримати Citrine", citrinePrivacy: "Ваш Stash і повідомлення залишаються тут із наскрізним шифруванням, точно як будь-де інше. Локальний Relay лише прискорює роботу й зберігає копію на вашому пристрої — він ніколи не замінює шифрування.", communityRelayDisabled: "Громадський Relay вимкнено", communityRelayEnabled: "Громадський Relay увімкнено", usingOnlyPersonal: "Використовуються лише ваші налаштовані Relay.", skateRelayIncluded: "Relay SkateSpots включено.", relays: "Relay", relayPrivacyBefore: "Relay бачать вашу", ipAddress: "IP-адресу", relayPrivacyAfter: "коли ви підключаєтесь. Tor її приховує — а до «безкоштовного» VPN ставтеся як до попередження; зазвичай вони монетизують ваш трафік.", communityRelay: "Громадський Relay", syncingGlobal: "Синхронізація з глобальною скейт-спільнотою", usingOnlyPersonalShort: "Використовуються лише особисті Relay", appearance: "Вигляд", language: "Мова", darkModeOnly: "Лише темна тема", darkModeDesc: "SkateSpots використовує темну неонову естетику, натхненну скейт-культурою. Чорний фон, неоново-рожевий, лаймовий і оранжевий.", navigation: "Навігація", sasquatchExpanded: "Sasquatch розширено! 🦧 Оновіть сторінку, щоб побачити його.", advanced: "Додатково", sasquatchGuide: "🦧 Посібник Sasquatch", sasquatchResetDesc: "Скинути посібник із початкового налаштування до розширеного вигляду", expandSasquatch: "Розгорнути The Sasquatch", wallet: "Гаманець", loginToWallet: "Увійдіть, щоб керувати своїм гаманцем", openWallet: "Відкрити гаманець", balanceSendReceive: "Баланс, надсилання, отримання", connectNwc: "Підключити гаманець NWC", account: "Акаунт", security: "Безпека", securitySub: "Ключі, підписування, Amber", nip05Sub: "Отримайте перевірену адресу Nostr", app: "Застосунок", myStash: "Мій Stash", myStashSub: "Приватний інвентар Gear", relaysSub: "Підключення до Relay Nostr", appearanceSub: "Мова й тема", assistant: "Асистент", showSasquatch: "Показувати асистента Sasquatch", showSasquatchDesc: "Показувати плаваючу кнопку Sasquatch на мапі та інших екранах.", showMapFooter: "Показувати панель посилань мапи", showMapFooterDesc: "Показувати тонкий рядок посилань унизу мапи.", notifications: "Сповіщення", notificationsSub: "Сповіщення про DM, Crew і Zap", coordinator: "Координатор", coordinatorSub: "Ваш груповий сервер Cordn", data: "Дані", myData: "Мої дані", myDataSub: "Експорт, імпорт, керування", advancedSub: "Relatr, Sasquatch, інструменти", notLoaded: "Не завантажено", notLoggedIn: "Ви не увійшли" }, onboarding: { seoTitle: "Почніть — SkateSpots", seoDescription: "Приєднуйтесь до децентралізованої скейтбординг-спільноти. Знаходьте Spot, зв'язуйтесь із тренерами, надсилайте Zap. Безкоштовно назавжди.", homeSetTitle: "Дім встановлено 🛹", homeSetDesc: "Тепер мапа відкриватиметься на вашій місцевості.", locationFailedTitle: "Не вдалося отримати вашу локацію", locationFailedDesc: "Перевірте дозволи на локацію або виберіть свою місцевість на мапі.", niceTitle: "🎉 Чудово!", niceDesc: "Тепер ви розумієте, як працює Nostr. Погнали катати!", npubCopied: "npub скопійовано в буфер обміну.", saveLoginNow: "Збережіть свій вхід — зробіть це зараз", saveLoginNowDesc: "Ваш код відновлення — єдиний спосіб повернутися до акаунта. Без пошти, без скидання пароля.", betaBadge: "Бета — відкрито для скейтерів у всьому світі", headline1: "КАТАЙ", headline2: "СВІЙ СВІТ", heroBefore: "Це", decentralized: "децентралізована", heroAfter: "скейт-спільнота. Нею не володіє жодна компанія. Жоден алгоритм не ховає ваші Spot. Жодного бан-молота. Лише скейтери.", pillMap: "Мапа Spot", pillCoaches: "Тренери й оператори", pillEvents: "Події", pillGear: "Купити/продати Gear", pillZaps: "Bitcoin Zap", pillStash: "Stash Gear", pillCrews: "Crew", createFreeAccount: "Створіть свій безкоштовний акаунт", noEmailNoPassword: "Без пошти. Без пароля. Володійте своєю ідентичністю назавжди.", findSpots: "Знайдіть Spot поруч із вами", addFirstSpot: "Додайте свій перший Spot", accountCreated: "Ви в грі! Акаунт створено ✓", identityYours: "Ваша ідентичність належить вам — вона зберігається у вашому ключі, а не на наших серверах.", whereSkate: "Де ви катаєтесь?", whereSkateDesc: "Встановіть свою домашню місцевість один раз, і мапа щоразу відкриватиметься на ваших Spot. Ваш GPS ніколи не залишає пристрій.", useMyLocation: "Використати мою локацію", pickOnMap: "Вибрати на мапі", loginSaved: "Вхід збережено — ваш акаунт можна безпечно відновити.", whyBother: "Навіщо це?", why1Title: "Кожен Spot — на одній мапі", why1Body: "Парапети, поручні, DIY, парки — нанесені скейтерами, які справді на них катаються. Перевірте статус, перш ніж вирушати, щоб не витратити сесію на невдачу.", why2Title: "Створено скейтерами, а не костюмами", why2Body: "Без реклами, без алгоритму, що пхає непотріб вам в обличчя, без збору даних. Відкритий код. Мапа належить спільноті — включно з вами.", why3Title: "Отримуйте гроші за катання", why3Body: "Нанесіть на мапу знахідку, зніміть класний трюк, проведіть сесію — і отримайте справжній Bitcoin Zap прямо у свій гаманець. Без комісії платформи, без посередників.", why4Title: "Ваш акаунт справді ваш", why4Body: "Один ключ входить у будь-який застосунок Nostr. Жодна компанія не може вас заблокувати чи видалити акаунт за забаганкою. Беріть свою ідентичність будь-куди.", everythingFree: "Усе, що ви можете робити — безкоштовно", featSpots: "Знаходьте Spot", featSpotsDesc: "Інтерактивна мапа з тисячами Spot по всьому світу", featLab: "The Lab", featLabDesc: "Знаходьте тренерів, операторів і відеомонтажерів поруч", featEvents: "Події", featEventsDesc: "Змагання, сесії, зустрічі", featGear: "Купити / продати Gear", featGearDesc: "Одноранговий маркетплейс уживаного скейт-Gear", featStash: "Мій Stash", featStashDesc: "Приватний зашифрований інвентар усього, чим ви володієте", featCrews: "Crew", featCrewsDesc: "Катайте зі своїм Crew — спільні Spot, чат і сесії", whatIsNostr: "Що таке Nostr?", whatIsNostrSub: "Протокол, на якому працює SkateSpots", nostrBefore: "Nostr — це відкритий протокол, як електронна пошта, але для соціальних застосунків. Ваш акаунт — це", cryptoKeyPair: "криптографічна пара ключів", nostrAfter: ", якою володієте ви. Жодна окрема компанія не контролює ваш акаунт чи дані — ви вибираєте, які Relay їх зберігають, і навіть можете запустити власний. Ваша ідентичність працює в кожному застосунку Nostr.", nostrPoint1: "Ви володієте своїми даними й ключами", nostrPoint2: "Жодна компанія не може вас забанити", nostrPoint3: "Ідентичність працює всюди", nostrPoint4: "Прямі чайові в Bitcoin", deepDive: "Глибоке занурення: як працює Nostr", privacyTip: "Порада щодо приватності: ваш GPS ніколи не залишає пристрій. Сервери, до яких ви підключаєтесь (як тайли мапи), усе одно бачать вашу IP — якщо хочете приховати й це, підійде VPN або Tor. Цілком необов'язково.", readPrivacy: "Прочитайте нашу сторінку приватності", zapsWallet: "⚡ Zap і гаманець", optional: "Необов'язково", walletDesc: "Zap — це чайові в Bitcoin, які ви надсилаєте напряму скейтеру, що знайшов крутий Spot, зняв класний кліп чи провів чудову сесію. Без комісії платформи. Без посередників. 100% іде їм.", builtInWallet: "Вбудований гаманець Cashu", builtInWalletDesc: "Отримуйте платежі Lightning прямо в застосунку. Без налаштування.", balance: "Баланс", connectExternal: "Підключити зовнішній гаманець", connectExternalDesc: "Маєте Alby, Mutiny чи інший гаманець? Підключіть його через NWC.", connectViaNwc: "Підключити через NWC", loginToConnect: "Увійдіть, щоб підключити власний гаманець.", fiveDollars: "💡 $5 у Bitcoin = сотні Zap, які можна роздати спільноті", commonQuestions: "Поширені запитання", faq1Q: "SkateSpots безкоштовний?", faq1A: "100% безкоштовний. Переглядайте Spot, додавайте локації, знаходьте тренерів, створюйте події, приєднуйтесь до сесій — усе безкоштовно, назавжди. Bitcoin (Zap) необов'язковий, якщо хочете віддячити творцям.", faq2Q: "Що таке Nostr і чому SkateSpots його використовує?", faq2Before: "Nostr — це відкритий протокол для децентралізованих застосунків — уявіть його як сам інтернет, яким не володіє жодна компанія. Ваш акаунт SkateSpots — це криптографічна пара ключів, якою", faq2Strong: "володієте ви", faq2After: ". Жодна окрема компанія не може забанити ваш акаунт чи взяти ваші дані в заручники — ви вибираєте, які Relay зберігають ваші дані, і навіть можете запустити власний. Ваша ідентичність також працює в інших застосунках Nostr, як-от Primal, Damus чи Amethyst.", faq3Q: "Що таке nsec і чому це важливо?", faq3Before: "Ваш", faq3Mid: "— це ваш приватний ключ — єдиний доказ, що акаунт належить вам. На відміну від паролів, тут", faq3Strong: "немає «забув пароль»", faq3After: ". Якщо ви втратите свій nsec, акаунт зникне назавжди. Створюючи акаунт, одразу завантажте резервну копію та зберігайте її в надійному місці (менеджер паролів, записана офлайн).", faq4Q: "Які підписувачі / застосунки працюють зі SkateSpots?", faq4Desktop: "На комп'ютері:", faq4Extensions: "розширення браузера.", faq4Android: "На Android:", faq4AndroidAfter: "(найкращий досвід із нативним застосунком).", faq4Ios: "На iOS:", faq4IosAfter: "або вставте свій nsec безпосередньо (менш безпечно).", faq4Note: "Ви також можете увійти, вставивши свій nsec безпосередньо — але використання розширення-підписувача безпечніше.", faq5Q: "Чи можу я користуватися SkateSpots на телефоні?", faq5Before: "Так! SkateSpots — це PWA (прогресивний вебзастосунок). Відвідайте", faq5Mid: "у браузері телефона й торкніться", faq5Em: "«Додати на головний екран»", faq5After: "для повноцінного досвіду застосунку. Або завантажте його з", faq5End: "— децентралізованого магазину застосунків.", faq6Q: "Що таке Zap?", faq6A: "Zap — це миттєві чайові в Bitcoin, надіслані через мережу Lightning. Коли ви надсилаєте Zap скейтеру, sats потрапляють у його гаманець за секунди — без PayPal, без Venmo, без комісії. Людина, яка зняла той 4-східцевий трюк, отримує оплату напряму від фанатів.", faq7Q: "Чи будуть мої Spot видалені, якщо SkateSpots закриється?", faq7A: "Ні. Ваші Spot публікуються на Relay Nostr — розподілених серверах, які може запустити будь-хто. Навіть якби продукт SkateSpots зник завтра, ваші дані все одно існували б на Relay, і будь-який клієнт Nostr міг би їх показати.", faq8Q: "Чи можу я додати Spot на приватній території?", faq8A: "Можете, але будьте розсудливі. Spot на приватній території слід позначати відповідно, щоб скейтери знали ситуацію. SkateSpots не несе відповідальності за проникнення на чужу територію — завжди поважайте власників і місцевих.", faq9Q: "Як повідомити про помилку чи залишити відгук?", faq9Before: "Напишіть команді SkateSpots напряму в Nostr або зв'яжіться з нашим бета-координатором:", faq9Link: "Відгук про бету → cordn.net", readyToShred: "ГОТОВІ КАТАТИ?", stopScrolling: "Припиніть гортати. Встановіть застосунок. Знайдіть Spot. Катайте його.", exploreSpots: "Досліджувати Spot", betaFeedbackTitle: "Бета — нам потрібен ваш відгук", betaFeedbackDesc: "SkateSpots активно розробляється. Ви можете натрапити на шорсткі кути — це наша провина, не ваша. Повідомляйте про помилки, пропонуйте функції, кажіть, що не так.", betaCoordinator: "Бета-координатор", betaCoordinatorDesc: "cordn.net → напишіть нам", dmOnNostr: "DM у Nostr", fixSameDay: "Знайшли помилку? Ми виправляємо того ж дня. Ваші звіти роблять застосунок кращим для кожного скейтера.", relaySetup: "Налаштування Relay" }, relayEdu: { understandingNostr: "Розуміння Nostr", stepOf: "Крок {{current}} з {{total}}", step1Title: "Розуміння Relay", step1Desc: "Уявіть Relay як скейт-магазини, що діляться новинами про Spot", you: "Ви", relays: "Relay", skaters: "Скейтери", s1Good1: "Жодна компанія не володіє вашим акаунтом", s1Good1Desc: "Ваша ідентичність живе на кількох серверах Relay", s1Good2: "Ви контролюєте, де живуть ваші дані", s1Good2Desc: "Ваші дописи синхронізуються між обраними вами Relay — виберіть власні або запустіть один самостійно", s1Warn: "Оператори Relay бачать публічні дописи", s1WarnDesc: "Уявіть це як допис на дошці оголошень", step2Title: "Публічне проти приватного", step2Desc: "Знайте, що видно, а що зашифровано", publicTitle: "Публічне (бачить будь-хто)", pub1: "Spot, які ви додаєте на мапу", pub2: "Відгуки та коментарі", pub3: "Інформація вашого профілю (ім'я, фото)", pub4: "На кого ви підписані", privateTitle: "Приватне (зашифроване)", priv1: "Прямі повідомлення", priv2: "Комунікація з гаманцем", noteStrong: "Зауваження:", note: "Дописи можуть зберігатися на Relay назавжди. Подумайте, перш ніж публікувати — як у реальному житті!", step3Title: "Ваші ключі = ваш акаунт", step3Desc: "Це найважливіше, що слід зрозуміти", secretKeyTitle: "Ваш секретний ключ (nsec)", secretKeyDesc: "Ставтеся до нього як до своєї дошки — ніколи нікому не позичайте. Він доводить, що акаунт належить вам.", s3Bad1: "Якщо втратити, акаунт не відновити", s3Bad2: "Немає «забув пароль» — ніхто не може його скинути", s3Good: "Зробіть резервну копію та зберігайте надійно", publicKeyTitle: "Ваш публічний ключ (npub)", publicKeyDesc: "Це як ваше ім'я користувача — вільно ним діліться, щоб інші могли вас знайти!", inControl: "🔐 Ви все контролюєте — жодна компанія не може вас заблокувати!", skip: "Пропустити", gotIt: "Зрозуміло!" }, about: { seoTitle: "Про проєкт - SkateSpots", seoDescription: "Дізнайтеся про SkateSpots і нашу місію побудувати децентралізовану скейтбординг-спільноту.", npubCopied: "npub скопійовано в буфер обміну. Вставте його у свій улюблений клієнт Nostr, щоб надіслати DM.", bugReport: "🐛 Звіт про помилку", bugWhatHappened: "Що сталося:", bugExpected: "Що я очікував:", bugSteps: "Кроки для відтворення:", aboutWord: "ПРО ПРОЄКТ", heroBefore: "Зв'язуйтеся з місцевими скейт-сценами по всьому світу.", skaterOwned: "Дані, якими володіють скейтери", heroAfter: ", Relay, якими керує спільнота.", viewStats: "Переглянути статистику спільноти", missionTitle: "Наша місія", mission1: "SkateSpots допомагає скейтбордистам знаходити Spot, зв'язуватися з професіоналами в The Lab і організовувати сесії — і все це без корпоративного контролю. Справжнє катання відбувається офлайн, цей інструмент лише зв'язує вас із ним.", mission2: "Знання про скейтбординг мають жити зі спільнотою, а не бути замкненими в корпоративних застосунках. Саме тому SkateSpots працює на Nostr — системі на основі Relay, де скейтери контролюють власні дані, вибирають, які Relay їх зберігають, і навіть можуть запустити власні. Жодна окрема компанія не володіє мапою.", whyNostr: "Чому Nostr?", why1Title: "Контроль спільноти", why1Desc: "Ваші Spot живуть на громадських Relay. Сервери запускають скейтери, а не корпорації.", why2Title: "Ви володієте своїми даними", why2Desc: "Ваша ідентичність Nostr належить вам. Переносьте її в будь-який застосунок Nostr — без прив'язки.", why3Title: "Інтеграція з Bitcoin", why3Desc: "Надсилайте творцям Zap у Bitcoin напряму. Без платформи, що забирає 30%.", why4Title: "Відкритий код", why4Desc: "Створено відкрито. Будь-хто може долучитися або форкнути код.", getInvolved: "Долучайтеся", getInvolvedDesc: "SkateSpots має відкритий код і керується спільнотою. Долучайтеся кодом, діліться Spot або допомагайте іншим почати.", betaTitle: "Бета-тестування", betaDesc: "Шановний користувачу! Дякуємо за бета-тестування SkateSpots. Зауважте, що застосунок усе ще в беті, і можуть бути помилки чи проблеми з безпекою. Якщо зіткнетеся з проблемами або захочете повідомити про помилку, зв'яжіться з нами!", giveFeedback: "Залиште нам відгук:", copyNpub: "Копіювати npub", reportBug: "Повідомити про помилку", viewProfile: "Переглянути профіль", downloadApp: "Завантажте застосунок", downloadAppDesc: "Встановіть SkateSpots на Android через Zapstore — відкритий магазин застосунків, орієнтований на Bitcoin.", getOnZapstore: "Отримати в Zapstore", credits: "Подяки", creditPoweredBy: "Працює на", creditNostr: "Децентралізований протокол", creditCrewChat: "Чат Crew через", creditCordn: "Груповий чат із наскрізним шифруванням", creditEcash: "Ecash через", creditCashu: "Chaumian ecash для Lightning", creditWalletConnect: "Підключення гаманця через", creditNwc: "Nostr Wallet Connect (NIP-47)", creditSigning: "Підписування на Android через", creditAmber: "Підписувач Nostr для Android", creditMapData: "Дані мапи Bitcoin від", creditBtcmap: "Місця, що приймають Bitcoin", creditCrowdfunding: "Краудфандинг", creditAngor: "Децентралізований краудфандинг у Bitcoin", creditDistributed: "Розповсюджується через", creditZapstore: "Магазин застосунків з відкритим кодом", creditTrust: "Довіра й чат Crew через", creditContextvm: "Оцінки довіри Relatr і координація зашифрованого чату Crew", stillQuestions: "Залишилися питання?", stillQuestionsDesc: "Sasquatch — наш AI-гід, що працює на живих даних SkateSpots. Запитайте його про Spot, події, тренерів, Gear чи як усе працює.", askSasquatch: "Запитати The Sasquatch", poweredBy: "Працює на", decentralized: "Децентралізовано", communityOwned: "Належить спільноті" }, faq: { seoTitle: "FAQ - SkateSpots", seoDescription: "Запитайте The Sasquatch будь-що про SkateSpots.", greeting: "Привіт! Я The Sasquatch 🦧 — запитуйте мене будь-що про SkateSpots. Spot, події, Gear, гаманці, приватність, Nostr — я допоможу. Що хочете знати?", gotQuestions: "Є питання?", heroDesc: "Запитайте The Sasquatch — він знає все про SkateSpots, Nostr, Bitcoin і скейтбординг.", askTitle: "Запитати The Sasquatch", askDesc: "Sasquatch відкритий у лівому нижньому куті екрана — просто натисніть на нього й надрукуйте своє питання. Він має живий доступ до Spot, подій, тренерів і погоди.", askQuestion: "Чим ти можеш допомогти мені у SkateSpots?", openSasquatch: "Відкрити The Sasquatch", commonQuestions: "Поширені запитання — торкніться, щоб запитати", quickAnswers: "Швидкі відповіді", footerHint: "Sasquatch використовує живі дані Nostr з Relay SkateSpots + AI, щоб відповідати на ваші запитання. 🛹", chip1Label: "Що таке SkateSpots?", chip1Q: "Що таке SkateSpots і як це працює?", chip2Label: "Як додати Spot?", chip2Q: "Як додати скейт-Spot на мапу?", chip3Label: "Що таке Zap?", chip3Q: "Що таке Zap?", chip4Label: "Це безкоштовно?", chip4Q: "Чи безкоштовний SkateSpots?", chip5Label: "Що таке Мій Stash?", chip5Q: "Що таке Мій Stash?", chip6Label: "Як увійти?", chip6Q: "Як увійти чи створити акаунт?", chip7Label: "Що таке Nostr?", chip7Q: "Що таке Nostr?", chip8Label: "Приватність і дані", chip8Q: "Які дані публічні, а які приватні у SkateSpots?", chip9Label: "Як продати Gear?", chip9Q: "Як продати Gear на SkateSpots?", chip10Label: "Що таке The Lab?", chip10Q: "Що таке The Lab?", fact1Label: "Скейт-Spot по всьому світу", fact1Value: "Знаходьте й додавайте", fact2Label: "Bitcoin Lightning Zap", fact2Value: "100% безкоштовно", fact3Label: "Децентралізовано на Nostr", fact3Value: "Ви володієте своїми даними", fact4Label: "Приватний інвентар Gear", fact4Value: "Зашифрований Stash", s1Q: "Що таке SkateSpots?", s1A: "Децентралізована мапа та спільнота для скейтбордингу, побудована на Nostr. Знаходьте Spot, тренерів і операторів, приєднуйтесь до Crew, публікуйте події та купуйте/продавайте Gear — без компанії посередині.", s2Q: "Як додати Spot?", s2A: "Торкніться мапи або скористайтеся кнопкою + / «Додати Spot», потім поставте мітку й заповніть деталі. Вам потрібен безкоштовний акаунт Nostr (торкніться «Увійти» → «Створити акаунт» — пошта не потрібна).", s3Q: "Що таке Zap?", s3A: "Zap — це чайові в Bitcoin Lightning. Ви можете надсилати Zap за Spot, події, Crew і людей, яких цінуєте. Вони йдуть напряму отримувачу через Lightning — SkateSpots ніколи не тримає ваші кошти.", s4Q: "Це безкоштовно?", s4A: "Так. Створення акаунта, додавання Spot і перегляд — безкоштовні. Необов'язкові платні додатки (як-от рекламні оголошення) і чайові (Zap) сплачуються напряму між людьми.", s5Q: "Які дані публічні?", s5A: "Усе, що ви публікуєте — Spot, події, ваш профіль — публічне на Relay Nostr. Ваші приватні повідомлення та Stash зашифровані наскрізно. Дивіться сторінку приватності для деталей.", s6Q: "Що таке The Lab?", s6A: "The Lab — це місце, де ви знаходите людей, щоб найняти чи в кого повчитися: тренери, інструктори, оператори, відеомонтажери, фотографи, будівники, митці та інші." }, privacy: { seoTitle: "Приватність — SkateSpots", seoDescription: "Як SkateSpots поводиться з вашими даними: ваш GPS залишається на пристрої, опубліковані Spot публічні, і як приховати IP за допомогою VPN чи Tor, якщо хочете.", heroBefore: "Ваша", heroHighlight: "Приватність", heroDesc: "Без відстеження, без реклами, без продажу даних. Ось що саме залишається на вашому пристрої, що публічне та як захиститися ще більше, якщо хочете.", locationTitle: "Ваша локація залишається на пристрої", locationBefore: "Коли ви торкаєтесь", nearMe: "«Поруч зі мною»,", locationAfter: "ваша GPS-локація зчитується на пристрої й використовується лише для центрування мапи та сортування найближчих Spot.", locationGood1: "Вона ніколи не публікується в Nostr.", locationGood2: "Вона ніколи не надсилається до SkateSpots — немає сервера SkateSpots, який би її збирав.", locationGood3: "Вона ніколи не передається третім особам.", locationGood4: "У нативному застосунку ми використовуємо власну систему локації телефона напряму й обходимо Google Play Services — тож це працює на де-Googled телефонах (GrapheneOS, /e/OS), і Google її ніколи не бачить.", weatherBefore: "Погода вимкнена за замовчуванням. Коли ви її вмикаєте, вона шукає умови для", weatherEm: "публічної", weatherAfter: "локації Spot — не вашої.", publicTitle: "Що публічне за задумом", publicDesc: "SkateSpots — це спільна мапа, тож деякі речі призначені для того, щоб їх бачили всі. Коли ви вирішуєте їх опублікувати, вони стають публічними в мережі Nostr:", public1Strong: "Spot, які ви додаєте", public1: "— включно з їхніми координатами. Якщо ви додаєте Spot у своїй точній локації, ця локація стає публічною. Подумайте, перш ніж ставити мітку на власному подвір'ї.", public2Strong: "Відгуки, коментарі та ваш публічний профіль", public2: "(ім'я, фото).", public3: "На кого ви підписані та публічні реакції.", public4Strong: "Zap", public4: "публічні за замовчуванням: Zap пов'язує ваш акаунт — часто вашу адресу Lightning — з дописом, за який ви заплатили, і з самими чайовими. Ваш гаманець може надіслати його анонімно, якщо ви не хочете цього.", publicNoteBefore: "VPN чи Tor", notWord: "не", publicNoteAfter: "приховує зміст того, що ви публікуєте — координати Spot публічні незалежно від цього. Інструменти приватності приховують вашу мережеву ідентичність (IP), а не те, що ви вирішили опублікувати.", encryptedTitle: "Що приватне й зашифроване", enc1Strong: "Прямі повідомлення", enc1Mid: "та", enc1Strong2: "чати Crew", enc1: "мають наскрізне шифрування (NIP-17). Їх можуть читати лише учасники.", enc2Strong: "Мій Stash", enc2: "— ваш приватний інвентар Gear — зашифрований вашим власним ключем.", enc3Strong: "Учасники лише свого Crew", enc3: "можуть вибрати бути видимими тільки для своїх побратимів із Crew.", ipTitle: "Що залишає ваш пристрій: ваша IP", ipBefore: "Як і кожен вебсайт, сервери, з якими спілкується SkateSpots, бачать вашу", ipAddress: "IP-адресу", ipAfter: "(приблизний показник вашого регіону). Це нормально для будь-якого веб- чи мап-застосунку й не є чимось унікальним для нас. Ці сервери:", ipTileStrong: "Тайли мапи", ipTile: "(OpenStreetMap) — бачать вашу IP і яку ділянку мапи ви переглядаєте.", ipGeoStrong: "Геокодування Spot/Shop", ipGeo: "— коли ви створюєте чи редагуєте Spot або Shop, його координати йдуть до OpenStreetMap Nominatim, щоб заповнити тег міста/країни. Коли ви відкриваєте статистику спільноти, координати міток без тегу локації йдуть до BigDataCloud, щоб їх згрупувати за регіоном (кешується на вашому пристрої — щонайбільше раз на мітку). Обидва бачать вашу IP. Це мітка, яку ви поставили / публічні координати мітки, а не живий GPS вашого пристрою.", ipPushStrong: "Фонові сповіщення", ipPush: "(за згодою) — якщо ви їх увімкнете, сервер push SkateSpots бачить, що для вашого ключа щось надійшло і коли (ніколи — хто надіслав чи що там написано; повідомлення залишаються зашифрованими), а служба push вашої ОС (Google/Mozilla/Apple) доставляє сповіщення.", ipBtcStrong: "Місця Bitcoin", ipBtc: "(BTCMap, коли ви вмикаєте цей шар) — бачать вашу IP і ділянку, яку ви переглядаєте.", ipRelayStrong: "Relay Nostr", ipRelay: "— бачать вашу IP, коли застосунок читає чи публікує.", ipMintStrong: "Mint Cashu", ipMint: "— бачать вашу IP, коли ваш гаманець надсилає, отримує чи обмінює.", ipRouteStrong: "Маршрути", ipRoute: "(OSRM і Transitous для транспорту) — отримують початок і кінець будь-якого маршруту, який ви запитали, а не лише вашу IP. Маршрутизація залишається в застосунку: ваш початок і пункт призначення ніколи не передаються Google чи Apple Maps.", ipWeatherStrong: "Погода", ipWeatherMid: "(Open-Meteo, за згодою) та", ipUploadStrong: "завантаження зображень", ipWeather: "(Blossom), коли ви ними користуєтесь.", ipAiStrong: "Sasquatch AI", ipAi: "— ваше повідомлення йде на наш власний сервер, а потім до постачальника моделі.", ipLink1: "Оскільки ви надсилаєте свій публічний ключ (npub) у тому ж з'єднанні, Relay може пов'язати вашу IP з вами — не просто «хтось підключився», а «ця людина, з цієї адреси».", ipShieldBefore: "Одне, що ми справді захищаємо:", ipMintsStrong: "каталог mint", ipShieldAfter: "завантажується через наш сервер, тож MintRadar ніколи не бачить вашу IP.", vpnTitle: "Хочете більше приватності? VPN чи Tor (необов'язково)", vpnDesc: "Більшості скейтерів це не потрібно — але якщо хочете приховати свою IP і приблизну локацію від серверів вище, у вас є два безкоштовні варіанти:", vpnReputable: "🛡️ Надійний VPN", vpnReputableDesc: "Приховує вашу IP за серверами VPN. Просто й швидко. Використовуйте той, за який платите й довіряєте; безкоштовні VPN зазвичай монетизують ваш трафік, тож ставтеся до «безкоштовного» як до попередження.", torBrowser: "🧅 Браузер Tor", torDesc: "Безкоштовно, максимальна приватність IP, маршрутизація через кілька Relay. Повільніше — мапи й деякі Relay Nostr можуть гальмувати чи блокувати вузли виходу Tor. Чудово для надобережних.", readThis: "Прочитайте це, щоб вас не обманули", caveat1Before: "VPN/Tor приховує вашу", ipWord: "IP", caveat1: "— не Spot, які ви публікуєте. Мітка біля вашого дому публічна незалежно від того, чи користуєтесь ви VPN.", caveat2Before: "Не вмикайте", nearMeGps: "«Поруч зі мною» / GPS браузера", caveat2: "якщо ваша мета — залишатися анонімним — точний GPS перекриває будь-яке приховування IP.", caveat3: "Жоден інструмент не робить вас повністю «анонімним». Вони лише зменшують те, що сервери можуть дізнатися про вашу мережеву локацію — і все.", keysTitle: "Ваші ключі, ваш акаунт", keysBefore: "Ваш акаунт — це криптографічна пара ключів, якою ви володієте. Найбезпечніший спосіб увійти —", signer: "підписувач", keysAfter: "(Alby, nos2x або Amber на Android), щоб ваш секретний ключ ніколи не вставлявся в застосунок.", keysCaveatBefore: "Якщо ви вставите свій", keysCaveatAfter: "безпосередньо, він зберігається у вашому браузері. Натомість використовуйте розширення-підписувач, коли можете, і тримайте резервну копію nsec у надійному місці офлайн.", footerBefore: "Питання? Запитайте", sasquatchName: "The Sasquatch", footerMid: "у застосунку або прочитайте", gettingStarted: "посібник із початку роботи", about: "Про проєкт" }, license: { seoTitle: "Ліцензія - SkateSpots", seoDescription: "Ліцензія SkateSpots. Ви вільні кататися на скейтборді.", tagline: "Катайте, заробляйте, розважайтеся й витрачайте Sats, де б ви не були.", copyright: "Учасники SkateSpots і спільнота", licenseLabel: "Ліцензія", freeLine1: "ВИ ВІЛЬНІ", freeLine2: "КАТАТИСЯ НА СКЕЙТБОРДІ", body: "Цей проєкт відкритий. Діліться ним, форкайте, будуйте на ньому, катайте його. Вулиці належать усім. Цей код — теж. Продовжуйте кататися, розважайтеся, вчіть трюки, підтримуйте творців і знову катайтесь.", builtBefore: "Створено з ❤️ на", builtMid: "· Працює на", lightning: "Bitcoin Lightning ⚡", viewSource: "Переглянути код", aboutSkateSpots: "Про SkateSpots", supporters: "Прихильники" }, glossary: { seoTitle: "Глосарій трюків · SkateSpots", seoDescription: "Повний глосарій скейтбордингу — {{count}} записів про flips, grinds, slides, grabs, airs, lip tricks, handplants, freestyle, терміни transition, стійки та обладнання, з альтернативними назвами.", heading: "ГЛОСАРІЙ ТРЮКІВ", subheading: "{{count}} записів · tricks, transition, freestyle, стійки та обладнання", searchPlaceholder: "Шукайте трюки чи прізвиська — tre flip, crooks, method…", clearSearch: "Очистити пошук", all: "Усі", results: "{{count}} результат{{s}} для", noMatch: "Жоден трюк не збігається. Спробуйте прізвисько на кшталт «tre flip», «crooks» чи «melon».", tricksCount: "{{count}} трюків", footerBefore: "Знаєте трюк чи прізвисько, які ми пропустили? Трюки отримують різні назви в кожній сцені — напишіть", sasquatch: "The Sasquatch 🦧", footerAfter: "і дайте нам знати." }, signers: { seoTitle: "Застосунки-підписувачі - Захистіть свої ключі Nostr | SkateSpots", seoDescription: "Дізнайтеся про застосунки-підписувачі, які зберігають ваші ключі Nostr у безпеці. Знайдіть найкращий варіант для Android, iOS чи браузерів на комп'ютері.", securityGuide: "Посібник із безпеки", protect: "Захистіть свої", nostrKeys: "ключі Nostr", heroDesc: "Застосунки-підписувачі зберігають ваші приватні ключі в безпеці, підписуючи події без їх розкриття. Замість вставляти свій ключ у кожен застосунок, дозвольте підписувачу зробити це безпечно.", whySignerStrong: "Навіщо використовувати підписувач?", whySigner: "Ваш приватний ключ Nostr — це як пароль, який ніколи не можна змінити. Застосунок-підписувач зберігає його в безпеці, дозволяючи користуватися будь-яким застосунком Nostr.", androidTitle: "Підписувачі для Android", androidDesc: "Нативні застосунки-підписувачі для пристроїв Android, включно з GrapheneOS.", iosTitle: "Підписувачі для iOS", iosDesc: "Варіанти підписувачів для користувачів iPhone та iPad.", browserTitle: "Розширення браузера", browserDesc: "Розширення для браузерів на комп'ютері для підписування у вебзастосунках.", recommended: "Рекомендовано", yourPlatform: "Ваша платформа", get: "Отримати {{name}}", protocolsTitle: "Розуміння протоколів", nip07Desc: "Стандарт розширення браузера. Розширення вбудовує можливості підписування у вебзастосунки. Використовується Alby, nos2x, Flamingo та подібними розширеннями.", nip46Desc: "Протокол віддаленого підписування («bunker»). Ваш застосунок-підписувач схвалює запити від інших застосунків, не передаючи ваших ключів. Використовується Nsec.app, Nostria та Nowser.", nip55Desc: "Протокол-підписувач, специфічний для Android. Нативні застосунки можуть запитувати підписи від Amber, не розкриваючи ключів. Найбільш безшовний досвід на Android.", whichChoose: "Що вибрати?", chooseAndroid: "Android:", chooseAndroidDesc: "Amber (NIP-55) для нативних застосунків", chooseIos: "iOS:", chooseIosDesc: "Nsec.app (NIP-46) для найкращої сумісності", chooseDesktop: "Комп'ютер:", chooseDesktopDesc: "Alby, nos2x або Flamingo (NIP-07)", amberDesc: "Нативний підписувач для Android із фокусом на безпеку та зручність. Найкращий вибір для користувачів Android.", nsecAppDesc: "Кросплатформний віддалений підписувач, що діє як безпечне сховище для ваших ключів.", nostriaDesc: "Застосунок-підписувач із віддаленим доступом і ключами, збереженими в захищеному сховищі пристрою.", nowserDesc: "Підписувач із кількома способами автентифікації, що підтримує і розширення браузера, і протоколи віддаленого підписування.", nsecAppIosDesc: "Найкращий варіант для iOS. Використовуйте його як віддалений підписувач із будь-яким клієнтом Nostr.", nowserTfDesc: "Підписувач для iOS, доступний через TestFlight, з можливостями підписування, схожими на Android.", nostriaIosDesc: "Віддалений підписувач із безпечним зберіганням ключів на вашому пристрої.", nos2xDesc: "Просте й надійне розширення браузера для підписування подій Nostr.", albyDesc: "Гаманець Bitcoin Lightning із вбудованим керуванням ключами Nostr і WebLN.", flamingoDesc: "Розширення браузера з фокусом на Nostr і чистим інтерфейсом.", kiwiDesc: "На Android/GrapheneOS використовуйте браузер Kiwi, щоб завантажити розширення nos2x чи Alby.", fNativeApp: "Нативний застосунок", fMultiKey: "Підтримка кількох ключів", fEventSigning: "Підписування подій", fSecureStorage: "Безпечне зберігання ключів", fRemoteSigning: "Віддалене підписування", fAnyClient: "Працює з будь-яким клієнтом", fCrossDevice: "Синхронізація між пристроями", fMultiKeySupport: "Підтримка кількох ключів", fNip07: "Підтримка NIP-07", fNip46: "Підтримка NIP-46", fFlexibleSigning: "Гнучке підписування", fNativeIos: "Нативний застосунок для iOS", fLightweight: "Легкий", fEasyToUse: "Простий у використанні", fChromeSupport: "Підтримка Chrome/Brave/Edge", fLightningPayments: "Платежі Lightning", fNostrSigning: "Підписування Nostr", fWebln: "Підтримка WebLN", fNwc: "Підтримка NWC", fCleanUi: "Чистий інтерфейс", fPrivacyFocused: "Орієнтований на приватність", fExtensionMobile: "Підтримка розширень на мобільному", fFullBrowser: "Повноцінний браузерний досвід", fGraphene: "Працює на GrapheneOS" }, betaDisclaimer: { title: "Увага — це бета", subtitle: "Кілька слів, перш ніж ви почнете.", ossTitle: "Відкритий код і експериментальність", ossBody: "Створено відкрито спільнотою. Копайтеся, форкайте, ламайте.", betaTitle: "У беті — без аудиту", betaBody: "Код ще не пройшов формальний аудит безпеки. Помилки трапляються.", moneyTitle: "Працює зі справжніми Bitcoin і Lightning", moneyBody: "Використовуйте на ньому гроші на власний ризик. Завантажуйте лише те, що можете дозволити собі втратити.", finePrint: "Жодних гарантій будь-якого роду. Ви несете одноосібну відповідальність за власні кошти та ключі.", viewCode: "Переглянути код", accept: "Зрозуміло, впустіть мене" } }, }; export default ukBatch3;