499 lines
36 KiB
TypeScript
499 lines
36 KiB
TypeScript
/**
|
||
* ru — translation drift fragment.
|
||
*
|
||
* The keys added to `en` after the original batch pass. Kept in their own
|
||
* module so this pass never touches the batch files. Composed into `ru` in
|
||
* `index.ts` via a deep merge (a shallow spread would clobber the sibling
|
||
* keys already present in the batches, e.g. `socialUi`, `walletUi`).
|
||
*/
|
||
const drift = {
|
||
nav: {
|
||
searchLanguages: "Поиск языков...",
|
||
noLanguages: "Языки не найдены",
|
||
},
|
||
mapPage: {
|
||
searchSuggestPlaces: "Места",
|
||
},
|
||
mapUi: {
|
||
firstRunTitle: "Начните",
|
||
firstRunTip: "Нажмите на любую метку, чтобы осмотреться. Ничего настраивать не нужно — ближайшие Spot в одном касании.",
|
||
firstRunAddSpot: "Добавьте первый Spot",
|
||
firstRunJoinCrew: "Присоединиться к Crew",
|
||
firstRunStartCrew: "Создать свой Crew",
|
||
firstRunWallet: "Настройте кошелёк",
|
||
forecastDays: "Прогноз на {{count}} дней",
|
||
},
|
||
spotUi: {
|
||
forecastDays: "Прогноз на {{count}} дней",
|
||
},
|
||
marketUi: {
|
||
trades: {
|
||
stateRevoked: "отозвано",
|
||
stateVerifying: "проверка",
|
||
},
|
||
loadFailed: "Не удалось связаться с релеями. Проверьте соединение и попробуйте снова.",
|
||
statusPending: "в ожидании",
|
||
offers: {
|
||
closeDeal: "Закрыть сделку",
|
||
loadFailed: "Не удалось загрузить предложения. Проверьте соединение и попробуйте снова.",
|
||
},
|
||
pay: {
|
||
nonSats: "Это предложение оценено в {{currency}}. Оплата в приложении только в sats. Расплатитесь напрямую с продавцом.",
|
||
unsupported: "Этот платёжный код (запрос Cashu) пока не поддерживается. Попросите у продавца Lightning-счёт или адрес.",
|
||
},
|
||
escrowRequest: {
|
||
lockedNotSent: "Средства заблокированы в escrow и сохранены на этом устройстве, но запрос не отправился. Откройте объявление снова, чтобы повторить. Не платите ещё раз.",
|
||
mintLabel: "Mint (где заблокированы средства)",
|
||
sellerMintHint: "Продавец предпочитает этот mint; средства, заблокированные здесь, ему проще всего получить.",
|
||
mintHint: "Escrow хранится в этом mint. Продавец погашает здесь, так что выберите тот, которому доверяете оба.",
|
||
noMints: "Нет доступных mint",
|
||
p2pkUnsupported: "Этот mint не заявляет поддержку P2PK (NUT-11), поэтому escrow здесь нельзя заблокировать. Выберите другой mint.",
|
||
},
|
||
},
|
||
labUi: {
|
||
offerClothing: "Предложить одежду",
|
||
tabClothing: "Одежда",
|
||
empty: {
|
||
clothingTitle: "Дизайнеров одежды пока нет",
|
||
clothingBody: "Станьте первым, кто предложит кастомную одежду, командные комплекты и экипировку для сцены.",
|
||
},
|
||
craftFields: {
|
||
sizing: "Диапазон размеров",
|
||
samples: "Образцы / прототипы",
|
||
customization: "Кастомизация",
|
||
},
|
||
},
|
||
socialUi: {
|
||
coordinator: {
|
||
ourDefaultTitle: "Координатор SkateSpots",
|
||
ourDefaultDesc: "SkateSpots запускает координатор на relay.skate-spots.org. Используйте его по умолчанию или запустите свой — координатор видит только шифротекст и метаданные, никогда ваши сообщения.",
|
||
useOurs: "Использовать координатор SkateSpots",
|
||
},
|
||
crewCoordinator: {
|
||
encryptedChat: "Зашифрованный чат",
|
||
privateChatName: "Приватный чат",
|
||
privateChatDesc: "Групповой чат с прямой секретностью (MLS) через координатор.",
|
||
privateChatDescFull: "Приватный чат создаётся один раз администратором, затем участники присоединяются.",
|
||
chatRowDesc: "Все в Crew — запечатано ключом каждого участника (NIP-17).",
|
||
openChat: "Открыть",
|
||
setUpChat: "Настроить",
|
||
joinChat: "Присоединиться",
|
||
checking: "Проверка…",
|
||
openInAnotherApp: "Открыть в другом приложении",
|
||
openInCordnWeb: "Cordn (веб)",
|
||
openCordnGroup: "Открыть чат Crew",
|
||
copyForStaircase: "Копировать для Staircase",
|
||
},
|
||
dms: {
|
||
refresh: "Обновить",
|
||
crews: "Crew",
|
||
crewFounder: "Основатель",
|
||
crewMember: "Участник",
|
||
crewOpen: "Открыть",
|
||
crewSetUp: "Настроить",
|
||
},
|
||
form: {
|
||
cordnGroup: "Группа Cordn",
|
||
cordnGroupHint: "Необязательно: вставьте ссылку на группу из Staircase или Cordn (веб). Тогда ваш Crew получит настоящий сквозной MLS-чат на нашем координаторе.",
|
||
},
|
||
bell: {
|
||
dmsUnread: "{{count}} новых зашифрованных сообщений",
|
||
messagesAndCrews: "Сообщения и чаты crew",
|
||
},
|
||
},
|
||
settingsUi: {
|
||
loginDialog: {
|
||
welcomeSubtitleBrowse: "Зарегистрируйтесь или войдите — или продолжайте просмотр.",
|
||
extensionCard: "Расширение браузера",
|
||
signerCard: "Приложение-подписант",
|
||
secretKeyLink: "Использовать секретный ключ",
|
||
whereBunker: "Где взять бункер?",
|
||
},
|
||
settingsPage: {
|
||
trust: "Доверие",
|
||
trustSub: "Источники и отображение",
|
||
},
|
||
},
|
||
walletUi: {
|
||
trust: {
|
||
mute: "Заглушить",
|
||
muted: "Заглушено",
|
||
mutedDesc: "Вы не будете видеть их контент.",
|
||
unmute: "Снять заглушение",
|
||
unmuted: "Заглушение снято",
|
||
unmutedDesc: "Их контент снова будет виден.",
|
||
unmuteFailed: "Не удалось снять заглушение. Попробуйте снова.",
|
||
muteFailed: "Не удалось заглушить. Попробуйте снова.",
|
||
loginToMute: "Войдите, чтобы заглушить.",
|
||
attributedNetwork: "От людей из вашей сети",
|
||
attributedProviderHouse: "От общественного провайдера доверия",
|
||
attributedProviderCustom: "От выбранного вами провайдера",
|
||
howItWorks: "Как работает доверие",
|
||
flaggedNoticeTitle: "Сообщено доверенными скейтерами",
|
||
flaggedNoticeDesc: "Будьте осторожны. Доверенные люди в сети сообщили об этом аккаунте.",
|
||
flaggedReporterFollow: "{{count}} из ваших подписок",
|
||
flaggedReporterNetwork: "{{count}} из вашей сети",
|
||
flaggedReporterOther: "{{count}} других аккаунтов",
|
||
flaggedReport: "Пожаловаться",
|
||
flaggedDismiss: "Скрыть",
|
||
bucketVerified: "Подтверждён",
|
||
bucketUnknown: "Неизвестен",
|
||
bucketFlagged: "Отмечен",
|
||
bucketVerifiedDesc: "Кто-то из вашей сети поручился за этот аккаунт.",
|
||
bucketUnknownDesc: "Пока никто из вашей сети не поручился за этот аккаунт.",
|
||
bucketFlaggedDesc: "Доверенные люди сообщили об этом аккаунте.",
|
||
reportedByTrusted: "Сообщено {{count}} доверенными людьми",
|
||
},
|
||
},
|
||
trustUi: {
|
||
alertsTitle: "Сетевые оповещения",
|
||
alertsDesc: "Аккаунты, на которые вы подписаны, о которых сообщили или которых заглушили доверенные люди.",
|
||
alertsEmpty: "Нет оповещений. Мы проверяем аккаунты, на которые вы подписаны, на сообщения от доверенных людей.",
|
||
alertsReported: "Сообщено {{count}} доверенными людьми",
|
||
alertsMuted: "Заглушено {{count}} доверенными людьми",
|
||
alertsIgnore: "Игнорировать",
|
||
alertsUnfollow: "Отписаться",
|
||
alertsLogin: "Войдите, чтобы видеть оповещения по аккаунтам, на которые вы подписаны.",
|
||
providerTitle: "Провайдер",
|
||
providerDesc: "Оценки приходят от выбранного вами провайдера. Общественный провайдер используется по умолчанию.",
|
||
useCommunity: "Использовать общественный провайдер",
|
||
setProvider: "Указать провайдера",
|
||
customPubkeyPlaceholder: "npub или hex-публичный ключ провайдера",
|
||
customRelayPlaceholder: "wss://relay.example.com",
|
||
invalidProvider: "Введите корректный npub или 64-символьный hex-публичный ключ и релей wss://.",
|
||
publishFailed: "Не удалось опубликовать провайдера. Попробуйте снова.",
|
||
providerSaved: "Провайдер обновлён.",
|
||
loggedOutProvider: "Войдите, чтобы выбрать провайдера.",
|
||
showMarks: "Показывать метки доверия",
|
||
showMarksDesc: "Подтверждённые и неизвестные метки. Сообщения показываются всегда.",
|
||
sourceLabel: "Источник",
|
||
sourceHouse: "Общественный провайдер доверия",
|
||
sourceCustom: "Ваш провайдер",
|
||
loggedOut: "Войдите, чтобы выбрать своего провайдера доверия.",
|
||
seoTitle: "Как работает доверие",
|
||
seoDescription: "Как SkateSpots показывает доверие: три состояния, откуда берутся оценки и почему отсутствие метки — не недоверие.",
|
||
title: "Как работает доверие",
|
||
intro: "Доверие здесь — сигнал, а не приговор. Оно исходит от тех, кого вы знаете, или от выбранного вами провайдера. Мы не составляем глобальный рейтинг людей.",
|
||
statesTitle: "Три состояния",
|
||
verifiedTitle: "Подтверждён",
|
||
verifiedDesc: "Кто-то из вашей сети поручился за этот аккаунт: друг друга или выбранный вами провайдер.",
|
||
unknownTitle: "Неизвестен",
|
||
unknownDesc: "Пока никто не поручился. С этого начинается каждый новый аккаунт.",
|
||
flaggedTitle: "Отмечен",
|
||
flaggedDesc: "Доверенные люди сообщили об этом аккаунте. Это предупреждение присмотреться, а не доказательство чего-либо.",
|
||
absenceTitle: "Отсутствие метки — не недоверие",
|
||
absenceDesc: "У большинства аккаунтов нет никаких меток. Это значит, что никто из вашей сети пока не поручился за них, а не то, что что-то не так. Никогда не воспринимайте отсутствие метки как минус.",
|
||
sourceTitle: "Кто это вычисляет",
|
||
sourceDesc: "По умолчанию мы используем вашу собственную сеть. Вы также можете выбрать провайдера доверия, который публикует подписанные оценки через Nostr (NIP-85), или отключить отображение. Отмеченное показывается всегда, потому что это сигнал безопасности.",
|
||
endorsementTitle: "Присутствие — не одобрение",
|
||
endorsementDesc: "Подтверждённая метка означает, что кто-то поручился, а не что человек хороший. Метка «отмечен» означает, что доверенные люди сообщили о нём, а не что он виновен. Проверьте детали, прежде чем решать.",
|
||
povTitle: "Всё зависит от точки зрения",
|
||
povDesc: "Оценка относительна тому, кто смотрит. Рейтинг от одного провайдера или человека несравним с другим, и мы никогда не подаём его как объективный факт.",
|
||
settingsCta: "Управлять в настройках",
|
||
},
|
||
marketTerms: {
|
||
link: "Правила маркетплейса",
|
||
seoTitle: "Правила маркетплейса",
|
||
seoDescription: "Как работают объявления снаряжения на SkateSpots: напрямую между людьми, покупатель будь внимателен, и правила.",
|
||
title: "Правила маркетплейса",
|
||
intro: "SkateSpots — доска объявлений о снаряжении напрямую между людьми. Вы имеете дело напрямую с другим человеком: мы не держим средства, не отправляем товары и не решаем споры.",
|
||
howTitle: "Как это работает",
|
||
howBody: "Выставьте снаряжение, свяжитесь с продавцом в личном сообщении и расплатитесь напрямую (наличные, Lightning или обмен). Корзины и оформления заказа нет.",
|
||
rulesTitle: "Что запрещено",
|
||
rulesBody: "Никакого незаконного, опасного или взрослого контента; никаких наркотиков, оружия, поддельных или краденых товаров. Объявления должны касаться скейт-снаряжения и связанных с ним вещей.",
|
||
respectTitle: "Уважайте других",
|
||
respectBody: "Никаких оскорблений, преследования, угроз или ненависти. Модераторы могут скрывать объявления или аккаунты.",
|
||
trustTitle: "Доверие — ориентир, а не гарантия",
|
||
trustBody: "Метки подтверждения и торговая репутация — это сигналы из сети, а не обещания. Проверяйте сами, прежде чем совершать сделку.",
|
||
trustLink: "Как работает доверие",
|
||
privacyLink: "Что покидает ваше устройство",
|
||
safetyTitle: "Торгуйте безопасно",
|
||
safetyBody: "Встречайтесь в общественных местах для передачи, используйте escrow или добросовестный задаток для отправляемых сделок и никогда не отправляйте деньги вне приложения.",
|
||
moderationTitle: "Модерация мягкая и обратимая",
|
||
moderationBody: "Скрытый контент остаётся на релеях и может быть восстановлен; споры между людьми — ваша забота.",
|
||
},
|
||
labOptions: {
|
||
clothing: {
|
||
service: {
|
||
tees: "Футболки",
|
||
hoodies: "Худи и свитшоты",
|
||
pants: "Штаны и шорты",
|
||
jackets: "Куртки и верхняя одежда",
|
||
kits: "Командные комплекты и джерси",
|
||
caps: "Кепки и шапки",
|
||
socks: "Носки",
|
||
accessories: "Сумки и аксессуары",
|
||
footwear: "Обувь",
|
||
patches: "Патчи и аппликации",
|
||
griptape: "Гриптейп и одежда для дек",
|
||
onepiece: "Единичные экземпляры / апсайклинг",
|
||
},
|
||
serviceDesc: {
|
||
tees: "Кастомные футболки и топы",
|
||
hoodies: "Худи, свитшоты и спортивные штаны",
|
||
pants: "Рабочие штаны, карго и шорты",
|
||
jackets: "Куртки-коучевки, ветровки и рабочие куртки",
|
||
kits: "Командные комплекты, джерси и форма",
|
||
caps: "Кепки, шапки и головные уборы",
|
||
socks: "Высокие носки и трикотаж",
|
||
accessories: "Сумки, ремни и мелочи",
|
||
footwear: "Кастомная обувь",
|
||
patches: "Вышитые патчи и аппликации",
|
||
griptape: "Арт на гриптейпе и одежда для дек",
|
||
onepiece: "Единичные вещи и апсайкл-одежда",
|
||
},
|
||
method: {
|
||
screenprint: "Шелкография",
|
||
dtg: "DTG / прямая печать по ткани",
|
||
embroidery: "Вышивка",
|
||
cutsew: "Крой и шитьё",
|
||
sublimation: "Сублимация",
|
||
heattransfer: "Термотрансфер / винил",
|
||
garmentdye: "Крашение изделий",
|
||
knit: "Трикотаж",
|
||
patchwork: "Пэчворк",
|
||
allover: "Печать по всей поверхности",
|
||
},
|
||
material: {
|
||
cotton: "Хлопок",
|
||
heavyweight: "Плотная ткань",
|
||
organic: "Органика / устойчивость",
|
||
fleece: "Флис",
|
||
denim: "Деним",
|
||
canvas: "Канвас",
|
||
nylon: "Нейлон / технические ткани",
|
||
wool: "Меринос / шерсть",
|
||
leather: "Кожа",
|
||
recycled: "Переработанное / сток",
|
||
},
|
||
},
|
||
},
|
||
becomeRolesUi: {
|
||
clothing: {
|
||
seoTitle: "Стать дизайнером одежды - SkateSpots",
|
||
seoDescription: "Кастомная одежда, командные комплекты и экипировка для сцены.",
|
||
heading: "Дизайнер одежды",
|
||
tagline: "Кастомная одежда, командные комплекты и экипировка для сцены",
|
||
noun: "дизайнер одежды",
|
||
rateLabel: "Ставка",
|
||
portfolioLabel: "Ссылка на магазин / портфолио",
|
||
sectionWhatYouMake: "Что вы создаёте",
|
||
sectionHowYouMake: "Как вы это делаете",
|
||
sectionMaterials: "Материалы",
|
||
minimumPlaceholder: "напр. 10 штук",
|
||
turnaroundPlaceholder: "напр. 2–3 недели",
|
||
sizingPlaceholder: "напр. XS–3XL / по меркам",
|
||
samplesHelper: "Предлагаете ли вы образцы или прототипы перед полным тиражом?",
|
||
customizationPlaceholder: "напр. имена, номера, графика",
|
||
},
|
||
},
|
||
weatherUi: {
|
||
updated: "Обновлено",
|
||
refresh: "Обновить",
|
||
unavailable: "Погода недоступна.",
|
||
retry: "Повторить",
|
||
sunrise: "Восход",
|
||
sunset: "Закат",
|
||
legendTitle: "Оценка погоды",
|
||
legendWeatherOnly: "Только погода",
|
||
},
|
||
cordnUi: {
|
||
shareInvite: 'Пригласить',
|
||
shareInviteText: 'Присоединяйся к {{crew}} — приватный чат команды',
|
||
inviteCopied: 'Ссылка-приглашение скопирована',
|
||
title: "Приватный чат",
|
||
subtitle: "Сквозное шифрование (MLS) между участниками Crew. Координатор маршрутизирует только шифротекст и метаданные — он никогда не видит содержимое сообщений.",
|
||
notLoggedIn: "Войдите, чтобы использовать приватный чат Crew.",
|
||
membersOnly: "Только участники Crew могут открыть приватный чат.",
|
||
connecting: "Подключение…",
|
||
noCoordinator: "Для этого Crew пока не настроен координатор.",
|
||
noGroupAdmin: "Приватный чат этого Crew ещё не создан.",
|
||
noGroupMember: "Вы ещё не в приватном чате этого Crew.",
|
||
create: "Создать приватный чат",
|
||
requestJoin: "Попросить присоединиться",
|
||
requestAgain: "Request again",
|
||
requestHandled: "Request handled",
|
||
copyCordnLink: "Copy Cordn link",
|
||
cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.",
|
||
checkInvite: "Проверить приглашение",
|
||
requested: "Запрос отправлен — администратор Crew одобрит его.",
|
||
noInvite: "Приглашение пока не ждёт. Попросите администратора одобрить ваш запрос.",
|
||
placeholder: "Сообщение для Crew…",
|
||
send: "Отправить",
|
||
refresh: "Обновить",
|
||
requests: "Запросы на присоединение",
|
||
checkRequests: "Проверить запросы",
|
||
approve: "Добавить",
|
||
approveTitle: "Одобрить это устройство?",
|
||
approveDesc: "Добавить {{name}} в эту зашифрованную комнату? Это устройство сможет читать новые сообщения.",
|
||
noRequests: "Нет ожидающих запросов на присоединение.",
|
||
inviteHint: "Пока в этом чате только вы — участники Crew могут нажать «Попросить присоединиться», а вы одобрите их здесь.",
|
||
memberCount: "{{count}} в группе",
|
||
you: "Вы",
|
||
groupRef: "Ссылка на группу",
|
||
copyRef: "Копировать",
|
||
copied: "Скопировано",
|
||
attachImage: "Прикрепить изображение",
|
||
uploading: "Загрузка…",
|
||
uploadFailed: "Не удалось загрузить изображение.",
|
||
bannerTitle: "У этого Crew ещё нет приватного чата",
|
||
bannerBody: "Настройте сквозной зашифрованный (MLS) чат для вашего Crew — участники присоединяются со вкладки.",
|
||
bannerCta: "Настроить",
|
||
ready: "Подключено · MLS",
|
||
errorPrefix: "Не удалось связаться с координатором",
|
||
interactiveHint: "Ваш подписант запрашивает подтверждение для каждого действия — используйте «Обновить» и «Отправить» по необходимости.",
|
||
setupDevice: "Настроить это устройство",
|
||
setupDeviceBody: "Устройство получит собственный ключ для приватного чата. Основатель одобрит его один раз.",
|
||
waitingApproval: "Ожидание одобрения основателя…",
|
||
waitingApprovalManual: "Ожидание основателя. После одобрения нажмите «Проверить приглашение».",
|
||
onboardingFounder1: "Запустите приватный чат.",
|
||
onboardingFounder2: "Одобряйте участников, которые просят присоединиться.",
|
||
onboardingFounder3: "Общайтесь приватно со своим Crew.",
|
||
onboardingMember1: "Попросить присоединиться",
|
||
onboardingMember2: "Основатель одобрит ваше устройство.",
|
||
onboardingMember3: "Вы внутри — сообщения зашифрованы.",
|
||
encryptedNote: "Читать могут только участники Crew; координатор лишь передаёт зашифрованные сообщения.",
|
||
advanced: "Дополнительно",
|
||
coordinator: "Координатор",
|
||
keyPackage: "Пакет ключей",
|
||
keyPackageReady: "Готово на этом устройстве",
|
||
keyPackageMissing: "Не настроено на этом устройстве",
|
||
members: "Участники",
|
||
roleFounder: "Основатель",
|
||
roleAdmin: "Администратор",
|
||
makeAdmin: "Назначить админом",
|
||
removeAdmin: "Снять админа",
|
||
adminAdded: "Участник повышен до админа.",
|
||
adminRemoved: "Роль админа снята.",
|
||
roleUpdateFailed: "Не удалось изменить роль. Попробуйте ещё раз.",
|
||
addReaction: "Добавить реакцию",
|
||
deleteMessage: "Удалить сообщение",
|
||
deleteMessageConfirm: "Удалить это сообщение для всех?",
|
||
readBy: "Прочитали: {{count}}",
|
||
joinRequestTitle: "Запрос на приватный чат",
|
||
joinRequestFor: "Новый запрос на вступление в {{crew}}",
|
||
joinRequestReview: "Проверить запрос",
|
||
joinRequestDismiss: "Отклонить запрос",
|
||
roleMember: "Участник",
|
||
qrTitle: "Отсканируйте, чтобы войти в приватный чат",
|
||
qrHint: "Участники Crew сканируют код камерой телефона. Ссылка открывает вкладку «Приватный чат».",
|
||
sendFailed: "Не удалось отправить — нажмите «Повторить».",
|
||
sending: "Отправка…",
|
||
sent: "Отправлено",
|
||
retry: "Повторить",
|
||
errorUnreachable: "Не удалось связаться с приватным чатом. Проверьте подключение.",
|
||
errorDetails: "Подробности",
|
||
unreachable: "Недоступно",
|
||
dismiss: "Закрыть",
|
||
linkDevice: "Привязать это устройство",
|
||
linkDeviceTitle: "Привязать другое устройство",
|
||
linkDeviceHint: "Отсканируйте этот код на устройстве, которое уже в комнате.",
|
||
linkDeviceNote: "Код содержит пакет открытых ключей. Ваш закрытый ключ останется на новом устройстве.",
|
||
waitingDevice: "Ожидание другого устройства…",
|
||
addDevice: "Добавить устройство",
|
||
deviceLinked: "Устройство добавлено.",
|
||
deviceLinkFailed: "Не удалось добавить это устройство.",
|
||
removeMemberConfirm: "Удалить {{name}} из приватного чата? Это устройство потеряет доступ.",
|
||
removeMemberFailed: "Не удалось удалить этого участника.",
|
||
reply: "Ответить",
|
||
},
|
||
communityUi: {
|
||
link: "Сообщество",
|
||
title: "Чат сообщества",
|
||
subtitle: "Задавай вопросы, делись отзывами и общайся с сообществом SkateSpots — со сквозным шифрованием.",
|
||
heading: "Сообщество SkateSpots",
|
||
eyebrow: "Вопросы и отзывы",
|
||
seoTitle: "Чат сообщества SkateSpots",
|
||
seoDescription: "Вопросы, отзывы и общение сообщества — со сквозным шифрованием.",
|
||
notLoggedIn: "Войди, чтобы присоединиться к чату сообщества.",
|
||
noGroupAdmin: "Комната сообщества ещё не создана.",
|
||
noGroupMember: "Ты ещё не в комнате сообщества.",
|
||
waitingApproval: "Ждём одобрения от бота сообщества или администратора…",
|
||
waitingApprovalManual: "Ручной режим. Когда одобрят, нажми «Проверить приглашение».",
|
||
noInvite: "Приглашения пока нет. Бот обычно одобряет в течение минуты — после этого нажми «Проверить приглашение».",
|
||
pendingRequests: "{{count}} запросов на вступление в ожидании",
|
||
pendingRequestsDesc: "Бот обычно одобряет автоматически. Если застряло, открой комнату ниже и нажми «Проверить запросы».",
|
||
botMissing: "The community bot isn’t in this room right now, so an admin will review join requests.",
|
||
secondDeviceHint: "Уже участник на другом устройстве? Используй «Привязать это устройство» для прямой передачи или попроси снова присоединиться с этого устройства.",
|
||
create: "Создать комнату сообщества",
|
||
setupDeviceBody: "Это даёт устройству ключ от комнаты сообщества. Администратор или бот подтверждает его один раз.",
|
||
onboardingFounder1: "Создай комнату сообщества.",
|
||
onboardingFounder2: "Подтверждай бота сообщества и новых участников.",
|
||
onboardingFounder3: "Отвечай на вопросы и собирай отзывы.",
|
||
onboardingMember1: "Попроси вступить в комнату сообщества.",
|
||
onboardingMember2: "Администратор или бот сообщества подтвердит твоё устройство.",
|
||
onboardingMember3: "Задавай вопросы, делись отзывами или просто поздоровайся.",
|
||
encryptedNote: "Читать это могут только участники комнаты; координатор передаёт лишь зашифрованные сообщения.",
|
||
shareInviteText: "Присоединяйся к чату сообщества SkateSpots",
|
||
qrTitle: "Сканируй, чтобы войти в чат сообщества",
|
||
qrHint: "Отсканируй камерой телефона, чтобы открыть чат сообщества и попросить о вступлении.",
|
||
owner: "Владелец",
|
||
botName: "Бот сообщества",
|
||
howItWorks: "Новые устройства один раз подтверждает администратор или бот сообщества. Сообщения, отправленные до твоего вступления, тебе не видны.",
|
||
feedbackNote: "Вопросы и отзывы приветствуются. Будь доброжелателен — это общая комната.",
|
||
},
|
||
translateUi: {
|
||
title: "Перевод сообщений",
|
||
translate: "Перевести",
|
||
translating: "Перевод…",
|
||
showOriginal: "Показать оригинал",
|
||
showTranslation: "Показать перевод",
|
||
translatedFrom: "Перевод с {{language}}",
|
||
failed: "Не удалось перевести. Попробуйте ещё раз.",
|
||
unsupported: "Эта языковая пара пока недоступна.",
|
||
pilotNote: "Пилот: только английский ↔ испанский.",
|
||
autoTranslate: "Автоматически переводить сообщения",
|
||
autoTranslateDesc: "Переводить входящие сообщения на ваш язык. Работает на этом устройстве; ничего не отправляется.",
|
||
privacy: "Перевод выполняется на вашем устройстве. Ваше сообщение его никогда не покидает. При первом использовании загружается языковая модель.",
|
||
},
|
||
newsletterDraftUi: {
|
||
weeklyDraftReady: 'Еженедельный черновик готов',
|
||
loadDraft: 'Загрузить черновик',
|
||
hidePreview: 'Скрыть предпросмотр',
|
||
untitled: 'Без названия',
|
||
},
|
||
signerPromptUi: {
|
||
title: "Бюджет запросов Amber",
|
||
body: "Amber запрашивает подтверждение для каждого подписываемого действия. Чтение и фоновое расшифрование выполняются локально и не вызывают запросов. Отправка группового DM требует по одному запросу на получателя (шифрование + подпись), а Cordn может запрашивать подтверждение на каждый запрос координатора. Для частного или экипажного чата тише использовать бункер или локальный ключ.",
|
||
bunker: "Оставьте Amber для важных подписей или переключитесь на бункер, если ожидаете долгий разговор.",
|
||
},
|
||
globalSearchUi: {
|
||
open: "Поиск",
|
||
placeholder: "Поиск спотов, экипажей, событий, снаряжения…",
|
||
hint: "⌘K / Ctrl+K",
|
||
recent: "Недавние",
|
||
pages: "Страницы",
|
||
spots: "Споты",
|
||
shops: "Магазины",
|
||
crews: "Экипажи",
|
||
events: "События",
|
||
gear: "Снаряжение",
|
||
skaters: "Скейтеры",
|
||
signers: "Подписанты",
|
||
trust: "Доверие",
|
||
noResults: "Нет результатов по запросу «{{query}}».",
|
||
},
|
||
marketplaceExtrasUi: {
|
||
savedSearches: "Сохранённые поиски",
|
||
saveSearch: "Сохранить поиск",
|
||
searchName: "Назовите этот поиск…",
|
||
deleteSearch: "Удалить сохранённый поиск",
|
||
safetyTitle: "Покупайте и продавайте безопасно",
|
||
safetyMeet: "Встречайтесь в общественном месте и осматривайте снаряжение до оплаты.",
|
||
safetyKeys: "Никогда не делитесь seed-фразами или приватными ключами. Ведите сделку в чате приложения.",
|
||
safetyEscrow: "При доставке сначала прочитайте условия эскроу: Cashu-эскроу работает только в нативном приложении и не проверен.",
|
||
safetyMore: "Прочитать правила маркетплейса",
|
||
offerTemplates: "Быстрые заметки",
|
||
offerDiscount: "Можете сделать скидку 10%?",
|
||
offerSwap: "Рассмотрите обмен?",
|
||
offerPickup: "Могу забрать на этой неделе.",
|
||
offerShipping: "Можете объединить доставку?",
|
||
},
|
||
placesUi: {
|
||
eventDetail: {
|
||
eventPass: "Пропуск на мероприятие"
|
||
},
|
||
},
|
||
};
|
||
|
||
export default drift;
|