i18n(ru,ko): complete Russian + Korean translations; use North Korean flag for Korean
This commit is contained in:
parent
78660580fa
commit
361f03c988
18 changed files with 18891 additions and 34 deletions
|
|
@ -26,7 +26,7 @@ const languages: LanguageOption[] = [
|
|||
{ code: 'nl', name: 'Dutch', nativeName: 'Nederlands', flag: '🇳🇱' },
|
||||
{ code: 'pl', name: 'Polish', nativeName: 'Polski', flag: '🇵🇱' },
|
||||
{ code: 'ru', name: 'Russian', nativeName: 'Русский', flag: '🇷🇺' },
|
||||
{ code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇷' },
|
||||
{ code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇵' },
|
||||
{ code: 'th', name: 'Thai', nativeName: 'ไทย', flag: '🇹🇭' },
|
||||
{ code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵' },
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,4 +1,298 @@
|
|||
/** ko — batch 1. Filled by the translation pass; empty until then. */
|
||||
const koBatch1 = {};
|
||||
/**
|
||||
* Korean (한국어) — batch 1: app shell + static pages.
|
||||
*
|
||||
* Partial by design: any key not yet translated falls back to English, and
|
||||
* `scripts/check-i18n.mjs` reports coverage. Skate/brand vocabulary stays
|
||||
* English or a natural Korean loanword (Spot→스팟, Park→파크, Bowl→볼, Crew→크루,
|
||||
* Deck→데크, Trucks→트럭, Wheels→휠, Bearings→베어링, Griptape→그립테이프, Stash,
|
||||
* The Lab, Nostr, Lightning, Zap, Relay, sats), because Korean skaters use them.
|
||||
*/
|
||||
const koBatch1 = {
|
||||
common: {
|
||||
loading: '로딩 중...',
|
||||
error: '오류',
|
||||
save: '저장',
|
||||
cancel: '취소',
|
||||
delete: '삭제',
|
||||
edit: '편집',
|
||||
add: '추가',
|
||||
remove: '제거',
|
||||
create: '만들기',
|
||||
submit: '제출',
|
||||
close: '닫기',
|
||||
back: '뒤로',
|
||||
next: '다음',
|
||||
done: '완료',
|
||||
search: '검색',
|
||||
filter: '필터',
|
||||
sort: '정렬',
|
||||
share: '공유',
|
||||
more: '더보기',
|
||||
copy: '복사',
|
||||
copied: '복사됨!',
|
||||
viewAll: '전체 보기',
|
||||
seeMore: '더 보기',
|
||||
showMore: '더 보기',
|
||||
showLess: '접기',
|
||||
noResults: '검색 결과가 없습니다',
|
||||
tryAgain: '다시 시도',
|
||||
learnMore: '자세히 알아보기',
|
||||
getStarted: '시작하기',
|
||||
yes: '예',
|
||||
no: '아니요',
|
||||
or: '또는',
|
||||
and: '그리고',
|
||||
free: '무료',
|
||||
new: '신규',
|
||||
popular: '인기',
|
||||
featured: '추천',
|
||||
verified: '인증됨',
|
||||
sats: 'sats',
|
||||
clear: '지우기',
|
||||
clearFilters: '필터 지우기',
|
||||
clearAll: '전체 지우기',
|
||||
hide: '숨기기',
|
||||
undo: '실행 취소',
|
||||
},
|
||||
nav: {
|
||||
home: '홈',
|
||||
map: '스팟',
|
||||
lab: 'The Lab',
|
||||
events: '이벤트',
|
||||
crews: '크루',
|
||||
wallet: '지갑',
|
||||
settings: '설정',
|
||||
more: '더보기',
|
||||
rewards: '리워드',
|
||||
stats: '커뮤니티 통계',
|
||||
about: '소개',
|
||||
food: '음식',
|
||||
marketplace: '마켓플레이스',
|
||||
mints: '민트',
|
||||
appShop: '앱 샵',
|
||||
diy: 'DIY',
|
||||
trades: '마켓플레이스',
|
||||
stash: 'Stash',
|
||||
collections: '컬렉션',
|
||||
contacts: '연락처',
|
||||
messages: '메시지',
|
||||
skaters: '스케이터',
|
||||
glossary: '용어집',
|
||||
riderCard: '라이더 카드',
|
||||
supporters: '서포터 ⚡',
|
||||
newsletter: '뉴스레터',
|
||||
viewProfile: '프로필 보기',
|
||||
leaderboards: '리더보드',
|
||||
},
|
||||
chromeUi: {
|
||||
skipToContent: '본문으로 건너뛰기',
|
||||
menu: '메뉴',
|
||||
inBadge: '접속 중',
|
||||
loggedIn: '로그인됨',
|
||||
profile: '프로필',
|
||||
logIn: '로그인',
|
||||
logOut: '로그아웃',
|
||||
notLoggedIn: '로그인하지 않음',
|
||||
loggedOutPrompt: '로그인하면 스팟을 추가하고, 스케이터에게 Zap을 보내고, 즐겨찾기를 저장할 수 있습니다',
|
||||
accounts: '계정',
|
||||
addAnotherAccount: '다른 계정 추가',
|
||||
setStatus: '상태 설정',
|
||||
setYourStatus: '내 상태 설정',
|
||||
status: '상태',
|
||||
addSpot: '스팟 추가',
|
||||
myData: '내 데이터',
|
||||
myStash: '내 Stash',
|
||||
myCollections: '내 컬렉션',
|
||||
viewMyProfile: '내 프로필 보기',
|
||||
customizeNavBar: '내비게이션 바 맞춤 설정',
|
||||
ecash: 'Ecash',
|
||||
madeWith: '정성을 담아',
|
||||
forSkateCommunity: '스케이트보드 커뮤니티를 위해',
|
||||
beta: 'Beta',
|
||||
license: '라이선스',
|
||||
privacy: '개인정보 보호',
|
||||
collaborators: '협력자 및 친구',
|
||||
notSponsoredBy: '다음의 후원을 받지 않음:',
|
||||
errorTitle: '불러오지 못했어요',
|
||||
errorDescription: '네트워크 요청에 실패했습니다. 연결을 확인하고 다시 시도해 주세요.',
|
||||
tryAgain: '다시 시도',
|
||||
weatherOn: '날씨 켜기',
|
||||
weatherOff: '날씨 끄기',
|
||||
trustFilter: '신뢰 필터',
|
||||
filterByTrustLevel: '신뢰 수준으로 필터',
|
||||
trust: {
|
||||
all: '모든 사용자',
|
||||
allDesc: '모든 사람의 콘텐츠 표시',
|
||||
verified: '인증됨',
|
||||
verifiedDesc: '팔로우 중이거나 인증된 사용자 (신뢰 ≥90)',
|
||||
trusted: '신뢰됨',
|
||||
trustedDesc: '친구의 친구 또는 NIP-05 인증 (신뢰 ≥60)',
|
||||
following: '팔로잉만',
|
||||
followingDesc: '팔로우하는 사람의 콘텐츠만 표시',
|
||||
followingShort: '팔로잉',
|
||||
},
|
||||
sort: {
|
||||
recent: '최신순',
|
||||
recentDesc: '가장 최근 것부터',
|
||||
trust: '신뢰도 높은 순',
|
||||
trustDesc: '가장 신뢰받는 크리에이터',
|
||||
proximity: '내 주변순',
|
||||
proximityDesc: '가장 가까운 위치',
|
||||
popular: '인기순',
|
||||
popularDesc: '댓글/반응이 가장 많은 순',
|
||||
zaps: 'Zap 많은 순',
|
||||
zapsDesc: '받은 금액이 가장 높은 순',
|
||||
},
|
||||
spotType: {
|
||||
street: '스트리트',
|
||||
transition: '트랜지션',
|
||||
park: '파크',
|
||||
plaza: '플라자',
|
||||
diy: 'DIY',
|
||||
bowl: '볼',
|
||||
vert: 'Vert',
|
||||
indoor: '실내',
|
||||
skatepark: '스케이트파크',
|
||||
miniramp: '미니 램프',
|
||||
},
|
||||
},
|
||||
desktopNav: {
|
||||
title: '데스크톱 내비게이션',
|
||||
desc: '상단 바에 표시할 탭과 순서를 선택하세요. 숨긴 탭은 “더보기” 메뉴에 남아 있습니다.',
|
||||
fixed: '고정',
|
||||
shownInTopBar: '상단 바에 표시됨 ({{count}})',
|
||||
noExtraTabs: '추가로 표시된 탭이 없습니다 — 모든 항목이 “더보기” 메뉴에 있습니다. 아래에서 추가하세요.',
|
||||
inMoreMenu: '“더보기” 메뉴에 있음 ({{count}})',
|
||||
moveUp: '{{name}} 위로 이동',
|
||||
moveDown: '{{name}} 아래로 이동',
|
||||
hide: '{{name}} 숨기기',
|
||||
moveToMore: '더보기 메뉴로 이동',
|
||||
show: '표시',
|
||||
showInTopBar: '상단 바에 {{name}} 표시',
|
||||
showInTopBarTitle: '상단 바에 표시',
|
||||
reset: '기본값으로 재설정',
|
||||
},
|
||||
navSheet: {
|
||||
title: '내 바 맞춤 설정',
|
||||
desc: '가장 많이 쓰는 탭 {{count}}개를 고르세요. 나머지는 메뉴에 남습니다.',
|
||||
preview: '미리보기',
|
||||
empty: '비어 있음',
|
||||
order: '순서 ({{done}}/{{total}})',
|
||||
available: '사용 가능한 탭',
|
||||
full: '바가 가득 찼습니다 — 하나를 빼고 바꾸세요',
|
||||
moveUp: '{{name}} 위로 이동',
|
||||
moveDown: '{{name}} 아래로 이동',
|
||||
login: '로그인',
|
||||
profile: '프로필',
|
||||
reset: '재설정',
|
||||
done: '완료',
|
||||
},
|
||||
pwa: {
|
||||
installTitle: 'SkateSpots 설치',
|
||||
installSubtitle: '완전한 앱 경험을 만나보세요',
|
||||
addToHomeScreen: '홈 화면에 추가',
|
||||
installApp: '앱 설치',
|
||||
maybeLater: '나중에',
|
||||
gotIt: '확인!',
|
||||
benefits: {
|
||||
fast: '초고속',
|
||||
offline: '오프라인에서도 작동',
|
||||
fullAccess: '전체 접근',
|
||||
},
|
||||
iosStep1: '공유 버튼을 탭하세요',
|
||||
iosStep1Hint: 'Safari 하단에서',
|
||||
iosStep2: '스크롤해서 “홈 화면에 추가”를 탭하세요',
|
||||
iosStep2Hint: '공유 메뉴에서',
|
||||
iosStep3: '“추가”를 탭해 설치하세요',
|
||||
iosStep3Hint: '앱이 홈 화면에 나타납니다',
|
||||
androidStep1: '메뉴 버튼을 탭하세요',
|
||||
androidStep1Hint: '브라우저의 (점 세 개)',
|
||||
androidStep2: '“홈 화면에 추가”를 선택하세요',
|
||||
androidStep2Hint: '또는 “앱 설치”',
|
||||
androidStep3: '설치를 확인하세요',
|
||||
androidStep3Hint: '앱이 홈 화면에 나타납니다',
|
||||
tagline: '무료 • 오프라인 작동 • 빠르고 안정적',
|
||||
},
|
||||
home: {
|
||||
tagline: '커뮤니티 기반 • 릴레이 기반',
|
||||
title: 'SKATE SPOTS',
|
||||
subtitle: '스팟 발견 • 만남 • 트릭 배우기 • 로컬 지원',
|
||||
description: '진짜 스케이트보딩은 오프라인에서 일어납니다 — 이 도구가 그곳을 찾도록 도와줍니다.',
|
||||
betaWarning: 'BETA - 공사 중 • 사용 시 주의하세요',
|
||||
pwaHint: 'Progressive Web App - 기기에 설치하세요',
|
||||
exploreMap: '지도 탐색',
|
||||
addSpot: '스팟 추가',
|
||||
globalSpots: '전 세계 스팟',
|
||||
openCommunity: '오픈 커뮤니티',
|
||||
lightningZaps: 'Lightning Zaps',
|
||||
featuredSpots: '추천 스팟',
|
||||
featuredSpotsDesc: '전 세계에서 커뮤니티가 인증한 스케이트 스팟',
|
||||
upcomingEvents: '다가오는 이벤트',
|
||||
upcomingEventsDesc: '곧 열리는 대회, 밋업, 세션',
|
||||
noSpotsYet: '아직 발견된 스팟이 없습니다',
|
||||
noSpotsHint: '첫 번째로 스케이트 스팟을 추가해 보세요!',
|
||||
noEventsYet: '다가오는 이벤트가 없습니다',
|
||||
noEventsHint: '나중에 다시 확인하거나 직접 만들어 보세요!',
|
||||
theLab: 'The Lab',
|
||||
theLabDesc: '트릭을 배우고, 코치를 찾고, 실력을 키우세요',
|
||||
coaches: '코치',
|
||||
coachesDesc: '성장을 도와줄 경험 많은 스케이터에게 배우세요',
|
||||
filmers: '필머',
|
||||
filmersDesc: '필머와 연결해 최고의 클립을 담으세요',
|
||||
findCoach: '코치 찾기',
|
||||
becomeCoach: '코치 되기',
|
||||
findFilmer: '필머 찾기',
|
||||
becomeFilmer: '필머 되기',
|
||||
viewAllSpots: '모든 스팟 보기',
|
||||
viewAllEvents: '모든 이벤트 보기',
|
||||
createEvent: '이벤트 만들기',
|
||||
readyToShare: '공유할 준비가 되셨나요?',
|
||||
readyToShareDesc: '좋아하는 스팟을 추가해 스케이트보드 커뮤니티의 성장을 도우세요. 공유하는 모든 장소가 동료 스케이터가 새로운 곳을 발견하도록 돕습니다.',
|
||||
},
|
||||
about: {
|
||||
title: 'SkateSpots 소개',
|
||||
subtitle: '탈중앙화 스케이트보드 커뮤니티',
|
||||
whatIs: 'SkateSpots란?',
|
||||
whatIsDesc: 'SkateSpots는 전 세계 스케이트보딩 장소를 발견하기 위한 커뮤니티 기반 플랫폼입니다. Nostr 위에 구축되어 스케이터에게 데이터에 대한 진정한 소유권을 부여합니다.',
|
||||
features: '기능',
|
||||
featuresDesc: '스팟 찾기, 이벤트 만들기, 코치와 연결, 지역 스케이트 숍 지원 — 모두 한곳에서.',
|
||||
nostr: 'Nostr 기반',
|
||||
nostrDesc: 'Nostr는 진정한 검열 저항 글로벌 커뮤니케이션을 가능하게 하는 단순하고 개방된 프로토콜입니다. 계정과 데이터는 당신의 것입니다.',
|
||||
openSource: '오픈 소스',
|
||||
openSourceDesc: 'SkateSpots는 완전한 오픈 소스입니다. 기여하고, 포크하고, 직접 인스턴스를 운영하세요.',
|
||||
lightning: 'Lightning 결제',
|
||||
lightningDesc: 'Bitcoin Lightning 결제로 좋아하는 스케이터, 코치, 크리에이터에게 Zap을 보내세요.',
|
||||
},
|
||||
faq: {
|
||||
title: '자주 묻는 질문',
|
||||
subtitle: 'SkateSpots에 대해 알아야 할 모든 것',
|
||||
whatIsNostr: 'Nostr란?',
|
||||
whatIsNostrAnswer: 'Nostr는 탈중앙화 소셜 네트워킹을 위한 개방형 프로토콜입니다. 기존 플랫폼과 달리 데이터와 신원을 스스로 소유합니다.',
|
||||
howToStart: '어떻게 시작하나요?',
|
||||
howToStartAnswer: '“가입”을 눌러 새 Nostr 계정을 만들거나, 이미 있다면 “로그인”하세요. 브라우저 확장, 모바일 앱 또는 비밀 키를 사용할 수 있습니다.',
|
||||
whatAreZaps: 'Zap이란?',
|
||||
whatAreZapsAnswer: 'Zap은 다른 사용자에게 보낼 수 있는 Bitcoin Lightning 팁입니다. 좋은 콘텐츠에 감사를 표하거나 크리에이터를 지원하는 방법입니다.',
|
||||
howToAddSpot: '스팟은 어떻게 추가하나요?',
|
||||
howToAddSpotAnswer: '계정에 로그인한 뒤 “스팟 추가”를 누르고 위치, 사진, 설명 등 세부 정보를 입력하세요.',
|
||||
isItFree: 'SkateSpots는 무료인가요?',
|
||||
isItFreeAnswer: '네! SkateSpots는 완전히 무료로 사용할 수 있습니다. 원한다면 다른 사용자에게 Zap(Bitcoin 팁)을 보낼 수 있습니다.',
|
||||
canIEditSpot: '내 스팟을 수정하거나 삭제할 수 있나요?',
|
||||
canIEditSpotAnswer: '네, 직접 만든 스팟은 수정할 수 있습니다. Nostr의 탈중앙화 특성상 삭제 요청은 전송되지만 일부 릴레이는 데이터를 보관할 수 있습니다.',
|
||||
},
|
||||
onboarding: {
|
||||
welcome: 'SkateSpots에 오신 것을 환영합니다!',
|
||||
welcomeDesc: '몇 단계만 거치면 설정이 끝납니다.',
|
||||
step1Title: '계정 만들기',
|
||||
step1Desc: 'Nostr 키를 생성하고 있습니다. 직접 관리하는 비밀번호와 같습니다.',
|
||||
step2Title: '키 백업하기',
|
||||
step2Desc: '복구 문구를 안전한 곳에 저장하세요. 계정을 복구할 수 있는 유일한 방법입니다!',
|
||||
step3Title: '프로필 설정하기',
|
||||
step3Desc: '커뮤니티에 자신을 소개하세요.',
|
||||
step4Title: '준비 완료!',
|
||||
step4Desc: '스팟과 이벤트를 탐색하고 스케이터들과 연결을 시작하세요.',
|
||||
skipForNow: '지금은 건너뛰기',
|
||||
continueToApp: '앱으로 계속',
|
||||
},
|
||||
};
|
||||
|
||||
export default koBatch1;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,908 @@
|
|||
/** ko — batch 7. Filled by the translation pass; empty until then. */
|
||||
const koBatch7 = {};
|
||||
/** ko — batch 7. Filled by the translation pass. */
|
||||
const koBatch7 = {
|
||||
events: {
|
||||
title: "스케이트 이벤트",
|
||||
createEvent: "이벤트 만들기",
|
||||
editEvent: "이벤트 편집",
|
||||
eventDetails: "이벤트 상세",
|
||||
eventName: "이벤트 이름",
|
||||
eventType: "이벤트 유형",
|
||||
date: "날짜",
|
||||
time: "시간",
|
||||
startDate: "시작 날짜",
|
||||
endDate: "종료 날짜",
|
||||
venue: "장소",
|
||||
organizer: "주최자",
|
||||
attendees: "참석자",
|
||||
going: "참석",
|
||||
interested: "관심 있음",
|
||||
rsvp: "RSVP",
|
||||
ticketPrice: "티켓 가격",
|
||||
freeEntry: "무료 입장",
|
||||
register: "등록",
|
||||
moreInfo: "더 알아보기",
|
||||
upcomingEvents: "예정",
|
||||
pastEvents: "지난",
|
||||
noEvents: "이벤트를 찾을 수 없습니다",
|
||||
findEvents: "콘테스트, 데모, 세션 등을 찾아보세요",
|
||||
searchPlaceholder: "이벤트 검색...",
|
||||
loginToCreate: "이벤트를 만들려면 로그인하세요",
|
||||
noEventsMatch: "필터에 맞는 예정된 이벤트가 없습니다.",
|
||||
noUpcoming: "예정된 이벤트가 없습니다.",
|
||||
noPast: "지난 이벤트가 없습니다.",
|
||||
types: {
|
||||
contest: "콘테스트",
|
||||
session: "세션",
|
||||
meetup: "밋업",
|
||||
premiere: "영상 시사회",
|
||||
workshop: "워크숍",
|
||||
demo: "데모",
|
||||
jam: "잼",
|
||||
},
|
||||
},
|
||||
wallet: {
|
||||
title: "지갑",
|
||||
balance: "잔액",
|
||||
send: "보내기",
|
||||
receive: "받기",
|
||||
transactions: "거래",
|
||||
history: "내역",
|
||||
noTransactions: "아직 거래가 없습니다",
|
||||
sendSats: "sats 보내기",
|
||||
receiveSats: "sats 받기",
|
||||
amount: "금액",
|
||||
recipient: "받는 사람",
|
||||
lightning: "Lightning",
|
||||
onChain: "온체인",
|
||||
invoice: "인보이스",
|
||||
address: "주소",
|
||||
scanQR: "QR 스캔",
|
||||
paste: "붙여넣기",
|
||||
payInvoice: "인보이스 결제",
|
||||
createInvoice: "인보이스 만들기",
|
||||
copied: "클립보드에 복사되었습니다!",
|
||||
insufficientFunds: "잔액이 부족합니다",
|
||||
paymentSent: "결제를 보냈습니다!",
|
||||
paymentReceived: "결제를 받았습니다!",
|
||||
cashu: {
|
||||
title: "Cashu 지갑",
|
||||
tokens: "토큰",
|
||||
mint: "민트",
|
||||
mints: "민트",
|
||||
manageMints: "민트 관리",
|
||||
addMint: "민트 추가",
|
||||
removeMint: "민트 제거",
|
||||
defaultMint: "기본 민트",
|
||||
backup: "백업",
|
||||
restore: "복원",
|
||||
recoveryPhrase: "복구 문구",
|
||||
viewRecoveryPhrase: "복구 문구 보기",
|
||||
seedWarning: "이것은 Nostr nsec와 같습니다 - 비밀로 지키고 백업하세요!",
|
||||
},
|
||||
},
|
||||
spots: {
|
||||
addSpot: "스팟 추가",
|
||||
editSpot: "스팟 편집",
|
||||
spotDetails: "스팟 상세",
|
||||
spotName: "스팟 이름",
|
||||
spotType: "스팟 유형",
|
||||
description: "설명",
|
||||
location: "위치",
|
||||
address: "주소",
|
||||
photos: "사진",
|
||||
addPhotos: "사진 추가",
|
||||
obstacles: "장애물",
|
||||
features: "특징",
|
||||
bustLevel: "단속 위험도",
|
||||
bestTime: "최적 시간",
|
||||
tips: "팁",
|
||||
reviews: "리뷰",
|
||||
addReview: "리뷰 추가",
|
||||
reportSpot: "스팟 신고",
|
||||
directions: "길찾기",
|
||||
shareSpot: "스팟 공유",
|
||||
createdBy: "만든 사람",
|
||||
lastUpdated: "마지막 업데이트",
|
||||
types: {
|
||||
park: "스케이트파크",
|
||||
street: "스트리트 스팟",
|
||||
diy: "DIY 스팟",
|
||||
plaza: "광장",
|
||||
indoor: "실내",
|
||||
bowl: "볼",
|
||||
vert: "버트",
|
||||
miniramp: "미니 램프",
|
||||
},
|
||||
bustLevels: {
|
||||
chill: "여유",
|
||||
moderate: "보통",
|
||||
sketchy: "위험",
|
||||
heavy: "매우 위험",
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
title: "설정",
|
||||
profile: "프로필",
|
||||
editProfile: "프로필 편집",
|
||||
account: "계정",
|
||||
security: "보안",
|
||||
relays: "릴레이",
|
||||
appearance: "모양",
|
||||
language: "언어",
|
||||
notifications: "알림",
|
||||
privacy: "개인정보",
|
||||
about: "정보",
|
||||
help: "도움말",
|
||||
feedback: "피드백",
|
||||
version: "버전",
|
||||
displayName: "표시 이름",
|
||||
username: "사용자 이름",
|
||||
bio: "소개",
|
||||
website: "웹사이트",
|
||||
lightningAddress: "Lightning 주소",
|
||||
profilePicture: "프로필 사진",
|
||||
banner: "배너",
|
||||
saveProfile: "프로필 저장",
|
||||
backupKeys: "키 백업",
|
||||
exportKeys: "키 내보내기",
|
||||
secretKey: "비밀 키",
|
||||
publicKey: "공개 키",
|
||||
showSecretKey: "비밀 키 표시",
|
||||
hideSecretKey: "비밀 키 숨기기",
|
||||
copyKey: "키 복사",
|
||||
keysBackedUp: "키를 안전하게 백업했다고 확인했습니다.",
|
||||
keysNotBackedUp: "복구 문구나 비밀 키를 반드시 백업하세요!",
|
||||
selectLanguage: "언어 선택",
|
||||
english: "영어",
|
||||
spanish: "스페인어",
|
||||
},
|
||||
createSpot: {
|
||||
title: "스케이트 스팟 추가",
|
||||
subtitle: "커뮤니티와 스케이트보딩 스팟을 공유하세요",
|
||||
backToMap: "지도로 돌아가기",
|
||||
namePlaceholder: "예: Hollywood High School",
|
||||
descriptionPlaceholder: "스팟, 장애물, 최적 시간, 단속 정보 등을 설명해 주세요.",
|
||||
addressPlaceholder: "예: 1521 N Highland Ave, Los Angeles, CA",
|
||||
selectType: "스팟 유형 선택",
|
||||
selectBustLevel: "단속 위험도 선택",
|
||||
uploadPhotos: "업로드",
|
||||
dragDrop: "끌어다 놓거나 클릭하여 업로드",
|
||||
maxPhotos: "최대 5장",
|
||||
publishing: "게시 중...",
|
||||
success: "스팟이 성공적으로 게시되었습니다!",
|
||||
error: "스팟 게시에 실패했습니다",
|
||||
locationRequired: "지도에서 위치를 선택해 주세요",
|
||||
useCurrentLocation: "현재 위치 사용",
|
||||
pickOnMap: "지도에서 위치 선택",
|
||||
loginToAdd: "스케이트 스팟을 추가하려면 로그인해야 합니다.",
|
||||
locationLabel: "위치",
|
||||
tapToPlace: "지도를 탭하여 핀을 놓거나, 끌어서 미세 조정하세요.",
|
||||
manualCoords: "좌표 직접 입력",
|
||||
moreDetails: "추가 정보 (선택)",
|
||||
photoHint: "게시하려면 사진이 필요합니다",
|
||||
nameRequired: "이 스팟의 이름을 입력해 주세요.",
|
||||
descriptionRequired: "이 스팟을 설명해 주세요.",
|
||||
addressRequired: "주소나 지역 이름을 추가해 주세요.",
|
||||
photoRequired: "사진을 최소 한 장 추가해 주세요.",
|
||||
draftTitle: "저장되지 않은 임시 저장이 있습니다",
|
||||
draftBody: "이어서 작성하거나 삭제하세요.",
|
||||
draftResume: "이어서",
|
||||
draftDiscard: "임시 저장 삭제",
|
||||
requiredFields: "이 스팟에 대해 알려주세요. * 표시된 항목은 모두 필수입니다.",
|
||||
coordinates: "좌표",
|
||||
latitudePlaceholder: "위도 (예: 34.1012)",
|
||||
longitudePlaceholder: "경도 (예: -118.3389)",
|
||||
gettingLocation: "위치 가져오는 중...",
|
||||
accessType: "접근 유형",
|
||||
publicTitle: "공개 - 누구나 이용 가능",
|
||||
publicDesc: "스케이트파크, 공공 광장, 스트리트 스팟",
|
||||
privateTitle: "사유지 - 허가 필요",
|
||||
privateDesc: "뒷마당 램프, 사유지, 출입 통제 스팟",
|
||||
localsTitle: "현지인에게 먼저 문의",
|
||||
localsDesc: "스팟을 존중하고 망가뜨리지 마세요",
|
||||
contactInfo: "연락처 정보",
|
||||
contactPlaceholder: "예: 전화번호, Instagram, 이메일...",
|
||||
contactHintPrivate: "허가를 위해 어떻게 연락받길 원하시나요?",
|
||||
contactHintLocals: "스팟에 대해 문의하려면 어떻게 연락하면 되나요?",
|
||||
},
|
||||
marketplace: {
|
||||
title: "마켓플레이스",
|
||||
subtitle: "스케이트 Gear를 사고팔고 교환하세요",
|
||||
addListing: "매물 추가",
|
||||
condition: "상태",
|
||||
conditions: {
|
||||
new: "새것",
|
||||
likeNew: "거의 새것",
|
||||
good: "양호",
|
||||
fair: "보통",
|
||||
poor: "나쁨",
|
||||
},
|
||||
categories: {
|
||||
all: "전체",
|
||||
decks: "데크",
|
||||
trucks: "트럭",
|
||||
wheels: "휠",
|
||||
bearings: "베어링",
|
||||
shoes: "신발",
|
||||
clothing: "의류",
|
||||
protection: "보호 장비",
|
||||
other: "기타",
|
||||
},
|
||||
priceRange: "가격대",
|
||||
location: "위치",
|
||||
seller: "판매자",
|
||||
contact: "판매자에게 연락",
|
||||
makeOffer: "가격 제안",
|
||||
sold: "판매됨",
|
||||
available: "판매 중",
|
||||
gear: "Gear",
|
||||
sellGear: "Gear 판매",
|
||||
wantToBuy: "구매 희망",
|
||||
},
|
||||
auth: {
|
||||
login: "로그인",
|
||||
logout: "로그아웃",
|
||||
signUp: "가입하기",
|
||||
signUpTitle: "Nostr가 처음이신가요?",
|
||||
signUpDesc: "새 계정을 만들어 시작하세요. 무료이고 개방적입니다.",
|
||||
orLogIn: "또는 로그인",
|
||||
loginWithExtension: "확장 프로그램으로 로그인",
|
||||
loginWithAmber: "Amber로 로그인 (Android)",
|
||||
loginWithKey: "비밀 키 (nsec) 또는 복구 문구",
|
||||
loginWithBunker: "Nostr Connect로 로그인",
|
||||
bunkerUri: "Bunker 연결 문자열",
|
||||
openAmber: "Amber 열기",
|
||||
connectToBunker: "Bunker에 연결",
|
||||
noExtension: "확장 프로그램을 찾을 수 없습니다.",
|
||||
extensionHelp: "위의 가입하기 버튼으로 새 계정을 만들거나, 기존 자격 증명이 있다면 Amber, Key 또는 Bunker 탭을 사용하세요.",
|
||||
amberDesc: "Amber는 Android 기기용 안전한 Nostr 서명 앱입니다. 아래 버튼을 눌러 Amber를 열고 접근을 승인하세요.",
|
||||
bunkerDesc: "원격 서명자(bunker)를 사용해 어떤 기기에서든 계정에 접근하세요. 키는 서버에 안전하게 보관되며 웹사이트에 노출되지 않습니다.",
|
||||
keyPlaceholder: "nsec1... 또는 12단어 복구 문구",
|
||||
keyHint: "nsec 키 또는 12단어 복구 문구를 붙여넣을 수 있습니다",
|
||||
uploadKeyFile: "키 파일 업로드",
|
||||
loggingIn: "로그인 중...",
|
||||
connecting: "연결 중...",
|
||||
verifying: "확인 중...",
|
||||
},
|
||||
createEvent: {
|
||||
title: "이벤트 만들기",
|
||||
subtitle: "커뮤니티를 위한 스케이트보딩 이벤트를 주최하세요",
|
||||
backToEvents: "이벤트로 돌아가기",
|
||||
namePlaceholder: "예: Summer Skate Session",
|
||||
descriptionPlaceholder: "이벤트, 기대할 점, 규칙, 상품 등을 설명해 주세요.",
|
||||
selectType: "이벤트 유형 선택",
|
||||
venuePlaceholder: "예: Venice Beach Skatepark, CA",
|
||||
selectDate: "날짜 선택",
|
||||
selectTime: "시간 선택",
|
||||
ticketPricePlaceholder: "무료 이벤트는 비워 두세요",
|
||||
publishing: "게시 중...",
|
||||
success: "이벤트가 성공적으로 게시되었습니다!",
|
||||
error: "이벤트 게시에 실패했습니다",
|
||||
loginToCreate: "이벤트를 만들려면 로그인해야 합니다.",
|
||||
requiredFields: "이 이벤트에 대해 알려주세요. * 표시된 항목은 모두 필수입니다.",
|
||||
startDateTime: "시작 날짜 및 시간",
|
||||
endDateTime: "종료 날짜 및 시간 (선택)",
|
||||
coordinatesOptional: "좌표 (선택)",
|
||||
coverImage: "커버 이미지",
|
||||
uploadCover: "커버 이미지 업로드",
|
||||
nip05Recommended: "NIP-05 인증 권장",
|
||||
nip05Desc: "프로필에 NIP-05 식별자를 추가해 신원을 인증하고 참석자와 신뢰를 쌓으세요.",
|
||||
addNip05: "설정에서 NIP-05 추가",
|
||||
},
|
||||
labPage: {
|
||||
title: "The Lab",
|
||||
subtitle: "트릭을 배우고, 순간을 담고, 다른 스케이터와 연결하세요",
|
||||
coachesTab: "코칭",
|
||||
filmersTab: "촬영",
|
||||
offerCoaching: "코칭 제공",
|
||||
offerFilming: "촬영 제공",
|
||||
loginToOffer: "서비스를 제공하려면 로그인하세요",
|
||||
whatToLearn: "무엇을 배우고 싶으세요?",
|
||||
whatContent: "어떤 종류의 콘텐츠인가요?",
|
||||
selectSkillsDesc: "스킬을 선택하면 코치를 매칭해 드립니다",
|
||||
selectFilmingDesc: "원하는 촬영 서비스를 선택하세요",
|
||||
searchPlaceholder: "이름, 위치, 스킬로 검색...",
|
||||
noServicesYet: "아직 서비스가 없습니다",
|
||||
beFirstToOffer: "커뮤니티에 코칭이나 촬영 서비스를 가장 먼저 제공해 보세요!",
|
||||
skills: "스킬",
|
||||
rate: "요금",
|
||||
perHour: "/시간",
|
||||
contact: "연락",
|
||||
viewProfile: "프로필 보기",
|
||||
noProfilesYet: "아직 프로필이 없습니다",
|
||||
beFirstCoach: "첫 번째 코치로 등록해 보세요!",
|
||||
beFirstFilmer: "첫 번째 필머로 등록해 보세요!",
|
||||
yearsExperience: "년 경력",
|
||||
},
|
||||
skills: {
|
||||
kickflip: "Kickflip",
|
||||
heelflip: "Heelflip",
|
||||
ollie: "Ollie",
|
||||
treflip: "360 Flip",
|
||||
shuvit: "Shuvit",
|
||||
hardflip: "Hardflip",
|
||||
varial: "Varial",
|
||||
nollie: "Nollie",
|
||||
fakie: "Fakie",
|
||||
switch: "Switch",
|
||||
grind: "Grind",
|
||||
slide: "Slide",
|
||||
manual: "Manual",
|
||||
transition: "Transition",
|
||||
bowl: "Bowl",
|
||||
vert: "Vert",
|
||||
street: "Street",
|
||||
flatground: "Flatground",
|
||||
},
|
||||
lab: {
|
||||
title: "The Lab",
|
||||
subtitle: "스케이팅 실력을 높이세요",
|
||||
coaches: "코치",
|
||||
filmers: "필머",
|
||||
findCoach: "코치 찾기",
|
||||
becomeCoach: "코치 되기",
|
||||
findFilmer: "필머 찾기",
|
||||
becomeFilmer: "필머 되기",
|
||||
hourlyRate: "시간당 요금",
|
||||
experience: "경력",
|
||||
specialties: "전문 분야",
|
||||
availability: "가능 시간",
|
||||
bookSession: "세션 예약",
|
||||
contactCoach: "코치에게 연락",
|
||||
noCoaches: "내 지역에서 코치를 찾을 수 없습니다",
|
||||
noFilmers: "내 지역에서 필머를 찾을 수 없습니다",
|
||||
},
|
||||
shops: {
|
||||
title: "스케이트 샵",
|
||||
addShop: "샵 추가",
|
||||
editShop: "샵 편집",
|
||||
shopDetails: "샵 상세",
|
||||
shopName: "샵 이름",
|
||||
hours: "영업시간",
|
||||
phone: "전화",
|
||||
website: "웹사이트",
|
||||
services: "서비스",
|
||||
brands: "브랜드",
|
||||
supportLocal: "지역 상점 응원",
|
||||
nip05: "샵 NIP-05",
|
||||
nip05Hint: "이 샵을 위해 직접 관리하는 선택적 핸들입니다 (예: shop@yourdomain.com). 키로 인증됩니다. 최대 5개까지 추가할 수 있습니다.",
|
||||
},
|
||||
becomeFilmer: {
|
||||
title: "필머 되기",
|
||||
subtitle: "커뮤니티를 위해 최고의 클립을 담으세요",
|
||||
bioPlaceholder: "촬영 경력과 장비에 대해 알려주세요...",
|
||||
specialtiesPlaceholder: "예: fisheye, long lens, drone, editing",
|
||||
selectSpecialties: "전문 분야 선택",
|
||||
hourlyRate: "시간당 요금 (sats)",
|
||||
ratePlaceholder: "예: 5000",
|
||||
locationPlaceholder: "도시 또는 지역",
|
||||
portfolioUrl: "포트폴리오 URL",
|
||||
portfolioPlaceholder: "작업물 링크 (YouTube, Instagram 등)",
|
||||
publishing: "프로필 게시 중...",
|
||||
success: "필머 프로필이 생성되었습니다!",
|
||||
error: "프로필 생성에 실패했습니다",
|
||||
},
|
||||
food: {
|
||||
title: "음식 스팟",
|
||||
subtitle: "세션 전후에 에너지를 충전하세요",
|
||||
addFood: "음식 스팟 추가",
|
||||
categories: {
|
||||
all: "전체",
|
||||
burgers: "버거",
|
||||
pizza: "피자",
|
||||
tacos: "타코",
|
||||
coffee: "커피",
|
||||
drinks: "음료",
|
||||
snacks: "간식",
|
||||
},
|
||||
skaterFriendly: "스케이터 친화적",
|
||||
nearSpots: "스케이트 스팟 근처",
|
||||
},
|
||||
profile: {
|
||||
posts: "게시물",
|
||||
spots: "스팟",
|
||||
events: "이벤트",
|
||||
following: "팔로잉",
|
||||
followers: "팔로워",
|
||||
editProfile: "프로필 편집",
|
||||
follow: "팔로우",
|
||||
unfollow: "언팔로우",
|
||||
noPostsYet: "아직 게시물이 없습니다",
|
||||
noBio: "아직 소개가 없습니다",
|
||||
zapProfile: "이 스케이터에게 Zap",
|
||||
},
|
||||
becomeCoach: {
|
||||
title: "코치 되기",
|
||||
subtitle: "스킬을 나누고 다른 스케이터의 성장을 도우세요",
|
||||
bioPlaceholder: "스케이팅 배경과 지도 스타일에 대해 알려주세요...",
|
||||
skillsPlaceholder: "예: kickflip, heelflip, grinds, bowls",
|
||||
selectSkills: "가르칠 수 있는 스킬 선택",
|
||||
hourlyRate: "시간당 요금 (sats)",
|
||||
ratePlaceholder: "예: 5000",
|
||||
locationPlaceholder: "도시 또는 지역",
|
||||
publishing: "프로필 게시 중...",
|
||||
success: "코치 프로필이 생성되었습니다!",
|
||||
error: "프로필 생성에 실패했습니다",
|
||||
},
|
||||
weather: {
|
||||
title: "날씨",
|
||||
current: "현재 상태",
|
||||
forecast: "예보",
|
||||
humidity: "습도",
|
||||
wind: "바람",
|
||||
feelsLike: "체감",
|
||||
goodForSkating: "스케이팅하기 좋아요!",
|
||||
notIdeal: "최적의 조건이 아닙니다",
|
||||
allWeather: "모든 날씨",
|
||||
goodWeather: "좋은 날씨",
|
||||
perfectWeather: "완벽한 날씨",
|
||||
},
|
||||
errors: {
|
||||
somethingWentWrong: "문제가 발생했습니다",
|
||||
tryAgainLater: "나중에 다시 시도해 주세요",
|
||||
notFound: "찾을 수 없습니다",
|
||||
pageNotFound: "페이지를 찾을 수 없습니다",
|
||||
unauthorized: "권한이 없습니다",
|
||||
loginRequired: "계속하려면 로그인해 주세요",
|
||||
networkError: "네트워크 오류",
|
||||
checkConnection: "인터넷 연결을 확인해 주세요",
|
||||
invalidInput: "잘못된 입력",
|
||||
requiredField: "이 항목은 필수입니다",
|
||||
},
|
||||
time: {
|
||||
today: "오늘",
|
||||
yesterday: "어제",
|
||||
tomorrow: "내일",
|
||||
thisWeek: "이번 주",
|
||||
nextWeek: "다음 주",
|
||||
thisMonth: "이번 달",
|
||||
justNow: "방금 전",
|
||||
minutesAgo: "{{count}}분 전",
|
||||
hoursAgo: "{{count}}시간 전",
|
||||
daysAgo: "{{count}}일 전",
|
||||
},
|
||||
spotDetail: {
|
||||
postedBy: "게시자",
|
||||
getDirections: "길찾기",
|
||||
reviews: "리뷰",
|
||||
noReviews: "아직 리뷰가 없습니다",
|
||||
beFirstReview: "이 스팟을 가장 먼저 리뷰해 보세요!",
|
||||
writeReview: "리뷰 작성",
|
||||
submitReview: "리뷰 제출",
|
||||
rating: "평점",
|
||||
reviewPlaceholder: "이 스팟에서의 경험을 공유해 주세요...",
|
||||
relatedSpots: "주변 스팟",
|
||||
},
|
||||
eventDetail: {
|
||||
organizedBy: "주최자",
|
||||
eventInfo: "이벤트 정보",
|
||||
location: "위치",
|
||||
dateTime: "날짜 및 시간",
|
||||
price: "가격",
|
||||
attendeeCount: "{{count}}명 참석",
|
||||
interested: "관심 있음",
|
||||
going: "참석",
|
||||
notGoing: "불참",
|
||||
share: "이벤트 공유",
|
||||
},
|
||||
venueAccess: {
|
||||
title: "출입 패스",
|
||||
desc: "라이더에게 서명된 패스를 발급해 입구에서 출입을 증명할 수 있게 하세요 - 카드를 보여주면 누구나 QR을 스캔해 확인할 수 있습니다.",
|
||||
active: "{{count}}개 활성",
|
||||
revoked: "{{count}}개 취소됨",
|
||||
issue: "패스 발급",
|
||||
verifyHint: "스캔으로 확인 - 확인에 앱이나 계정이 필요하지 않습니다.",
|
||||
publicTitle: "출입 패스",
|
||||
publicDesc: "이 장소는 출입 패스를 발급합니다. 입구에서 라이더의 카드를 스캔해 확인하세요.",
|
||||
badge: "패스",
|
||||
sellerHint: "이 판매자의 장소는 출입 패스를 발급합니다",
|
||||
},
|
||||
zaps: {
|
||||
zapButton: "Zap",
|
||||
sendZap: "Zap 보내기",
|
||||
zapAmount: "Zap 금액",
|
||||
customAmount: "직접 입력",
|
||||
addMessage: "메시지 추가 (선택)",
|
||||
sending: "보내는 중...",
|
||||
sent: "Zap을 보냈습니다!",
|
||||
failed: "Zap 실패",
|
||||
received: "Zap을 받았습니다!",
|
||||
},
|
||||
rewards: {
|
||||
title: "리워드",
|
||||
yourPoints: "내 포인트",
|
||||
earnPoints: "포인트 적립",
|
||||
redeemPoints: "포인트 사용",
|
||||
leaderboard: "리더보드",
|
||||
achievements: "업적",
|
||||
dailyTasks: "일일 과제",
|
||||
weeklyTasks: "주간 과제",
|
||||
},
|
||||
errorsUi: {
|
||||
slammedTitle: "넘어졌어요",
|
||||
slammedBody: "이 화면에서 문제가 발생했습니다. 계정과 데이터는 안전합니다 - 다시 굴러가게 해드릴게요.",
|
||||
tryAgain: "다시 시도",
|
||||
reloadApp: "앱 새로고침",
|
||||
pageSlammedTitle: "이 페이지가 넘어졌어요",
|
||||
pageSlammedBody: "이 화면에서 문제가 발생했습니다. 계정과 데이터는 안전합니다. 보통 새로고침하면 해결됩니다.",
|
||||
reload: "새로고침",
|
||||
goBack: "뒤로 가기",
|
||||
},
|
||||
backup: {
|
||||
title: "로그인 정보 저장",
|
||||
subtitle: "10초면 끝 - 한 번만 하세요",
|
||||
message: "복구 코드는 계정으로 돌아올 수 있는 유일한 방법입니다. 저장하면 어떤 기기에서든 로그인할 수 있습니다.",
|
||||
warning: "잃어버리면 재설정이 없습니다 - 이메일도, 비밀번호 복구도 없습니다.",
|
||||
backupNow: "지금 저장",
|
||||
confirmed: "저장했습니다",
|
||||
remindLater: "나중에",
|
||||
},
|
||||
bootUi: {
|
||||
ariaLoading: "SkateSpots 로딩 중",
|
||||
ariaReady: "SkateSpots 준비 완료",
|
||||
ready: "준비 완료",
|
||||
statusWaking: "네트워크 깨우는 중",
|
||||
statusTuning: "릴레이 조정 중",
|
||||
statusPulling: "스팟 불러오는 중",
|
||||
statusDropping: "드롭인 중",
|
||||
},
|
||||
footer: {
|
||||
vibedWith: "함께 만든",
|
||||
poweredBy: "제공",
|
||||
openSource: "오픈 소스",
|
||||
contribute: "기여하기",
|
||||
decentralized: "탈중앙화",
|
||||
communityOwned: "커뮤니티 소유",
|
||||
},
|
||||
role: {
|
||||
owner: "소유자",
|
||||
admin: "관리자",
|
||||
organiser: "주최자",
|
||||
verifiedOwner: "인증된 소유자",
|
||||
},
|
||||
nfc: {
|
||||
write: "NFC 태그에 쓰기",
|
||||
written: "태그 작성 완료",
|
||||
writtenDesc: "태그를 휴대폰에 대면 인증 페이지가 열립니다.",
|
||||
failed: "태그를 쓸 수 없습니다",
|
||||
},
|
||||
collectionUi: {
|
||||
namePlaceholder: "2024 바르셀로나 여행",
|
||||
descriptionPlaceholder: "바르셀로나 여행에서 가장 좋아한 스팟...",
|
||||
},
|
||||
toastsUi: {
|
||||
followingSuccess: "팔로우했습니다",
|
||||
followingSuccessDesc: "이 사용자가 이제 네트워크에 있습니다",
|
||||
followFailed: "팔로우에 실패했습니다",
|
||||
unfollowSuccess: "언팔로우했습니다",
|
||||
unfollowSuccessDesc: "네트워크에서 제거되었습니다",
|
||||
unfollowFailed: "언팔로우에 실패했습니다",
|
||||
reportThanks: "감사합니다 - 검토를 위해 전송했습니다",
|
||||
reportFailed: "신고를 전송할 수 없습니다",
|
||||
savedOffline: "오프라인으로 저장됨",
|
||||
savedOfflineDesc: "다시 온라인이 되면 자동으로 게시됩니다.",
|
||||
cacheCleaned: "캐시 정리됨",
|
||||
cacheCleanedDesc: "캐시에서 오래된 스팟 {{count}}개를 제거했습니다",
|
||||
cacheCleared: "캐시 삭제됨",
|
||||
cacheClearedDesc: "모든 캐시된 스팟이 제거되었습니다",
|
||||
backOnline: "다시 온라인",
|
||||
backOnlineDesc: "저장된 작업 {{count}}개를 전송했습니다.",
|
||||
postQueued: "게시물 대기열에 추가됨",
|
||||
postQueuedDesc: "다시 온라인이 되면 게시물이 게시됩니다",
|
||||
invalidIdentifier: "잘못된 식별자입니다. npub1..., user@domain.com 또는 16진수 공개키를 사용하세요",
|
||||
notASpotThanks: "감사합니다 - 검토를 위해 전송했습니다",
|
||||
notASpotThanksDesc: "괜찮아요: 이 핀을 주제와 무관하다고 표시해 사람들이 스스로 판단할 수 있게 합니다.",
|
||||
notASpotFailed: "신고를 전송할 수 없습니다",
|
||||
pleaseTryAgain: "다시 시도해 주세요.",
|
||||
relayUnreachable: "어떤 릴레이에도 연결할 수 없습니다 - 연결을 확인하고 다시 시도하세요.",
|
||||
loginToReport: "스팟을 신고하려면 로그인하세요.",
|
||||
zapLoginRequired: "로그인 필요",
|
||||
zapLoginRequiredDesc: "Zap을 보내려면 로그인해야 합니다.",
|
||||
zapEventNotFound: "이벤트를 찾을 수 없습니다",
|
||||
zapEventNotFoundDesc: "Zap할 이벤트를 찾을 수 없습니다.",
|
||||
zapAuthorNotFound: "작성자를 찾을 수 없습니다",
|
||||
zapAuthorNotFoundDesc: "이 항목의 작성자를 찾을 수 없습니다.",
|
||||
zapSuccess: "Zap 성공!",
|
||||
zapSuccessNwcDesc: "NWC를 통해 작성자에게 {{amount}} sats를 보냈습니다.",
|
||||
zapSuccessDesc: "작성자에게 {{amount}} sats를 보냈습니다.",
|
||||
zapStatusUnknown: "결제 상태 알 수 없음",
|
||||
zapStatusUnknownDesc: "지갑에서 이 Zap을 아직 처리 중일 수 있습니다. 다시 시도하기 전에 지갑을 확인하세요 - 두 번 결제하지 마세요.",
|
||||
zapNwcFailed: "NWC 결제 실패",
|
||||
zapWeblnFailed: "WebLN 결제 실패",
|
||||
zapFallingBack: "{{error}}. 다른 결제 방법으로 전환합니다...",
|
||||
zapFailed: "Zap 실패",
|
||||
zapUnknownNwcError: "알 수 없는 NWC 오류",
|
||||
zapUnknownWeblnError: "알 수 없는 WebLN 오류",
|
||||
nwcInvalidUri: "잘못된 NWC URI",
|
||||
nwcInvalidUriDesc: "연결 문자열을 확인하고 다시 시도해 주세요.",
|
||||
nwcExists: "연결이 이미 존재합니다",
|
||||
nwcExistsDesc: "이 지갑은 이미 연결되어 있습니다.",
|
||||
nwcConnected: "지갑 연결됨",
|
||||
nwcConnectedDesc: "{{alias}}에 성공적으로 연결되었습니다.",
|
||||
nwcFailed: "연결 실패",
|
||||
nwcFailedDesc: "지갑에 연결할 수 없습니다: {{error}}",
|
||||
nwcUnknownError: "알 수 없는 오류가 발생했습니다",
|
||||
nwcDisconnected: "지갑 연결 끊김",
|
||||
nwcDisconnectedDesc: "지갑 연결이 제거되었습니다.",
|
||||
deleteApproveAmber: "Amber에서 승인",
|
||||
deleteApproveAmberDesc: "Amber가 열립니다 - 삭제를 확인하려면 승인을 탭하세요.",
|
||||
deleteCancelled: "취소됨",
|
||||
deleteCancelledDesc: "Amber에서 요청을 거부했습니다.",
|
||||
deleteCouldntSign: "서명할 수 없습니다",
|
||||
deletePublishing: "2/2 단계: 게시 중…",
|
||||
deletePublishingDesc: "삭제를 릴레이로 전송하는 중입니다.",
|
||||
deleteStuck: "게시 단계에서 멈춤",
|
||||
deleteStuckDesc: "릴레이 단계 실패: {{error}}. 서명은 정상이었지만 릴레이가 확인하지 않았습니다.",
|
||||
stashMerged: "다른 기기의 변경 사항을 병합했습니다",
|
||||
stashMergedDesc: "Stash가 다른 곳에서 편집되었습니다 - 두 변경 사항 모두 유지했습니다.",
|
||||
statusUpdated: "상태가 업데이트되었습니다!",
|
||||
statusUpdatedDesc: "이제 다른 사람들이 내 스케이팅 상태를 볼 수 있습니다.",
|
||||
statusFailed: "상태 설정에 실패했습니다",
|
||||
statusCleared: "상태가 지워졌습니다",
|
||||
statusClearedDesc: "상태가 제거되었습니다.",
|
||||
statusClearFailed: "상태 지우기에 실패했습니다",
|
||||
nutzapEnabled: "Nutzap 수신 활성화됨",
|
||||
nutzapEnabledDesc: "이제 ecash Zap을 받을 수 있습니다!",
|
||||
nutzapSetupFailed: "설정 실패",
|
||||
nutzapUnavailable: "Nutzap 보내기를 사용할 수 없습니다",
|
||||
tokenReceived: "토큰 수신됨",
|
||||
tokenReceivedDesc: "Cashu 토큰을 성공적으로 사용했습니다!",
|
||||
receiveFailed: "수신 실패",
|
||||
invalidAmount: "잘못된 금액",
|
||||
invalidAmountDesc: "올바른 금액을 입력해 주세요",
|
||||
tokenCreated: "토큰 생성됨",
|
||||
sendFailed: "전송 실패",
|
||||
mintAdded: "민트 추가됨",
|
||||
mintAddedDesc: "민트가 성공적으로 추가되고 신뢰되었습니다",
|
||||
mintAddFailed: "민트 추가에 실패했습니다",
|
||||
mintRemoved: "민트 제거됨",
|
||||
mintRemoveFailed: "민트 제거에 실패했습니다",
|
||||
paymentReceived: "결제 수신됨",
|
||||
paymentReceivedDesc: "{{amount}} sats를 성공적으로 받았습니다!",
|
||||
paymentSent: "결제 전송됨",
|
||||
paymentSentDesc: "Lightning 결제가 성공적으로 완료되었습니다",
|
||||
loginRequired: "로그인 필요",
|
||||
loginToFollowFounder: "설립자를 팔로우하려면 로그인해 주세요",
|
||||
alreadyFollowing: "이미 팔로우 중",
|
||||
alreadyFollowingDesc: "이미 {{name}}님을 팔로우하고 있습니다!",
|
||||
couldNotComplete: "완료할 수 없습니다",
|
||||
tryAgainLower: "다시 시도해 주세요.",
|
||||
couldNotLoadProfile: "프로필을 불러올 수 없습니다",
|
||||
couldNotLoadProfileDesc: "인터넷 연결을 확인하고 새로고침해 보세요.",
|
||||
undone: "되돌림",
|
||||
undoneDesc: "중립으로 돌아감 - 숨김도, 보증도 아님.",
|
||||
confirmed: "확인됨",
|
||||
confirmedDesc: "보증함 - 이 대기열에서 제외됩니다.",
|
||||
hiddenToast: "숨김",
|
||||
couldNotUndo: "되돌릴 수 없습니다",
|
||||
couldNotConfirm: "확인할 수 없습니다",
|
||||
deleteFailed: "삭제 실패",
|
||||
somethingWentWrong: "문제가 발생했습니다",
|
||||
},
|
||||
seoUi: {
|
||||
becomeBuilderTitle: "빌더 되기 - SkateSpots",
|
||||
becomeBuilderDesc: "램프, 파크, DIY 제작 서비스를 등록하세요 - 무엇을 짓는지, 재료와 규모까지.",
|
||||
tradesTitle: "내 거래 — SkateSpots",
|
||||
tradesDesc: "마켓플레이스 거래, 확인 내역, 평판을 관리하세요.",
|
||||
eventsTitle: "스케이트 이벤트 & 투어 - SkateSpots",
|
||||
eventsDesc: "내 주변의 스케이트보딩 이벤트, 대회, 투어, 세션을 찾아보세요.",
|
||||
editShopDesc: "스케이트 샵을 편집하세요.",
|
||||
createTourDesc: "스케이트 투어를 주최하세요 - 지역 숨은 명소 투어, 국내 로드트립, 해외 모험 또는 KOTR 스타일의 파괴 대회까지.",
|
||||
deckDesignerTitle: "Deck Designer — SkateSpots DIY",
|
||||
deckDesignerDesc: "스케이트보드나 롱보드 외곽선을 디자인한 뒤 인쇄 가능한 1:1 템플릿, SVG 또는 DXF로 내보내세요 - concave, kicks, wheelbase, 트럭 구멍 포함.",
|
||||
createEventTitle: "스케이트 이벤트 만들기 - SkateSpots",
|
||||
createEventDesc: "커뮤니티를 위한 새로운 스케이트보딩 이벤트를 만드세요.",
|
||||
editTourDesc: "스케이트 투어를 편집하세요 - 정류장, 날짜, 세부 정보를 업데이트합니다.",
|
||||
walletTitle: "지갑 - SkateSpots",
|
||||
walletDesc: "Lightning 지갑을 연결해 스케이터와 스팟 제작자에게 Zap을 보내세요.",
|
||||
becomePhotographerTitle: "포토그래퍼 되기 - SkateSpots",
|
||||
becomePhotographerDesc: "스케이트 사진 프로필을 만드세요 - 카메라, 렌즈, 조명, 서비스까지.",
|
||||
newsletterTitle: "뉴스레터 - SkateSpots",
|
||||
newsletterDesc: "SkateSpots 커뮤니티의 주간 소식. 앱 업데이트, 새로운 스팟, 이벤트 그리고 스케이트보딩을 살아 있게 하는 사람들.",
|
||||
homeTitle: "SkateSpots - 전 세계 스케이트보딩 장소를 발견하세요",
|
||||
zapLeaderboardTitle: "Zap 리더보드 - SkateSpots",
|
||||
zapLeaderboardDesc: "가장 많은 Zap을 받은 스케이트 스팟과 이를 후원하는 커뮤니티 멤버들.",
|
||||
adminReviewTitle: "검토 대기열 — SkateSpots",
|
||||
gearSwapTitle: "Gear 교환 - SkateSpots",
|
||||
gearSwapDesc: "다른 스케이터와 중고 스케이트 Gear를 사고파세요. 데크, 트럭, 휠, 신발 등.",
|
||||
donateTitle: "후원 — SkateSpots",
|
||||
donateDesc: "SkateSpots를 후원하세요 - Lightning, 프라이빗 온체인(silent payments) 또는 Angor에서 빌드 자금 지원.",
|
||||
verifyCardTitle: "인증 — SkateSpots",
|
||||
verifyCardDesc: "SkateSpots 카드 또는 출입 패스를 인증하세요.",
|
||||
mapTitle: "스케이트 스팟 지도 - SkateSpots",
|
||||
mapDesc: "인터랙티브 지도에서 전 세계 스케이트보딩 스팟을 탐험하세요.",
|
||||
diyTitle: "DIY — 직접 만들기 | SkateSpots",
|
||||
diyDesc: "나만의 스케이트보드, 램프, 콘크리트 스팟을 만드는 가이드, 오픈 도구, 설계도 - 그리고 함께할 사람과 장소.",
|
||||
appShopTitle: "앱 샵 — SkateSpots",
|
||||
becomeSkaterTitle: "스케이터 디렉터리에 참여하세요 - SkateSpots",
|
||||
becomeSkaterDesc: "스케이터 프로필을 만들어 커뮤니티가 나를 찾을 수 있게 하세요.",
|
||||
marketplaceTitle: "마켓플레이스 - SkateSpots",
|
||||
marketplaceDesc: "탈중앙화 Plebeian Market에서 스케이트보딩 Gear를 사고파세요.",
|
||||
becomeEditorTitle: "영상 편집자 되기 - SkateSpots",
|
||||
becomeEditorDesc: "SkateSpots에서 스케이트보딩 영상 편집자 프로필을 만드세요.",
|
||||
amberCallbackTitle: "Amber로 로그인 중 - SkateSpots",
|
||||
amberCallbackDesc: "Amber (NIP-55) 로그인을 완료하는 중입니다.",
|
||||
supportersTitle: "서포터 - SkateSpots",
|
||||
supportersDesc: "SkateSpots를 살아 있게 하는 커뮤니티 - 서포터, 협력자, 파트너 그리고 친구들.",
|
||||
becomeCoachTitle: "코치 되기 - SkateSpots",
|
||||
becomeCoachDesc: "스케이트보딩 코치 프로필을 만드세요.",
|
||||
riderCardTitle: "스케이터 카드 — SkateSpots",
|
||||
riderCardDesc: "인쇄 가능한 SkateSpots 스케이터 라이선스 또는 파크 출입 카드를 만드세요.",
|
||||
editEventDesc: "스케이트보딩 이벤트를 편집하세요.",
|
||||
createShopTitle: "스케이트 샵 추가 - SkateSpots",
|
||||
createShopDesc: "커뮤니티에 스케이트 샵을 추가하세요.",
|
||||
deckCostTitle: "Deck 원가 계산기 — SkateSpots DIY",
|
||||
deckCostDesc: "Deck 제작 비용을 계산하세요 - 인건비, 장비, 재료, 공정 시간, 포장, 마진 - 그리고 공정한 판매 가격까지.",
|
||||
pyramidTitle: "피라미드 랭킹 - SkateSpots",
|
||||
pyramidDesc: "최고 기여자와 커뮤니티 리더.",
|
||||
foodTitle: "스팟 근처 음식 - SkateSpots",
|
||||
foodDesc: "스케이트보딩 스팟 근처의 식당, 카페, 음식 옵션을 찾아보세요.",
|
||||
createListingTitle: "Gear 등록 - SkateSpots",
|
||||
createListingDesc: "판매할 스케이트보딩 Gear를 등록하거나 원하는 Gear를 찾아보세요.",
|
||||
becomeFilmerTitle: "필머 되기 - SkateSpots",
|
||||
becomeFilmerDesc: "스케이트보딩 촬영 프로필을 만드세요.",
|
||||
skatersTitle: "스케이터 - SkateSpots",
|
||||
skatersDesc: "SkateSpots 커뮤니티의 스케이터를 찾아보세요. 스타일, 스탠스, 레벨, 위치로 둘러보세요.",
|
||||
communityStatsTitle: "커뮤니티 통계 — SkateSpots",
|
||||
communityStatsDesc: "SkateSpots의 실시간 커뮤니티 지표 - 스팟, 이벤트, 코치, 필머, 편집자, 투어와 시간에 따른 성장. Nostr에서 직접 가져옵니다.",
|
||||
labTitle: "The Lab - SkateSpots",
|
||||
labDesc: "스케이트보딩 코치, 필머, 포토그래퍼, 영상 편집자를 찾아보세요.",
|
||||
stashTitle: "내 Stash - SkateSpots",
|
||||
stashDesc: "프라이빗 Gear 인벤토리를 관리하세요. 보유 중인 것과 판매하거나 교환할 것을 추적합니다.",
|
||||
bountyLeaderboardTitle: "지도 작성 & 수익 - SkateSpots",
|
||||
bountyLeaderboardDesc: "스케이트 스팟과 샵을 지도에 등록하고 커뮤니티로부터 Zap을 받으세요. 최고 기여자를 확인하세요.",
|
||||
spotCollectionsTitle: "내 스팟 컬렉션 - SkateSpots",
|
||||
spotCollectionsDesc: "좋아하는 스케이트 스팟을 나만의 컬렉션으로 정리하세요",
|
||||
mintsTitle: "Cashu 민트 — SkateSpots",
|
||||
mintsDesc: "Cashu 민트를 둘러보고 상태를 확인한 뒤 지갑에 추가하세요.",
|
||||
},
|
||||
miscUi: {
|
||||
openingCamera: "카메라 여는 중…",
|
||||
usePhoneCamera: "휴대폰 카메라를 사용한 뒤 여기로 돌아오세요",
|
||||
startingCamera: "카메라 시작 중...",
|
||||
cameraAccessRequired: "카메라 접근 권한 필요",
|
||||
cameraAccessHint: "브라우저 설정에서 카메라 접근을 허용하거나, 아래 파일 선택기를 사용하세요.",
|
||||
cameraErrorTitle: "카메라 오류",
|
||||
cameraErrorDesc: "카메라를 열 수 없습니다. 설정에서 앱 권한을 확인해 주세요.",
|
||||
cameraDeniedTitle: "카메라 접근이 거부됨",
|
||||
cameraDeniedDesc: "브라우저 설정에서 카메라 접근을 허용해 주세요.",
|
||||
uploadFromGallery: "갤러리에서 업로드",
|
||||
uploading: "업로드 중...",
|
||||
usePhoto: "사진 사용",
|
||||
earningPotential: "수익 잠재력",
|
||||
qualityExcellent: "훌륭해요!",
|
||||
qualityGood: "좋아요",
|
||||
qualityBasic: "기본",
|
||||
qualityGettingStarted: "시작 단계",
|
||||
qualityLocationAdded: "위치 추가됨",
|
||||
qualityOnePhoto: "사진 최소 1장",
|
||||
qualityThreePhotos: "사진 3장 이상",
|
||||
qualityMoreAngles: "각도가 많을수록 좋아요",
|
||||
qualityDescription: "설명",
|
||||
qualityDetailedDesc: "자세한 설명 (100자 이상)",
|
||||
qualityContact: "연락처 정보",
|
||||
qualityPhoneOrWebsite: "전화 또는 웹사이트",
|
||||
qualityHours: "영업시간",
|
||||
qualitySpotType: "스팟 유형 선택됨",
|
||||
failedToLoadComments: "댓글을 불러오지 못했습니다",
|
||||
commentsTitle: "댓글",
|
||||
noCommentsYet: "아직 댓글이 없습니다",
|
||||
beFirstComment: "가장 먼저 생각을 공유해 보세요!",
|
||||
removeMember: "멤버 제거",
|
||||
whoIsThisFor: "이 프로필은 누구를 위한 것인가요?",
|
||||
individual: "개인",
|
||||
individualDesc: "한 사람",
|
||||
collective: "단체",
|
||||
collectiveDesc: "크루, 스튜디오 또는 회사",
|
||||
membersLabel: "멤버",
|
||||
dismissReport: "신고 무시",
|
||||
reportedBy: "신고자",
|
||||
completingLoginAmber: "Amber로 로그인 완료 중...",
|
||||
entityMembersHint: "크루의 Nostr 계정을 추가하세요. 각 멤버는 자신의 키로 직접 스팟을 확인합니다 - 그 전까지는 “대기 중”으로 표시됩니다.",
|
||||
entityVerifiedHint: "멤버십은 멤버별로 인증됩니다 - 자신의 계정에서 확인하지 않으면 누구도 크루에 추가될 수 없습니다.",
|
||||
entityInvalidPubkey: "유효한 npub, nprofile 또는 64자리 16진수 공개키를 입력하세요.",
|
||||
entityAlreadyAdded: "이미 추가된 멤버입니다.",
|
||||
offline: "오프라인",
|
||||
connected: "연결됨",
|
||||
offlineMode: "오프라인 모드",
|
||||
allFeaturesAvailable: "모든 기능 사용 가능",
|
||||
browsingCachedSpots: "캐시된 스팟 보는 중",
|
||||
queuedActions: "대기 중인 작업 {{count}}개",
|
||||
syncing: "동기화 중",
|
||||
publishingWhenStable: "연결이 안정되면 게시합니다...",
|
||||
willPublishOnline: "다시 온라인이 되면 게시됩니다",
|
||||
availableOffline: "오프라인에서 사용 가능:",
|
||||
offlineBrowseSpots: "이전에 본 스팟 둘러보기",
|
||||
offlineViewDetails: "캐시된 스팟 상세 보기",
|
||||
offlineKeepActing: "계속 활동하세요 - 게시물, RSVP, 매물, 메시지는 대기열에 저장되고 다시 연결되면 전송됩니다",
|
||||
},
|
||||
sasquatchGuide: {
|
||||
homeTitle: "SkateSpots에 오신 것을 환영합니다! 🦧",
|
||||
homeMessage: "안녕, 나는 The Sasquatch야. 보드와 트레일, 거친 라이드를 지키는 자지. Nostr의 거칠고 자유로운 스케이트 세계에 온 걸 환영해 - 양복도 광고도 없고, 그저 각자 길을 개척하는 스케이터들뿐이야. 여기서는 트릭도, 데이터도 네 것이고, 흔적을 남기면 Bitcoin도 벌 수 있어. 동네든 전 세계든 스케이터들과 연결해. 규칙은 shredding뿐, 발자국은 네 것만.",
|
||||
homeQ1: "바르셀로나에서 3일 일정 짜줘",
|
||||
homeQ2: "초보자 스팟 찾아줘",
|
||||
homeQ3: "예정된 이벤트 있어?",
|
||||
homeQ4: "커뮤니티 통계",
|
||||
homeQ5: "내 근처 코치 찾아줘",
|
||||
homeQ6: "판매 중인 Gear 있어?",
|
||||
homeQ7: "Nostr가 뭐야?",
|
||||
homeQ8: "이거 무료야?",
|
||||
homeLearnMore: "더 알아보기",
|
||||
onboardingTitle: "시작하기 🚀",
|
||||
onboardingMessage: "기본 개념을 이해하도록 도와줄게! Nostr는 네 신원이고, Bitcoin Lightning은 기여에 대한 sats를 벌게 해주며, Zap은 즉석 팁이야. 시작에 대해 뭐든 물어봐!",
|
||||
onboardingQ1: "어떻게 로그인해?",
|
||||
onboardingQ2: "Nostr가 뭐야?",
|
||||
onboardingQ3: "Nostr는 어떻게 작동해?",
|
||||
onboardingQ4: "Cashu가 뭐야?",
|
||||
onboardingQ5: "Cashu 지갑은 어떻게 써?",
|
||||
onboardingQ6: "민트가 뭐야?",
|
||||
onboardingQ7: "Zap이 뭐야?",
|
||||
onboardingQ8: "NWC가 뭐야?",
|
||||
onboardingStart: "탐험 시작하기",
|
||||
onboardingLogin: "시작하려면 로그인",
|
||||
labTitle: "The Lab에 오신 것을 환영합니다! 🎓",
|
||||
labMessage: "여기서 마법이 일어나지! kickflip부터 darkslide까지 뭐든 가르쳐 줄 코치를 찾거나, 최고의 세션을 담아줄 필머와 연결해. 스킬로 필터링하고 경력을 확인한 뒤 세션을 예약해. 모두 어디선가 시작했다는 걸 기억해!",
|
||||
labQ1: "코치 찾기",
|
||||
labQ2: "필머 찾기",
|
||||
labQ3: "포토그래퍼 찾기",
|
||||
labQ4: "영상 편집자 찾기",
|
||||
labQ5: "램프 빌더 찾기",
|
||||
labQ6: "The Lab이 뭐야?",
|
||||
labQ7: "빌더가 뭐야?",
|
||||
labQ8: "코칭은 어떻게 제공해?",
|
||||
labLogin: "서비스를 제공하려면 로그인",
|
||||
crewsTitle: "크루 🤘",
|
||||
crewsMessage: "크루는 지도에 기반을 둔 네 스케이트 가족이야 - 고용하는 사람이 아니라 함께 스케이트 타는 사람들이지. 모든 크루에는 지도 위의 홈 텃세, 홈 스팟, 멤버, 선언문이 있어. 멤버는 자신의 키로 확인하니 명단은 확실해. 직접 시작하거나 네 사람들을 찾아봐!",
|
||||
crewsQ1: "크루가 뭐야?",
|
||||
crewsQ2: "크루는 어떻게 시작해?",
|
||||
crewsQ3: "크루는 The Lab과 어떻게 달라?",
|
||||
crewsQ4: "멤버는 어떻게 확인해?",
|
||||
crewsQ5: "Nostr가 뭐야?",
|
||||
crewsQ6: "Zap은 어떻게 작동해?",
|
||||
crewsLogin: "크루를 만들려면 로그인",
|
||||
},
|
||||
supportUi: {
|
||||
keepMapFree: "지도를 무료로 유지하세요",
|
||||
keepMapFreeDesc: "광고도, 추적도, VC도 없습니다. 여러분의 sats가 호스팅, AI 노드, 릴레이 비용을 냅니다.",
|
||||
thankYou: "감사합니다! ⚡",
|
||||
satsKeepMapFree: "여러분의 sats가 지도를 무료로 유지합니다.",
|
||||
keptFreeNext: "다음 스케이터를 위해 SkateSpots를 무료로 유지했습니다.",
|
||||
scanToPay: "스캔하여 결제",
|
||||
zapSkateSpots: "SkateSpots에 Zap",
|
||||
payQuietly: "조용히 결제",
|
||||
pickAmount: "금액 선택",
|
||||
enterAmount: "보낼 sats 수를 입력하세요.",
|
||||
couldNotStartPayment: "결제를 시작할 수 없습니다.",
|
||||
customAmountAria: "직접 입력한 sats 금액",
|
||||
commentPlaceholder: "한마디 남기기 (선택 - 공개 Zap만)",
|
||||
publicZapTitle: "댓글과 함께 공개 Zap",
|
||||
loginToZapTitle: "공개 Zap을 보내려면 로그인",
|
||||
anonymousTitle: "익명 - 로그인 없음, 기록 없음",
|
||||
copyLightningTitle: "Lightning 주소 복사",
|
||||
copiedSuffix: "{{label}} 복사됨",
|
||||
invoiceLabel: "인보이스",
|
||||
addressLabel: "주소",
|
||||
notAPurchase: "구매가 아닌 후원입니다 - 아무것도 사지 않으며 환불도 없습니다. 상품과 Sasquatch Pro는 별개입니다. 조용한 결제에는 위치와 신원이 절대 관여하지 않습니다.",
|
||||
},
|
||||
statusUi: {
|
||||
quickStatus: "빠른 상태",
|
||||
skating: "스케이팅 중",
|
||||
skatingDesc: "현재 스케이팅 중",
|
||||
filming: "촬영 중",
|
||||
filmingDesc: "트릭 촬영 중",
|
||||
lookingForSesh: "세션 구하는 중",
|
||||
lookingForSeshDesc: "다른 사람과 스케이트 타고 싶음",
|
||||
coaching: "코칭 중",
|
||||
coachingDesc: "가르치는/코칭하는 중",
|
||||
chilling: "쉬는 중",
|
||||
chillingDesc: "스팟에서 어울리는 중",
|
||||
onMyWay: "가는 중",
|
||||
onMyWayDesc: "스팟으로 향하는 중",
|
||||
takingABreak: "휴식 중",
|
||||
takingABreakDesc: "쉬는/수분 보충 중",
|
||||
doneForToday: "오늘은 끝",
|
||||
doneForTodayDesc: "스케이팅 종료",
|
||||
},
|
||||
};
|
||||
|
||||
export default koBatch7;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,632 @@
|
|||
/** ko — batch 8. Filled by the translation pass; empty until then. */
|
||||
const koBatch8 = {};
|
||||
/**
|
||||
* Korean (한국어) — batch 8: hardcoded-string sweep namespaces
|
||||
* (deckCostUi, becomeRolesUi, weatherUi, skaterLabelsUi, notifyUi,
|
||||
* legacyMiscUi).
|
||||
*
|
||||
* Skate/brand vocabulary follows the Korean conventions: Deck→데크,
|
||||
* Trucks→트럭, Wheels→휠, Bearings→베어링, Griptape→그립테이프, Spot→스팟,
|
||||
* Park→파크, Bowl→볼, Crew→크루; Vert, sats, Nostr, Lightning, Stash, The Lab,
|
||||
* brand names and trick names stay English. `{{placeholders}}` are preserved
|
||||
* verbatim.
|
||||
*/
|
||||
const koBatch8 = {
|
||||
deckCostUi: {
|
||||
presetPrompt: '이 프리셋의 이름을 입력하세요',
|
||||
presetDefaultName: '프리셋 {{n}}',
|
||||
summaryCopied: '요약을 복사했습니다',
|
||||
couldNotCopy: '복사할 수 없습니다',
|
||||
resetConfirm: '모든 값을 예시 값으로 초기화할까요?',
|
||||
logoTooLarge: '로고가 너무 큽니다 (최대 500 KB)',
|
||||
loginToFill: 'Nostr 프로필에서 불러오려면 로그인하세요',
|
||||
filledFromProfile: 'Nostr 프로필에서 불러왔습니다',
|
||||
warnRetailBelowOne: '소매 마크업이 1× 미만입니다 — 손해를 보고 판매하게 됩니다.',
|
||||
warnWholesaleAboveRetail: '도매 마크업은 소매 마크업보다 낮아야 합니다.',
|
||||
warnZeroBoards: '{{count}}개 행이 0 데크를 사용합니다 — 해당 행의 비용은 무시됩니다.',
|
||||
warnFixedNoBoards: '고정 월 비용이 설정되었지만 월 데크 수가 0이라 운영 비용이 무시됩니다.',
|
||||
warnNoMaterials: '자재 비용이 없습니다 — 자재를 하나 이상 추가하세요.',
|
||||
warnEquipmentOverhead: '장비 + 간접비가 비용의 60%를 넘습니다 — 이 모델은 대량 생산을 가정하니 데크 수를 확인하세요.',
|
||||
warnOneBoard: '일부 장비 비용이 데크 한 장에 분산되어 있습니다 — 데크 수를 늘려 상각하세요.',
|
||||
templateStarterName: '취미 입문',
|
||||
templateStarterBlurb: '몇 개의 행만, 고정 비용 없음',
|
||||
templateShopName: '소규모 샵',
|
||||
templateShopBlurb: '임대료와 간접비를 포함한 전체 시트',
|
||||
currency: '통화',
|
||||
noCurrencyMatches: '일치하는 통화가 없습니다.',
|
||||
ratesUnavailable: '실시간 환율을 사용할 수 없습니다 — 전환해도 이름만 바뀝니다.',
|
||||
liveRates: '실시간 BTC 환율 · sats 포함',
|
||||
chipCost: '원가',
|
||||
chipSell: '판매가',
|
||||
chipTotal: '합계',
|
||||
startFrom: '시작하기',
|
||||
advancedToggleHint: '공정별 단가와 스크랩, 배치 준비, 세금, 수량 대비 비용 곡선을 표시합니다',
|
||||
advanced: '고급',
|
||||
simple: '간단',
|
||||
sectionLabor: '노무',
|
||||
sectionEquipment: '장비',
|
||||
sectionOperations: '운영 비용',
|
||||
sectionMaterials: '자재',
|
||||
sectionProcesses: '공정 비용',
|
||||
sectionPackaging: '포장',
|
||||
sectionMargins: '마진',
|
||||
subtotalLoaded: '{{value}}/시간 (부담 포함)',
|
||||
subtotalPerBoard: '{{value}}/데크',
|
||||
hourlyRate: '시급 ({{unit}})',
|
||||
labourBurden: '노무 부담 (×)',
|
||||
loadedRate: '부담 포함 시급',
|
||||
loadedRateHintBefore: '부담 포함 시급 = 임금 × 부담 (노무에 대한 고용주 세금 및 보험). 임대료와 공과금은 다음 항목에 넣으세요: ',
|
||||
loadedRateHintAfter: ' — 두 곳에 중복 계산하지 마세요.',
|
||||
colEquipment: '장비',
|
||||
colCostUnit: '비용 ({{unit}})',
|
||||
colCost: '비용',
|
||||
colSetupH: '준비 (시간)',
|
||||
colLifetimeBoards: '총 사용 데크',
|
||||
colPerBoard: '데크당',
|
||||
colMaterial: '자재',
|
||||
colOrderUnit: '주문 ({{unit}})',
|
||||
colShipUnit: '배송 ({{unit}})',
|
||||
colBoardsOrder: '데크 / 주문',
|
||||
colOrderM: '주문 (분)',
|
||||
colUnloadM: '하역 (분)',
|
||||
colOrder: '주문',
|
||||
colShipping: '배송',
|
||||
colOrderMin: '주문 (분)',
|
||||
colUnloadMin: '하역 (분)',
|
||||
colProcess: '공정',
|
||||
colTimeM: '시간 (분)',
|
||||
colBoardsRun: '데크 / 실행',
|
||||
colRateHr: '단가/시간 (0 = 샵)',
|
||||
colRateHrShort: '단가/시간',
|
||||
colScrapPct: '스크랩 %',
|
||||
colTimeMin: '시간 (분)',
|
||||
colPackaging: '포장',
|
||||
colTimeBoardM: '시간/데크 (분)',
|
||||
colTimeBoardMin: '시간/데크 (분)',
|
||||
colMaterialsBoardUnit: '자재/데크 ({{unit}})',
|
||||
colMaterialsBoard: '자재/데크',
|
||||
equipmentPerBoard: '데크당 장비:',
|
||||
materialsPerBoard: '데크당 자재:',
|
||||
processesPerBoard: '데크당 공정:',
|
||||
packagingPerBoard: '데크당 포장:',
|
||||
perBoard: '데크당:',
|
||||
addEquipment: '장비 추가',
|
||||
addMaterial: '자재 추가',
|
||||
addProcess: '공정 추가',
|
||||
addPackagingStep: '포장 단계 추가',
|
||||
duplicate: '복제',
|
||||
remove: '삭제',
|
||||
boardsPerMonth: '데크 / 월',
|
||||
rentPerMonth: '임대료 / 월',
|
||||
utilitiesPerMonth: '공과금 / 월',
|
||||
subscriptionsPerMonth: '구독료 / 월',
|
||||
markup: '마크업 (×)',
|
||||
wholesaleMarkup: '도매 마크업 (×)',
|
||||
scrapWaste: '스크랩 / 폐기 (%)',
|
||||
quantityDecks: '수량 (데크)',
|
||||
targetMonthlyProfit: '목표 월 이익 ({{unit}})',
|
||||
costNoPackaging: '원가 / 데크 (포장 제외)',
|
||||
costWithPackaging: '원가 / 데크 (포장 포함)',
|
||||
batchSetupHours: '배치 준비 (시간 / 실행)',
|
||||
batchSetupCost: '배치 준비 비용 ({{unit}} / 실행)',
|
||||
taxVat: '세금 / VAT (%)',
|
||||
quoteTax: '견적 세금',
|
||||
includedInPrice: '가격에 포함',
|
||||
addedOnTop: '추가 부과',
|
||||
setupPerBoard: '준비 / 데크',
|
||||
marginNoteBefore: '마크업 {{markup}}× ≈ ',
|
||||
grossMargin: '{{pct}}% 총 마진',
|
||||
marginNoteAfter: ' · 폐기 {{waste}}%가 양품 데크에 분산됩니다.',
|
||||
sellingPriceNoPackaging: '판매가 · 포장 제외',
|
||||
sellingPriceWithPackaging: '판매가 · 포장 포함',
|
||||
profitPerDeck: '이익 / 데크',
|
||||
wholesalePerDeck: '도매 / 데크',
|
||||
orderTotalQty: '주문 합계 ({{qty}})',
|
||||
orderTotal: '주문 합계',
|
||||
breakeven: '손익분기',
|
||||
breakevenPerMonth: '월 {{count}}',
|
||||
targetDecksHint: '고정 비용 외에 월 {{amount}}을 남기려면 월 {{decks}}장을 판매하세요.',
|
||||
priceIncludesTax: '가격에 {{pct}}% 세금이 포함됨: 합계 중 {{amount}}.',
|
||||
plusTax: '추가 {{pct}}% 세금: {{amount}} → 합계 {{total}}.',
|
||||
costVsQuantity: '수량 대비 비용 (준비비 상각)',
|
||||
deckOne: '데크',
|
||||
deckOther: '데크',
|
||||
perDeckSuffix: '/ 데크',
|
||||
orderSuffix: '주문 {{amount}}',
|
||||
shippingNotIncluded: '구매자 배송비는 포함되지 않습니다.',
|
||||
clientQuoteDetails: '고객 견적 세부정보 (PDF용)',
|
||||
fillFromProfileTitle: 'Nostr 프로필에서 이름, 웹사이트, NIP-05, Lightning, npub을 채웁니다',
|
||||
fillFromProfile: '프로필에서 채우기',
|
||||
businessName: '사업체 / 샵 이름',
|
||||
email: '이메일',
|
||||
phone: '전화',
|
||||
website: '웹사이트',
|
||||
address: '주소',
|
||||
quoteNumber: '견적 번호',
|
||||
nextNumber: '다음 번호',
|
||||
validDays: '유효 기간 (일)',
|
||||
nip05: 'NIP-05',
|
||||
lightningAddress: 'Lightning 주소',
|
||||
nostrNpub: 'Nostr (npub)',
|
||||
depositPct: '선불 계약금 (%)',
|
||||
deliveryTerms: '인도 조건 (Incoterm, 선택)',
|
||||
paymentMethods: '결제 방법',
|
||||
paymentTerms: '결제 조건',
|
||||
paymentDetails: '결제 세부정보',
|
||||
notesTerms: '메모 / 약관',
|
||||
changeLogo: '로고 변경',
|
||||
addLogo: '로고 추가',
|
||||
incotermNone: '없음',
|
||||
incotermExw: 'EXW — 판매자에게서 직접 수령',
|
||||
incotermFca: 'FCA — 구매자 운송인에게 인도',
|
||||
incotermDap: 'DAP — 구매자 주소로 인도',
|
||||
incotermDdp: 'DDP — 관세 지불 후 인도',
|
||||
payMethodCash: '현금',
|
||||
payMethodLightning: 'Lightning',
|
||||
payMethodCashu: 'Cashu',
|
||||
payMethodBank: '계좌 이체',
|
||||
payMethodCard: '카드',
|
||||
payMethodOther: '기타',
|
||||
listDeckAtPrice: '이 가격으로 데크 판매 등록',
|
||||
getItMade: '제작 의뢰 — 빌더 찾기',
|
||||
savePreset: '프리셋 저장',
|
||||
load: '불러오기',
|
||||
export: '내보내기',
|
||||
import: '가져오기',
|
||||
reset: '초기화',
|
||||
deletePreset: '프리셋 삭제',
|
||||
exportPdfFull: 'PDF — 전체 시트',
|
||||
exportPdfQuote: 'PDF — 고객 견적',
|
||||
exportPng: 'PNG 이미지',
|
||||
exportXlsx: 'XLSX 통합 문서',
|
||||
exportCsv: 'CSV (스프레드시트)',
|
||||
exportMarkdown: 'Markdown',
|
||||
exportJson: 'JSON (백업)',
|
||||
exportCopySummary: '요약 복사',
|
||||
},
|
||||
becomeRolesUi: {
|
||||
artist: {
|
||||
seoTitle: '디자이너 / 아티스트 되기 - SkateSpots',
|
||||
seoDescription: '스케이트 디자인과 아트를 등록하세요 — 데크 그래픽, 로고, 포스터, 굿즈 등.',
|
||||
heading: '디자이너 / 아티스트',
|
||||
tagline: '데크 그래픽, 로고, 포스터, 굿즈 — 당신의 아트를 신에 새기세요',
|
||||
noun: '아티스트',
|
||||
rateLabel: '요금',
|
||||
portfolioLabel: '포트폴리오 / 샵 링크',
|
||||
sectionWhatYouMake: '제작하는 것',
|
||||
sectionMedium: '매체',
|
||||
sectionSoftwareTools: '소프트웨어 & 툴',
|
||||
deliverablesPlaceholder: '예: 인쇄용 파일, 소스 파일, 데크 그래픽',
|
||||
turnaroundPlaceholder: '예: 3–5일',
|
||||
},
|
||||
graffiti: {
|
||||
seoTitle: '그래피티 / 벽화 제공 - SkateSpots',
|
||||
seoDescription: '그래피티와 벽화 작업을 등록하세요 — 피스, 벽화, 스케이트파크 아트 등.',
|
||||
heading: '그래피티 / 벽화 아티스트',
|
||||
tagline: '피스, 벽화, 스케이트파크 아트 — 신을 칠하세요',
|
||||
noun: '그래피티 아티스트',
|
||||
rateLabel: '요금',
|
||||
portfolioLabel: '포트폴리오 링크 (IG, 사이트)',
|
||||
sectionStyle: '스타일',
|
||||
sectionMedium: '매체',
|
||||
sectionWorkContext: '작업 환경',
|
||||
crewLabel: '그래피티 크루',
|
||||
crewPlaceholder: '당신의 라이팅 크루 (선택)',
|
||||
crewHelper: '스케이트 크루와는 별개 — 함께 그리는 라이터들.',
|
||||
surfacesPlaceholder: '예: 콘크리트, 벽돌, 허가된 벽',
|
||||
maxSizePlaceholder: '예: 최대 10 m',
|
||||
},
|
||||
musician: {
|
||||
seoTitle: '음악 프로필 추가 - SkateSpots',
|
||||
seoDescription: '스케이트도 하고 음악도 하나요? 밴드나 솔로 프로젝트를 등록하세요 — 장르, 악기, 링크.',
|
||||
heading: '뮤지션 / 밴드',
|
||||
tagline: '스케이트도 하고 음악도 하나요? 데모, 잼, 애프터파티에 섭외되세요',
|
||||
noun: '뮤지션',
|
||||
rateLabel: '섭외 요금',
|
||||
portfolioLabel: '웹사이트 / EPK 링크',
|
||||
sectionGenre: '장르',
|
||||
sectionInstruments: '악기 & 역할',
|
||||
actLabel: '공연 형태',
|
||||
actPlaceholder: '솔로 / 밴드 / DJ / 프로듀서',
|
||||
spotifyLabel: 'Spotify',
|
||||
spotifyPlaceholder: 'https://open.spotify.com/…',
|
||||
bandcampLabel: 'Bandcamp',
|
||||
bandcampPlaceholder: 'https://…bandcamp.com',
|
||||
soundcloudLabel: 'SoundCloud',
|
||||
soundcloudPlaceholder: 'https://soundcloud.com/…',
|
||||
youtubeLabel: 'YouTube',
|
||||
youtubePlaceholder: 'https://youtube.com/…',
|
||||
setLengthPlaceholder: '예: 30–45분',
|
||||
techRiderPlaceholder: '예: PA, 마이크, 백라인',
|
||||
},
|
||||
judge: {
|
||||
seoTitle: '스케이트 이벤트 심사 - SkateSpots',
|
||||
seoDescription: '스케이트 이벤트 심사자로 등록하세요 — Game of S.K.A.T.E., 베스트 트릭 잼, 콘테스트, 아마 시리즈, 월드 투어 스톱. 공정하고 신뢰할 수 있는 이벤트를 운영하도록 섭외되세요.',
|
||||
heading: '스케이트 이벤트 심사자',
|
||||
tagline: '평지 Game of S.K.A.T.E.부터 World Destruction Tour까지 — 공정하고 신뢰할 수 있게 운영하세요',
|
||||
noun: '심사자',
|
||||
rateLabel: '일당 / 수수료',
|
||||
portfolioLabel: '결과 아카이브 / 프로필 링크',
|
||||
sectionEventFormats: '이벤트 형식',
|
||||
sectionSpecialty: '전문 분야',
|
||||
sectionLevelCircuit: '레벨 / 서킷',
|
||||
eventsJudgedLabel: '심사한 이벤트',
|
||||
eventsJudgedPlaceholder: '예: 콘테스트 40회 이상, 월드 투어 3개 스톱',
|
||||
eventsJudgedHelper: '심사를 맡았던 주요 이벤트, 대회, 투어.',
|
||||
travelPlaceholder: '예: 지역 / 전국 / 국제',
|
||||
certificationsPlaceholder: '예: 국가 심사 과정',
|
||||
},
|
||||
organizer: {
|
||||
seoTitle: '스케이트 이벤트 주최 - SkateSpots',
|
||||
seoDescription: '스케이트 이벤트 주최자로 등록하세요 — 스트리트 잼, 베스트 트릭, 콘테스트, 밋업, 데모, 투어 스톱. 발견되고 세션을 운영하도록 섭외되세요.',
|
||||
heading: '이벤트 주최자',
|
||||
tagline: '잼, 콘테스트, 밋업 & 데모 — 세션을 열고 신을 하나로 모으세요',
|
||||
noun: '주최자',
|
||||
rateLabel: '이벤트 비용 / 예산',
|
||||
portfolioLabel: '지난 이벤트 / 결과 링크',
|
||||
sectionEventTypes: '이벤트 유형',
|
||||
sectionWhatYouHandle: '담당하는 것',
|
||||
sectionScale: '규모',
|
||||
eventsHostedLabel: '주최한 이벤트',
|
||||
eventsHostedPlaceholder: '예: 잼 25회, 시 대회 3회',
|
||||
eventsHostedHelper: '운영했던 주요 이벤트, 대회, 밋업.',
|
||||
insurancePlaceholder: '예: 공공 배상책임 포함',
|
||||
permitsPlaceholder: '예: 시청 허가 처리 완료',
|
||||
},
|
||||
tattoo: {
|
||||
seoTitle: '타투 아티스트 되기 - SkateSpots',
|
||||
seoDescription: '스케이트 신을 위한 타투 작업을 등록하세요 — 스타일, 플래시, 커스텀 등.',
|
||||
heading: '타투 아티스트',
|
||||
tagline: '신을 위한 잉크 — 플래시, 커스텀, 파인 라인 등',
|
||||
noun: '타투 아티스트',
|
||||
rateLabel: '요금 / 시간당',
|
||||
portfolioLabel: '포트폴리오 링크 (IG, 사이트)',
|
||||
sectionStyles: '스타일',
|
||||
sectionMethod: '방식',
|
||||
studioLabel: '스튜디오 / 샵',
|
||||
studioPlaceholder: '스튜디오 이름 (선택)',
|
||||
booksOpenLabel: '예약 접수 중',
|
||||
booksOpenHelper: '현재 예약을 받고 있나요?',
|
||||
depositPlaceholder: '예: 50 EUR 환불 불가',
|
||||
minimumPlaceholder: '예: 80 EUR',
|
||||
},
|
||||
trainer: {
|
||||
seoTitle: '트레이너 / 물리치료사 되기 - SkateSpots',
|
||||
seoDescription: '스케이터가 강해지고 건강을 유지하도록 도우세요 — 근력, 가동성, 부상 예방과 회복.',
|
||||
heading: '트레이너 / 물리치료사',
|
||||
tagline: '스케이터를 위한 근력, 가동성, 부상 예방 & 회복',
|
||||
noun: '트레이너',
|
||||
rateLabel: '요금 / 세션',
|
||||
portfolioLabel: '프로필 / 예약 링크',
|
||||
sectionFocus: '중점 분야',
|
||||
sectionInjuries: '담당 부상',
|
||||
sectionCredentialsSetting: '자격 & 환경',
|
||||
credentialsPlaceholder: '예: 물리치료학 학사, CSCS…',
|
||||
credentialsHelper: '실제 자격을 기재하세요 — 스케이터는 검증 가능한 자격을 신뢰합니다.',
|
||||
remoteLabel: '원격 / 온라인',
|
||||
remoteHelper: '온라인 코칭이나 상담을 제공하나요?',
|
||||
modalitiesPlaceholder: '예: 도수치료, S&C, 건침',
|
||||
},
|
||||
barber: {
|
||||
seoTitle: '이발사 / 헤어스타일리스트 되기 - SkateSpots',
|
||||
seoDescription: '스케이트 신을 위한 이발소나 체어를 등록하세요 — 컷, 페이드, 수염 정리, 염색 등. 스케이터에게 섭외되세요.',
|
||||
heading: '이발사 / 헤어스타일리스트',
|
||||
tagline: '신을 위한 컷, 페이드 & 수염 정리 — 샵 체어 또는 출장',
|
||||
noun: '이발사',
|
||||
rateLabel: '가격 / 컷',
|
||||
portfolioLabel: '컷 갤러리 / IG 링크',
|
||||
sectionWhatYouOffer: '제공하는 것',
|
||||
sectionSignatureStyles: '시그니처 스타일',
|
||||
sectionSetting: '환경',
|
||||
studioLabel: '샵 / 스튜디오',
|
||||
studioPlaceholder: '샵 또는 스튜디오 이름 (선택)',
|
||||
booksOpenLabel: '예약 접수 중',
|
||||
booksOpenHelper: '현재 예약을 받고 있나요?',
|
||||
durationPlaceholder: '예: 30–45분',
|
||||
},
|
||||
},
|
||||
weatherUi: {
|
||||
condition: {
|
||||
clearSky: '맑음',
|
||||
mainlyClear: '대체로 맑음',
|
||||
partlyCloudy: '부분적으로 흐림',
|
||||
overcast: '흐림',
|
||||
foggy: '안개',
|
||||
depositingRimeFog: '착빙 안개',
|
||||
lightDrizzle: '약한 이슬비',
|
||||
moderateDrizzle: '보통 이슬비',
|
||||
denseDrizzle: '짙은 이슬비',
|
||||
lightFreezingDrizzle: '약한 어는 이슬비',
|
||||
denseFreezingDrizzle: '짙은 어는 이슬비',
|
||||
slightRain: '약한 비',
|
||||
moderateRain: '보통 비',
|
||||
heavyRain: '강한 비',
|
||||
lightFreezingRain: '약한 어는 비',
|
||||
heavyFreezingRain: '강한 어는 비',
|
||||
slightSnow: '약한 눈',
|
||||
moderateSnow: '보통 눈',
|
||||
heavySnow: '강한 눈',
|
||||
snowGrains: '싸락눈',
|
||||
slightRainShowers: '약한 소나기',
|
||||
moderateRainShowers: '보통 소나기',
|
||||
violentRainShowers: '강한 소나기',
|
||||
slightSnowShowers: '약한 눈 소나기',
|
||||
heavySnowShowers: '강한 눈 소나기',
|
||||
thunderstorm: '뇌우',
|
||||
thunderstormSlightHail: '약한 우박을 동반한 뇌우',
|
||||
thunderstormHeavyHail: '강한 우박을 동반한 뇌우',
|
||||
unknown: '알 수 없음',
|
||||
},
|
||||
aqi: {
|
||||
good: '좋음',
|
||||
moderate: '보통',
|
||||
unhealthySensitive: '민감군에 나쁨',
|
||||
unhealthy: '나쁨',
|
||||
veryUnhealthy: '매우 나쁨',
|
||||
hazardous: '위험',
|
||||
},
|
||||
skateability: {
|
||||
perfect: '완벽',
|
||||
good: '좋음',
|
||||
okay: '괜찮음',
|
||||
poor: '나쁨',
|
||||
bad: '매우 나쁨',
|
||||
unrideable: '탈 수 없음',
|
||||
},
|
||||
reason: {
|
||||
currentlyRaining: '현재 비가 내림',
|
||||
raining: '비',
|
||||
snowing: '눈',
|
||||
thunderstorm: '뇌우',
|
||||
freezingTemperature: '영하의 기온',
|
||||
veryCold: '매우 추움',
|
||||
extremelyHot: '극심한 더위',
|
||||
veryHot: '매우 더움',
|
||||
veryStrongWind: '매우 강한 바람',
|
||||
strongWind: '강한 바람',
|
||||
moderateWind: '보통 바람',
|
||||
veryUnhealthyAir: '매우 나쁜 대기질',
|
||||
unhealthyAir: '나쁜 대기질',
|
||||
moderateAirQuality: '보통 대기질',
|
||||
veryHumid: '매우 습함',
|
||||
humid: '습함',
|
||||
extremeUv: '극심한 자외선 - 자외선 차단제를 바르세요',
|
||||
highUv: '높은 자외선 - 자외선 차단 권장',
|
||||
perfectConditions: '완벽한 스케이팅 컨디션',
|
||||
},
|
||||
},
|
||||
skaterLabelsUi: {
|
||||
stance: {
|
||||
regular: '레귤러',
|
||||
goofy: '구피',
|
||||
},
|
||||
style: {
|
||||
street: '스트리트',
|
||||
park: '파크',
|
||||
vert: 'Vert',
|
||||
transition: '트랜지션',
|
||||
bowl: '볼',
|
||||
cruising: '크루징',
|
||||
downhill: '다운힐',
|
||||
freestyle: '프리스타일',
|
||||
ledges: '레지',
|
||||
stairs: '스테어',
|
||||
diy: 'DIY',
|
||||
},
|
||||
level: {
|
||||
grom: '그롬',
|
||||
intermediate: '중급',
|
||||
advanced: '상급',
|
||||
ripper: '리퍼',
|
||||
},
|
||||
sponsor: {
|
||||
title: '타이틀 스폰서',
|
||||
gold: '골드',
|
||||
silver: '실버',
|
||||
partner: '파트너',
|
||||
},
|
||||
},
|
||||
notifyUi: {
|
||||
activity: {
|
||||
zappedWithAmount: '{{sats}} sats를 Zap 받았습니다',
|
||||
zapped: 'Zap을 받았습니다',
|
||||
liked: '누군가 회원님의 게시물을 좋아합니다',
|
||||
reposted: '누군가 회원님을 리포스트했습니다',
|
||||
mentioned: '누군가 회원님을 언급했습니다',
|
||||
replied: '누군가 회원님에게 답글을 남겼습니다',
|
||||
rsvp: '누군가 회원님의 이벤트에 RSVP했습니다',
|
||||
eventUpdated: '참석 예정인 이벤트가 업데이트되었습니다',
|
||||
newActivity: '새 활동',
|
||||
tapToOpen: '탭하여 SkateSpots 열기',
|
||||
},
|
||||
crew: {
|
||||
inviteTitle: '크루 초대',
|
||||
inviteBody: '{{crew}}에 초대되었습니다',
|
||||
addedTitle: '크루에 추가되었습니다',
|
||||
addedBody: '{{crew}} — 참여를 확인하세요',
|
||||
joinRequestTitle: '가입 요청',
|
||||
joinRequestBody: '누군가 {{name}}에 가입하고 싶어 합니다',
|
||||
},
|
||||
dm: {
|
||||
title: '새 다이렉트 메시지',
|
||||
body: '탭하여 읽기',
|
||||
},
|
||||
trade: {
|
||||
confirm: '거래 확인',
|
||||
confirmed: '거래가 확인되었습니다',
|
||||
newOffer: '회원님의 등록에 새 제안',
|
||||
counter: '역제안',
|
||||
accepted: '제안이 수락되었습니다 🎉',
|
||||
declined: '제안이 거절되었습니다',
|
||||
withdrawn: '제안이 철회되었습니다',
|
||||
},
|
||||
newsletter: {
|
||||
drop: '새 SkateSpots 소식',
|
||||
},
|
||||
summary: {
|
||||
moreUpdates: '{{count}}개의 새 업데이트',
|
||||
openToCatchUp: 'SkateSpots를 열어 확인하세요',
|
||||
},
|
||||
},
|
||||
legacyMiscUi: {
|
||||
hostingGoing: '{{count}}명 참석',
|
||||
hostingInterested: '{{count}}명 관심',
|
||||
hostingPostUpdate: '업데이트 게시',
|
||||
hostingEdit: '편집',
|
||||
hostingLoginToSee: '주최하는 이벤트를 보려면 로그인하세요.',
|
||||
hostingEmptyTitle: '아직 주최하는 이벤트가 없습니다',
|
||||
hostingEmptyBody: '잼, 대회, 세션을 열어보세요. 이벤트를 만들면 스케이터가 RSVP하고, 업데이트를 받고, 찾아올 수 있습니다.',
|
||||
hostingCreateEvent: '이벤트 만들기',
|
||||
hostingUpcoming: '예정 · {{count}}',
|
||||
hostingPast: '지난 · {{count}}',
|
||||
sponsorPartners: '파트너',
|
||||
sponsorTitleSponsor: '타이틀 스폰서',
|
||||
sponsorPlatformPartners: '플랫폼 파트너',
|
||||
reportsUntitled: '(제목 없음)',
|
||||
reportsResolveFailed: '신고된 이벤트를 확인할 수 없습니다 (삭제되었거나, 게시물이 아닌 프로필을 신고한 것일 수 있습니다).',
|
||||
reportsLookAtIt: '확인하기',
|
||||
reportsNoReports: '아직 신고가 없습니다. 모든 게 괜찮거나, 아무도 신고 버튼을 찾지 못한 것입니다.',
|
||||
statusSetYourStatus: '상태 설정',
|
||||
statusSetDesc: '무엇을 하고 있는지 알려주세요. 상태는 프로필과 연결된 스팟에 표시됩니다.',
|
||||
statusClear: '지우기',
|
||||
statusOrWriteOwn: '또는 직접 작성',
|
||||
statusCustomPlaceholder: '무엇을 하고 있나요?',
|
||||
statusLinkToSpot: '스팟 연결 (선택)',
|
||||
statusSpotSelected: '스팟 선택됨',
|
||||
statusSearchSpots: '스팟 검색...',
|
||||
statusNoSpotsFound: '스팟을 찾을 수 없습니다.',
|
||||
statusSelectSpot: '스팟 선택',
|
||||
statusAutoClearAfter: '자동 지우기: {{time}} 후',
|
||||
statusExpMin: '{{count}}분',
|
||||
statusExpOneHour: '1시간',
|
||||
statusExpHours: '{{count}}시간',
|
||||
statusExpOneDay: '1일',
|
||||
statusExpDays: '{{count}}일',
|
||||
statusSlider15: '15분',
|
||||
statusSlider1h: '1시간',
|
||||
statusSlider4h: '4시간',
|
||||
statusSlider24h: '24시간',
|
||||
statusSetting: '상태 설정 중...',
|
||||
statusSet: '상태 설정',
|
||||
statusSomethingWrong: '문제가 발생했습니다',
|
||||
seoProfileTitle: '프로필 - SkateSpots',
|
||||
seoViewProfile: '프로필 보기.',
|
||||
bannerAlt: '배너',
|
||||
openInCordn: 'Cordn에서 열기',
|
||||
modHelp: '숨기기는 org.skatespots.moderation / hidden을 게시하고, 확인은 … / verified를, 실행 취소는 … / cleared(중립으로 복귀)를 게시합니다. 세 가지 모두 공개적이고 되돌릴 수 있는 라벨이며, 릴레이에서 어떤 것도 삭제되지 않습니다.',
|
||||
zapNoActiveMint: '활성 Cashu 민트를 찾을 수 없습니다.',
|
||||
altProfile: '프로필',
|
||||
altCardPreview: '카드 미리보기',
|
||||
altCard: '카드',
|
||||
altCaptured: '캡처됨',
|
||||
ariaPrevPhoto: '이전 사진',
|
||||
ariaNextPhoto: '다음 사진',
|
||||
ariaCommentOptions: '댓글 옵션',
|
||||
ariaMessageConversation: '메시지 대화',
|
||||
exportTitle: 'SkateSpots — 데크 원가 계산기',
|
||||
exportQuoteTitle: '견적서',
|
||||
exportPngTitle: '데크 원가',
|
||||
exportMarkdownTitle: '데크 원가 계산기',
|
||||
exportSectionLabor: '노무',
|
||||
exportSectionEquipment: '장비',
|
||||
exportSectionOperations: '운영 비용',
|
||||
exportSectionMaterials: '자재',
|
||||
exportSectionProcesses: '공정 비용',
|
||||
exportSectionPackaging: '포장',
|
||||
exportSectionResult: '결과',
|
||||
exportLabelOperations: '운영',
|
||||
exportLabelProcesses: '공정',
|
||||
exportKvHourlyRate: '시급',
|
||||
exportKvLabourBurden: '노무 부담',
|
||||
exportKvLoadedRate: '부담 포함 시급',
|
||||
exportKvEquipmentPerBoard: '데크당 장비',
|
||||
exportKvBoardsPerMonth: '데크 / 월',
|
||||
exportKvRentPerMonth: '임대료 / 월',
|
||||
exportKvUtilitiesPerMonth: '공과금 / 월',
|
||||
exportKvSubscriptionsPerMonth: '구독료 / 월',
|
||||
exportKvPerBoard: '데크당',
|
||||
exportKvMaterialsPerBoard: '데크당 자재',
|
||||
exportKvProcessesPerBoard: '데크당 공정',
|
||||
exportKvPackagingPerBoard: '데크당 포장',
|
||||
exportKvMarkup: '마크업',
|
||||
exportMarkupValue: '{{markup}}× (≈ 총마진 {{pct}}%)',
|
||||
exportKvWasteEffective: '폐기 (실효)',
|
||||
exportKvCostNoPack: '원가 / 데크 (포장 제외)',
|
||||
exportKvCostWithPack: '원가 / 데크 (포장 포함)',
|
||||
exportKvBatchSetupPerBoard: '배치 준비 / 데크',
|
||||
exportKvTax: '세금 ({{pct}}%)',
|
||||
exportKvTaxIncluded: '세금 ({{pct}}%, 포함)',
|
||||
exportKvSellingNoPack: '판매가 (포장 제외)',
|
||||
exportKvSellingWithPack: '판매가 (포장 포함)',
|
||||
exportShippingNote: '구매자 배송비는 포함되지 않습니다.',
|
||||
exportGeneratedBy: 'SkateSpots로 생성 · skate-spots.org',
|
||||
exportGeneratedWith: 'SkateSpots로 생성됨 · skate-spots.org',
|
||||
exportDetailSetup: '+ {{hours}}시간 준비',
|
||||
exportDetailBoards: '{{boards}} 데크',
|
||||
exportDetailShip: '+ 배송 {{amount}}',
|
||||
exportDetailMinutes: '{{minutes}}분',
|
||||
exportDetailPerBoards: '/ {{boards}} 데크',
|
||||
exportDetailScrap: '{{pct}}% 스크랩',
|
||||
exportDetailMaterials: '자재 {{materials}}개',
|
||||
exportQuoteRef: '참조 {{ref}}',
|
||||
exportQuoteLineItem: '커스텀 스케이트보드 데크',
|
||||
exportQuoteLineItemQty: '커스텀 스케이트보드 데크 × {{qty}}',
|
||||
exportQuoteLineDesc: '수작업 제작, 마감 및 포장 완료. 수량 1.',
|
||||
exportQuoteLineDescQty: '수작업 제작, 마감 및 포장 완료. 개당 {{price}}.',
|
||||
exportQuoteSubtotal: '소계',
|
||||
exportQuoteSubtotalQty: '소계 ({{qty}} 데크)',
|
||||
exportQuoteTax: '세금 / VAT ({{pct}}%)',
|
||||
exportQuoteTotal: '합계',
|
||||
exportQuoteTotalQty: '합계 ({{qty}} 데크)',
|
||||
exportQuoteIncludesTax: '{{pct}}% 세금 포함 ({{amount}})',
|
||||
exportQuoteDeposit: '지금 납부할 계약금 ({{pct}}%)',
|
||||
exportQuoteBalance: '완료 시 잔금',
|
||||
exportQuotePayment: '결제: {{value}}',
|
||||
exportQuoteLightning: 'Lightning: {{value}}',
|
||||
exportQuoteDetails: '세부정보: {{value}}',
|
||||
exportQuoteTerms: '조건: {{value}}',
|
||||
exportQuoteDelivery: '인도: {{value}}',
|
||||
exportQuoteValidUntil: '배송비는 포함되지 않습니다. 견적 유효 기간: {{date}}까지.',
|
||||
exportPngSellingWith: '판매가 · 포장 포함',
|
||||
exportPngSellingNo: '판매가 · 포장 제외',
|
||||
exportPngCostWith: '원가 / 데크 (포장 포함)',
|
||||
exportPngDeposit: '계약금 {{pct}}%: {{amount}}',
|
||||
exportXlsxSummary: '요약',
|
||||
exportXlsxCurrency: '통화',
|
||||
exportXlsxDate: '날짜',
|
||||
exportXlsxOperationsPerBoard: '데크당 운영',
|
||||
exportColCost: '비용',
|
||||
exportColSetupH: '준비 (시간)',
|
||||
exportColBoards: '데크',
|
||||
exportColPerBoard: '데크당',
|
||||
exportColMaterial: '자재',
|
||||
exportColOrderCost: '주문 비용',
|
||||
exportColShipping: '배송',
|
||||
exportColOrderMin: '주문 (분)',
|
||||
exportColUnloadMin: '하역 (분)',
|
||||
exportColProcess: '공정',
|
||||
exportColTimeMin: '시간 (분)',
|
||||
exportColTimeBoardMin: '시간/데크 (분)',
|
||||
exportColMaterialsBoard: '자재/데크',
|
||||
exportCopyTitle: '데크 원가 — {{currency}}',
|
||||
exportCopyCostWith: '원가 / 데크 (포장 포함): {{amount}}',
|
||||
exportCopySellingNo: '판매가 (포장 제외): {{amount}}',
|
||||
exportCopySellingWith: '판매가 (포장 포함): {{amount}}',
|
||||
exportCopyBreakdown: '장비 {{equipment}} · 운영 {{operations}} · 자재 {{materials}} · 공정 {{processes}} · 포장 {{packaging}}',
|
||||
exportMdHourlyRate: '시급: {{value}}',
|
||||
exportMdLabourBurden: '노무 부담: {{value}}',
|
||||
exportMdLoadedRate: '부담 포함 시급: {{value}}',
|
||||
exportMdBoardsPerMonth: '데크/월: {{value}}',
|
||||
exportMdRent: '임대료: {{value}}',
|
||||
exportMdUtilities: '공과금: {{value}}',
|
||||
exportMdSubscriptions: '구독료: {{value}}',
|
||||
exportMdPerBoard: '데크당: {{value}}',
|
||||
exportMdMarkupWaste: '마크업: {{markup}}× (≈ 총마진 {{pct}}%) · 폐기: {{waste}}%',
|
||||
exportMdCostNoPack: '원가/데크 (포장 제외): {{value}}',
|
||||
exportMdCostWithPack: '원가/데크 (포장 포함): {{value}}',
|
||||
exportMdBatchSetup: '배치 준비/데크: {{value}}',
|
||||
exportMdSellingNo: '판매가 (포장 제외): {{value}}',
|
||||
exportMdSellingWith: '판매가 (포장 포함): {{value}}',
|
||||
exportMdDisclaimer: '구매자 배송비는 포함되지 않습니다. SkateSpots로 생성.',
|
||||
},
|
||||
};
|
||||
|
||||
export default koBatch8;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,308 @@
|
|||
/** ru — batch 1. Filled by the translation pass; empty until then. */
|
||||
const ruBatch1 = {};
|
||||
const ruBatch1 = {
|
||||
common: {
|
||||
loading: "Загрузка…",
|
||||
error: "Ошибка",
|
||||
save: "Сохранить",
|
||||
cancel: "Отмена",
|
||||
delete: "Удалить",
|
||||
edit: "Изменить",
|
||||
add: "Добавить",
|
||||
remove: "Убрать",
|
||||
create: "Создать",
|
||||
submit: "Отправить",
|
||||
close: "Закрыть",
|
||||
back: "Назад",
|
||||
next: "Далее",
|
||||
done: "Готово",
|
||||
search: "Поиск",
|
||||
filter: "Фильтр",
|
||||
sort: "Сортировка",
|
||||
share: "Поделиться",
|
||||
more: "Ещё",
|
||||
copy: "Копировать",
|
||||
copied: "Скопировано!",
|
||||
viewAll: "Все",
|
||||
seeMore: "Показать ещё",
|
||||
showMore: "Показать больше",
|
||||
showLess: "Показать меньше",
|
||||
noResults: "Ничего не найдено",
|
||||
tryAgain: "Попробовать снова",
|
||||
learnMore: "Узнать больше",
|
||||
getStarted: "Начать",
|
||||
yes: "Да",
|
||||
no: "Нет",
|
||||
or: "или",
|
||||
and: "и",
|
||||
free: "Бесплатно",
|
||||
new: "Новое",
|
||||
popular: "Популярное",
|
||||
featured: "Рекомендуемое",
|
||||
verified: "Подтверждено",
|
||||
sats: "sats",
|
||||
clear: "Очистить",
|
||||
clearFilters: "Сбросить фильтры",
|
||||
clearAll: "Очистить всё",
|
||||
hide: "Скрыть",
|
||||
undo: "Отменить",
|
||||
},
|
||||
nav: {
|
||||
home: "Главная",
|
||||
map: "Spots",
|
||||
lab: "The Lab",
|
||||
events: "События",
|
||||
crews: "Crews",
|
||||
wallet: "Кошелёк",
|
||||
settings: "Настройки",
|
||||
more: "Ещё",
|
||||
rewards: "Награды",
|
||||
stats: "Статистика сообщества",
|
||||
about: "О приложении",
|
||||
food: "Еда",
|
||||
marketplace: "Маркетплейс",
|
||||
mints: "Минты",
|
||||
appShop: "Магазин приложения",
|
||||
diy: "DIY",
|
||||
trades: "Маркетплейс",
|
||||
stash: "Stash",
|
||||
collections: "Коллекции",
|
||||
contacts: "Контакты",
|
||||
messages: "Сообщения",
|
||||
skaters: "Скейтеры",
|
||||
glossary: "Глоссарий",
|
||||
riderCard: "Карта райдера",
|
||||
supporters: "Саппортеры ⚡",
|
||||
newsletter: "Рассылка",
|
||||
viewProfile: "Открыть профиль",
|
||||
leaderboards: "Таблицы лидеров",
|
||||
},
|
||||
chromeUi: {
|
||||
skipToContent: "Перейти к содержимому",
|
||||
menu: "Меню",
|
||||
inBadge: "В",
|
||||
loggedIn: "Вы вошли",
|
||||
profile: "Профиль",
|
||||
logIn: "Войти",
|
||||
logOut: "Выйти",
|
||||
notLoggedIn: "Вы не вошли",
|
||||
loggedOutPrompt:
|
||||
"Войдите, чтобы добавлять Spots, отправлять Zap скейтерам и сохранять избранное",
|
||||
accounts: "Аккаунты",
|
||||
addAnotherAccount: "Добавить аккаунт",
|
||||
setStatus: "Установить статус",
|
||||
setYourStatus: "Установите свой статус",
|
||||
status: "Статус",
|
||||
addSpot: "Добавить Spot",
|
||||
myData: "Мои данные",
|
||||
myStash: "Мой Stash",
|
||||
myCollections: "Мои коллекции",
|
||||
viewMyProfile: "Открыть мой профиль",
|
||||
customizeNavBar: "Настроить панель навигации",
|
||||
ecash: "Ecash",
|
||||
madeWith: "Сделано с",
|
||||
forSkateCommunity: "для скейт-сообщества",
|
||||
beta: "Бета",
|
||||
license: "Лицензия",
|
||||
privacy: "Конфиденциальность",
|
||||
collaborators: "Соавторы и друзья",
|
||||
notSponsoredBy: "Не спонсируется",
|
||||
errorTitle: "Не удалось загрузить",
|
||||
errorDescription:
|
||||
"Сетевой запрос не удался. Проверьте подключение и попробуйте снова.",
|
||||
tryAgain: "Попробовать снова",
|
||||
weatherOn: "Погода вкл.",
|
||||
weatherOff: "Погода выкл.",
|
||||
trustFilter: "Фильтр доверия",
|
||||
filterByTrustLevel: "Фильтровать по уровню доверия",
|
||||
trust: {
|
||||
all: "Все пользователи",
|
||||
allDesc: "Показывать контент от всех",
|
||||
verified: "Подтверждённые",
|
||||
verifiedDesc: "Вы подписаны на них или они подтверждены (доверие ≥90)",
|
||||
trusted: "Доверенные",
|
||||
trustedDesc:
|
||||
"Друзья друзей или с подтверждённым NIP-05 (доверие ≥60)",
|
||||
following: "Только подписки",
|
||||
followingDesc: "Показывать контент только от тех, на кого вы подписаны",
|
||||
followingShort: "Подписки",
|
||||
},
|
||||
sort: {
|
||||
recent: "Сначала новые",
|
||||
recentDesc: "Самые новые сверху",
|
||||
trust: "Наибольшее доверие",
|
||||
trustDesc: "Самые доверенные авторы",
|
||||
proximity: "Ближайшие ко мне",
|
||||
proximityDesc: "Ближайшие места",
|
||||
popular: "Самые популярные",
|
||||
popularDesc: "Больше всего комментариев/реакций",
|
||||
zaps: "Больше всего Zap",
|
||||
zapsDesc: "Наибольшая полученная сумма",
|
||||
},
|
||||
spotType: {
|
||||
street: "Стрит",
|
||||
transition: "Транзишн",
|
||||
park: "Park",
|
||||
plaza: "Плаза",
|
||||
diy: "DIY",
|
||||
bowl: "Bowl",
|
||||
vert: "Vert",
|
||||
indoor: "Крытый",
|
||||
skatepark: "Скейтпарк",
|
||||
miniramp: "Мини-рамп",
|
||||
},
|
||||
},
|
||||
desktopNav: {
|
||||
title: "Навигация на десктопе",
|
||||
desc: "Выберите, какие вкладки показывать в верхней панели, и их порядок. Скрытые вкладки остаются в меню «Ещё».",
|
||||
fixed: "Закреплено",
|
||||
shownInTopBar: "Показаны в верхней панели ({{count}})",
|
||||
noExtraTabs:
|
||||
"Дополнительных вкладок нет — всё находится в меню «Ещё». Добавьте их ниже.",
|
||||
inMoreMenu: "В меню «Ещё» ({{count}})",
|
||||
moveUp: "Переместить {{name}} вверх",
|
||||
moveDown: "Переместить {{name}} вниз",
|
||||
hide: "Скрыть {{name}}",
|
||||
moveToMore: "Переместить в меню «Ещё»",
|
||||
show: "Показать",
|
||||
showInTopBar: "Показать {{name}} в верхней панели",
|
||||
showInTopBarTitle: "Показать в верхней панели",
|
||||
reset: "Сбросить по умолчанию",
|
||||
},
|
||||
navSheet: {
|
||||
title: "Настройте свою панель",
|
||||
desc: "Выберите {{count}} вкладок, которые используете чаще всего. Остальное останется в меню.",
|
||||
preview: "Предпросмотр",
|
||||
empty: "Пусто",
|
||||
order: "Порядок ({{done}}/{{total}})",
|
||||
available: "Доступные вкладки",
|
||||
full: "Панель заполнена — уберите одну, чтобы заменить",
|
||||
moveUp: "Переместить {{name}} вверх",
|
||||
moveDown: "Переместить {{name}} вниз",
|
||||
login: "Войти",
|
||||
profile: "Профиль",
|
||||
reset: "Сбросить",
|
||||
done: "Готово",
|
||||
},
|
||||
pwa: {
|
||||
installTitle: "Установить SkateSpots",
|
||||
installSubtitle: "Полноценные возможности приложения",
|
||||
addToHomeScreen: "На главный экран",
|
||||
installApp: "Установить приложение",
|
||||
maybeLater: "Может, позже",
|
||||
gotIt: "Понятно!",
|
||||
benefits: {
|
||||
fast: "Молниеносно быстро",
|
||||
offline: "Работает офлайн",
|
||||
fullAccess: "Полный доступ",
|
||||
},
|
||||
iosStep1: "Нажмите кнопку «Поделиться»",
|
||||
iosStep1Hint: "внизу экрана Safari",
|
||||
iosStep2: "Прокрутите и нажмите \"На главный экран\"",
|
||||
iosStep2Hint: "в меню «Поделиться»",
|
||||
iosStep3: "Нажмите \"Добавить\", чтобы установить",
|
||||
iosStep3Hint: "Приложение появится на главном экране",
|
||||
androidStep1: "Нажмите кнопку меню",
|
||||
androidStep1Hint: "(три точки) в браузере",
|
||||
androidStep2: "Выберите \"На главный экран\"",
|
||||
androidStep2Hint: "или \"Установить приложение\"",
|
||||
androidStep3: "Подтвердите установку",
|
||||
androidStep3Hint: "Приложение появится на главном экране",
|
||||
tagline: "Бесплатно • Работает офлайн • Быстро и надёжно",
|
||||
},
|
||||
home: {
|
||||
tagline: "Силами сообщества • На основе Relay",
|
||||
title: "SKATE SPOTS",
|
||||
subtitle: "Находи Spots • Встречайся • Учись трюкам • Поддерживай местных",
|
||||
description:
|
||||
"Настоящий скейтбилдинг происходит офлайн — этот инструмент помогает его найти.",
|
||||
betaWarning: "БЕТА — В разработке • Используйте на свой страх и риск",
|
||||
pwaHint: "Прогрессивное веб-приложение — установите на своё устройство",
|
||||
exploreMap: "Открыть карту",
|
||||
addSpot: "Добавить Spot",
|
||||
globalSpots: "Spots по всему миру",
|
||||
openCommunity: "Открытое сообщество",
|
||||
lightningZaps: "Lightning Zap",
|
||||
featuredSpots: "Рекомендуемые Spots",
|
||||
featuredSpotsDesc: "Проверенные сообществом скейт-Spots со всего мира",
|
||||
upcomingEvents: "Скоро",
|
||||
upcomingEventsDesc: "Контесты, встречи и сессии в ближайшее время",
|
||||
noSpotsYet: "Пока не найдено ни одного Spot",
|
||||
noSpotsHint: "Добавьте скейт-Spot первым!",
|
||||
noEventsYet: "Нет предстоящих событий",
|
||||
noEventsHint: "Загляните позже или создайте своё!",
|
||||
theLab: "The Lab",
|
||||
theLabDesc: "Учите трюки, находите тренеров и повышайте уровень катания",
|
||||
coaches: "Тренеры",
|
||||
coachesDesc: "Учитесь у опытных скейтеров, которые помогут вам прогрессировать",
|
||||
filmers: "Операторы",
|
||||
filmersDesc: "Свяжитесь с операторами, чтобы снять лучшие клипы",
|
||||
findCoach: "Найти тренера",
|
||||
becomeCoach: "Стать тренером",
|
||||
findFilmer: "Найти оператора",
|
||||
becomeFilmer: "Стать оператором",
|
||||
viewAllSpots: "Все Spots",
|
||||
viewAllEvents: "Все события",
|
||||
createEvent: "Создать событие",
|
||||
readyToShare: "Готовы поделиться?",
|
||||
readyToShareDesc:
|
||||
"Помогите скейт-сообществу расти, добавляя любимые Spots. Каждое место, которым вы делитесь, помогает другим скейтерам находить новые места для катания.",
|
||||
},
|
||||
about: {
|
||||
title: "О SkateSpots",
|
||||
subtitle: "Децентрализованное скейт-сообщество",
|
||||
whatIs: "Что такое SkateSpots?",
|
||||
whatIsDesc:
|
||||
"SkateSpots — это платформа, созданная сообществом, для поиска мест катания по всему миру. Построена на Nostr, она даёт скейтерам настоящую власть над своими данными.",
|
||||
features: "Возможности",
|
||||
featuresDesc:
|
||||
"Находите Spots, создавайте события, связывайтесь с тренерами и поддерживайте местные скейт-магазины — всё в одном месте.",
|
||||
nostr: "Построено на Nostr",
|
||||
nostrDesc:
|
||||
"Nostr — это простой открытый протокол, обеспечивающий по-настоящему устойчивую к цензуре глобальную коммуникацию. Ваш аккаунт и данные принадлежат вам.",
|
||||
openSource: "Открытый исходный код",
|
||||
openSourceDesc:
|
||||
"SkateSpots полностью открыт. Вносите вклад, форкайте или запускайте свою версию.",
|
||||
lightning: "Платежи Lightning",
|
||||
lightningDesc:
|
||||
"Отправляйте Zap любимым скейтерам, тренерам и авторам контента через платежи Bitcoin Lightning.",
|
||||
},
|
||||
faq: {
|
||||
title: "Часто задаваемые вопросы",
|
||||
subtitle: "Всё, что нужно знать о SkateSpots",
|
||||
whatIsNostr: "Что такое Nostr?",
|
||||
whatIsNostrAnswer:
|
||||
"Nostr — это открытый протокол для децентрализованных социальных сетей. В отличие от традиционных платформ, ваши данные и личность принадлежат вам.",
|
||||
howToStart: "Как начать?",
|
||||
howToStartAnswer:
|
||||
"Нажмите \"Зарегистрироваться\", чтобы создать новый аккаунт Nostr, или \"Войти\", если он у вас уже есть. Можно использовать расширение браузера, мобильное приложение или секретный ключ.",
|
||||
whatAreZaps: "Что такое Zap?",
|
||||
whatAreZapsAnswer:
|
||||
"Zap — это чаевые в Bitcoin Lightning, которые можно отправлять другим пользователям. Так можно выразить благодарность за хороший контент или поддержать авторов.",
|
||||
howToAddSpot: "Как добавить Spot?",
|
||||
howToAddSpotAnswer:
|
||||
"Войдите в аккаунт, нажмите \"Добавить Spot\" и заполните данные: местоположение, фото и описание.",
|
||||
isItFree: "SkateSpots бесплатный?",
|
||||
isItFreeAnswer:
|
||||
"Да! SkateSpots полностью бесплатен. По желанию можно отправлять Zap (чаевые в Bitcoin) другим пользователям.",
|
||||
canIEditSpot: "Можно ли редактировать или удалять свои Spots?",
|
||||
canIEditSpotAnswer:
|
||||
"Да, вы можете редактировать созданные вами Spots. Из-за децентрализованной природы Nostr запросы на удаление отправляются, но некоторые Relay могут сохранить данные.",
|
||||
},
|
||||
onboarding: {
|
||||
welcome: "Добро пожаловать в SkateSpots!",
|
||||
welcomeDesc: "Настроим всё за пару шагов.",
|
||||
step1Title: "Создайте аккаунт",
|
||||
step1Desc:
|
||||
"Ваши ключи Nostr генерируются. Это как пароль, который контролируете вы.",
|
||||
step2Title: "Сохраните ключи",
|
||||
step2Desc:
|
||||
"Сохраните фразу восстановления в надёжном месте. Это единственный способ восстановить аккаунт!",
|
||||
step3Title: "Настройте профиль",
|
||||
step3Desc: "Расскажите сообществу о себе.",
|
||||
step4Title: "Всё готово!",
|
||||
step4Desc: "Начните изучать Spots, события и общаться со скейтерами.",
|
||||
skipForNow: "Пропустить пока",
|
||||
continueToApp: "Перейти в приложение",
|
||||
},
|
||||
};
|
||||
|
||||
export default ruBatch1;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,908 @@
|
|||
/** ru — batch 7. Filled by the translation pass; empty until then. */
|
||||
const ruBatch7 = {};
|
||||
/** ru — batch 7. Translated from the English source. */
|
||||
const ruBatch7 = {
|
||||
events: {
|
||||
title: 'Скейт-события',
|
||||
createEvent: 'Создать событие',
|
||||
editEvent: 'Редактировать событие',
|
||||
eventDetails: 'Детали события',
|
||||
eventName: 'Название события',
|
||||
eventType: 'Тип события',
|
||||
date: 'Дата',
|
||||
time: 'Время',
|
||||
startDate: 'Дата начала',
|
||||
endDate: 'Дата окончания',
|
||||
venue: 'Место',
|
||||
organizer: 'Организатор',
|
||||
attendees: 'Участники',
|
||||
going: 'Иду',
|
||||
interested: 'Интересно',
|
||||
rsvp: 'RSVP',
|
||||
ticketPrice: 'Цена билета',
|
||||
freeEntry: 'Вход свободный',
|
||||
register: 'Регистрация',
|
||||
moreInfo: 'Подробнее',
|
||||
upcomingEvents: 'Предстоящие',
|
||||
pastEvents: 'Прошедшие',
|
||||
noEvents: 'События не найдены',
|
||||
findEvents: 'Находите конкурсы, демо, сессии и многое другое',
|
||||
searchPlaceholder: 'Поиск событий...',
|
||||
loginToCreate: 'Войдите, чтобы создавать события',
|
||||
noEventsMatch: 'Нет предстоящих событий, подходящих под ваши фильтры.',
|
||||
noUpcoming: 'Предстоящих событий не найдено.',
|
||||
noPast: 'Прошедших событий не найдено.',
|
||||
types: {
|
||||
contest: 'Конкурс',
|
||||
session: 'Сессия',
|
||||
meetup: 'Встреча',
|
||||
premiere: 'Премьера видео',
|
||||
workshop: 'Воркшоп',
|
||||
demo: 'Демо',
|
||||
jam: 'Джем',
|
||||
},
|
||||
},
|
||||
wallet: {
|
||||
title: 'Кошелёк',
|
||||
balance: 'Баланс',
|
||||
send: 'Отправить',
|
||||
receive: 'Получить',
|
||||
transactions: 'Транзакции',
|
||||
history: 'История',
|
||||
noTransactions: 'Транзакций пока нет',
|
||||
sendSats: 'Отправить sats',
|
||||
receiveSats: 'Получить sats',
|
||||
amount: 'Сумма',
|
||||
recipient: 'Получатель',
|
||||
lightning: 'Lightning',
|
||||
onChain: 'On-chain',
|
||||
invoice: 'Инвойс',
|
||||
address: 'Адрес',
|
||||
scanQR: 'Сканировать QR',
|
||||
paste: 'Вставить',
|
||||
payInvoice: 'Оплатить инвойс',
|
||||
createInvoice: 'Создать инвойс',
|
||||
copied: 'Скопировано в буфер обмена!',
|
||||
insufficientFunds: 'Недостаточно средств',
|
||||
paymentSent: 'Платёж отправлен!',
|
||||
paymentReceived: 'Платёж получен!',
|
||||
cashu: {
|
||||
title: 'Кошелёк Cashu',
|
||||
tokens: 'Токены',
|
||||
mint: 'Mint',
|
||||
mints: 'Mints',
|
||||
manageMints: 'Управление Mints',
|
||||
addMint: 'Добавить Mint',
|
||||
removeMint: 'Удалить Mint',
|
||||
defaultMint: 'Mint по умолчанию',
|
||||
backup: 'Резервная копия',
|
||||
restore: 'Восстановить',
|
||||
recoveryPhrase: 'Фраза восстановления',
|
||||
viewRecoveryPhrase: 'Показать фразу восстановления',
|
||||
seedWarning: 'Это как ваш Nostr nsec — держите в секрете и делайте резервные копии!',
|
||||
},
|
||||
},
|
||||
spots: {
|
||||
addSpot: 'Добавить Spot',
|
||||
editSpot: 'Редактировать Spot',
|
||||
spotDetails: 'Детали Spot',
|
||||
spotName: 'Название Spot',
|
||||
spotType: 'Тип Spot',
|
||||
description: 'Описание',
|
||||
location: 'Местоположение',
|
||||
address: 'Адрес',
|
||||
photos: 'Фото',
|
||||
addPhotos: 'Добавить фото',
|
||||
obstacles: 'Препятствия',
|
||||
features: 'Особенности',
|
||||
bustLevel: 'Уровень риска',
|
||||
bestTime: 'Лучшее время',
|
||||
tips: 'Советы',
|
||||
reviews: 'Отзывы',
|
||||
addReview: 'Добавить отзыв',
|
||||
reportSpot: 'Пожаловаться на Spot',
|
||||
directions: 'Маршрут',
|
||||
shareSpot: 'Поделиться Spot',
|
||||
createdBy: 'Создано',
|
||||
lastUpdated: 'Последнее обновление',
|
||||
types: {
|
||||
park: 'Скейтпарк',
|
||||
street: 'Уличный Spot',
|
||||
diy: 'DIY Spot',
|
||||
plaza: 'Плаза',
|
||||
indoor: 'Крытый',
|
||||
bowl: 'Чаша',
|
||||
vert: 'Верт',
|
||||
miniramp: 'Мини-рамп',
|
||||
},
|
||||
bustLevels: {
|
||||
chill: 'Спокойно',
|
||||
moderate: 'Средне',
|
||||
sketchy: 'Рискованно',
|
||||
heavy: 'Жёстко',
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
title: 'Настройки',
|
||||
profile: 'Профиль',
|
||||
editProfile: 'Редактировать профиль',
|
||||
account: 'Аккаунт',
|
||||
security: 'Безопасность',
|
||||
relays: 'Relays',
|
||||
appearance: 'Внешний вид',
|
||||
language: 'Язык',
|
||||
notifications: 'Уведомления',
|
||||
privacy: 'Конфиденциальность',
|
||||
about: 'О приложении',
|
||||
help: 'Помощь',
|
||||
feedback: 'Обратная связь',
|
||||
version: 'Версия',
|
||||
displayName: 'Отображаемое имя',
|
||||
username: 'Имя пользователя',
|
||||
bio: 'О себе',
|
||||
website: 'Сайт',
|
||||
lightningAddress: 'Lightning-адрес',
|
||||
profilePicture: 'Фото профиля',
|
||||
banner: 'Баннер',
|
||||
saveProfile: 'Сохранить профиль',
|
||||
backupKeys: 'Резервная копия ключей',
|
||||
exportKeys: 'Экспорт ключей',
|
||||
secretKey: 'Секретный ключ',
|
||||
publicKey: 'Публичный ключ',
|
||||
showSecretKey: 'Показать секретный ключ',
|
||||
hideSecretKey: 'Скрыть секретный ключ',
|
||||
copyKey: 'Скопировать ключ',
|
||||
keysBackedUp: 'Вы подтвердили, что ваши ключи надёжно сохранены.',
|
||||
keysNotBackedUp: 'Обязательно сохраните фразу восстановления или секретный ключ!',
|
||||
selectLanguage: 'Выбрать язык',
|
||||
english: 'Английский',
|
||||
spanish: 'Испанский',
|
||||
},
|
||||
createSpot: {
|
||||
title: 'Добавить скейт-Spot',
|
||||
subtitle: 'Поделитесь скейт-спотом с сообществом',
|
||||
backToMap: 'Назад к карте',
|
||||
namePlaceholder: 'напр., Hollywood High School',
|
||||
descriptionPlaceholder: 'Опишите Spot, препятствия, лучшее время для катания, информацию о безопасности и т. д.',
|
||||
addressPlaceholder: 'напр., 1521 N Highland Ave, Los Angeles, CA',
|
||||
selectType: 'Выберите тип Spot',
|
||||
selectBustLevel: 'Выберите уровень риска',
|
||||
uploadPhotos: 'Загрузить',
|
||||
dragDrop: 'Перетащите или нажмите для загрузки',
|
||||
maxPhotos: 'Макс. 5 фото',
|
||||
publishing: 'Публикация...',
|
||||
success: 'Spot успешно опубликован!',
|
||||
error: 'Не удалось опубликовать Spot',
|
||||
locationRequired: 'Пожалуйста, выберите местоположение на карте',
|
||||
useCurrentLocation: 'Использовать моё текущее местоположение',
|
||||
pickOnMap: 'Выбрать местоположение на карте',
|
||||
loginToAdd: 'Вам нужно войти, чтобы добавить скейт-Spot.',
|
||||
locationLabel: 'Местоположение',
|
||||
tapToPlace: 'Нажмите на карту, чтобы поставить метку, или перетащите её для точной настройки.',
|
||||
manualCoords: 'Ввести координаты вручную',
|
||||
moreDetails: 'Подробнее (необязательно)',
|
||||
photoHint: 'для публикации нужно фото',
|
||||
nameRequired: 'Пожалуйста, введите название для этого Spot.',
|
||||
descriptionRequired: 'Пожалуйста, опишите этот Spot.',
|
||||
addressRequired: 'Пожалуйста, добавьте адрес или название района.',
|
||||
photoRequired: 'Пожалуйста, добавьте хотя бы одно фото.',
|
||||
draftTitle: 'У вас есть несохранённый черновик',
|
||||
draftBody: 'Продолжите с того места, где остановились, или удалите его.',
|
||||
draftResume: 'Продолжить',
|
||||
draftDiscard: 'Удалить черновик',
|
||||
requiredFields: 'Расскажите нам об этом Spot. Все поля со звёздочкой * обязательны.',
|
||||
coordinates: 'Координаты',
|
||||
latitudePlaceholder: 'Широта (напр., 34.1012)',
|
||||
longitudePlaceholder: 'Долгота (напр., -118.3389)',
|
||||
gettingLocation: 'Получение местоположения...',
|
||||
accessType: 'Тип доступа',
|
||||
publicTitle: 'Общественный — открыт для всех',
|
||||
publicDesc: 'Скейтпарки, общественные площади, уличные Spot',
|
||||
privateTitle: 'Частная собственность — нужно разрешение',
|
||||
privateDesc: 'Рампы во дворе, частная земля, закрытые Spot',
|
||||
localsTitle: 'Сначала спросите местных',
|
||||
localsDesc: 'Уважайте Spot, не выжигайте его',
|
||||
contactInfo: 'Контактная информация',
|
||||
contactPlaceholder: 'напр., номер телефона, Instagram, email...',
|
||||
contactHintPrivate: 'Как люди должны связаться с вами для разрешения?',
|
||||
contactHintLocals: 'Как люди должны обратиться, чтобы узнать про Spot?',
|
||||
},
|
||||
marketplace: {
|
||||
title: 'Маркетплейс',
|
||||
subtitle: 'Покупайте, продавайте и обменивайте скейт-Gear',
|
||||
addListing: 'Добавить объявление',
|
||||
condition: 'Состояние',
|
||||
conditions: {
|
||||
new: 'Новое',
|
||||
likeNew: 'Как новое',
|
||||
good: 'Хорошее',
|
||||
fair: 'Удовлетворительное',
|
||||
poor: 'Плохое',
|
||||
},
|
||||
categories: {
|
||||
all: 'Все',
|
||||
decks: 'Деки',
|
||||
trucks: 'Траки',
|
||||
wheels: 'Колёса',
|
||||
bearings: 'Подшипники',
|
||||
shoes: 'Обувь',
|
||||
clothing: 'Одежда',
|
||||
protection: 'Защита',
|
||||
other: 'Другое',
|
||||
},
|
||||
priceRange: 'Диапазон цен',
|
||||
location: 'Местоположение',
|
||||
seller: 'Продавец',
|
||||
contact: 'Связаться с продавцом',
|
||||
makeOffer: 'Предложить цену',
|
||||
sold: 'Продано',
|
||||
available: 'Доступно',
|
||||
gear: 'Gear',
|
||||
sellGear: 'Продать Gear',
|
||||
wantToBuy: 'Хочу купить',
|
||||
},
|
||||
auth: {
|
||||
login: 'Войти',
|
||||
logout: 'Выйти',
|
||||
signUp: 'Регистрация',
|
||||
signUpTitle: 'Впервые в Nostr?',
|
||||
signUpDesc: 'Создайте новый аккаунт, чтобы начать. Это бесплатно и открыто.',
|
||||
orLogIn: 'Или войдите',
|
||||
loginWithExtension: 'Войти через расширение',
|
||||
loginWithAmber: 'Войти через Amber (Android)',
|
||||
loginWithKey: 'Секретный ключ (nsec) или фраза восстановления',
|
||||
loginWithBunker: 'Войти через Nostr Connect',
|
||||
bunkerUri: 'Строка подключения Bunker',
|
||||
openAmber: 'Открыть Amber',
|
||||
connectToBunker: 'Подключиться к Bunker',
|
||||
noExtension: 'Расширение не обнаружено.',
|
||||
extensionHelp: 'Попробуйте использовать кнопку «Регистрация» выше, чтобы создать новый аккаунт, или вкладки Amber, Ключ и Bunker, если у вас уже есть учётные данные.',
|
||||
amberDesc: 'Amber — это безопасное приложение-подписант Nostr для устройств Android. Нажмите кнопку ниже, чтобы открыть Amber и авторизовать доступ.',
|
||||
bunkerDesc: 'Получайте доступ к аккаунту с любого устройства через удалённый подписант (bunker). Ваши ключи остаются в безопасности на сервере и никогда не попадают на сайты.',
|
||||
keyPlaceholder: 'nsec1... или ваша фраза восстановления из 12 слов',
|
||||
keyHint: 'Вы можете вставить либо ваш nsec-ключ, либо фразу восстановления из 12 слов',
|
||||
uploadKeyFile: 'Загрузить файл с ключом',
|
||||
loggingIn: 'Вход...',
|
||||
connecting: 'Подключение...',
|
||||
verifying: 'Проверка...',
|
||||
},
|
||||
createEvent: {
|
||||
title: 'Создать событие',
|
||||
subtitle: 'Организуйте скейт-событие для сообщества',
|
||||
backToEvents: 'Назад к событиям',
|
||||
namePlaceholder: 'напр., летняя скейт-сессия',
|
||||
descriptionPlaceholder: 'Опишите событие, что ожидать, правила, призы и т. д.',
|
||||
selectType: 'Выберите тип события',
|
||||
venuePlaceholder: 'напр., Venice Beach Skatepark, CA',
|
||||
selectDate: 'Выберите дату',
|
||||
selectTime: 'Выберите время',
|
||||
ticketPricePlaceholder: 'Оставьте пустым для бесплатных событий',
|
||||
publishing: 'Публикация...',
|
||||
success: 'Событие успешно опубликовано!',
|
||||
error: 'Не удалось опубликовать событие',
|
||||
loginToCreate: 'Вам нужно войти, чтобы создать событие.',
|
||||
requiredFields: 'Расскажите нам об этом событии. Все поля со звёздочкой * обязательны.',
|
||||
startDateTime: 'Дата и время начала',
|
||||
endDateTime: 'Дата и время окончания (необязательно)',
|
||||
coordinatesOptional: 'Координаты (необязательно)',
|
||||
coverImage: 'Обложка',
|
||||
uploadCover: 'Загрузить обложку',
|
||||
nip05Recommended: 'Рекомендуется верификация NIP-05',
|
||||
nip05Desc: 'Добавьте идентификатор NIP-05 в свой профиль, чтобы подтвердить личность и укрепить доверие участников.',
|
||||
addNip05: 'Добавить NIP-05 в настройках',
|
||||
},
|
||||
labPage: {
|
||||
title: 'The Lab',
|
||||
subtitle: 'Учите трюки. Ловите моменты. Общайтесь с другими скейтерами',
|
||||
coachesTab: 'Коучинг',
|
||||
filmersTab: 'Съёмка',
|
||||
offerCoaching: 'ПРЕДЛОЖИТЬ КОУЧИНГ',
|
||||
offerFilming: 'ПРЕДЛОЖИТЬ СЪЁМКУ',
|
||||
loginToOffer: 'Войдите, чтобы предлагать услуги',
|
||||
whatToLearn: 'ЧЕМУ ВЫ ХОТИТЕ НАУЧИТЬСЯ?',
|
||||
whatContent: 'КАКОЙ ТИП КОНТЕНТА?',
|
||||
selectSkillsDesc: 'Выберите навыки, и мы подберём вам коучей',
|
||||
selectFilmingDesc: 'Выберите услуги съёмки, которые вы ищете',
|
||||
searchPlaceholder: 'Поиск по имени, местоположению или навыкам...',
|
||||
noServicesYet: 'УСЛУГ ПОКА НЕТ',
|
||||
beFirstToOffer: 'Станьте первым, кто предложит сообществу услуги коучинга или съёмки!',
|
||||
skills: 'Навыки',
|
||||
rate: 'Ставка',
|
||||
perHour: '/час',
|
||||
contact: 'Связаться',
|
||||
viewProfile: 'Смотреть профиль',
|
||||
noProfilesYet: 'Профилей пока нет',
|
||||
beFirstCoach: 'Станьте первым зарегистрированным коучем!',
|
||||
beFirstFilmer: 'Станьте первым зарегистрированным филмером!',
|
||||
yearsExperience: 'лет опыта',
|
||||
},
|
||||
skills: {
|
||||
kickflip: 'Kickflip',
|
||||
heelflip: 'Heelflip',
|
||||
ollie: 'Ollie',
|
||||
treflip: '360 Flip',
|
||||
shuvit: 'Shuvit',
|
||||
hardflip: 'Hardflip',
|
||||
varial: 'Varial',
|
||||
nollie: 'Nollie',
|
||||
fakie: 'Fakie',
|
||||
switch: 'Switch',
|
||||
grind: 'Grind',
|
||||
slide: 'Slide',
|
||||
manual: 'Manual',
|
||||
transition: 'Transition',
|
||||
bowl: 'Bowl',
|
||||
vert: 'Vert',
|
||||
street: 'Street',
|
||||
flatground: 'Flatground',
|
||||
},
|
||||
lab: {
|
||||
title: 'The Lab',
|
||||
subtitle: 'Прокачайте своё катание',
|
||||
coaches: 'Коучи',
|
||||
filmers: 'Филмеры',
|
||||
findCoach: 'Найти коуча',
|
||||
becomeCoach: 'Стать коучем',
|
||||
findFilmer: 'Найти филмера',
|
||||
becomeFilmer: 'Стать филмером',
|
||||
hourlyRate: 'Почасовая ставка',
|
||||
experience: 'Опыт',
|
||||
specialties: 'Специализации',
|
||||
availability: 'Доступность',
|
||||
bookSession: 'Забронировать сессию',
|
||||
contactCoach: 'Связаться с коучем',
|
||||
noCoaches: 'Коучи в вашем районе не найдены',
|
||||
noFilmers: 'Филмеры в вашем районе не найдены',
|
||||
},
|
||||
shops: {
|
||||
title: 'Скейт-Shops',
|
||||
addShop: 'Добавить Shop',
|
||||
editShop: 'Редактировать Shop',
|
||||
shopDetails: 'Детали Shop',
|
||||
shopName: 'Название Shop',
|
||||
hours: 'Часы работы',
|
||||
phone: 'Телефон',
|
||||
website: 'Сайт',
|
||||
services: 'Услуги',
|
||||
brands: 'Бренды',
|
||||
supportLocal: 'Поддержите местных',
|
||||
nip05: 'Shop NIP-05',
|
||||
nip05Hint: 'Необязательный идентификатор, которым вы управляете для этого Shop (напр., shop@yourdomain.com), проверяется по вашему ключу. Добавьте до 5.',
|
||||
},
|
||||
becomeFilmer: {
|
||||
title: 'Стать филмером',
|
||||
subtitle: 'Снимайте лучшие клипы для сообщества',
|
||||
bioPlaceholder: 'Расскажите о своём опыте съёмки и оборудовании...',
|
||||
specialtiesPlaceholder: 'напр., фишай, длинный объектив, дрон, монтаж',
|
||||
selectSpecialties: 'Выберите свои специализации',
|
||||
hourlyRate: 'Почасовая ставка (sats)',
|
||||
ratePlaceholder: 'напр., 5000',
|
||||
locationPlaceholder: 'Ваш город или район',
|
||||
portfolioUrl: 'Ссылка на портфолио',
|
||||
portfolioPlaceholder: 'Ссылка на ваши работы (YouTube, Instagram и т. д.)',
|
||||
publishing: 'Публикация профиля...',
|
||||
success: 'Профиль филмера создан!',
|
||||
error: 'Не удалось создать профиль',
|
||||
},
|
||||
food: {
|
||||
title: 'Места с едой',
|
||||
subtitle: 'Подкрепитесь до или после сессии',
|
||||
addFood: 'Добавить место с едой',
|
||||
categories: {
|
||||
all: 'Все',
|
||||
burgers: 'Бургеры',
|
||||
pizza: 'Пицца',
|
||||
tacos: 'Тако',
|
||||
coffee: 'Кофе',
|
||||
drinks: 'Напитки',
|
||||
snacks: 'Закуски',
|
||||
},
|
||||
skaterFriendly: 'Дружелюбно к скейтерам',
|
||||
nearSpots: 'Рядом со Spot',
|
||||
},
|
||||
profile: {
|
||||
posts: 'Посты',
|
||||
spots: 'Spot',
|
||||
events: 'События',
|
||||
following: 'Подписки',
|
||||
followers: 'Подписчики',
|
||||
editProfile: 'Редактировать профиль',
|
||||
follow: 'Подписаться',
|
||||
unfollow: 'Отписаться',
|
||||
noPostsYet: 'Постов пока нет',
|
||||
noBio: 'Описания пока нет',
|
||||
zapProfile: 'Запнуть этого скейтера',
|
||||
},
|
||||
becomeCoach: {
|
||||
title: 'Стать коучем',
|
||||
subtitle: 'Поделитесь навыками и помогите другим скейтерам прогрессировать',
|
||||
bioPlaceholder: 'Расскажите о своём скейт-опыте и стиле преподавания...',
|
||||
skillsPlaceholder: 'напр., kickflip, heelflip, грайнды, чаши',
|
||||
selectSkills: 'Выберите навыки, которым можете научить',
|
||||
hourlyRate: 'Почасовая ставка (sats)',
|
||||
ratePlaceholder: 'напр., 5000',
|
||||
locationPlaceholder: 'Ваш город или район',
|
||||
publishing: 'Публикация профиля...',
|
||||
success: 'Профиль коуча создан!',
|
||||
error: 'Не удалось создать профиль',
|
||||
},
|
||||
weather: {
|
||||
title: 'Погода',
|
||||
current: 'Текущие условия',
|
||||
forecast: 'Прогноз',
|
||||
humidity: 'Влажность',
|
||||
wind: 'Ветер',
|
||||
feelsLike: 'Ощущается как',
|
||||
goodForSkating: 'Хорошо для катания!',
|
||||
notIdeal: 'Не идеальные условия',
|
||||
allWeather: 'Любая погода',
|
||||
goodWeather: 'Хорошая погода',
|
||||
perfectWeather: 'Идеальная погода',
|
||||
},
|
||||
errors: {
|
||||
somethingWentWrong: 'Что-то пошло не так',
|
||||
tryAgainLater: 'Попробуйте позже',
|
||||
notFound: 'Не найдено',
|
||||
pageNotFound: 'Страница не найдена',
|
||||
unauthorized: 'Доступ запрещён',
|
||||
loginRequired: 'Пожалуйста, войдите, чтобы продолжить',
|
||||
networkError: 'Ошибка сети',
|
||||
checkConnection: 'Проверьте подключение к интернету',
|
||||
invalidInput: 'Недопустимый ввод',
|
||||
requiredField: 'Это поле обязательно',
|
||||
},
|
||||
time: {
|
||||
today: 'Сегодня',
|
||||
yesterday: 'Вчера',
|
||||
tomorrow: 'Завтра',
|
||||
thisWeek: 'На этой неделе',
|
||||
nextWeek: 'На следующей неделе',
|
||||
thisMonth: 'В этом месяце',
|
||||
justNow: 'Только что',
|
||||
minutesAgo: '{{count}} мин. назад',
|
||||
hoursAgo: '{{count}} ч. назад',
|
||||
daysAgo: '{{count}} дн. назад',
|
||||
},
|
||||
spotDetail: {
|
||||
postedBy: 'Опубликовал',
|
||||
getDirections: 'Проложить маршрут',
|
||||
reviews: 'Отзывы',
|
||||
noReviews: 'Отзывов пока нет',
|
||||
beFirstReview: 'Станьте первым, кто оставит отзыв об этом Spot!',
|
||||
writeReview: 'Написать отзыв',
|
||||
submitReview: 'Отправить отзыв',
|
||||
rating: 'Оценка',
|
||||
reviewPlaceholder: 'Поделитесь своим опытом в этом Spot...',
|
||||
relatedSpots: 'Рядом',
|
||||
},
|
||||
eventDetail: {
|
||||
organizedBy: 'Организатор',
|
||||
eventInfo: 'Информация о событии',
|
||||
location: 'Местоположение',
|
||||
dateTime: 'Дата и время',
|
||||
price: 'Цена',
|
||||
attendeeCount: '{{count}} идут',
|
||||
interested: 'Интересно',
|
||||
going: 'Иду',
|
||||
notGoing: 'Не иду',
|
||||
share: 'Поделиться событием',
|
||||
},
|
||||
venueAccess: {
|
||||
title: 'Пропуска доступа',
|
||||
desc: 'Выдайте подписанный пропуск райдеру, чтобы он мог подтвердить доступ у входа — он показывает карту, и любой может отсканировать QR, чтобы проверить её.',
|
||||
active: '{{count}} активных',
|
||||
revoked: '{{count}} отозванных',
|
||||
issue: 'Выдать пропуск',
|
||||
verifyHint: 'Проверяется сканированием — для проверки не нужны приложение или аккаунт.',
|
||||
publicTitle: 'Пропуска доступа',
|
||||
publicDesc: 'Это заведение выдаёт пропуска доступа. Отсканируйте карту райдера у входа, чтобы проверить её.',
|
||||
badge: 'Пропуска',
|
||||
sellerHint: 'Заведение этого продавца выдаёт пропуска доступа',
|
||||
},
|
||||
zaps: {
|
||||
zapButton: 'Zap',
|
||||
sendZap: 'Отправить Zap',
|
||||
zapAmount: 'Сумма Zap',
|
||||
customAmount: 'Своя сумма',
|
||||
addMessage: 'Добавить сообщение (необязательно)',
|
||||
sending: 'Отправка...',
|
||||
sent: 'Zap отправлен!',
|
||||
failed: 'Zap не удался',
|
||||
received: 'Вы получили Zap!',
|
||||
},
|
||||
rewards: {
|
||||
title: 'Награды',
|
||||
yourPoints: 'Ваши баллы',
|
||||
earnPoints: 'Заработать баллы',
|
||||
redeemPoints: 'Потратить баллы',
|
||||
leaderboard: 'Таблица лидеров',
|
||||
achievements: 'Достижения',
|
||||
dailyTasks: 'Ежедневные задания',
|
||||
weeklyTasks: 'Еженедельные задания',
|
||||
},
|
||||
errorsUi: {
|
||||
slammedTitle: 'Слэм',
|
||||
slammedBody: 'Что-то споткнулось на этом экране. Ваш аккаунт и данные в безопасности — давайте снова в движение.',
|
||||
tryAgain: 'Попробовать снова',
|
||||
reloadApp: 'Перезагрузить приложение',
|
||||
pageSlammedTitle: 'Эта страница слэмнулась',
|
||||
pageSlammedBody: 'Что-то на этом экране споткнулось. Ваш аккаунт и данные в безопасности. Обычно помогает быстрая перезагрузка.',
|
||||
reload: 'Перезагрузить',
|
||||
goBack: 'Назад',
|
||||
},
|
||||
backup: {
|
||||
title: 'Сохраните свой вход',
|
||||
subtitle: 'Займёт 10 секунд — сделайте один раз',
|
||||
message: 'Ваш код восстановления — единственный путь обратно в аккаунт. Сохраните его, и вы сможете войти с любого устройства.',
|
||||
warning: 'Потеряете его — сброса нет: ни email, ни восстановления пароля.',
|
||||
backupNow: 'Сохранить сейчас',
|
||||
confirmed: 'Я сохранил',
|
||||
remindLater: 'Позже',
|
||||
},
|
||||
bootUi: {
|
||||
ariaLoading: 'Загрузка SkateSpots',
|
||||
ariaReady: 'SkateSpots готов',
|
||||
ready: 'Готово',
|
||||
statusWaking: 'Пробуждаем сеть',
|
||||
statusTuning: 'Настраиваем Relays',
|
||||
statusPulling: 'Подтягиваем Spot',
|
||||
statusDropping: 'Залетаем',
|
||||
},
|
||||
footer: {
|
||||
vibedWith: 'Сделано с',
|
||||
poweredBy: 'Работает на',
|
||||
openSource: 'Открытый исходный код',
|
||||
contribute: 'Внести вклад',
|
||||
decentralized: 'Децентрализовано',
|
||||
communityOwned: 'Принадлежит сообществу',
|
||||
},
|
||||
role: {
|
||||
owner: 'Владелец',
|
||||
admin: 'Админ',
|
||||
organiser: 'Организатор',
|
||||
verifiedOwner: 'Подтверждённый владелец',
|
||||
},
|
||||
nfc: {
|
||||
write: 'Записать на NFC-метку',
|
||||
written: 'Метка записана',
|
||||
writtenDesc: 'Приложите метку к телефону, чтобы открыть страницу проверки.',
|
||||
failed: 'Не удалось записать метку',
|
||||
},
|
||||
collectionUi: {
|
||||
namePlaceholder: 'Поездка в Барселону 2024',
|
||||
descriptionPlaceholder: 'Мои любимые Spot из поездки в Барселону...',
|
||||
},
|
||||
toastsUi: {
|
||||
followingSuccess: 'Вы подписались',
|
||||
followingSuccessDesc: 'Этот пользователь теперь в вашей сети',
|
||||
followFailed: 'Не удалось подписаться',
|
||||
unfollowSuccess: 'Вы отписались',
|
||||
unfollowSuccessDesc: 'Удалён из вашей сети',
|
||||
unfollowFailed: 'Не удалось отписаться',
|
||||
reportThanks: 'Спасибо — отправлено на проверку',
|
||||
reportFailed: 'Не удалось отправить жалобу',
|
||||
savedOffline: 'Сохранено офлайн',
|
||||
savedOfflineDesc: 'Мы опубликуем это автоматически, когда вы снова будете в сети.',
|
||||
cacheCleaned: 'Кэш очищен',
|
||||
cacheCleanedDesc: 'Удалено {{count}} старых Spot из кэша',
|
||||
cacheCleared: 'Кэш очищен',
|
||||
cacheClearedDesc: 'Все кэшированные Spot удалены',
|
||||
backOnline: 'Снова в сети',
|
||||
backOnlineDesc: 'Отправлено {{count}} сохранённых действий.',
|
||||
postQueued: 'Пост в очереди',
|
||||
postQueuedDesc: 'Ваш пост будет опубликован, когда вы снова будете в сети',
|
||||
invalidIdentifier: 'Недопустимый идентификатор. Используйте npub1..., user@domain.com или hex pubkey',
|
||||
notASpotThanks: 'Спасибо — отправлено на проверку',
|
||||
notASpotThanksDesc: 'Без обид: это помечает метку как не по теме, чтобы люди могли решить сами.',
|
||||
notASpotFailed: 'Не удалось отправить жалобу',
|
||||
pleaseTryAgain: 'Попробуйте ещё раз.',
|
||||
relayUnreachable: 'Не удалось связаться ни с одним Relay — проверьте подключение и попробуйте снова.',
|
||||
loginToReport: 'Войдите, чтобы пожаловаться на Spot.',
|
||||
zapLoginRequired: 'Требуется вход',
|
||||
zapLoginRequiredDesc: 'Вы должны войти, чтобы отправить Zap.',
|
||||
zapEventNotFound: 'Событие не найдено',
|
||||
zapEventNotFoundDesc: 'Не удалось найти событие для Zap.',
|
||||
zapAuthorNotFound: 'Автор не найден',
|
||||
zapAuthorNotFoundDesc: 'Не удалось найти автора этого элемента.',
|
||||
zapSuccess: 'Zap успешно отправлен!',
|
||||
zapSuccessNwcDesc: 'Вы отправили {{amount}} sats через NWC автору.',
|
||||
zapSuccessDesc: 'Вы отправили {{amount}} sats автору.',
|
||||
zapStatusUnknown: 'Статус платежа неизвестен',
|
||||
zapStatusUnknownDesc: 'Ваш кошелёк может всё ещё проводить этот Zap. Проверьте кошелёк перед повторной попыткой — не платите дважды.',
|
||||
zapNwcFailed: 'Платёж NWC не удался',
|
||||
zapWeblnFailed: 'Платёж WebLN не удался',
|
||||
zapFallingBack: '{{error}}. Переключаемся на другие способы оплаты...',
|
||||
zapFailed: 'Zap не удался',
|
||||
zapUnknownNwcError: 'Неизвестная ошибка NWC',
|
||||
zapUnknownWeblnError: 'Неизвестная ошибка WebLN',
|
||||
nwcInvalidUri: 'Недопустимый NWC URI',
|
||||
nwcInvalidUriDesc: 'Проверьте строку подключения и попробуйте снова.',
|
||||
nwcExists: 'Подключение уже существует',
|
||||
nwcExistsDesc: 'Этот кошелёк уже подключён.',
|
||||
nwcConnected: 'Кошелёк подключён',
|
||||
nwcConnectedDesc: 'Успешно подключено к {{alias}}.',
|
||||
nwcFailed: 'Не удалось подключиться',
|
||||
nwcFailedDesc: 'Не удалось подключиться к кошельку: {{error}}',
|
||||
nwcUnknownError: 'Произошла неизвестная ошибка',
|
||||
nwcDisconnected: 'Кошелёк отключён',
|
||||
nwcDisconnectedDesc: 'Подключение кошелька удалено.',
|
||||
deleteApproveAmber: 'Подтвердите в Amber',
|
||||
deleteApproveAmberDesc: 'Amber откроется — нажмите «Подтвердить», чтобы подтвердить удаление.',
|
||||
deleteCancelled: 'Отменено',
|
||||
deleteCancelledDesc: 'Вы отклонили запрос в Amber.',
|
||||
deleteCouldntSign: 'Не удалось подписать',
|
||||
deletePublishing: 'Шаг 2/2: публикация…',
|
||||
deletePublishingDesc: 'Отправляем удаление в Relays.',
|
||||
deleteStuck: 'Застряло на PUBLISHING',
|
||||
deleteStuckDesc: 'Этап Relay не удался: {{error}}. Подписано успешно; Relay не подтвердил.',
|
||||
stashMerged: 'Изменения объединены с другого устройства',
|
||||
stashMergedDesc: 'Ваш Stash был изменён в другом месте — оба набора изменений сохранены.',
|
||||
statusUpdated: 'Статус обновлён!',
|
||||
statusUpdatedDesc: 'Ваш скейт-статус теперь виден другим.',
|
||||
statusFailed: 'Не удалось установить статус',
|
||||
statusCleared: 'Статус очищен',
|
||||
statusClearedDesc: 'Ваш статус удалён.',
|
||||
statusClearFailed: 'Не удалось очистить статус',
|
||||
nutzapEnabled: 'Приём Nutzap включён',
|
||||
nutzapEnabledDesc: 'Теперь вы можете получать ecash-Zap!',
|
||||
nutzapSetupFailed: 'Настройка не удалась',
|
||||
nutzapUnavailable: 'Отправка Nutzap недоступна',
|
||||
tokenReceived: 'Токен получен',
|
||||
tokenReceivedDesc: 'Токен Cashu успешно погашен!',
|
||||
receiveFailed: 'Не удалось получить',
|
||||
invalidAmount: 'Недопустимая сумма',
|
||||
invalidAmountDesc: 'Пожалуйста, введите корректную сумму',
|
||||
tokenCreated: 'Токен создан',
|
||||
sendFailed: 'Не удалось отправить',
|
||||
mintAdded: 'Mint добавлен',
|
||||
mintAddedDesc: 'Mint добавлен и успешно помечен как доверенный',
|
||||
mintAddFailed: 'Не удалось добавить Mint',
|
||||
mintRemoved: 'Mint удалён',
|
||||
mintRemoveFailed: 'Не удалось удалить Mint',
|
||||
paymentReceived: 'Платёж получен',
|
||||
paymentReceivedDesc: 'Успешно получено {{amount}} sats!',
|
||||
paymentSent: 'Платёж отправлен',
|
||||
paymentSentDesc: 'Платёж Lightning успешно завершён',
|
||||
loginRequired: 'Требуется вход',
|
||||
loginToFollowFounder: 'Пожалуйста, войдите, чтобы подписаться на основателя',
|
||||
alreadyFollowing: 'Уже подписаны',
|
||||
alreadyFollowingDesc: 'Вы уже подписаны на {{name}}!',
|
||||
couldNotComplete: 'Не удалось завершить',
|
||||
tryAgainLower: 'Попробуйте ещё раз.',
|
||||
couldNotLoadProfile: 'Не удалось загрузить профиль',
|
||||
couldNotLoadProfileDesc: 'Проверьте подключение к интернету и попробуйте обновить.',
|
||||
undone: 'Отменено',
|
||||
undoneDesc: 'Снова нейтрально — не скрыто, не подтверждено.',
|
||||
confirmed: 'Подтверждено',
|
||||
confirmedDesc: 'Поручительство — это покидает очередь.',
|
||||
hiddenToast: 'Скрыто',
|
||||
couldNotUndo: 'Не удалось отменить',
|
||||
couldNotConfirm: 'Не удалось подтвердить',
|
||||
deleteFailed: 'Не удалось удалить',
|
||||
somethingWentWrong: 'Что-то пошло не так',
|
||||
},
|
||||
seoUi: {
|
||||
becomeBuilderTitle: 'Стать строителем - SkateSpots',
|
||||
becomeBuilderDesc: 'Разместите услуги по строительству рамп, парков и DIY — что вы строите, материалы и масштаб.',
|
||||
tradesTitle: 'Мои сделки — SkateSpots',
|
||||
tradesDesc: 'Управляйте своими сделками на маркетплейсе, подтверждениями и репутацией.',
|
||||
eventsTitle: 'Скейт-события и туры - SkateSpots',
|
||||
eventsDesc: 'Открывайте скейт-события, соревнования, туры и сессии рядом с вами.',
|
||||
editShopDesc: 'Редактируйте свой скейт-Shop.',
|
||||
createTourDesc: 'Организуйте скейт-туры - туры по местным скрытым жемчужинам, национальные роуд-трипы, международные приключения или разрушительные соревнования в стиле KOTR.',
|
||||
deckDesignerTitle: 'Дизайнер дек — SkateSpots DIY',
|
||||
deckDesignerDesc: 'Нарисуйте контур скейтборда или лонгборда, затем экспортируйте печатный шаблон 1:1, SVG или DXF — concave, кики, колёсная база и отверстия под траки включены.',
|
||||
createEventTitle: 'Создать скейт-событие - SkateSpots',
|
||||
createEventDesc: 'Создайте новое скейт-событие для сообщества.',
|
||||
editTourDesc: 'Редактируйте свой скейт-тур — обновляйте остановки, даты и детали.',
|
||||
walletTitle: 'Кошелёк - SkateSpots',
|
||||
walletDesc: 'Подключите кошелёк Lightning, чтобы отправлять Zap скейтерам и создателям Spot.',
|
||||
becomePhotographerTitle: 'Стать фотографом - SkateSpots',
|
||||
becomePhotographerDesc: 'Создайте профиль скейт-фотографа — камеры, объективы, свет и услуги.',
|
||||
newsletterTitle: 'Рассылка - SkateSpots',
|
||||
newsletterDesc: 'Еженедельные новости от сообщества SkateSpots. Обновления приложения, новые Spot, события и люди, которые поддерживают скейтбординг живым.',
|
||||
homeTitle: 'SkateSpots - Открывайте скейт-локации по всему миру',
|
||||
zapLeaderboardTitle: 'Таблицы лидеров по Zap - SkateSpots',
|
||||
zapLeaderboardDesc: 'Самые запнутые скейт-Spot и члены сообщества, которые их поддерживают.',
|
||||
adminReviewTitle: 'Очередь модерации — SkateSpots',
|
||||
gearSwapTitle: 'Обмен Gear - SkateSpots',
|
||||
gearSwapDesc: 'Покупайте и продавайте б/у скейт-Gear с другими скейтерами. Деки, траки, колёса, обувь и многое другое.',
|
||||
donateTitle: 'Пожертвовать — SkateSpots',
|
||||
donateDesc: 'Поддержите SkateSpots — Lightning, приватный on-chain (silent payments) или финансирование разработки на Angor.',
|
||||
verifyCardTitle: 'Проверить — SkateSpots',
|
||||
verifyCardDesc: 'Проверьте карту SkateSpots или пропуск доступа.',
|
||||
mapTitle: 'Карта скейт-Spot - SkateSpots',
|
||||
mapDesc: 'Исследуйте скейтборд-локации по всему миру на нашей интерактивной карте.',
|
||||
diyTitle: 'DIY — Сделай сам | SkateSpots',
|
||||
diyDesc: 'Руководства, открытые инструменты и планы, чтобы сделать свои скейтборды, рампы и бетонные Spot — а также люди и места для этого.',
|
||||
appShopTitle: 'Магазин приложения — SkateSpots',
|
||||
becomeSkaterTitle: 'Присоединяйтесь к каталогу скейтеров - SkateSpots',
|
||||
becomeSkaterDesc: 'Создайте профиль скейтера, чтобы сообщество могло вас найти.',
|
||||
marketplaceTitle: 'Маркетплейс - SkateSpots',
|
||||
marketplaceDesc: 'Покупайте и продавайте скейт-Gear на децентрализованном Plebeian Market.',
|
||||
becomeEditorTitle: 'Стать видеомонтажёром - SkateSpots',
|
||||
becomeEditorDesc: 'Создайте профиль скейт-видеомонтажёра на SkateSpots.',
|
||||
amberCallbackTitle: 'Вход через Amber - SkateSpots',
|
||||
amberCallbackDesc: 'Завершаем вход через Amber (NIP-55).',
|
||||
supportersTitle: 'Сторонники - SkateSpots',
|
||||
supportersDesc: 'Сообщество, поддерживающее SkateSpots — сторонники, соавторы, партнёры и друзья.',
|
||||
becomeCoachTitle: 'Стать коучем - SkateSpots',
|
||||
becomeCoachDesc: 'Создайте профиль скейт-коуча.',
|
||||
riderCardTitle: 'Карта скейтера — SkateSpots',
|
||||
riderCardDesc: 'Создайте печатную лицензию скейтера или карту доступа в парк SkateSpots.',
|
||||
editEventDesc: 'Редактируйте своё скейт-событие.',
|
||||
createShopTitle: 'Добавить скейт-Shop - SkateSpots',
|
||||
createShopDesc: 'Добавьте свой скейт-Shop в сообщество.',
|
||||
deckCostTitle: 'Калькулятор стоимости деки — SkateSpots DIY',
|
||||
deckCostDesc: 'Рассчитайте, сколько стоит производство деки — труд, оборудование, материалы, время процесса, упаковка и маржа — и справедливую цену продажи.',
|
||||
pyramidTitle: 'Рейтинг Pyramid - SkateSpots',
|
||||
pyramidDesc: 'Главные контрибьюторы и лидеры сообщества.',
|
||||
foodTitle: 'Еда рядом со Spot - SkateSpots',
|
||||
foodDesc: 'Найдите рестораны, кафе и варианты еды рядом со скейт-Spot.',
|
||||
createListingTitle: 'Продать Gear - SkateSpots',
|
||||
createListingDesc: 'Разместите скейт-Gear на продажу или найдите Gear, который хотите купить.',
|
||||
becomeFilmerTitle: 'Стать филмером - SkateSpots',
|
||||
becomeFilmerDesc: 'Создайте профиль скейт-филмера.',
|
||||
skatersTitle: 'Скейтеры - SkateSpots',
|
||||
skatersDesc: 'Открывайте скейтеров в сообществе SkateSpots. Просматривайте по стилю, стойке, уровню и местоположению.',
|
||||
communityStatsTitle: 'Статистика сообщества — SkateSpots',
|
||||
communityStatsDesc: 'Живые метрики сообщества SkateSpots — Spot, события, коучи, филмеры, монтажёры, туры и рост со временем. Данные напрямую из Nostr.',
|
||||
labTitle: 'The Lab - SkateSpots',
|
||||
labDesc: 'Найдите скейт-коучей, филмеров, фотографов и видеомонтажёров.',
|
||||
stashTitle: 'Мой Stash - SkateSpots',
|
||||
stashDesc: 'Управляйте своим приватным инвентарём Gear. Отслеживайте, чем владеете, что хотите продать или обменять.',
|
||||
bountyLeaderboardTitle: 'Картируй и зарабатывай - SkateSpots',
|
||||
bountyLeaderboardDesc: 'Отмечайте скейт-Spot и Shop на карте, зарабатывайте Zap от сообщества. Смотрите лучших контрибьюторов.',
|
||||
spotCollectionsTitle: 'Мои коллекции Spot - SkateSpots',
|
||||
spotCollectionsDesc: 'Организуйте любимые скейт-Spot в персональные коллекции',
|
||||
mintsTitle: 'Mints Cashu — SkateSpots',
|
||||
mintsDesc: 'Просматривайте Mints Cashu, проверяйте их состояние и добавьте один в свой кошелёк.',
|
||||
},
|
||||
miscUi: {
|
||||
openingCamera: 'Открываем камеру…',
|
||||
usePhoneCamera: 'Используйте камеру телефона, затем вернитесь сюда',
|
||||
startingCamera: 'Запуск камеры...',
|
||||
cameraAccessRequired: 'Требуется доступ к камере',
|
||||
cameraAccessHint: 'Разрешите доступ к камере в настройках браузера или используйте выбор файла ниже.',
|
||||
cameraErrorTitle: 'Ошибка камеры',
|
||||
cameraErrorDesc: 'Не удалось открыть камеру. Проверьте разрешения приложения в настройках.',
|
||||
cameraDeniedTitle: 'Доступ к камере запрещён',
|
||||
cameraDeniedDesc: 'Пожалуйста, разрешите доступ к камере в настройках браузера.',
|
||||
uploadFromGallery: 'Загрузить из галереи',
|
||||
uploading: 'Загрузка...',
|
||||
usePhoto: 'Использовать фото',
|
||||
earningPotential: 'Потенциал заработка',
|
||||
qualityExcellent: 'Отлично!',
|
||||
qualityGood: 'Хорошо',
|
||||
qualityBasic: 'Базово',
|
||||
qualityGettingStarted: 'Для начала',
|
||||
qualityLocationAdded: 'Местоположение добавлено',
|
||||
qualityOnePhoto: 'Хотя бы 1 фото',
|
||||
qualityThreePhotos: '3+ фото',
|
||||
qualityMoreAngles: 'Больше ракурсов = лучше',
|
||||
qualityDescription: 'Описание',
|
||||
qualityDetailedDesc: 'Подробное описание (100+ символов)',
|
||||
qualityContact: 'Контактная информация',
|
||||
qualityPhoneOrWebsite: 'Телефон или сайт',
|
||||
qualityHours: 'Часы работы',
|
||||
qualitySpotType: 'Тип Spot выбран',
|
||||
failedToLoadComments: 'Не удалось загрузить комментарии',
|
||||
commentsTitle: 'Комментарии',
|
||||
noCommentsYet: 'Комментариев пока нет',
|
||||
beFirstComment: 'Станьте первым, кто поделится мыслями!',
|
||||
removeMember: 'Удалить участника',
|
||||
whoIsThisFor: 'Для кого этот профиль?',
|
||||
individual: 'Частное лицо',
|
||||
individualDesc: 'Один человек',
|
||||
collective: 'Коллектив',
|
||||
collectiveDesc: 'Crew, студия или компания',
|
||||
membersLabel: 'Участники',
|
||||
dismissReport: 'Отклонить жалобу',
|
||||
reportedBy: 'пожаловался',
|
||||
completingLoginAmber: 'Завершаем вход через Amber...',
|
||||
entityMembersHint: 'Добавьте Nostr-аккаунты своей Crew. Каждый участник подтверждает свой Spot своим ключом — до этого они отображаются как «ожидающие».',
|
||||
entityVerifiedHint: 'Участие проверяется для каждого участника — никто не может быть добавлен в вашу Crew без подтверждения со своего аккаунта.',
|
||||
entityInvalidPubkey: 'Введите корректный npub, nprofile или 64-символьный hex pubkey.',
|
||||
entityAlreadyAdded: 'Этот участник уже добавлен.',
|
||||
offline: 'Офлайн',
|
||||
connected: 'Подключено',
|
||||
offlineMode: 'Офлайн-режим',
|
||||
allFeaturesAvailable: 'Все функции доступны',
|
||||
browsingCachedSpots: 'Просмотр кэшированных Spot',
|
||||
queuedActions: '{{count}} действий в очереди',
|
||||
syncing: 'Синхронизация',
|
||||
publishingWhenStable: 'Публикация, когда соединение стабилизируется...',
|
||||
willPublishOnline: 'Будет опубликовано, когда снова появится сеть',
|
||||
availableOffline: 'Доступно офлайн:',
|
||||
offlineBrowseSpots: 'Просматривайте ранее просмотренные Spot',
|
||||
offlineViewDetails: 'Смотрите кэшированные детали Spot',
|
||||
offlineKeepActing: 'Продолжайте действовать — посты, RSVP, объявления и сообщения ставятся в очередь и отправляются при восстановлении связи',
|
||||
},
|
||||
sasquatchGuide: {
|
||||
homeTitle: 'Добро пожаловать в SkateSpots! 🦧',
|
||||
homeMessage: 'Йо, я The Sasquatch. Хранитель досок, троп и диких поездок. Добро пожаловать в необузданный скейт-мир на Nostr — без костюмов, без рекламы, только скейтеры, прокладывающие свой путь. Здесь вы владеете своими трюками, своими данными и даже зарабатываете Bitcoin за свой след. Общайтесь со скейтерами из своего района или со всего мира. Никаких правил, кроме катания, никаких следов, кроме ваших.',
|
||||
homeQ1: 'Спланируй мне 3 дня в Барселоне',
|
||||
homeQ2: 'Найди Spot для новичков',
|
||||
homeQ3: 'Есть предстоящие события?',
|
||||
homeQ4: 'Статистика сообщества',
|
||||
homeQ5: 'Найди коучей рядом',
|
||||
homeQ6: 'Gear на продажу?',
|
||||
homeQ7: 'Что такое Nostr?',
|
||||
homeQ8: 'Это бесплатно?',
|
||||
homeLearnMore: 'Узнать больше',
|
||||
onboardingTitle: 'Начало работы 🚀',
|
||||
onboardingMessage: 'Давайте помогу разобраться в основах! Nostr — это ваша личность, Bitcoin Lightning позволяет зарабатывать sats за вклад, а Zap — это мгновенные чаевые. Спросите меня о чём угодно про начало работы!',
|
||||
onboardingQ1: 'Как войти?',
|
||||
onboardingQ2: 'Что такое Nostr?',
|
||||
onboardingQ3: 'Как работает Nostr?',
|
||||
onboardingQ4: 'Что такое Cashu?',
|
||||
onboardingQ5: 'Как пользоваться кошельком Cashu?',
|
||||
onboardingQ6: 'Что такое Mints?',
|
||||
onboardingQ7: 'Что такое Zap?',
|
||||
onboardingQ8: 'Что такое NWC?',
|
||||
onboardingStart: 'Начать исследование',
|
||||
onboardingLogin: 'Войдите, чтобы начать',
|
||||
labTitle: 'Добро пожаловать в The Lab! 🎓',
|
||||
labMessage: 'Здесь происходит магия! Найдите коучей, которые научат вас чему угодно — от kickflip до darkslide, или свяжитесь с филмерами, чтобы запечатлеть свои лучшие сессии. Фильтруйте по навыкам, проверяйте опыт и бронируйте сессию. Помните — все с чего-то начинали!',
|
||||
labQ1: 'Найти коучей',
|
||||
labQ2: 'Найти филмеров',
|
||||
labQ3: 'Найти фотографов',
|
||||
labQ4: 'Найти видеомонтажёров',
|
||||
labQ5: 'Найти строителя рамп',
|
||||
labQ6: 'Что такое The Lab?',
|
||||
labQ7: 'Что такое строитель?',
|
||||
labQ8: 'Как предложить коучинг?',
|
||||
labLogin: 'Войдите, чтобы предлагать услуги',
|
||||
crewsTitle: 'Crew 🤘',
|
||||
crewsMessage: 'Crew — это ваша скейт-семья, привязанная к карте — люди, с которыми вы катаетесь ВМЕСТЕ, а не которых нанимаете. У каждой Crew есть родная территория на карте, домашние Spot, участники и манифест. Участники подтверждают со своих ключей, поэтому состав легитимный. Создайте свою или найдите своих!',
|
||||
crewsQ1: 'Что такое Crew?',
|
||||
crewsQ2: 'Как создать Crew?',
|
||||
crewsQ3: 'Чем Crew отличается от The Lab?',
|
||||
crewsQ4: 'Как участники подтверждают?',
|
||||
crewsQ5: 'Что такое Nostr?',
|
||||
crewsQ6: 'Как работают Zap?',
|
||||
crewsLogin: 'Войдите, чтобы создать Crew',
|
||||
},
|
||||
supportUi: {
|
||||
keepMapFree: 'Пусть карта остаётся бесплатной',
|
||||
keepMapFreeDesc: 'Без рекламы, без слежки, без VC. Ваши sats оплачивают хостинг, AI-узел и Relay.',
|
||||
thankYou: 'Спасибо! ⚡',
|
||||
satsKeepMapFree: 'Ваши sats сохраняют карту бесплатной.',
|
||||
keptFreeNext: 'Вы только что сохранили SkateSpots бесплатным для следующего скейтера.',
|
||||
scanToPay: 'Отсканируйте для оплаты',
|
||||
zapSkateSpots: 'Запнуть SkateSpots',
|
||||
payQuietly: 'Оплатить тихо',
|
||||
pickAmount: 'Выберите сумму',
|
||||
enterAmount: 'Введите, сколько sats вы хотите отправить.',
|
||||
couldNotStartPayment: 'Не удалось начать платёж.',
|
||||
customAmountAria: 'Своя сумма в sats',
|
||||
commentPlaceholder: 'Скажите что-нибудь (необязательно — только публичные Zap)',
|
||||
publicZapTitle: 'Публичный Zap с вашим комментарием',
|
||||
loginToZapTitle: 'Войдите, чтобы отправить публичный Zap',
|
||||
anonymousTitle: 'Анонимно — без входа, без записи',
|
||||
copyLightningTitle: 'Скопировать Lightning-адрес',
|
||||
copiedSuffix: '{{label}} скопировано',
|
||||
invoiceLabel: 'Инвойс',
|
||||
addressLabel: 'Адрес',
|
||||
notAPurchase: 'Поддержка, а не покупка — это ничего не покупает и возвратов нет. Мерч и Sasquatch Pro — отдельно. Ваше местоположение и личность никогда не участвуют в тихом платеже.',
|
||||
},
|
||||
statusUi: {
|
||||
quickStatus: 'Быстрый статус',
|
||||
skating: 'Катаюсь',
|
||||
skatingDesc: 'Сейчас катается',
|
||||
filming: 'Снимаю',
|
||||
filmingDesc: 'Снимает трюки',
|
||||
lookingForSesh: 'Ищу сессию',
|
||||
lookingForSeshDesc: 'Хочет покататься с другими',
|
||||
coaching: 'Коучинг',
|
||||
coachingDesc: 'Учит/тренирует',
|
||||
chilling: 'Отдыхаю',
|
||||
chillingDesc: 'Тусуется на Spot',
|
||||
onMyWay: 'В пути',
|
||||
onMyWayDesc: 'Едет на Spot',
|
||||
takingABreak: 'Перерыв',
|
||||
takingABreakDesc: 'Отдыхает/пьёт воду',
|
||||
doneForToday: 'На сегодня всё',
|
||||
doneForTodayDesc: 'Закончил кататься',
|
||||
},
|
||||
};
|
||||
|
||||
export default ruBatch7;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,622 @@
|
|||
/** ru — batch 8. Filled by the translation pass; empty until then. */
|
||||
const ruBatch8 = {};
|
||||
/** ru — batch 8. */
|
||||
const ruBatch8 = {
|
||||
deckCostUi: {
|
||||
presetPrompt: 'Назовите этот пресет',
|
||||
presetDefaultName: 'Пресет {{n}}',
|
||||
summaryCopied: 'Сводка скопирована',
|
||||
couldNotCopy: 'Не удалось скопировать',
|
||||
resetConfirm: 'Сбросить всё к значениям примера?',
|
||||
logoTooLarge: 'Логотип слишком большой (макс. 500 КБ)',
|
||||
loginToFill: 'Войдите, чтобы заполнить из профиля Nostr',
|
||||
filledFromProfile: 'Заполнено из вашего профиля Nostr',
|
||||
warnRetailBelowOne: 'Розничная наценка ниже 1× — вы продадите себе в убыток.',
|
||||
warnWholesaleAboveRetail: 'Оптовая наценка должна быть ниже розничной.',
|
||||
warnZeroBoards: '{{count}} строк(и) используют 0 досок — себестоимость этой строки игнорируется.',
|
||||
warnFixedNoBoards: 'Заданы фиксированные месячные расходы, но досок/мес = 0, поэтому стоимость операций игнорируется.',
|
||||
warnNoMaterials: 'Нет затрат на материалы — добавьте хотя бы один материал.',
|
||||
warnEquipmentOverhead: 'Оборудование + накладные превышают 60% себестоимости — эта модель предполагает большой объём; проверьте количество досок.',
|
||||
warnOneBoard: 'Часть оборудования распределена всего на одну доску — увеличьте количество досок для амортизации.',
|
||||
templateStarterName: 'Хобби-старт',
|
||||
templateStarterBlurb: 'Несколько строк, без фиксированных расходов',
|
||||
templateShopName: 'Небольшая мастерская',
|
||||
templateShopBlurb: 'Полная таблица с арендой и накладными',
|
||||
currency: 'Валюта',
|
||||
noCurrencyMatches: 'Нет совпадающих валют.',
|
||||
ratesUnavailable: 'Живые курсы недоступны — переключение только меняет обозначение.',
|
||||
liveRates: 'живые курсы BTC · sats включены',
|
||||
chipCost: 'себестоимость',
|
||||
chipSell: 'продажа',
|
||||
chipTotal: 'итого',
|
||||
startFrom: 'Начать с',
|
||||
advancedToggleHint: 'Показать ставки и отходы по операциям, настройку партии, налог и кривую стоимости от количества',
|
||||
advanced: 'Продвинутый',
|
||||
simple: 'Простой',
|
||||
sectionLabor: 'Труд',
|
||||
sectionEquipment: 'Оборудование',
|
||||
sectionOperations: 'Операционные расходы',
|
||||
sectionMaterials: 'Материалы',
|
||||
sectionProcesses: 'Стоимость процессов',
|
||||
sectionPackaging: 'Упаковка',
|
||||
sectionMargins: 'Наценки',
|
||||
subtotalLoaded: '{{value}}/ч с начислениями',
|
||||
subtotalPerBoard: '{{value}}/доска',
|
||||
hourlyRate: 'Ставка в час ({{unit}})',
|
||||
labourBurden: 'Нагрузка на труд (×)',
|
||||
loadedRate: 'Полная ставка',
|
||||
loadedRateHintBefore: 'Полная ставка = зарплата × нагрузка (налоги и страховые взносы работодателя на труд). Аренда и счета идут в раздел ',
|
||||
loadedRateHintAfter: ' — не считайте их дважды.',
|
||||
colEquipment: 'Оборудование',
|
||||
colCostUnit: 'Стоимость ({{unit}})',
|
||||
colCost: 'Стоимость',
|
||||
colSetupH: 'Настройка (ч)',
|
||||
colLifetimeBoards: 'Досок за срок службы',
|
||||
colPerBoard: 'На доску',
|
||||
colMaterial: 'Материал',
|
||||
colOrderUnit: 'Заказ ({{unit}})',
|
||||
colShipUnit: 'Доставка ({{unit}})',
|
||||
colBoardsOrder: 'Досок / заказ',
|
||||
colOrderM: 'Заказ (м)',
|
||||
colUnloadM: 'Разгрузка (м)',
|
||||
colOrder: 'Заказ',
|
||||
colShipping: 'Доставка',
|
||||
colOrderMin: 'Заказ (мин)',
|
||||
colUnloadMin: 'Разгрузка (мин)',
|
||||
colProcess: 'Процесс',
|
||||
colTimeM: 'Время (м)',
|
||||
colBoardsRun: 'Досок / прогон',
|
||||
colRateHr: 'Ставка/ч (0 = цех)',
|
||||
colRateHrShort: 'Ставка/ч',
|
||||
colScrapPct: 'Отходы %',
|
||||
colTimeMin: 'Время (мин)',
|
||||
colPackaging: 'Упаковка',
|
||||
colTimeBoardM: 'Время/доска (м)',
|
||||
colTimeBoardMin: 'Время/доска (мин)',
|
||||
colMaterialsBoardUnit: 'Материалы/доска ({{unit}})',
|
||||
colMaterialsBoard: 'Материалы/доска',
|
||||
equipmentPerBoard: 'Оборудование на доску:',
|
||||
materialsPerBoard: 'Материалы на доску:',
|
||||
processesPerBoard: 'Процессы на доску:',
|
||||
packagingPerBoard: 'Упаковка на доску:',
|
||||
perBoard: 'На доску:',
|
||||
addEquipment: 'Добавить оборудование',
|
||||
addMaterial: 'Добавить материал',
|
||||
addProcess: 'Добавить процесс',
|
||||
addPackagingStep: 'Добавить этап упаковки',
|
||||
duplicate: 'Дублировать',
|
||||
remove: 'Удалить',
|
||||
boardsPerMonth: 'Досок / месяц',
|
||||
rentPerMonth: 'Аренда / месяц',
|
||||
utilitiesPerMonth: 'Коммунальные / месяц',
|
||||
subscriptionsPerMonth: 'Подписки / месяц',
|
||||
markup: 'Наценка (×)',
|
||||
wholesaleMarkup: 'Оптовая наценка (×)',
|
||||
scrapWaste: 'Отходы / потери (%)',
|
||||
quantityDecks: 'Количество (decks)',
|
||||
targetMonthlyProfit: 'Целевая месячная прибыль ({{unit}})',
|
||||
costNoPackaging: 'Себестоимость / доска (без упаковки)',
|
||||
costWithPackaging: 'Себестоимость / доска (с упаковкой)',
|
||||
batchSetupHours: 'Настройка партии (ч / прогон)',
|
||||
batchSetupCost: 'Стоимость настройки партии ({{unit}} / прогон)',
|
||||
taxVat: 'Налог / НДС (%)',
|
||||
quoteTax: 'Налог в предложении',
|
||||
includedInPrice: 'Включён в цену',
|
||||
addedOnTop: 'Добавляется сверху',
|
||||
setupPerBoard: 'Настройка / доска',
|
||||
marginNoteBefore: 'Наценка {{markup}}× ≈ ',
|
||||
grossMargin: '{{pct}}% валовой маржи',
|
||||
marginNoteAfter: ' · отходы {{waste}}% распределены по годным доскам.',
|
||||
sellingPriceNoPackaging: 'Цена продажи · без упаковки',
|
||||
sellingPriceWithPackaging: 'Цена продажи · с упаковкой',
|
||||
profitPerDeck: 'Прибыль / deck',
|
||||
wholesalePerDeck: 'Опт / deck',
|
||||
orderTotalQty: 'Сумма заказа ({{qty}})',
|
||||
orderTotal: 'Сумма заказа',
|
||||
breakeven: 'Точка безубыточности',
|
||||
breakevenPerMonth: '{{count}}/мес',
|
||||
targetDecksHint: 'Чтобы получить {{amount}}/месяц сверх фиксированных расходов, продавайте {{decks}} decks/месяц.',
|
||||
priceIncludesTax: 'Цена включает налог {{pct}}%: {{amount}} от общей суммы.',
|
||||
plusTax: 'Плюс налог {{pct}}%: {{amount}} → итого {{total}}.',
|
||||
costVsQuantity: 'Стоимость от количества (настройка амортизирована)',
|
||||
deckOne: 'deck',
|
||||
deckOther: 'decks',
|
||||
perDeckSuffix: '/ deck',
|
||||
orderSuffix: 'заказ {{amount}}',
|
||||
shippingNotIncluded: 'Не включает доставку покупателю.',
|
||||
clientQuoteDetails: 'Детали предложения клиенту (для PDF)',
|
||||
fillFromProfileTitle: 'Заполнить имя, сайт, NIP-05, Lightning и npub из профиля Nostr',
|
||||
fillFromProfile: 'Заполнить из профиля',
|
||||
businessName: 'Название бизнеса / мастерской',
|
||||
email: 'Email',
|
||||
phone: 'Телефон',
|
||||
website: 'Сайт',
|
||||
address: 'Адрес',
|
||||
quoteNumber: 'Предложение №',
|
||||
nextNumber: 'Следующий номер',
|
||||
validDays: 'Действительно (дней)',
|
||||
nip05: 'NIP-05',
|
||||
lightningAddress: 'Lightning-адрес',
|
||||
nostrNpub: 'Nostr (npub)',
|
||||
depositPct: 'Предоплата вперёд (%)',
|
||||
deliveryTerms: 'Условия поставки (Инкотермс, необязательно)',
|
||||
paymentMethods: 'Способы оплаты',
|
||||
paymentTerms: 'Условия оплаты',
|
||||
paymentDetails: 'Платёжные реквизиты',
|
||||
notesTerms: 'Заметки / условия',
|
||||
changeLogo: 'Изменить логотип',
|
||||
addLogo: 'Добавить логотип',
|
||||
incotermNone: 'Нет',
|
||||
incotermExw: 'EXW — самовывоз у продавца',
|
||||
incotermFca: 'FCA — передан перевозчику покупателя',
|
||||
incotermDap: 'DAP — доставлено по адресу покупателя',
|
||||
incotermDdp: 'DDP — доставлено, пошлины оплачены',
|
||||
payMethodCash: 'Наличные',
|
||||
payMethodLightning: 'Lightning',
|
||||
payMethodCashu: 'Cashu',
|
||||
payMethodBank: 'Банковский перевод',
|
||||
payMethodCard: 'Карта',
|
||||
payMethodOther: 'Другое',
|
||||
listDeckAtPrice: 'Выставить deck по этой цене',
|
||||
getItMade: 'Заказать изготовление — найти билдера',
|
||||
savePreset: 'Сохранить пресет',
|
||||
load: 'Загрузить',
|
||||
export: 'Экспорт',
|
||||
import: 'Импорт',
|
||||
reset: 'Сбросить',
|
||||
deletePreset: 'Удалить пресет',
|
||||
exportPdfFull: 'PDF — полная таблица',
|
||||
exportPdfQuote: 'PDF — предложение клиенту',
|
||||
exportPng: 'Изображение PNG',
|
||||
exportXlsx: 'Книга XLSX',
|
||||
exportCsv: 'CSV (таблица)',
|
||||
exportMarkdown: 'Markdown',
|
||||
exportJson: 'JSON (резервная копия)',
|
||||
exportCopySummary: 'Копировать сводку',
|
||||
},
|
||||
becomeRolesUi: {
|
||||
artist: {
|
||||
seoTitle: 'Стать дизайнером / художником - SkateSpots',
|
||||
seoDescription: 'Разместите свой скейт-дизайн и искусство — графику для досок, логотипы, плакаты, мерч и не только.',
|
||||
heading: 'Дизайнер / Художник',
|
||||
tagline: 'Графика для досок, логотипы, плакаты, мерч — покажите своё искусство сцене',
|
||||
noun: 'художник',
|
||||
rateLabel: 'Ставка',
|
||||
portfolioLabel: 'Портфолио / ссылка на магазин',
|
||||
sectionWhatYouMake: 'Что вы создаёте',
|
||||
sectionMedium: 'Материал / техника',
|
||||
sectionSoftwareTools: 'Софт и инструменты',
|
||||
deliverablesPlaceholder: 'напр. файлы для печати, исходники, графика для досок',
|
||||
turnaroundPlaceholder: 'напр. 3–5 дней',
|
||||
},
|
||||
graffiti: {
|
||||
seoTitle: 'Предложить граффити / муралы - SkateSpots',
|
||||
seoDescription: 'Разместите свои граффити и муралы — работы, настенные росписи, арт для скейт-парков и не только.',
|
||||
heading: 'Художник граффити / муралов',
|
||||
tagline: 'Работы, муралы, арт для скейт-парков — раскрасьте сцену',
|
||||
noun: 'граффити-художник',
|
||||
rateLabel: 'Ставка',
|
||||
portfolioLabel: 'Портфолио (IG, сайт)',
|
||||
sectionStyle: 'Стиль',
|
||||
sectionMedium: 'Техника',
|
||||
sectionWorkContext: 'Контекст работы',
|
||||
crewLabel: 'Crew граффити',
|
||||
crewPlaceholder: 'Ваш райтинг-Crew (необязательно)',
|
||||
crewHelper: 'Отдельно от вашего скейт-Crew — те, с кем вы рисуете.',
|
||||
surfacesPlaceholder: 'напр. бетон, кирпич, разрешённые стены',
|
||||
maxSizePlaceholder: 'напр. до 10 м',
|
||||
},
|
||||
musician: {
|
||||
seoTitle: 'Добавить музыкальный профиль - SkateSpots',
|
||||
seoDescription: 'Катаетесь и делаете музыку? Разместите свою группу или сольный проект — жанры, инструменты и ссылки.',
|
||||
heading: 'Музыкант / Группа',
|
||||
tagline: 'Катаетесь и делаете музыку? Получайте заказы на демо, джемы и афтерпати',
|
||||
noun: 'музыкант',
|
||||
rateLabel: 'Ставка за выступление',
|
||||
portfolioLabel: 'Сайт / ссылка на EPK',
|
||||
sectionGenre: 'Жанр',
|
||||
sectionInstruments: 'Инструменты и роль',
|
||||
actLabel: 'Тип проекта',
|
||||
actPlaceholder: 'соло / группа / dj / продюсер',
|
||||
spotifyLabel: 'Spotify',
|
||||
spotifyPlaceholder: 'https://open.spotify.com/…',
|
||||
bandcampLabel: 'Bandcamp',
|
||||
bandcampPlaceholder: 'https://…bandcamp.com',
|
||||
soundcloudLabel: 'SoundCloud',
|
||||
soundcloudPlaceholder: 'https://soundcloud.com/…',
|
||||
youtubeLabel: 'YouTube',
|
||||
youtubePlaceholder: 'https://youtube.com/…',
|
||||
setLengthPlaceholder: 'напр. 30–45 мин',
|
||||
techRiderPlaceholder: 'напр. PA, микрофоны, бэклайн',
|
||||
},
|
||||
judge: {
|
||||
seoTitle: 'Судить скейт-события - SkateSpots',
|
||||
seoDescription: 'Разместите себя как судью скейт-событий — Game of S.K.A.T.E., best trick, контесты, любительские серии и этапы мирового тура. Получайте заказы на честные, авторитетные события.',
|
||||
heading: 'Судья скейт-событий',
|
||||
tagline: 'От Game of S.K.A.T.E. на плоскаче до World Destruction Tour — судите честно и авторитетно',
|
||||
noun: 'судья',
|
||||
rateLabel: 'Дневная ставка / гонорар',
|
||||
portfolioLabel: 'Архив результатов / ссылка на профиль',
|
||||
sectionEventFormats: 'Форматы событий',
|
||||
sectionSpecialty: 'Специализация',
|
||||
sectionLevelCircuit: 'Уровень / серия',
|
||||
eventsJudgedLabel: 'Отсужено событий',
|
||||
eventsJudgedPlaceholder: 'напр. 40+ контестов, 3 этапа мирового тура',
|
||||
eventsJudgedHelper: 'Заметные события, контесты или туры, которые вы судили.',
|
||||
travelPlaceholder: 'напр. регион / вся страна / международный',
|
||||
certificationsPlaceholder: 'напр. национальный судейский курс',
|
||||
},
|
||||
organizer: {
|
||||
seoTitle: 'Организовывать скейт-события - SkateSpots',
|
||||
seoDescription: 'Разместите себя как организатора скейт-событий — стрит-джемы, best trick, контесты, сходки, демо и этапы туров. Вас найдут и пригласят провести сессию.',
|
||||
heading: 'Организатор событий',
|
||||
tagline: 'Джемы, контесты, сходки и демо — проведите сессию и объедините сцену',
|
||||
noun: 'организатор',
|
||||
rateLabel: 'Гонорар / бюджет',
|
||||
portfolioLabel: 'Прошлые события / ссылка на результаты',
|
||||
sectionEventTypes: 'Типы событий',
|
||||
sectionWhatYouHandle: 'Что вы берёте на себя',
|
||||
sectionScale: 'Масштаб',
|
||||
eventsHostedLabel: 'Организовано событий',
|
||||
eventsHostedPlaceholder: 'напр. 25 джемов, 3 городских контеста',
|
||||
eventsHostedHelper: 'Заметные события, контесты или сходки, которые вы проводили.',
|
||||
insurancePlaceholder: 'напр. гражданская ответственность включена',
|
||||
permitsPlaceholder: 'напр. разрешения оформлены',
|
||||
},
|
||||
tattoo: {
|
||||
seoTitle: 'Стать тату-мастером - SkateSpots',
|
||||
seoDescription: 'Разместите свои тату-работы для скейт-сцены — стили, флэши, кастом и не только.',
|
||||
heading: 'Тату-мастер',
|
||||
tagline: 'Тату для сцены — флэш, кастом, тонкие линии и не только',
|
||||
noun: 'тату-мастер',
|
||||
rateLabel: 'Ставка / в час',
|
||||
portfolioLabel: 'Портфолио (IG, сайт)',
|
||||
sectionStyles: 'Стили',
|
||||
sectionMethod: 'Метод',
|
||||
studioLabel: 'Студия / салон',
|
||||
studioPlaceholder: 'Название студии (необязательно)',
|
||||
booksOpenLabel: 'Запись открыта',
|
||||
booksOpenHelper: 'Принимаете ли вы сейчас записи?',
|
||||
depositPlaceholder: 'напр. 50 EUR без возврата',
|
||||
minimumPlaceholder: 'напр. 80 EUR',
|
||||
},
|
||||
trainer: {
|
||||
seoTitle: 'Стать тренером / физио - SkateSpots',
|
||||
seoDescription: 'Помогите скейтерам стать сильнее и оставаться здоровыми — сила, мобильность, профилактика травм и восстановление.',
|
||||
heading: 'Тренер / Физио',
|
||||
tagline: 'Сила, мобильность, профилактика травм и восстановление для скейтеров',
|
||||
noun: 'тренер',
|
||||
rateLabel: 'Ставка / за сессию',
|
||||
portfolioLabel: 'Профиль / ссылка для записи',
|
||||
sectionFocus: 'Направление',
|
||||
sectionInjuries: 'Травмы, с которыми работаете',
|
||||
sectionCredentialsSetting: 'Квалификация и условия',
|
||||
credentialsPlaceholder: 'напр. BSc физиотерапии, CSCS…',
|
||||
credentialsHelper: 'Указывайте реальную квалификацию — скейтеры доверяют проверяемым документам.',
|
||||
remoteLabel: 'Удалённо / онлайн',
|
||||
remoteHelper: 'Предлагаете ли онлайн-тренировки или консультации?',
|
||||
modalitiesPlaceholder: 'напр. мануальная терапия, ОФП, сухое иглоукалывание',
|
||||
},
|
||||
barber: {
|
||||
seoTitle: 'Стать барбером / парикмахером - SkateSpots',
|
||||
seoDescription: 'Разместите свой барбершоп или кресло для скейт-сцены — стрижки, фейды, стрижка бороды, окрашивание и не только. Получайте записи от скейтеров.',
|
||||
heading: 'Барбер / Парикмахер',
|
||||
tagline: 'Стрижки, фейды и борода для сцены — кресло в салоне или выезд',
|
||||
noun: 'барбер',
|
||||
rateLabel: 'Цена / стрижка',
|
||||
portfolioLabel: 'Галерея стрижек / ссылка на IG',
|
||||
sectionWhatYouOffer: 'Что вы предлагаете',
|
||||
sectionSignatureStyles: 'Фирменные стили',
|
||||
sectionSetting: 'Условия',
|
||||
studioLabel: 'Салон / студия',
|
||||
studioPlaceholder: 'Название салона или студии (необязательно)',
|
||||
booksOpenLabel: 'Запись открыта',
|
||||
booksOpenHelper: 'Принимаете ли вы сейчас записи?',
|
||||
durationPlaceholder: 'напр. 30–45 мин',
|
||||
},
|
||||
},
|
||||
weatherUi: {
|
||||
condition: {
|
||||
clearSky: 'Ясное небо',
|
||||
mainlyClear: 'Преимущественно ясно',
|
||||
partlyCloudy: 'Переменная облачность',
|
||||
overcast: 'Пасмурно',
|
||||
foggy: 'Туман',
|
||||
depositingRimeFog: 'Туман с изморозью',
|
||||
lightDrizzle: 'Слабая морось',
|
||||
moderateDrizzle: 'Умеренная морось',
|
||||
denseDrizzle: 'Сильная морось',
|
||||
lightFreezingDrizzle: 'Слабая ледяная морось',
|
||||
denseFreezingDrizzle: 'Сильная ледяная морось',
|
||||
slightRain: 'Небольшой дождь',
|
||||
moderateRain: 'Умеренный дождь',
|
||||
heavyRain: 'Сильный дождь',
|
||||
lightFreezingRain: 'Слабый ледяной дождь',
|
||||
heavyFreezingRain: 'Сильный ледяной дождь',
|
||||
slightSnow: 'Небольшой снег',
|
||||
moderateSnow: 'Умеренный снег',
|
||||
heavySnow: 'Сильный снег',
|
||||
snowGrains: 'Снежная крупа',
|
||||
slightRainShowers: 'Небольшие ливни',
|
||||
moderateRainShowers: 'Умеренные ливни',
|
||||
violentRainShowers: 'Сильные ливни',
|
||||
slightSnowShowers: 'Небольшие снегопады',
|
||||
heavySnowShowers: 'Сильные снегопады',
|
||||
thunderstorm: 'Гроза',
|
||||
thunderstormSlightHail: 'Гроза с небольшим градом',
|
||||
thunderstormHeavyHail: 'Гроза с сильным градом',
|
||||
unknown: 'Неизвестно',
|
||||
},
|
||||
aqi: {
|
||||
good: 'Хорошо',
|
||||
moderate: 'Умеренно',
|
||||
unhealthySensitive: 'Вредно для чувствительных групп',
|
||||
unhealthy: 'Вредно',
|
||||
veryUnhealthy: 'Очень вредно',
|
||||
hazardous: 'Опасно',
|
||||
},
|
||||
skateability: {
|
||||
perfect: 'Идеально',
|
||||
good: 'Хорошо',
|
||||
okay: 'Нормально',
|
||||
poor: 'Плохо',
|
||||
bad: 'Очень плохо',
|
||||
unrideable: 'Некатабельно',
|
||||
},
|
||||
reason: {
|
||||
currentlyRaining: 'Сейчас идёт дождь',
|
||||
raining: 'Дождь',
|
||||
snowing: 'Снег',
|
||||
thunderstorm: 'Гроза',
|
||||
freezingTemperature: 'Минусовая температура',
|
||||
veryCold: 'Очень холодно',
|
||||
extremelyHot: 'Чрезвычайно жарко',
|
||||
veryHot: 'Очень жарко',
|
||||
veryStrongWind: 'Очень сильный ветер',
|
||||
strongWind: 'Сильный ветер',
|
||||
moderateWind: 'Умеренный ветер',
|
||||
veryUnhealthyAir: 'Очень грязный воздух',
|
||||
unhealthyAir: 'Грязный воздух',
|
||||
moderateAirQuality: 'Среднее качество воздуха',
|
||||
veryHumid: 'Очень влажно',
|
||||
humid: 'Влажно',
|
||||
extremeUv: 'Экстремальный УФ — используйте солнцезащитный крем',
|
||||
highUv: 'Высокий УФ — рекомендуется защита от солнца',
|
||||
perfectConditions: 'Идеальные условия для катания',
|
||||
},
|
||||
},
|
||||
skaterLabelsUi: {
|
||||
stance: {
|
||||
regular: 'Regular',
|
||||
goofy: 'Goofy',
|
||||
},
|
||||
style: {
|
||||
street: 'Street',
|
||||
park: 'Park',
|
||||
vert: 'Vert',
|
||||
transition: 'Transition',
|
||||
bowl: 'Bowl',
|
||||
cruising: 'Cruising',
|
||||
downhill: 'Downhill',
|
||||
freestyle: 'Freestyle',
|
||||
ledges: 'Ledges',
|
||||
stairs: 'Stairs',
|
||||
diy: 'DIY',
|
||||
},
|
||||
level: {
|
||||
grom: 'Grom',
|
||||
intermediate: 'Средний',
|
||||
advanced: 'Продвинутый',
|
||||
ripper: 'Ripper',
|
||||
},
|
||||
sponsor: {
|
||||
title: 'Титульный спонсор',
|
||||
gold: 'Золото',
|
||||
silver: 'Серебро',
|
||||
partner: 'Партнёр',
|
||||
},
|
||||
},
|
||||
notifyUi: {
|
||||
activity: {
|
||||
zappedWithAmount: 'Вам прислали zap на {{sats}} sats',
|
||||
zapped: 'Вам прислали zap',
|
||||
liked: 'Кому-то понравился ваш пост',
|
||||
reposted: 'Кто-то сделал репост вашего поста',
|
||||
mentioned: 'Кто-то упомянул вас',
|
||||
replied: 'Кто-то ответил вам',
|
||||
rsvp: 'Кто-то подтвердил участие в вашем событии',
|
||||
eventUpdated: 'Событие, на которое вы идёте, обновлено',
|
||||
newActivity: 'Новая активность',
|
||||
tapToOpen: 'Нажмите, чтобы открыть SkateSpots',
|
||||
},
|
||||
crew: {
|
||||
inviteTitle: 'Приглашение в Crew',
|
||||
inviteBody: 'Вас приглашают в {{crew}}',
|
||||
addedTitle: 'Вас добавили в Crew',
|
||||
addedBody: '{{crew}} — подтвердите, чтобы присоединиться',
|
||||
joinRequestTitle: 'Запрос на вступление',
|
||||
joinRequestBody: 'Кто-то хочет присоединиться к {{name}}',
|
||||
},
|
||||
dm: {
|
||||
title: 'Новое личное сообщение',
|
||||
body: 'Нажмите, чтобы прочитать',
|
||||
},
|
||||
trade: {
|
||||
confirm: 'Подтвердите сделку',
|
||||
confirmed: 'Сделка подтверждена',
|
||||
newOffer: 'Новое предложение по вашему объявлению',
|
||||
counter: 'Встречное предложение',
|
||||
accepted: 'Предложение принято 🎉',
|
||||
declined: 'Предложение отклонено',
|
||||
withdrawn: 'Предложение отозвано',
|
||||
},
|
||||
newsletter: {
|
||||
drop: 'Новый выпуск SkateSpots',
|
||||
},
|
||||
summary: {
|
||||
moreUpdates: 'Ещё {{count}} обновлений',
|
||||
openToCatchUp: 'Откройте SkateSpots, чтобы наверстать',
|
||||
},
|
||||
},
|
||||
legacyMiscUi: {
|
||||
hostingGoing: '{{count}} идут',
|
||||
hostingInterested: '{{count}} интересуются',
|
||||
hostingPostUpdate: 'Опубликовать обновление',
|
||||
hostingEdit: 'Редактировать',
|
||||
hostingLoginToSee: 'Войдите, чтобы увидеть события, которые вы проводите.',
|
||||
hostingEmptyTitle: 'Вы пока ничего не проводите',
|
||||
hostingEmptyBody: 'Проведите джем, контест или сессию. Создайте событие — скейтеры смогут откликнуться, получать обновления и приехать.',
|
||||
hostingCreateEvent: 'Создать событие',
|
||||
hostingUpcoming: 'Предстоящие · {{count}}',
|
||||
hostingPast: 'Прошедшие · {{count}}',
|
||||
sponsorPartners: 'Партнёры',
|
||||
sponsorTitleSponsor: 'Титульный спонсор',
|
||||
sponsorPlatformPartners: 'Партнёры платформы',
|
||||
reportsUntitled: '(без названия)',
|
||||
reportsResolveFailed: 'Не удалось найти событие из жалобы (возможно, оно удалено, или жалоба относится к профилю, а не к посту).',
|
||||
reportsLookAtIt: 'Посмотреть',
|
||||
reportsNoReports: 'Жалоб пока нет. Либо всё в порядке, либо никто не нашёл кнопку.',
|
||||
statusSetYourStatus: 'Установите статус',
|
||||
statusSetDesc: 'Расскажите другим, чем вы заняты. Ваш статус будет виден в профиле и в связанных спотах.',
|
||||
statusClear: 'Очистить',
|
||||
statusOrWriteOwn: 'Или напишите свой',
|
||||
statusCustomPlaceholder: 'Чем вы заняты?',
|
||||
statusLinkToSpot: 'Привязать к Spot (необязательно)',
|
||||
statusSpotSelected: 'Spot выбран',
|
||||
statusSearchSpots: 'Поиск спотов...',
|
||||
statusNoSpotsFound: 'Споты не найдены.',
|
||||
statusSelectSpot: 'Выберите Spot',
|
||||
statusAutoClearAfter: 'Автоочистка через: {{time}}',
|
||||
statusExpMin: '{{count}} мин',
|
||||
statusExpOneHour: '1 час',
|
||||
statusExpHours: '{{count}} ч',
|
||||
statusExpOneDay: '1 день',
|
||||
statusExpDays: '{{count}} дн.',
|
||||
statusSlider15: '15 мин',
|
||||
statusSlider1h: '1 ч',
|
||||
statusSlider4h: '4 ч',
|
||||
statusSlider24h: '24 ч',
|
||||
statusSetting: 'Установка статуса...',
|
||||
statusSet: 'Установить статус',
|
||||
statusSomethingWrong: 'Что-то пошло не так',
|
||||
seoProfileTitle: 'Профиль - SkateSpots',
|
||||
seoViewProfile: 'Просмотреть профиль.',
|
||||
bannerAlt: 'Баннер',
|
||||
openInCordn: 'Открыть в Cordn',
|
||||
modHelp: 'Скрыть публикует org.skatespots.moderation / hidden; Подтвердить публикует … / verified; Отменить публикует … / cleared (возврат к нейтральному). Все три — публичные обратимые метки, ничего никогда не удаляется с релеев.',
|
||||
zapNoActiveMint: 'Активный Cashu-минт не найден.',
|
||||
altProfile: 'Профиль',
|
||||
altCardPreview: 'Предпросмотр карты',
|
||||
altCard: 'Карта',
|
||||
altCaptured: 'Снято',
|
||||
ariaPrevPhoto: 'Предыдущее фото',
|
||||
ariaNextPhoto: 'Следующее фото',
|
||||
ariaCommentOptions: 'Действия с комментарием',
|
||||
ariaMessageConversation: 'Переписка',
|
||||
exportTitle: 'SkateSpots — Калькулятор себестоимости Deck',
|
||||
exportQuoteTitle: 'ПРЕДЛОЖЕНИЕ',
|
||||
exportPngTitle: 'Себестоимость Deck',
|
||||
exportMarkdownTitle: 'Калькулятор себестоимости Deck',
|
||||
exportSectionLabor: 'Труд',
|
||||
exportSectionEquipment: 'Оборудование',
|
||||
exportSectionOperations: 'Операционные расходы',
|
||||
exportSectionMaterials: 'Материалы',
|
||||
exportSectionProcesses: 'Стоимость процессов',
|
||||
exportSectionPackaging: 'Упаковка',
|
||||
exportSectionResult: 'Результат',
|
||||
exportLabelOperations: 'Операции',
|
||||
exportLabelProcesses: 'Процессы',
|
||||
exportKvHourlyRate: 'Ставка в час',
|
||||
exportKvLabourBurden: 'Нагрузка на труд',
|
||||
exportKvLoadedRate: 'Полная ставка',
|
||||
exportKvEquipmentPerBoard: 'Оборудование на доску',
|
||||
exportKvBoardsPerMonth: 'Досок / месяц',
|
||||
exportKvRentPerMonth: 'Аренда / месяц',
|
||||
exportKvUtilitiesPerMonth: 'Коммунальные / месяц',
|
||||
exportKvSubscriptionsPerMonth: 'Подписки / месяц',
|
||||
exportKvPerBoard: 'На доску',
|
||||
exportKvMaterialsPerBoard: 'Материалы на доску',
|
||||
exportKvProcessesPerBoard: 'Процессы на доску',
|
||||
exportKvPackagingPerBoard: 'Упаковка на доску',
|
||||
exportKvMarkup: 'Наценка',
|
||||
exportMarkupValue: '{{markup}}× (≈ {{pct}}% валовой маржи)',
|
||||
exportKvWasteEffective: 'Отходы (эффективные)',
|
||||
exportKvCostNoPack: 'Себестоимость / доска (без упаковки)',
|
||||
exportKvCostWithPack: 'Себестоимость / доска (с упаковкой)',
|
||||
exportKvBatchSetupPerBoard: 'Настройка партии / доска',
|
||||
exportKvTax: 'Налог ({{pct}}%)',
|
||||
exportKvTaxIncluded: 'Налог ({{pct}}%, включён)',
|
||||
exportKvSellingNoPack: 'Цена продажи (без упаковки)',
|
||||
exportKvSellingWithPack: 'Цена продажи (с упаковкой)',
|
||||
exportShippingNote: 'Не включает доставку покупателю.',
|
||||
exportGeneratedBy: 'Создано в SkateSpots · skate-spots.org',
|
||||
exportGeneratedWith: 'Создано с помощью SkateSpots · skate-spots.org',
|
||||
exportDetailSetup: '+ {{hours}} ч настройки',
|
||||
exportDetailBoards: '{{boards}} досок',
|
||||
exportDetailShip: '+ {{amount}} доставка',
|
||||
exportDetailMinutes: '{{minutes}} мин',
|
||||
exportDetailPerBoards: '/ {{boards}} досок',
|
||||
exportDetailScrap: '{{pct}}% отходов',
|
||||
exportDetailMaterials: '{{materials}} материалов',
|
||||
exportQuoteRef: '№ {{ref}}',
|
||||
exportQuoteLineItem: 'Кастомный скейтборд deck',
|
||||
exportQuoteLineItemQty: 'Кастомный скейтборд deck × {{qty}}',
|
||||
exportQuoteLineDesc: 'Собран вручную, отделан и упакован. Количество 1.',
|
||||
exportQuoteLineDescQty: 'Собран вручную, отделан и упакован. {{price}} за штуку.',
|
||||
exportQuoteSubtotal: 'Промежуточный итог',
|
||||
exportQuoteSubtotalQty: 'Промежуточный итог ({{qty}} decks)',
|
||||
exportQuoteTax: 'Налог / НДС ({{pct}}%)',
|
||||
exportQuoteTotal: 'Итого',
|
||||
exportQuoteTotalQty: 'Итого ({{qty}} decks)',
|
||||
exportQuoteIncludesTax: 'Включает налог {{pct}}% ({{amount}})',
|
||||
exportQuoteDeposit: 'Предоплата сейчас ({{pct}}%)',
|
||||
exportQuoteBalance: 'Остаток по завершении',
|
||||
exportQuotePayment: 'Оплата: {{value}}',
|
||||
exportQuoteLightning: 'Lightning: {{value}}',
|
||||
exportQuoteDetails: 'Реквизиты: {{value}}',
|
||||
exportQuoteTerms: 'Условия: {{value}}',
|
||||
exportQuoteDelivery: 'Доставка: {{value}}',
|
||||
exportQuoteValidUntil: 'Не включает доставку. Предложение действительно до {{date}}.',
|
||||
exportPngSellingWith: 'ЦЕНА ПРОДАЖИ · С УПАКОВКОЙ',
|
||||
exportPngSellingNo: 'ЦЕНА ПРОДАЖИ · БЕЗ УПАКОВКИ',
|
||||
exportPngCostWith: 'СЕБЕСТОИМОСТЬ / ДОСКА (С УПАКОВКОЙ)',
|
||||
exportPngDeposit: 'Предоплата {{pct}}%: {{amount}}',
|
||||
exportXlsxSummary: 'Сводка',
|
||||
exportXlsxCurrency: 'Валюта',
|
||||
exportXlsxDate: 'Дата',
|
||||
exportXlsxOperationsPerBoard: 'Операции на доску',
|
||||
exportColCost: 'Стоимость',
|
||||
exportColSetupH: 'Настройка (ч)',
|
||||
exportColBoards: 'Доски',
|
||||
exportColPerBoard: 'На доску',
|
||||
exportColMaterial: 'Материал',
|
||||
exportColOrderCost: 'Стоимость заказа',
|
||||
exportColShipping: 'Доставка',
|
||||
exportColOrderMin: 'Заказ (мин)',
|
||||
exportColUnloadMin: 'Разгрузка (мин)',
|
||||
exportColProcess: 'Процесс',
|
||||
exportColTimeMin: 'Время (мин)',
|
||||
exportColTimeBoardMin: 'Время/доска (мин)',
|
||||
exportColMaterialsBoard: 'Материалы/доска',
|
||||
exportCopyTitle: 'Себестоимость Deck — {{currency}}',
|
||||
exportCopyCostWith: 'Себестоимость / доска (с упаковкой): {{amount}}',
|
||||
exportCopySellingNo: 'Цена продажи (без упаковки): {{amount}}',
|
||||
exportCopySellingWith: 'Цена продажи (с упаковкой): {{amount}}',
|
||||
exportCopyBreakdown: 'Оборудование {{equipment}} · Операции {{operations}} · Материалы {{materials}} · Процессы {{processes}} · Упаковка {{packaging}}',
|
||||
exportMdHourlyRate: 'Ставка в час: {{value}}',
|
||||
exportMdLabourBurden: 'Нагрузка на труд: {{value}}',
|
||||
exportMdLoadedRate: 'Полная ставка: {{value}}',
|
||||
exportMdBoardsPerMonth: 'Досок/месяц: {{value}}',
|
||||
exportMdRent: 'Аренда: {{value}}',
|
||||
exportMdUtilities: 'Коммунальные: {{value}}',
|
||||
exportMdSubscriptions: 'Подписки: {{value}}',
|
||||
exportMdPerBoard: 'На доску: {{value}}',
|
||||
exportMdMarkupWaste: 'Наценка: {{markup}}× (≈ {{pct}}% валовой маржи) · Отходы: {{waste}}%',
|
||||
exportMdCostNoPack: 'Себестоимость/доска (без упаковки): {{value}}',
|
||||
exportMdCostWithPack: 'Себестоимость/доска (с упаковкой): {{value}}',
|
||||
exportMdBatchSetup: 'Настройка партии/доска: {{value}}',
|
||||
exportMdSellingNo: 'Цена продажи (без упаковки): {{value}}',
|
||||
exportMdSellingWith: 'Цена продажи (с упаковкой): {{value}}',
|
||||
exportMdDisclaimer: 'Не включает доставку покупателю. Создано в SkateSpots.',
|
||||
},
|
||||
};
|
||||
|
||||
export default ruBatch8;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ const ALL_LANGUAGES = [
|
|||
{ code: 'eu', label: 'Basque', flag: '🏴' },
|
||||
{ code: 'gl', label: 'Galician', flag: '🏴' },
|
||||
// Asian
|
||||
{ code: 'ko', label: 'Korean', flag: '🇰🇷' },
|
||||
{ code: 'ko', label: 'Korean', flag: '🇰🇵' },
|
||||
{ code: 'vi', label: 'Vietnamese', flag: '🇻🇳' },
|
||||
{ code: 'th', label: 'Thai', flag: '🇹🇭' },
|
||||
{ code: 'id', label: 'Indonesian', flag: '🇮🇩' },
|
||||
|
|
|
|||
Loading…
Reference in a new issue