1605 lines
87 KiB
TypeScript
1605 lines
87 KiB
TypeScript
/**
|
||
* Vietnamese (Tiếng Việt) — batch 5: The Lab service directory (labUi) + social
|
||
* (socialUi): crew chat, DMs, collectives, coordinators and vouches.
|
||
*
|
||
* Protocol and brand names (The Lab, Nostr, Lightning, Zap, sats, DM, NWC,
|
||
* NIP-05, Cordn, ContextVM, Cashu) stay English; Coach, Filmer, Photographer,
|
||
* Editor, Builder, Crew, Spot stay English; trick names stay English.
|
||
* Placeholders ({{...}}) and markdown/URLs are preserved.
|
||
*/
|
||
const viBatch5 = {
|
||
labUi: {
|
||
activeCount: '{{count}} đang hoạt động',
|
||
addMusicProfile: 'Thêm hồ sơ âm nhạc',
|
||
all: 'Tất cả',
|
||
clearAll: 'Xóa tất cả',
|
||
collective: 'Tập thể',
|
||
filters: 'Bộ lọc',
|
||
following: 'Đang theo dõi',
|
||
getRiderCard: 'Nhận thẻ Rider',
|
||
judgeEvents: 'Chấm sự kiện',
|
||
justASkater: 'Chỉ là một',
|
||
labForServices: "The Lab dành cho các dịch vụ. Duyệt & tham gia toàn bộ cộng đồng skater",
|
||
loginToOffer: 'Đăng nhập để cung cấp dịch vụ',
|
||
newest: 'Mới nhất',
|
||
noResults: 'Không có kết quả',
|
||
offer: 'Cung cấp',
|
||
offerBuilding: 'Cung cấp Xây dựng',
|
||
offerCoaching: 'Cung cấp Coaching',
|
||
offerCuts: 'Cung cấp Cắt tóc',
|
||
offerDesignArt: 'Cung cấp Thiết kế / Nghệ thuật',
|
||
offerEditing: 'Cung cấp Dựng phim',
|
||
offerFilming: 'Cung cấp Quay phim',
|
||
offerGraffiti: 'Cung cấp Graffiti',
|
||
offerPhotography: 'Cung cấp Nhiếp ảnh',
|
||
offerServices: 'Cung cấp dịch vụ',
|
||
yourProfiles: 'Hồ sơ Lab của bạn',
|
||
preview: {
|
||
button: 'Xem trước',
|
||
title: 'Xem trước trực tiếp',
|
||
desc: 'Đây là cách hồ sơ {{noun}} của bạn sẽ hiển thị sau khi xuất bản.',
|
||
untitled: 'Tên của bạn',
|
||
noBio: 'Chưa có tiểu sử — thêm một dòng về những gì bạn cung cấp.',
|
||
years: '{{count}} năm kinh nghiệm',
|
||
portfolio: 'Portfolio',
|
||
note: 'Chỉ xem trước — chưa có gì được xuất bản.',
|
||
},
|
||
draft: {
|
||
title: 'Bạn có bản nháp chưa lưu',
|
||
body: 'Tiếp tục từ chỗ bạn dừng lại — không có gì được xuất bản cho đến khi bạn nhấn Xuất bản.',
|
||
resume: 'Tiếp tục bản nháp',
|
||
discard: 'Bỏ bản nháp',
|
||
},
|
||
progress: {
|
||
title: 'Độ hoàn thiện hồ sơ',
|
||
count: 'Đã xong {{done}} trên {{total}}',
|
||
photo: 'Ảnh',
|
||
bio: 'Tiểu sử',
|
||
skills: 'Kỹ năng',
|
||
rate: 'Giá',
|
||
location: 'Vị trí',
|
||
contact: 'Liên hệ',
|
||
},
|
||
wizard: {
|
||
identity: 'Danh tính',
|
||
offer: 'Những gì bạn cung cấp',
|
||
rates: 'Giá cả',
|
||
contact: 'Liên hệ',
|
||
media: 'Phương tiện',
|
||
},
|
||
offerTattoo: 'Cung cấp Xăm',
|
||
offerTraining: 'Cung cấp Huấn luyện / Vật lý trị liệu',
|
||
organizeEvents: 'Tổ chức sự kiện',
|
||
resultsMany: '{{count}} kết quả',
|
||
resultsOne: '{{count}} kết quả',
|
||
searchCityPlaceholder: 'Thành phố…',
|
||
searchNamePlaceholder: 'Tên, tiểu sử…',
|
||
showResults: 'Hiện kết quả',
|
||
showResultsActive: 'Hiện kết quả · {{count}} đang hoạt động',
|
||
skaterWord: 'skater',
|
||
sortBy: 'Sắp xếp theo',
|
||
theCrew: 'Crew',
|
||
topRated: 'Đánh giá cao nhất',
|
||
trusted: 'Đáng tin cậy',
|
||
trustLevel: 'Mức độ tin cậy',
|
||
yearsExp: '{{count}} năm kinh nghiệm',
|
||
tabCoaches: 'Coach',
|
||
tabFilmers: 'Filmer',
|
||
tabPhoto: 'Nhiếp ảnh',
|
||
tabEditors: 'Editor',
|
||
tabBuilders: 'Builder',
|
||
tabArtists: 'Nghệ sĩ',
|
||
tabGraffiti: 'Graffiti',
|
||
tabTattoo: 'Xăm',
|
||
tabTrainers: 'Huấn luyện viên',
|
||
tabMusic: 'Âm nhạc',
|
||
tabJudges: 'Giám khảo',
|
||
tabOrganizers: 'Ban tổ chức',
|
||
tabBarbers: 'Thợ cắt tóc',
|
||
filterSkillsToLearn: 'Kỹ năng muốn học',
|
||
filterContentType: 'Loại nội dung',
|
||
filterEquipmentStyle: 'Thiết bị & Phong cách',
|
||
filterServices: 'Dịch vụ',
|
||
filterCamera: 'Camera',
|
||
filterLenses: 'Ống kính',
|
||
filterLighting: 'Ánh sáng',
|
||
filterSupportRig: 'Hỗ trợ & Giá đỡ',
|
||
filterStyle: 'Phong cách',
|
||
filterWhatTheyBuild: 'Họ xây dựng gì',
|
||
filterMaterialsTrade: 'Vật liệu & Nghề',
|
||
filterProjectScale: 'Quy mô dự án',
|
||
filterWhatTheyMake: 'Họ làm gì',
|
||
filterMedium: 'Chất liệu',
|
||
filterSoftwareTools: 'Phần mềm & Công cụ',
|
||
filterWorkContext: 'Bối cảnh làm việc',
|
||
filterMethod: 'Phương pháp',
|
||
filterFocus: 'Trọng tâm',
|
||
filterInjuriesTreated: 'Chấn thương điều trị',
|
||
filterCredentialsSetting: 'Bằng cấp & Bối cảnh',
|
||
filterGenre: 'Thể loại',
|
||
filterInstrumentsRole: 'Nhạc cụ & Vai trò',
|
||
filterEventFormats: 'Định dạng sự kiện',
|
||
filterSpecialty: 'Chuyên môn',
|
||
filterLevelCircuit: 'Cấp độ / Giải đấu',
|
||
filterEventTypes: 'Loại sự kiện',
|
||
filterWhatYouHandle: 'Bạn đảm nhận gì',
|
||
filterScale: 'Quy mô',
|
||
filterWhatTheyOffer: 'Họ cung cấp gì',
|
||
filterSignatureStyles: 'Phong cách đặc trưng',
|
||
filterSetting: 'Bối cảnh',
|
||
filterEditType: 'Loại dựng phim',
|
||
role: {
|
||
coach: 'Coach',
|
||
filmer: 'Filmer',
|
||
builder: 'Builder',
|
||
editor: 'Editor',
|
||
photographer: 'Photographer',
|
||
skater: 'Skater',
|
||
},
|
||
empty: {
|
||
footer: 'Có thắc mắc? Xem FAQ →',
|
||
loginSuffix: 'để tạo hồ sơ.',
|
||
coachesTitle: 'Chưa có Coach nào',
|
||
coachesBody: 'Hãy là người đầu tiên cung cấp dịch vụ huấn luyện skateboard trong khu vực của bạn.',
|
||
filmersTitle: 'Chưa có Filmer nào',
|
||
filmersBody: 'Hãy là người đầu tiên cung cấp dịch vụ quay phim skate — clip, full part, đưa tin cuộc thi và hơn thế nữa.',
|
||
photographersTitle: 'Chưa có Photographer nào',
|
||
photographersBody: 'Hãy là người đầu tiên cung cấp dịch vụ nhiếp ảnh skate trong khu vực của bạn — ảnh hành động, chuỗi ảnh, ảnh biên tập và hơn thế nữa.',
|
||
editorsTitle: 'Chưa có Editor nào',
|
||
editorsBody: 'Hãy là người đầu tiên cung cấp dịch vụ dựng video skate.',
|
||
buildersTitle: 'Chưa có Builder nào',
|
||
buildersBody: 'Hãy là người đầu tiên đăng dịch vụ xây dựng ramp, park hay DIY của bạn — bê tông, gỗ, thanh trượt và hơn thế nữa.',
|
||
artistsTitle: 'Chưa có nghệ sĩ nào',
|
||
artistsBody: 'Hãy là người đầu tiên cung cấp thiết kế ván, logo, poster và đồ lưu niệm cho cộng đồng.',
|
||
graffitiTitle: 'Chưa có nghệ sĩ graffiti nào',
|
||
graffitiBody: 'Hãy là người đầu tiên cung cấp tranh tường, mural và nghệ thuật skatepark trong khu vực của bạn.',
|
||
tattooTitle: 'Chưa có nghệ sĩ xăm nào',
|
||
tattooBody: 'Hãy là nghệ sĩ xăm văn hóa skate đầu tiên đăng ký — flash, thiết kế riêng, fine line và hơn thế nữa.',
|
||
trainersTitle: 'Chưa có huấn luyện viên nào',
|
||
trainersBody: 'Hãy là huấn luyện viên hay chuyên viên vật lý trị liệu đầu tiên giúp skater khỏe mạnh và bền bỉ.',
|
||
musiciansTitle: 'Chưa có nhạc sĩ nào',
|
||
musiciansBody: 'Vừa trượt ván vừa làm nhạc? Thêm ban nhạc hay dự án solo của bạn — thể loại, nhạc cụ và liên kết.',
|
||
judgesTitle: 'Chưa có giám khảo nào',
|
||
judgesBody: 'Bạn tổ chức cuộc thi công bằng? Hãy đăng ký làm giám khảo Game of S.K.A.T.E., best trick jam, cuộc thi và các điểm lưu diễn.',
|
||
organizersTitle: 'Chưa có ban tổ chức nào',
|
||
organizersBody: 'Bạn tổ chức jam, cuộc thi, buổi gặp mặt hay demo? Hãy đăng ký để skater có thể tìm và đặt bạn.',
|
||
barbersTitle: 'Chưa có thợ cắt tóc nào',
|
||
barbersBody: 'Bạn cắt tóc cho skater? Hãy đăng ghế hoặc dịch vụ lưu động để cộng đồng có được kiểu tóc mới.',
|
||
},
|
||
become: {
|
||
addNip05: 'Thêm NIP-05 trong Cài đặt',
|
||
backToLab: 'Quay lại The Lab',
|
||
bioWorkLabel: 'Tiểu sử / Về công việc của bạn',
|
||
checkContact: 'Kiểm tra thông tin liên hệ của bạn',
|
||
cityArea: 'Thành phố / Khu vực',
|
||
cityCountry: 'Thành phố, Quốc gia',
|
||
connectWallet: 'Kết nối ví',
|
||
connectWalletNwc: 'Kết nối ví với NWC',
|
||
contactInfo: 'Thông tin liên hệ',
|
||
contactInfoDesc: 'Cách khách hàng liên hệ với bạn (tất cả đều tùy chọn, nhưng nên điền)',
|
||
coordinatesOptional: 'Tọa độ (tùy chọn)',
|
||
email: 'Email',
|
||
failedToPublish: 'Xuất bản thất bại',
|
||
fromNostrProfile: 'Từ hồ sơ Nostr của bạn',
|
||
geolocationUnsupported: 'Không hỗ trợ định vị',
|
||
getting: 'Đang lấy…',
|
||
headline: 'Tiêu đề',
|
||
headlineHint: 'Hiển thị làm tiêu đề trên thẻ Lab của bạn — ví dụ “{{example}}”. Mặc định là tên của bạn.',
|
||
imageUploaded: 'Đã tải ảnh lên',
|
||
instagram: 'Instagram',
|
||
invalidEmail: 'Nhập địa chỉ email hợp lệ.',
|
||
invalidPortfolio: 'Nhập URL portfolio hợp lệ.',
|
||
invalidWebsite: 'Nhập URL website hợp lệ.',
|
||
latitude: 'Vĩ độ',
|
||
learnHow: 'Tìm hiểu cách',
|
||
locationError: 'Lỗi vị trí',
|
||
locationFound: 'Đã tìm thấy vị trí',
|
||
loginRequired: 'Cần đăng nhập',
|
||
loginRequiredDesc: 'Bạn cần đăng nhập để tạo hồ sơ {{role}}.',
|
||
loginRequiredDescCraft: 'Bạn cần đăng nhập để tạo hồ sơ {{noun}}.',
|
||
longitude: 'Kinh độ',
|
||
nip05Recommended: 'Nên xác minh NIP-05',
|
||
nip05RecommendedDesc: 'Xác minh danh tính của bạn để tạo niềm tin với khách hàng.',
|
||
noWallet: 'Chưa kết nối ví',
|
||
otherSocial: 'Mạng xã hội khác',
|
||
paymentSetup: '⚡ Cần thiết lập thanh toán',
|
||
phoneNumber: 'Số điện thoại',
|
||
profilePhoto: 'Ảnh hồ sơ',
|
||
profilePublished: 'Hồ sơ của bạn đã được xuất bản.',
|
||
publishing: 'Đang xuất bản...',
|
||
socialMedia: 'Mạng xã hội',
|
||
tip: '💡 Mẹo: Hầu hết ví Lightning đều hỗ trợ NWC (Alby, Minibits, Zeus, Coinos).',
|
||
tipWithTime: '💡 Mẹo: Hầu hết ví Lightning đều hỗ trợ NWC (Alby, Minibits, Zeus, Coinos). Chỉ mất 30 giây để thiết lập.',
|
||
upload: 'Tải lên',
|
||
uploadFailed: 'Tải lên thất bại',
|
||
uploadImage: 'Tải ảnh lên',
|
||
uploading: 'Đang tải lên…',
|
||
useCurrentLocation: 'Dùng vị trí hiện tại',
|
||
useMyLocation: 'Dùng vị trí của tôi',
|
||
usingNwc: 'Đang dùng Nostr Wallet Connect',
|
||
usingWebln: 'Đang dùng tiện ích trình duyệt WebLN',
|
||
walletConnected: 'Đã kết nối ví — Sẵn sàng nhận thanh toán!',
|
||
website: 'Website',
|
||
yearsExperience: 'Số năm kinh nghiệm',
|
||
},
|
||
coachForm: {
|
||
anonymous: 'Coach ẩn danh',
|
||
bioLabel: 'Tiểu sử / Triết lý huấn luyện',
|
||
bioPlaceholder: 'Nền tảng của bạn, phong cách giảng dạy...',
|
||
create: 'TẠO HỒ SƠ COACH',
|
||
created: 'Đã tạo hồ sơ Coach!',
|
||
createPro: 'TẠO HỒ SƠ COACH PRO',
|
||
dmNote: "💬 Học viên có thể nhắn tin trực tiếp cho bạn qua tính năng nhắn tin mã hóa của SkateSpots",
|
||
heading: 'Trở thành Coach',
|
||
headlineExample: 'Skate Coach Berlin',
|
||
hourlyRate: 'Giá theo giờ',
|
||
identity: 'Danh tính Coach của bạn',
|
||
nip05Reason: "Thêm mã định danh NIP-05 để xác minh danh tính và tạo niềm tin với học viên — điều đó cho thấy bạn là một Coach chính danh.",
|
||
paymentDesc: 'Để nhận thanh toán buổi học từ học viên, bạn cần kết nối ví Lightning. Học viên sẽ Zap trực tiếp cho bạn cho các buổi huấn luyện.',
|
||
profileDesc: 'Cho học viên biết về kinh nghiệm của bạn',
|
||
profileTitle: 'Hồ sơ Coach',
|
||
ratePlaceholder: '5000 sats/giờ',
|
||
selectSkill: 'Chọn ít nhất một kỹ năng.',
|
||
skillsLabel: 'Kỹ năng tôi dạy * (chọn ít nhất một)',
|
||
skillsRequired: 'Cần có kỹ năng',
|
||
formatsLabel: 'Hình thức buổi học',
|
||
formatsHint: 'Cách bạn truyền đạt huấn luyện.',
|
||
levelsLabel: 'Cấp độ giảng dạy',
|
||
agesLabel: 'Nhóm tuổi',
|
||
credentialsLabel: 'Bằng cấp & an toàn',
|
||
credentialsHint: 'Tự công bố — SkateSpots không xác minh những điều này.',
|
||
languagesLabel: 'Ngôn ngữ sử dụng',
|
||
languagesHint: 'Thêm những ngôn ngữ bạn có thể huấn luyện.',
|
||
languagePlaceholder: 'ví dụ: English, Español',
|
||
availabilityLabel: 'Thời gian rảnh',
|
||
bookingLabel: 'Liên kết đặt lịch',
|
||
bookingHint: 'Tùy chọn — trang để học viên đặt lịch và thanh toán.',
|
||
galleryLabel: 'Ảnh portfolio',
|
||
galleryHint: 'Cho thấy các buổi học, học viên và Spot thực tế (tối đa 12).',
|
||
galleryAdd: 'Thêm ảnh portfolio',
|
||
galleryUploaded: 'Đã tải lên {{count}} ảnh',
|
||
videoLabel: 'Video nổi bật',
|
||
videoHint: 'Tùy chọn — video YouTube hoặc Instagram về buổi huấn luyện của bạn.',
|
||
formatOneOnOne: '1 kèm 1',
|
||
formatGroup: 'Nhóm',
|
||
formatCamp: 'Trại',
|
||
formatVideo: 'Phân tích video',
|
||
formatContestPrep: 'Chuẩn bị cuộc thi',
|
||
formatParkLesson: 'Buổi học tại park',
|
||
formatAdaptive: 'Thích ứng',
|
||
formatGirls: 'Buổi học cho nữ',
|
||
formatAfterSchool: 'Sau giờ học',
|
||
levelBeginner: 'Mới bắt đầu',
|
||
levelIntermediate: 'Trung cấp',
|
||
levelAdvanced: 'Nâng cao',
|
||
levelCompetition: 'Thi đấu',
|
||
ageKids: 'Trẻ em',
|
||
ageTeens: 'Thiếu niên',
|
||
ageAdults: 'Người lớn',
|
||
ageSeniors: 'Người cao tuổi',
|
||
certFirstAid: 'Sơ cứu',
|
||
certCpr: 'CPR',
|
||
certSafeguarding: 'Bảo vệ trẻ em',
|
||
certBackgroundCheck: 'Kiểm tra lý lịch',
|
||
certInsured: 'Có bảo hiểm',
|
||
certFederation: 'Coach liên đoàn quốc gia',
|
||
certQualification: 'Chứng chỉ huấn luyện',
|
||
certJudge: 'Giám khảo cuộc thi',
|
||
certNoteLabel: 'Bằng cấp khác (tùy chọn)',
|
||
certNotePlaceholder: 'ví dụ: Skateboard GB Level 2, 8 năm huấn luyện…',
|
||
availWeekdays: 'Ngày trong tuần',
|
||
availWeekends: 'Cuối tuần',
|
||
availEvenings: 'Buổi tối',
|
||
availAfterSchool: 'Sau giờ học',
|
||
availHolidays: 'Kỳ nghỉ học',
|
||
availSeasonal: 'Theo mùa',
|
||
sectionWhatYouCoach: 'Bạn huấn luyện gì',
|
||
sectionCredentials: 'Bằng cấp & an toàn',
|
||
sectionAvailability: 'Thời gian rảnh & đặt lịch',
|
||
sectionWhereYouCoach: 'Bạn huấn luyện ở đâu',
|
||
sectionPortfolio: 'Portfolio',
|
||
rateAmountLabel: 'Giá',
|
||
rateCurrencySats: 'sats',
|
||
rateCurrencyUsd: 'USD',
|
||
rateCurrencyEur: 'EUR',
|
||
rateCurrencyGbp: 'GBP',
|
||
perHour: 'mỗi giờ',
|
||
perSession: 'mỗi buổi',
|
||
perHalfDay: 'mỗi nửa ngày',
|
||
perDay: 'mỗi ngày',
|
||
perCamp: 'mỗi trại',
|
||
perProject: 'mỗi dự án',
|
||
perEvent: 'mỗi sự kiện',
|
||
perGig: 'mỗi buổi diễn',
|
||
perShoot: 'mỗi buổi chụp',
|
||
perPiece: 'mỗi tác phẩm',
|
||
perCut: 'mỗi lần cắt',
|
||
perMonth: 'mỗi tháng',
|
||
availByAppointment: 'Theo hẹn',
|
||
rateNotesLabel: 'Ghi chú về giá (tùy chọn)',
|
||
rateNotesPlaceholder: 'Thang giá linh hoạt, buổi đầu miễn phí, đã gồm di chuyển…',
|
||
sectionPayments: 'Thanh toán',
|
||
paymentMethodsHint: 'Cách khách hàng thanh toán cho bạn. Đây chỉ là tuyên bố — SkateSpots không bao giờ giữ tiền.',
|
||
payMethodCash: 'Tiền mặt tại chỗ',
|
||
payMethodLightning: 'Lightning',
|
||
payMethodCashu: 'Cashu',
|
||
payMethodBank: 'Chuyển khoản ngân hàng',
|
||
payMethodOther: 'Khác',
|
||
payWhatYouCanLabel: 'Thang giá linh hoạt / trả tùy khả năng',
|
||
bookingFeeLabel: 'Phí đặt lịch (tùy chọn)',
|
||
bookingFeeHint: 'Một khoản phí nhỏ trả trực tiếp cho bạn để xác nhận đặt lịch. SkateSpots không giữ hay hoàn lại khoản này.',
|
||
paymentNoteLabel: 'Ghi chú thanh toán (tùy chọn)',
|
||
paymentNotePlaceholder: 'Buổi đầu miễn phí, đã gồm di chuyển, trả sau buổi học…',
|
||
spotsDesc: 'Chọn Spot nơi bạn cung cấp các buổi huấn luyện',
|
||
spotsLabel: 'Spot nơi bạn huấn luyện',
|
||
tagline: 'Chia sẻ kiến thức skateboard của bạn',
|
||
update: 'CẬP NHẬT HỒ SƠ COACH',
|
||
updated: 'Đã cập nhật hồ sơ Coach!',
|
||
},
|
||
filmerForm: {
|
||
anonymous: 'Filmer ẩn danh',
|
||
bioPlaceholder: 'Nền tảng của bạn, phong cách, thiết bị...',
|
||
camerasLabel: 'Máy quay & Thiết bị * (chọn ít nhất một)',
|
||
create: 'TẠO HỒ SƠ QUAY PHIM',
|
||
created: 'Đã tạo hồ sơ quay phim!',
|
||
createPro: 'TẠO HỒ SƠ QUAY PHIM PRO',
|
||
dmNote: "💬 Khách hàng có thể nhắn tin trực tiếp cho bạn qua tính năng nhắn tin mã hóa của SkateSpots",
|
||
gearHelper: 'Liệt kê chính xác máy quay, ống kính và giá đỡ của bạn — skater quan tâm đến bộ thiết bị.',
|
||
gearLabel: 'Đồ nghề của bạn (tùy chọn)',
|
||
gearPlaceholder: 'ví dụ: Sony VX1000 + MK1 fisheye, Panasonic HVX200, gimbal DJI RS3, GoPro Hero 12, mic Sennheiser...',
|
||
heading: 'Trở thành Filmer',
|
||
headlineExample: 'Skate Filmer Berlin',
|
||
identity: 'Danh tính Filmer của bạn',
|
||
nip05Reason: "Thêm mã định danh NIP-05 để xác minh danh tính và tạo niềm tin với khách hàng — điều đó cho thấy bạn là một Filmer chính danh.",
|
||
paymentDesc: 'Để nhận thanh toán từ khách hàng cho dịch vụ quay phim, bạn cần kết nối ví Lightning. Khách hàng sẽ Zap trực tiếp cho bạn cho tác phẩm của bạn.',
|
||
profileDesc: 'Cho khách hàng biết về chuyên môn quay phim của bạn',
|
||
profileTitle: 'Hồ sơ Quay phim',
|
||
rate: 'Giá',
|
||
ratePlaceholder: '10000 sats/video',
|
||
reelLabel: 'Reel / Portfolio',
|
||
selectService: 'Chọn ít nhất một dịch vụ.',
|
||
selectSkill: 'Chọn ít nhất một kỹ năng quay phim.',
|
||
servicesLabel: 'Dịch vụ cung cấp * (chọn ít nhất một)',
|
||
servicesRequired: 'Cần có dịch vụ',
|
||
skillsRequired: 'Cần có kỹ năng',
|
||
spotsDesc: 'Chọn Spot nơi bạn cung cấp dịch vụ quay phim',
|
||
spotsLabel: 'Spot nơi bạn quay phim',
|
||
tagline: 'Cung cấp dịch vụ quay video skate của bạn — clip, line, full part & đưa tin cuộc thi',
|
||
update: 'CẬP NHẬT HỒ SƠ QUAY PHIM',
|
||
updated: 'Đã cập nhật hồ sơ quay phim!',
|
||
},
|
||
editorForm: {
|
||
anonymous: 'Editor ẩn danh',
|
||
bioPlaceholder: 'Phong cách dựng phim, nền tảng, các dự án nổi bật…',
|
||
contactPortfolio: 'Liên hệ & Portfolio',
|
||
create: 'Xuất bản hồ sơ Editor',
|
||
created: 'Đã tạo hồ sơ Editor!',
|
||
createPro: 'Xuất bản hồ sơ Editor Pro',
|
||
editTypes: 'Loại dựng phim cung cấp * (chọn ít nhất một)',
|
||
hardware: 'Phần cứng',
|
||
hardwarePlaceholder: 'ví dụ: MacBook Pro M3, Sony FX3',
|
||
heading: 'Trở thành Editor',
|
||
headlineExample: 'Skate Video Editor',
|
||
identity: 'Danh tính của bạn',
|
||
locationOptional: 'Vị trí (tùy chọn)',
|
||
loginDesc: 'Đăng nhập để tạo hồ sơ Editor của bạn.',
|
||
phoneTelegram: 'Điện thoại / Telegram',
|
||
portfolioPlaceholder: 'Portfolio (Vimeo, YouTube…)',
|
||
profileDesc: 'Cho cộng đồng biết về phong cách và kỹ năng dựng phim của bạn',
|
||
profileTitle: 'Hồ sơ Editor',
|
||
published: 'Hồ sơ của bạn đã được xuất bản lên SkateSpots.',
|
||
rate: 'Giá / Báo giá',
|
||
ratePlaceholder: 'ví dụ: 50k sats/phút, DM để báo giá',
|
||
selectService: 'Chọn ít nhất một loại dựng phim.',
|
||
servicesRequired: 'Cần có dịch vụ',
|
||
socialPlaceholder: 'Instagram / tên mạng xã hội',
|
||
software: 'Phần mềm',
|
||
softwareHardware: 'Kỹ năng Phần mềm & Phần cứng',
|
||
softwarePlaceholder: 'ví dụ: DaVinci Resolve, Premiere',
|
||
tagline: 'Cung cấp dịch vụ dựng video của bạn cho cộng đồng skate',
|
||
thumbnail: 'Ảnh hồ sơ / Ảnh thu nhỏ showreel',
|
||
update: 'Cập nhật hồ sơ Editor',
|
||
updated: 'Đã cập nhật hồ sơ Editor!',
|
||
walletConnected: 'Đã kết nối ví ✓',
|
||
walletDesc: 'Nhận thanh toán Bitcoin ⚡ trực tiếp từ khách hàng cho công việc dựng phim của bạn.',
|
||
walletTitle: '⚡ Ví Lightning để nhận thanh toán',
|
||
yearsExperience: 'Số năm kinh nghiệm',
|
||
yearsPlaceholder: 'ví dụ: 5 năm',
|
||
},
|
||
photoForm: {
|
||
anonymous: 'Photographer ẩn danh',
|
||
bioPlaceholder: 'Nền tảng của bạn, phong cách, điều bạn thích chụp...',
|
||
cameraLabel: 'Thân máy ảnh * (chọn ít nhất một)',
|
||
cameraRequired: 'Cần có máy ảnh',
|
||
contactDesc: 'Cách rider có thể xem tác phẩm và liên hệ với bạn (tất cả đều tùy chọn, nhưng nên điền)',
|
||
create: 'TẠO HỒ SƠ NHIẾP ẢNH',
|
||
created: 'Đã tạo hồ sơ nhiếp ảnh!',
|
||
createPro: 'TẠO HỒ SƠ NHIẾP ẢNH PRO',
|
||
dmNote: "💬 Rider có thể nhắn tin trực tiếp cho bạn qua tính năng nhắn tin mã hóa của SkateSpots",
|
||
gearHelper: 'Liệt kê chính xác thân máy, ống kính và đèn — rider rất thích biết bộ thiết bị.',
|
||
gearPlaceholder: 'ví dụ: Canon R6 II, 8-15mm fisheye, 70-200mm f/2.8, 2× Godox AD200, trigger từ xa, chân máy Manfrotto...',
|
||
heading: 'Trở thành Photographer',
|
||
headlineExample: 'Nhiếp ảnh Skate',
|
||
identity: 'Danh tính Photographer của bạn',
|
||
lensesLabel: 'Ống kính',
|
||
lightingLabel: 'Thiết bị ánh sáng',
|
||
nip05Reason: 'Thêm mã định danh NIP-05 để xác minh danh tính và tạo niềm tin với khách hàng.',
|
||
paymentDesc: 'Để được trả tiền cho các buổi chụp, hãy kết nối ví Lightning. Khách hàng Zap trực tiếp cho bạn cho tác phẩm của bạn.',
|
||
portfolioLabel: 'Portfolio / Instagram',
|
||
profileDesc: 'Cho rider biết về con mắt, thiết bị và dịch vụ của bạn',
|
||
profileTitle: 'Hồ sơ Nhiếp ảnh',
|
||
ratePlaceholder: '20000 sats/buổi chụp',
|
||
selectCamera: 'Chọn ít nhất một loại máy ảnh bạn dùng để chụp.',
|
||
selectService: 'Chọn ít nhất một dịch vụ bạn cung cấp.',
|
||
servicesLabel: 'Dịch vụ cung cấp * (chọn ít nhất một)',
|
||
servicesRequired: 'Cần có dịch vụ',
|
||
spotsDesc: 'Chọn Spot nơi bạn cung cấp dịch vụ nhiếp ảnh',
|
||
spotsLabel: 'Spot nơi bạn chụp ảnh',
|
||
styleLabel: 'Phong cách chụp',
|
||
supportLabel: 'Hỗ trợ & Giá đỡ',
|
||
tagline: 'Chụp các buổi trượt — cung cấp dịch vụ nhiếp ảnh skate của bạn',
|
||
update: 'CẬP NHẬT HỒ SƠ NHIẾP ẢNH',
|
||
updated: 'Đã cập nhật hồ sơ nhiếp ảnh!',
|
||
},
|
||
builderForm: {
|
||
anonymous: 'Builder ẩn danh',
|
||
bioLabel: 'Tiểu sử / Về các công trình của bạn',
|
||
bioPlaceholder: 'Crew của bạn, các công trình nổi bật, cách bạn tiếp cận dự án...',
|
||
buildTypesLabel: 'Bạn xây dựng gì * (chọn ít nhất một)',
|
||
buildTypesRequired: 'Cần có loại công trình',
|
||
cityBase: 'Thành phố / Căn cứ',
|
||
contactPortfolio: 'Liên hệ & Portfolio',
|
||
contactPortfolioDesc: 'Cách cộng đồng có thể xem công trình và liên hệ với bạn (tất cả đều tùy chọn, nhưng nên điền)',
|
||
create: 'TẠO HỒ SƠ BUILDER',
|
||
created: 'Đã tạo hồ sơ Builder!',
|
||
createPro: 'TẠO HỒ SƠ BUILDER PRO',
|
||
dmNote: "💬 Khách hàng có thể nhắn tin trực tiếp cho bạn qua tính năng nhắn tin mã hóa của SkateSpots",
|
||
gearHelper: 'Crew và khách hàng rất thích biết thiết bị và quy trình của bạn.',
|
||
gearLabel: 'Cách bạn làm việc / Thiết bị (tùy chọn)',
|
||
gearPlaceholder: 'ví dụ: Đội bê tông đầy đủ, máy trộn + dàn phun bê tông riêng, hàn lưu động, chúng tôi lo giấy phép và thoát nước...',
|
||
heading: 'Trở thành Builder',
|
||
headlineExample: 'Thợ xây Ramp & Park',
|
||
identity: 'Danh tính Builder của bạn',
|
||
insured: 'Có giấy phép / Bảo hiểm',
|
||
insuredHelper: 'Quan trọng với công trình park công cộng & hội đồng',
|
||
logoPhoto: 'Logo / Ảnh',
|
||
materialsLabel: 'Vật liệu & Kỹ năng nghề',
|
||
nip05Reason: 'Thêm mã định danh NIP-05 để xác minh danh tính và tạo niềm tin với khách hàng.',
|
||
pastBuilds: 'Công trình đã làm / Instagram',
|
||
paymentDesc: 'Để được trả tiền cho các công trình, hãy kết nối ví Lightning. Khách hàng Zap trực tiếp cho bạn cho công việc của bạn.',
|
||
profileDesc: 'Cho cộng đồng biết bạn xây dựng gì và làm việc thế nào',
|
||
profileTitle: 'Hồ sơ Builder',
|
||
rateLabel: 'Giá / Cơ sở báo giá',
|
||
ratePlaceholder: 'mỗi m² / theo dự án',
|
||
scaleLabel: 'Quy mô dự án',
|
||
selectBuild: 'Chọn ít nhất một thứ bạn xây dựng.',
|
||
serviceArea: 'Khu vực phục vụ',
|
||
serviceAreaPlaceholder: 'ví dụ: Catalonia, sẽ đi khắp EU',
|
||
spotsDesc: 'Liên kết các Spot và park bạn đã xây để mọi người thấy công trình của bạn trên bản đồ',
|
||
spotsLabel: 'Spot bạn đã xây',
|
||
tagline: 'Đổ bê tông, hàn, xây dựng — đăng dịch vụ xây ramp & park của bạn',
|
||
update: 'CẬP NHẬT HỒ SƠ BUILDER',
|
||
updated: 'Đã cập nhật hồ sơ Builder!',
|
||
yearsBuilding: 'Số năm xây dựng',
|
||
},
|
||
skaterForm: {
|
||
backToSkaters: 'Quay lại Skater',
|
||
bioHelperPulled: 'Lấy từ hồ sơ của bạn — chỉnh cho thẻ skater của bạn, hoặc để nguyên.',
|
||
bioHelperShort: 'Giới thiệu ngắn cho thẻ skater của bạn.',
|
||
bioPlaceholder: 'Bạn trượt đã bao lâu, bạn thích gì, đang luyện gì…',
|
||
browseSpots: 'Duyệt Spot',
|
||
changePhoto: 'Đổi ảnh hồ sơ',
|
||
chipBio: 'Tiểu sử',
|
||
chipPhoto: 'Ảnh',
|
||
cityArea: 'Thành phố / khu vực',
|
||
created: 'Bạn đã lên bản đồ! 🛹',
|
||
custom: 'Tùy chỉnh',
|
||
customHelper: 'Nhãn của riêng bạn — hiển thị trên thẻ skater thay cho mặc định.',
|
||
customPlaceholder: 'ví dụ: OG, Weekend Warrior, Retired…',
|
||
discoverable: 'Skater khác giờ có thể tìm thấy bạn.',
|
||
editFullProfile: 'chỉnh sửa toàn bộ hồ sơ của bạn',
|
||
fromProfile: 'Từ hồ sơ của bạn',
|
||
heroEditPrefix: 'Chỉnh sửa',
|
||
heroJoinPrefix: 'Tham gia',
|
||
heroSuffix: 'Danh bạ',
|
||
homeHelper: 'Nhập tự do, hoặc liên kết một Spot thật từ bản đồ để mọi người có thể đến đó.',
|
||
homePlaceholder: 'Park / quảng trường địa phương — hoặc nhấn “Duyệt Spot”',
|
||
homeSpot: 'Spot nhà',
|
||
layerEnd: 'để thay đổi chúng ở mọi nơi.',
|
||
layerIntro: 'Đây là',
|
||
layerMid: ', được xây trên hồ sơ Nostr của bạn. Tên, ảnh, tiểu sử, lightning & xác minh đến từ đó —',
|
||
layerWord: 'lớp skate',
|
||
level: 'Cấp độ',
|
||
linked: 'Đã liên kết với một Spot trên bản đồ',
|
||
loadingProfile: 'Đang tải hồ sơ của bạn…',
|
||
loadingSpots: 'Đang tải Spot…',
|
||
locationHelper: 'Giúp người khác tìm skater gần họ. Chỉ khu vực thô được chia sẻ.',
|
||
loginToJoin: 'Đăng nhập để tham gia',
|
||
loginToJoinDesc: 'Tạo hồ sơ skater để cộng đồng có thể tìm thấy bạn.',
|
||
mappedSpot: 'Spot trên bản đồ',
|
||
noSpots: 'Chưa tìm thấy Spot nào.',
|
||
noSpotsMatch: 'Không có Spot nào khớp tìm kiếm của bạn.',
|
||
openMap: 'Mở bản đồ',
|
||
pickEverything: 'Chọn mọi thứ phù hợp với phong cách của bạn.',
|
||
pickHomeSpot: 'Chọn Spot nhà của bạn',
|
||
pickStyles: 'Chọn phong cách của bạn',
|
||
pickStylesDesc: 'Chọn ít nhất một thứ bạn trượt.',
|
||
profilePic: 'Ảnh hồ sơ',
|
||
profilePicHelper: 'Thẻ skater của bạn dùng ảnh hồ sơ Nostr — cùng một ảnh ở mọi nơi.',
|
||
publishingAs: 'Xuất bản với tên',
|
||
putOnMap: 'Đưa tôi lên bản đồ',
|
||
searchSpots: 'Tìm Spot theo tên hoặc thành phố…',
|
||
skateStory: 'Câu chuyện skate của bạn',
|
||
stance: 'Tư thế',
|
||
unlinkSpot: 'Bỏ liên kết Spot',
|
||
updateButton: 'Cập nhật hồ sơ của tôi',
|
||
updated: 'Đã cập nhật hồ sơ!',
|
||
whatYouSkate: 'Bạn trượt gì *',
|
||
yearsPlaceholder: 'ví dụ: 8',
|
||
yearsSkating: 'Số năm trượt',
|
||
yourProfilePic: 'Ảnh hồ sơ của bạn',
|
||
zapsOn: 'Bật Zap',
|
||
},
|
||
skaters: {
|
||
clearSearch: 'Xóa tìm kiếm',
|
||
community: 'Cộng đồng',
|
||
countMany: 'skater',
|
||
countOne: 'skater',
|
||
editProfile: 'Chỉnh sửa hồ sơ skater của tôi',
|
||
heroDesc: 'Tìm đồng đội của bạn. Duyệt đội ngũ skater đại diện SkateSpots — theo phong cách, tư thế, cấp độ và thành phố.',
|
||
nip05Verified: 'Đã xác minh NIP-05',
|
||
noMatches: 'Không có kết quả',
|
||
noneDesc: 'Hãy là người đầu tiên tham gia danh bạ và đưa SkateSpots lên bản đồ.',
|
||
noneTitle: 'Chưa có skater nào',
|
||
noVerifiedMatch: 'Không có skater đã xác minh nào khớp',
|
||
searchPlaceholder: 'Tìm theo tên, thành phố hoặc npub…',
|
||
tryDifferentSearch: 'Thử tìm kiếm khác hoặc xóa bộ lọc.',
|
||
tryTurnOffVerified: 'Thử tắt bộ lọc “Đã xác minh” để xem mọi người.',
|
||
verifiedFilterTitle: 'Chỉ hiện skater có danh tính NIP-05 đã xác minh',
|
||
},
|
||
skaterCard: {
|
||
inDirectory: 'Bạn đã có trong Danh bạ Skater',
|
||
joinDesc: 'Thêm tư thế, phong cách & cấp độ để skater tìm thấy bạn.',
|
||
joinTitle: 'Tham gia Danh bạ Skater',
|
||
},
|
||
crewsStrip: {
|
||
allCrews: 'Tất cả Crew',
|
||
memberMany: '{{count}} thành viên',
|
||
memberOne: '{{count}} thành viên',
|
||
title: 'Crew trong cộng đồng này',
|
||
},
|
||
labLink: {
|
||
coach: 'Coach',
|
||
filmer: 'Filmer',
|
||
editor: 'Editor',
|
||
photographer: 'Photographer',
|
||
builder: 'Builder',
|
||
artist: 'Nghệ sĩ',
|
||
graffiti: 'Graffiti',
|
||
tattoo: 'Xăm',
|
||
trainer: 'Huấn luyện viên',
|
||
musician: 'Nhạc sĩ',
|
||
judge: 'Giám khảo',
|
||
barber: 'Thợ cắt tóc',
|
||
organizer: 'Ban tổ chức',
|
||
lab: 'Lab',
|
||
linkedProfiles: 'Hồ sơ Lab đã liên kết',
|
||
desc: 'Bạn cũng điều hành studio, dịch vụ huấn luyện hay xây dựng? Liên kết các trang Lab của bạn để mọi người có thể thuê crew của bạn. Tùy chọn. Khi hồ sơ Lab cũng liên kết ngược lại crew này, cả hai sẽ hiện huy hiệu xanh',
|
||
descEnd: '.',
|
||
empty: 'Bạn chưa có hồ sơ Lab nào. Tạo một cái trong The Lab để liên kết tại đây.',
|
||
},
|
||
proUpgrade: {
|
||
goPro: 'Nâng cấp Pro',
|
||
optional: '· tùy chọn',
|
||
freeTo: 'Đăng miễn phí. Pro thêm',
|
||
proBadge: 'huy hiệu Pro',
|
||
featuredPlacement: 'vị trí nổi bật',
|
||
atTop: 'ở đầu The Lab.',
|
||
active: 'Đang hoạt động',
|
||
benefit1: 'Huy hiệu "Pro" vàng trên hồ sơ & thẻ của bạn',
|
||
benefit2: 'Được ưu tiên hiển thị khi skater duyệt The Lab',
|
||
benefit3: 'Ủng hộ SkateSpots — không quảng cáo, không trung gian',
|
||
platformOwner: 'Chủ nền tảng — Pro luôn bật.',
|
||
proActiveOne: 'Pro đang hoạt động · còn {{count}} ngày. Hồ sơ của bạn sẽ được nổi bật.',
|
||
proActiveMany: 'Pro đang hoạt động · còn {{count}} ngày. Hồ sơ của bạn sẽ được nổi bật.',
|
||
context: 'Hồ sơ của bạn vẫn hoạt động miễn phí sau khi Pro hết hạn — bạn chỉ mất huy hiệu & ưu tiên.',
|
||
},
|
||
profilePreview: {
|
||
viewPublic: 'Xem công khai',
|
||
unnamed: 'Skater chưa có tên',
|
||
noHandle: 'Chưa có tên định danh',
|
||
},
|
||
pyramid: {
|
||
pyramidWord: 'KIM TỰ THÁP',
|
||
rankingsWord: 'BẢNG XẾP HẠNG',
|
||
subtitle: 'Những người đóng góp hàng đầu ở thành phố của bạn',
|
||
yourRank: 'Thứ hạng của bạn',
|
||
keepContributing: 'Tiếp tục đóng góp để leo cao hơn!',
|
||
topContributors: 'Người đóng góp hàng đầu',
|
||
noContributors: 'Chưa có người đóng góp nào. Hãy là người đầu tiên thêm Spot hoặc tạo sự kiện!',
|
||
spots: 'Spot',
|
||
events: 'Sự kiện',
|
||
total: 'Tổng',
|
||
trust: 'Tin cậy',
|
||
},
|
||
detail: {
|
||
joined: 'Đã tham gia',
|
||
about: 'Giới thiệu',
|
||
howWeWork: 'Cách chúng tôi làm việc',
|
||
inTheBag: 'Đồ nghề',
|
||
hardware: 'Phần cứng',
|
||
software: 'Phần mềm',
|
||
eventsJudged: 'Sự kiện đã chấm',
|
||
eventsOrganized: 'Sự kiện đã tổ chức',
|
||
spots: 'Spot',
|
||
viewSpot: 'Xem Spot',
|
||
credentialsTitle: 'Bằng cấp & an toàn',
|
||
selfAttested: 'Do Coach tự công bố — SkateSpots không xác minh.',
|
||
formats: 'Hình thức',
|
||
levels: 'Cấp độ',
|
||
ages: 'Độ tuổi',
|
||
languages: 'Ngôn ngữ',
|
||
availability: 'Thời gian rảnh',
|
||
bookSession: 'Đặt một buổi',
|
||
portfolio: 'Portfolio',
|
||
watchReel: 'Xem trên {{platform}}',
|
||
paymentsTitle: 'Thanh toán',
|
||
payWhatYouCan: 'Trả tùy khả năng',
|
||
bookingFee: 'Phí đặt lịch',
|
||
payBookingFee: 'Trả phí đặt lịch',
|
||
bookingFeeNote: 'Trả trực tiếp cho Coach. SkateSpots không giữ hay hoàn lại.',
|
||
bookingFeeNoRail: 'Coach này chưa đặt địa chỉ Lightning, nên không thể thanh toán trong ứng dụng — hãy liên hệ họ để sắp xếp thanh toán.',
|
||
serviceArea: 'Khu vực phục vụ',
|
||
licensedInsured: 'Có giấy phép / Bảo hiểm',
|
||
studio: 'Studio',
|
||
shopStudio: 'Cửa hàng / Studio',
|
||
booksOpen: 'Đang nhận lịch',
|
||
credentials: 'Bằng cấp',
|
||
remoteOnline: 'Có thể từ xa / Trực tuyến',
|
||
graffitiCrew: 'Crew Graffiti',
|
||
act: 'Tiết mục',
|
||
listen: 'Nghe',
|
||
upcomingGigs: 'Buổi diễn sắp tới',
|
||
past: 'Đã qua',
|
||
experience: 'Kinh nghiệm',
|
||
yearsCount: '{{count}} năm',
|
||
rate: 'Giá',
|
||
contact: 'Liên hệ',
|
||
sendMessage: 'Gửi tin nhắn',
|
||
bookGig: 'Đặt buổi diễn',
|
||
portfolioDomain: 'Portfolio · {{domain}}',
|
||
manage: 'Quản lý',
|
||
admin: 'Quản trị',
|
||
editProfile: 'Chỉnh sửa hồ sơ',
|
||
publishedTitle: 'Bạn đã lên sóng',
|
||
publishedBody: 'Hồ sơ của bạn đã được xuất bản lên The Lab. Chia sẻ để skater có thể tìm thấy bạn.',
|
||
manageRemove: 'Xóa hồ sơ {{noun}} của bạn khỏi The Lab.',
|
||
adminTakeDown: 'Gỡ hồ sơ {{noun}} này. Nó sẽ bị ẩn trên toàn SkateSpots.',
|
||
entityLabel: 'hồ sơ {{noun}}',
|
||
deleteProfile: 'Xóa hồ sơ',
|
||
location: 'Vị trí',
|
||
servicesSkills: 'Dịch vụ & Kỹ năng',
|
||
noun: {
|
||
coach: 'Coach',
|
||
filmer: 'Filmer',
|
||
editor: 'Editor',
|
||
photographer: 'Photographer',
|
||
builder: 'Builder',
|
||
artist: 'nghệ sĩ',
|
||
graffiti: 'nghệ sĩ graffiti',
|
||
tattoo: 'nghệ sĩ xăm',
|
||
trainer: 'huấn luyện viên',
|
||
musician: 'nhạc sĩ',
|
||
judge: 'giám khảo sự kiện',
|
||
organizer: 'ban tổ chức sự kiện',
|
||
barber: 'thợ cắt tóc',
|
||
profile: 'hồ sơ',
|
||
},
|
||
skillsTitle: {
|
||
skills: 'Kỹ năng',
|
||
servicesGear: 'Dịch vụ & Thiết bị',
|
||
whatWeBuild: 'Chúng tôi xây gì',
|
||
whatTheyMake: 'Họ làm gì',
|
||
stylesWork: 'Phong cách & Tác phẩm',
|
||
styles: 'Phong cách',
|
||
focusSpecialties: 'Trọng tâm & Chuyên môn',
|
||
genresInstruments: 'Thể loại & Nhạc cụ',
|
||
formatsSpecialties: 'Hình thức & Chuyên môn',
|
||
servicesStyles: 'Dịch vụ & Phong cách',
|
||
eventTypesServices: 'Loại sự kiện & Dịch vụ',
|
||
},
|
||
},
|
||
rider: {
|
||
heroDesc: 'Danh tính skater có thể xác minh của bạn. Ký bằng Nostr, sẵn sàng in, không thể làm giả.',
|
||
heroDesc2: 'Nhận huy hiệu kỹ năng có chứng kiến từ skater khác. Nhận thẻ vào park. Chia sẻ thẻ của bạn ở mọi nơi.',
|
||
headerTagline: 'Ký bằng Nostr · Sẵn sàng in · Xác minh bằng QR',
|
||
tabCard: 'Thẻ của tôi',
|
||
tabBadges: 'Huy hiệu',
|
||
tabAward: 'Trao tặng',
|
||
rendering: 'Đang kết xuất…',
|
||
shareCard: 'Chia sẻ thẻ',
|
||
savePng: 'Lưu PNG',
|
||
print: 'In',
|
||
copyId: 'Sao chép ID',
|
||
cardType: 'Loại thẻ',
|
||
licenseLabel: 'Giấy phép Skater',
|
||
licenseSub: 'Danh tính rider cá nhân của bạn',
|
||
parkLabel: 'Vào Park',
|
||
parkSub: 'Phát thẻ với tư cách chủ park',
|
||
theme: 'Chủ đề',
|
||
holoTitle: 'Ánh kim Holographic',
|
||
holoDesc: 'Hiệu ứng lá kim động',
|
||
cardDetails: 'Chi tiết thẻ',
|
||
skateStyle: 'Phong cách Skate',
|
||
ridesFor: 'Trượt cho',
|
||
ridesForPlaceholder: 'Cửa hàng địa phương…',
|
||
sponsors: 'Nhà tài trợ',
|
||
sponsorsPlaceholder: 'Thương hiệu…',
|
||
showOnCard: 'Hiện trên thẻ',
|
||
zaps: 'Zap ⚡',
|
||
skills: 'Kỹ năng',
|
||
selected: 'Đã chọn {{count}}/6',
|
||
goldBadgesHint1: 'Huy hiệu vàng trên thẻ đến từ skater khác chứng kiến bạn — xem',
|
||
goldBadgesHint2: '.',
|
||
parkOwnersOnly: 'Chỉ dành cho chủ park.',
|
||
parkOwnersDesc: 'Phát thẻ này bằng đúng khóa Nostr đã xuất bản trang park của bạn. Ai cũng có thể quét QR và xác minh chữ ký trên chuỗi — không cần cơ quan trung ương.',
|
||
parkDetails: 'Chi tiết Park',
|
||
parkName: 'Tên Park',
|
||
parkNamePlaceholder: 'The Berrics…',
|
||
riderName: 'Tên Rider',
|
||
riderNamePlaceholder: 'Tên trên thẻ',
|
||
riderNpub: 'Nostr ID của Rider (npub)',
|
||
accessLevel: 'Mức truy cập',
|
||
validThru: 'Có hiệu lực đến',
|
||
publishToNostr: 'Xuất bản lên Nostr',
|
||
badgesIntro: 'Những huy hiệu này được skater khác chứng kiến và ký trên Nostr. Chúng hiện dưới dạng chip vàng ⭐ trên thẻ của bạn.',
|
||
earnMore: 'Muốn kiếm thêm? Hãy trượt trước mặt ai đó và nhờ họ chứng kiến trick của bạn.',
|
||
awardSomeone: 'Trao huy hiệu cho người khác',
|
||
youSawIt: 'Bạn đã tận mắt thấy',
|
||
youSawItDesc: 'Ký bằng chứng trên Nostr. Nó trở thành một phần hồ sơ vĩnh viễn của họ — gắn chặt bằng mật mã với khóa của bạn.',
|
||
skillsWitnessed: 'Kỹ năng bạn đã chứng kiến',
|
||
whereSeen: 'Bạn thấy ở đâu?',
|
||
optional: '(tùy chọn)',
|
||
signingOnNostr: 'Đang ký trên Nostr…',
|
||
awardBadge: 'Trao huy hiệu',
|
||
addRiderSkill: 'Thêm npub rider + ít nhất một kỹ năng',
|
||
invalidNpub: 'npub không hợp lệ',
|
||
badgeAwarded: '🏅 Đã trao huy hiệu!',
|
||
badgeSent: 'Đã gửi {{skills}}.',
|
||
failed: 'Thất bại',
|
||
couldNotRender: 'Không thể kết xuất thẻ',
|
||
popupBlocked: 'Popup bị chặn',
|
||
popupBlockedDesc: 'Cho phép popup cho trang này.',
|
||
linkCopied: '🔗 Đã sao chép liên kết!',
|
||
enterRiderNpub: 'Nhập npub của rider',
|
||
parkPublished: '✅ Đã xuất bản thẻ Vào Park!',
|
||
publishFailed: 'Xuất bản thất bại',
|
||
noBadges: 'Chưa có huy hiệu nào. Hãy trượt trước mặt ai đó và nhờ họ chứng kiến trick của bạn!',
|
||
showMore: 'Hiện thêm {{count}}',
|
||
witnessedBy: 'Được chứng kiến bởi',
|
||
at: 'tại',
|
||
previewLicense: 'Giấy phép Skater',
|
||
previewSince: 'Từ {{year}}',
|
||
previewEvts: 'Sự kiện',
|
||
previewScan: 'Quét để xác minh',
|
||
previewSkatepark: 'Skatepark',
|
||
previewAccessPass: 'Thẻ vào',
|
||
previewMemberName: 'Tên thành viên',
|
||
previewIssuedBy: 'Phát bởi chủ park · Ký bằng Nostr',
|
||
previewValidThru: 'Có hiệu lực đến',
|
||
previewNostrVerified: 'Đã xác minh Nostr',
|
||
},
|
||
craftFields: {
|
||
detailsTitle: 'Chi tiết bổ sung',
|
||
deliverables: 'Sản phẩm bàn giao',
|
||
turnaround: 'Thời gian hoàn thành',
|
||
surfaces: 'Bề mặt / Tường',
|
||
maxSize: 'Kích thước tối đa',
|
||
setLength: 'Thời lượng set',
|
||
techRider: 'Yêu cầu kỹ thuật',
|
||
travel: 'Di chuyển',
|
||
certifications: 'Chứng nhận',
|
||
insurance: 'Bảo hiểm',
|
||
permits: 'Giấy phép',
|
||
deposit: 'Đặt cọc',
|
||
minimum: 'Tối thiểu',
|
||
modalities: 'Hình thức',
|
||
duration: 'Thời lượng hẹn',
|
||
drone: 'Drone',
|
||
leadTime: 'Thời gian chờ',
|
||
warranty: 'Bảo hành',
|
||
},
|
||
craftForm: {
|
||
profileImage: 'Ảnh hồ sơ',
|
||
nameHeadline: 'Tên / tiêu đề',
|
||
about: 'Giới thiệu',
|
||
aboutPlaceholder: 'Cho skater biết về công việc {{noun}} của bạn…',
|
||
required: 'bắt buộc',
|
||
nip05Title: 'Thêm NIP-05 để tạo niềm tin',
|
||
nip05Desc: 'Mã định danh NIP-05 giúp skater xác minh bạn là người thật. Rất nên có trước khi đăng.',
|
||
editingNote: 'Đang chỉnh sửa hồ sơ {{noun}} hiện có — xuất bản sẽ thay thế nó.',
|
||
location: 'Vị trí',
|
||
pinned: '📍 Đã ghim lên bản đồ ({{lat}}, {{lng}})',
|
||
experienceYears: 'Kinh nghiệm (năm)',
|
||
expPlaceholder: 'ví dụ: 5',
|
||
ratePlaceholder: 'ví dụ: 20k sats / theo dự án',
|
||
contactLinks: 'Liên hệ & Liên kết',
|
||
phoneOptional: 'Điện thoại (tùy chọn)',
|
||
emailOptional: 'Email (tùy chọn)',
|
||
socialPlaceholder: 'Mạng xã hội (Instagram, v.v.)',
|
||
gettingPaid: 'Nhận thanh toán',
|
||
updateProfile: 'Cập nhật hồ sơ',
|
||
publishProfile: 'Xuất bản hồ sơ',
|
||
rateLeftBlankNote: 'Tùy chọn — để trống nếu mức giá ở trên đã đủ.',
|
||
sectionRequired: 'Cần có {{section}}',
|
||
sectionRequiredDesc: 'Chọn ít nhất một tùy chọn trong "{{section}}".',
|
||
updated: 'Đã cập nhật hồ sơ!',
|
||
created: 'Đã tạo hồ sơ!',
|
||
headlineExample: 'Skate Coach Berlin',
|
||
},
|
||
},
|
||
socialUi: {
|
||
agentPanel: {
|
||
spot: 'Spot',
|
||
event: 'Sự kiện',
|
||
labPro: 'Lab pro',
|
||
gear: 'Đồ nghề',
|
||
crew: 'Crew',
|
||
description: 'Biết rõ Crew này — các jam, đội hình & lời kêu gọi — cùng toàn cảnh cộng đồng với dữ liệu trực tiếp.',
|
||
greeting: 'Chào! Tôi là Sasquatch, hướng dẫn viên của {{crew}}. Hỏi tôi về Crew — jam tiếp theo, ai điều hành, chúng tôi đang tìm gì — hoặc toàn cảnh cộng đồng.',
|
||
suggestion1: 'Jam tiếp theo của chúng ta là gì?',
|
||
suggestion2: 'Ai điều hành Crew này?',
|
||
suggestion3: 'Chúng ta đang tìm gì?',
|
||
suggestion4: 'Spot tốt nhất gần chúng ta?',
|
||
suggestion5: 'Thời tiết để trượt thế nào?',
|
||
thinking: 'Sasquatch đang suy nghĩ…',
|
||
placeholder: 'Hỏi về cộng đồng địa phương của bạn…',
|
||
disclaimer: 'AI có thể sai — liên kết dẫn đến trang thật.',
|
||
},
|
||
badge: {
|
||
upcomingOne: '{{count}} sự kiện sắp tới',
|
||
upcomingMany: '{{count}} sự kiện sắp tới',
|
||
comingOne: '{{count}} sự kiện sắp diễn ra',
|
||
comingMany: '{{count}} sự kiện sắp diễn ra',
|
||
},
|
||
bell: {
|
||
youAreIn: 'Bạn đã ở trong {{crew}}! 🛹',
|
||
membershipConfirmed: 'Đã xác nhận thành viên.',
|
||
couldNotConfirm: 'Không thể xác nhận',
|
||
addedYouTo: 'đã thêm bạn vào',
|
||
confirmToAppear: 'Xác nhận để xuất hiện như một thành viên.',
|
||
notifications: 'Thông báo',
|
||
notificationsNew: 'Thông báo ({{count}} mới)',
|
||
unreadCount: '{{count}} thông báo chưa đọc',
|
||
markRead: 'Đánh dấu đã đọc',
|
||
allClear: 'Đã xem hết',
|
||
tabAll: 'Tất cả',
|
||
tabTrades: 'Giao dịch',
|
||
tabSocial: 'Xã hội',
|
||
tabNews: 'Tin tức',
|
||
tabCrews: 'Crew',
|
||
checkingUpdates: 'Đang kiểm tra cập nhật…',
|
||
checkingTrades: 'Đang kiểm tra ưu đãi và giao dịch…',
|
||
loadingDrops: 'Đang tải các bản tin mới nhất…',
|
||
emptyAll: 'Ưu đãi, giao dịch, zap, trả lời, bản tin và hoạt động Crew sẽ xuất hiện ở đây.',
|
||
emptyTrades: 'Ưu đãi, phản đề xuất và xác nhận giao dịch đều ở đây — dù bạn đang bán, mua hay trao đổi.',
|
||
emptySocial: 'Zap, cảm xúc, đăng lại, nhắc đến, trả lời, RSVP sự kiện và cập nhật từ host đều ở đây.',
|
||
emptyNews: 'Bản tin SkateSpots sẽ xuất hiện ở đây. Đăng ký tại trang Newsletter.',
|
||
emptyCrews: 'Lời mời Crew, yêu cầu tập thể và yêu cầu thành viên sẽ xuất hiện ở đây.',
|
||
subscribeBanner: 'Đăng ký để nhận bản tin mới trong chuông',
|
||
read: 'Đọc',
|
||
allCaughtUp: 'Bạn đã xem hết',
|
||
},
|
||
chat: {
|
||
hidden: 'Đã ẩn',
|
||
hideMessageAria: 'Ẩn tin nhắn này',
|
||
hideMessageTitle: 'Ẩn tin nhắn (quản trị)',
|
||
messageHidden: 'Đã ẩn tin nhắn',
|
||
messageHiddenDesc: 'Đã ẩn khỏi chat Crew cho mọi người.',
|
||
messageHideFailed: 'Không thể ẩn tin nhắn',
|
||
encryptionUnavailable: 'Không khả dụng mã hóa',
|
||
encryptionUnavailableDesc: 'Trình ký của bạn không hỗ trợ mã hóa NIP-44. Vui lòng cập nhật tiện ích.',
|
||
messageFailed: 'Gửi tin nhắn thất bại',
|
||
couldNotSend: 'Không thể gửi tin nhắn.',
|
||
noOneToMessage: 'Chưa có ai để nhắn',
|
||
noOneToMessageDesc: 'Crew này không có thành viên nào khác để trò chuyện.',
|
||
subject: 'Chat Crew {{crew}}',
|
||
title: 'Chat Crew',
|
||
cordnBadgeTitle: 'Định tuyến qua điều phối viên Cordn của Crew này qua ContextVM. Mã hóa đầu cuối.',
|
||
private: 'Riêng tư',
|
||
privateBadgeTitle: 'Mã hóa đầu cuối — chỉ thành viên Crew đọc được những tin nhắn này.',
|
||
encryptedCordn: 'Đã mã hóa & định tuyến qua điều phối viên Crew (Cordn) — không tin nhắn nào đến relay công khai.',
|
||
encryptedNip17: 'Chat nhóm mã hóa cho người sáng lập & tất cả thành viên Crew được liệt kê.',
|
||
moderatorNote: ' Bạn có thể ẩn tin nhắn khỏi Crew với tư cách kiểm duyệt viên.',
|
||
loginToSee: 'Đăng nhập để xem bạn có thể tham gia chat Crew không.',
|
||
membersOnly: 'Chat này riêng tư cho thành viên Crew. Nhờ người sáng lập thêm bạn vào Crew để tham gia trò chuyện.',
|
||
noMessages: 'Chưa có tin nhắn nào. Hãy bắt đầu chat Crew — lên kế hoạch buổi trượt, chia sẻ Spot, khuấy động một clip.',
|
||
newMessages: 'Tin nhắn mới',
|
||
new: 'Mới',
|
||
placeholder: 'Nhắn cho Crew của bạn…',
|
||
sendAria: 'Gửi tin nhắn',
|
||
},
|
||
collectiveJoinRequest: {
|
||
addedTitle: 'Đã thêm {{name}} vào {{collective}} 🛹',
|
||
addedDesc: 'Họ sẽ xác nhận từ phía họ để xuất hiện như thành viên đã xác minh.',
|
||
couldNotAdd: 'Không thể thêm thành viên',
|
||
couldNotDismiss: 'Không thể bỏ qua',
|
||
addedDone: 'Đã thêm',
|
||
addedTo: 'vào',
|
||
dismissedDone: 'Đã bỏ qua yêu cầu từ {{name}}',
|
||
wantsToJoin: 'muốn tham gia',
|
||
alreadyOnRoster: 'Đã có trong danh sách',
|
||
openCollective: 'Mở tập thể',
|
||
dismiss: 'Bỏ qua',
|
||
addToCollective: 'Thêm vào tập thể',
|
||
},
|
||
collectiveMembers: {
|
||
confirmed: 'Đã xác nhận',
|
||
pending: 'Đang chờ',
|
||
pendingTooltip: 'Được tập thể liệt kê — đang chờ thành viên này xác nhận.',
|
||
crewOnly: 'Chỉ Crew',
|
||
crewOnlyTooltip: 'Thành viên này chọn chỉ hiển thị với đồng đội Crew. Bạn thấy họ vì bạn ở trong Crew.',
|
||
hiddenMember: 'Thành viên ẩn',
|
||
title: 'Thành viên',
|
||
verifiedOf: '{{confirmed}} trên {{total}} đã xác minh — mỗi thành viên đã xác nhận đều ký bằng khóa Nostr của riêng họ.',
|
||
verifiedPerMember: 'Tư cách thành viên được xác minh theo từng người. Mỗi thành viên xác nhận bằng khóa Nostr của riêng họ.',
|
||
adminsOne: '{{count}} quản trị viên giúp điều hành Crew.',
|
||
adminsMany: '{{count}} quản trị viên giúp điều hành Crew.',
|
||
},
|
||
confirmMembership: {
|
||
public: 'Công khai',
|
||
crewOnly: 'Chỉ Crew',
|
||
confirmedTitle: 'Đã xác nhận thành viên!',
|
||
confirmedCrew: 'Bạn đã được xác minh trong {{name}} — chỉ hiển thị với đồng đội Crew.',
|
||
confirmedPublic: 'Bạn giờ hiển thị như thành viên đã xác minh của {{name}}.',
|
||
failed: 'Xác nhận thất bại',
|
||
addedTo: 'Bạn đã được thêm vào {{name}}',
|
||
addedDesc: 'Xác nhận tư cách thành viên để nó hiển thị là đã xác minh trên hồ sơ của bạn và của họ.',
|
||
yourVisibility: 'Chế độ hiển thị của bạn',
|
||
confirming: 'Đang xác nhận…',
|
||
confirmButton: 'Xác nhận thành viên',
|
||
},
|
||
contacts: {
|
||
message: 'Nhắn tin',
|
||
removePrivate: 'Xóa khỏi danh bạ riêng tư',
|
||
savePrivate: 'Lưu vào danh bạ riêng tư',
|
||
seoTitle: 'Danh bạ - SkateSpots',
|
||
seoDescription: 'Cộng đồng của bạn — đồng đội Crew, người bạn theo dõi và các cuộc trò chuyện gần đây, với danh bạ riêng tư mã hóa.',
|
||
encryptionUnavailableDesc: 'Trình ký của bạn không hỗ trợ mã hóa NIP-44.',
|
||
removed: 'Đã xóa khỏi danh bạ riêng tư',
|
||
saved: 'Đã lưu vào danh bạ riêng tư',
|
||
savedDesc: 'Chỉ bạn mới thấy danh sách này.',
|
||
updateFailed: 'Không thể cập nhật danh bạ',
|
||
loginTitle: 'Cộng đồng của bạn, ở một nơi',
|
||
loginDesc: 'Đăng nhập để thấy đồng đội Crew, người bạn theo dõi và các cuộc trò chuyện gần đây — và giữ một danh bạ riêng tư, mã hóa.',
|
||
title: 'Danh bạ',
|
||
subtitle: 'Cộng đồng của bạn — đồng đội Crew, theo dõi & trò chuyện',
|
||
filterPlaceholder: 'Lọc theo npub…',
|
||
tabCrew: 'Crew',
|
||
tabFollows: 'Đang theo dõi',
|
||
tabDms: 'DM',
|
||
tabSaved: 'Đã lưu',
|
||
emptyCrewmates: 'Chưa có đồng đội Crew. Tham gia hoặc tạo một Crew để xây mạng lưới cộng đồng của bạn.',
|
||
emptyFollowing: 'Bạn chưa theo dõi ai.',
|
||
emptyDms: 'Chưa có cuộc trò chuyện nào. Nhắn cho một skater để bắt đầu.',
|
||
savedHint: 'Danh sách này được mã hóa bằng khóa của bạn — chỉ bạn đọc được. Nhấn ngôi sao ở người bất kỳ để thêm họ.',
|
||
emptySaved: 'Chưa có liên hệ nào được lưu. Đánh dấu sao cho mọi người từ bất kỳ tab nào để xây danh bạ riêng của bạn.',
|
||
},
|
||
conversation: {
|
||
unknown: 'Không rõ',
|
||
seoTitle: 'Chat với {{name}} - SkateSpots',
|
||
seoDescription: 'Cuộc trò chuyện riêng tư đã mã hóa',
|
||
sendFailed: 'Gửi tin nhắn thất bại',
|
||
sendFailedDesc: 'Vui lòng thử lại sau giây lát.',
|
||
tradeConfirmed: 'Đã xác nhận giao dịch',
|
||
tradeConfirmedDesc: 'Uy tín đã được cập nhật cho cả hai bạn.',
|
||
tradeConfirmFailed: 'Không thể xác nhận giao dịch',
|
||
somethingWrong: 'Đã xảy ra lỗi.',
|
||
soldNote: 'Đã bán cho {{name}}.',
|
||
saleConfirmed: 'Đã xác nhận bán',
|
||
saleConfirmedDesc: '{{name}} giờ có thể xác nhận phía họ.',
|
||
saleConfirmFailed: 'Không thể xác nhận việc bán',
|
||
escrowRedeemed: 'Đã đổi escrow',
|
||
escrowRedeemedDesc: 'Tiền giờ đã ở trong ví Cashu của bạn.',
|
||
escrowRedeemFailed: 'Không thể đổi escrow',
|
||
loginTitle: 'Đăng nhập để xem tin nhắn',
|
||
secureLoginTitle: 'Cần đăng nhập bảo mật',
|
||
secureLoginDesc: 'Tin nhắn cần ứng dụng ký bảo mật.',
|
||
encrypted: 'Đã mã hóa',
|
||
refresh: 'Làm mới',
|
||
didCompleteTrade: 'Bạn đã hoàn thành giao dịch này chưa?',
|
||
recordedSale: '{{name}} đã ghi nhận việc bán. Xác nhận để cập nhật uy tín cho cả hai bạn.',
|
||
confirm: 'Xác nhận',
|
||
confirmSale: 'Xác nhận việc bán này?',
|
||
askedToRecord: '{{name}} đã nhờ bạn ghi nhận. Xác nhận sẽ xây dựng uy tín cho cả hai bạn.',
|
||
confirmSaleButton: 'Xác nhận bán',
|
||
redeemEscrow: 'Đổi escrow',
|
||
escrowAppOnly: 'Escrow Cashu chỉ có trên ứng dụng — mở SkateSpots trên điện thoại để đổi.',
|
||
startThread: 'Gửi tin nhắn để bắt đầu cuộc trò chuyện',
|
||
placeholder: 'Nhập tin nhắn...',
|
||
e2eeNote: 'Tin nhắn được mã hóa đầu cuối bằng NIP-17',
|
||
},
|
||
coordinator: {
|
||
secondsAgo: '{{count}} giây trước',
|
||
minutesAgo: '{{count}} phút trước',
|
||
hoursAgo: '{{count}} giờ trước',
|
||
daysAgo: '{{count}} ngày trước',
|
||
statusIdle: 'Chưa kiểm tra',
|
||
statusChecking: 'Đang kiểm tra…',
|
||
statusOnline: 'Đã kết nối',
|
||
statusStale: 'Yên ắng',
|
||
statusOffline: 'Không thấy',
|
||
statusError: 'Không thể kết nối',
|
||
notACoordinator: 'Đó không phải là điều phối viên',
|
||
notACoordinatorDesc: 'Dán một nprofile, một npub, hoặc liên kết cordn.net.',
|
||
added: 'Đã thêm điều phối viên',
|
||
relayOne: '{{count}} relay',
|
||
relayMany: '{{count}} relay',
|
||
lastSeen: 'thấy lần cuối {{time}}',
|
||
onlineDesc: 'Đang thông báo. Các nhóm dùng nó có thể gửi tin nhắn ngay.',
|
||
staleDesc: 'Đã tìm thấy, nhưng nó chưa thông báo gần đây — có thể đang ngủ.',
|
||
offlineDesc: 'Không thấy thông báo. Có thể nó riêng tư (điều đó bình thường), hoặc đơn giản là offline.',
|
||
errorDesc: 'Không thể kết nối tới các relay.',
|
||
idleDesc: 'Đang kiểm tra…',
|
||
checkingDesc: 'Đang tìm thông báo của nó…',
|
||
eventFoundOne: 'Đã tìm thấy {{count}} sự kiện.',
|
||
eventFoundMany: 'Đã tìm thấy {{count}} sự kiện.',
|
||
check: 'Kiểm tra',
|
||
addLinkCopied: 'Đã sao chép liên kết thêm',
|
||
copyFailed: 'Sao chép thất bại',
|
||
copyManually: 'Sao chép thủ công.',
|
||
addLink: 'Thêm liên kết',
|
||
removeConfirm: 'Xóa điều phối viên này khỏi thiết bị này?',
|
||
scanToJoin: 'Quét trong Cordn để tham gia điều phối viên này.',
|
||
noCoordinator: 'Chưa có điều phối viên',
|
||
noCoordinatorDescA: 'Điều phối viên gửi tin nhắn nhóm',
|
||
encryptedWord: 'đã mã hóa',
|
||
noCoordinatorDescB: 'của Crew bạn theo đúng thứ tự. Nó thấy ai, khi nào và nhóm nào — không bao giờ thấy nội dung. Chọn một cái, hoặc tự vận hành cái của bạn.',
|
||
change: 'Đổi điều phối viên',
|
||
addTitle: 'Thêm điều phối viên',
|
||
add: 'Thêm',
|
||
scanQR: 'Quét QR điều phối viên',
|
||
inputPlaceholder: 'nprofile… hoặc liên kết cordn.net',
|
||
runOwn: 'Tự vận hành',
|
||
runOwnDesc: 'Nó có thể chạy trên điện thoại cũ, Raspberry Pi, hay bất kỳ hộp nhỏ nào bạn để bật. Nhóm của bạn vẫn hoạt động khi nó chạy — và bạn có thể chuyển nhóm bất cứ lúc nào.',
|
||
onPhone: 'Trên điện thoại',
|
||
onPhoneDesc: 'Dùng ứng dụng Cordn Coordinator, rồi quét QR của nó ở đây để thêm.',
|
||
openCordn: 'Mở Cordn',
|
||
scanItsQR: 'Quét QR của nó',
|
||
onServer: 'Trên máy chủ',
|
||
commandCopied: 'Đã sao chép lệnh',
|
||
copyCommand: 'Sao chép lệnh',
|
||
androidSleep: 'Android có thể ngủ điều phối viên trên điện thoại. Hãy chấp nhận việc phải chuyển nhóm thỉnh thoảng.',
|
||
privacyNote: '🔒 Điều phối viên chỉ thấy bản mã và metadata — không bao giờ thấy nội dung tin nhắn. Tự vận hành để giữ cả metadata là của bạn.',
|
||
customTitle: 'Điều phối viên Chat tùy chỉnh',
|
||
customBadge: '· thử nghiệm · relay riêng của bạn',
|
||
customDescShort: 'Tùy chọn — Crew của bạn đã có chat mã hóa đầu cuối sẵn, nên bạn không cần cái này. Chỉ đặt nếu bạn tự vận hành',
|
||
remove: 'Xóa',
|
||
pointerNote: 'Hiện chỉ là con trỏ: một điểm cuối wss:// được dùng làm relay chat của Crew; một điểm https:// dùng qua relay ContextVM chung. Cordn MLS thật chưa được nối.',
|
||
cordnCoordinator: 'Điều phối viên Cordn',
|
||
invalid: 'Đó không giống điều phối viên. Dán một nprofile, liên kết cordn.net, hoặc URL https/wss.',
|
||
useMine: 'Dùng điều phối viên của tôi',
|
||
},
|
||
createCrew: {
|
||
seoTitle: 'Tạo Crew - SkateSpots',
|
||
seoDescription: 'Tạo Crew trượt ván của bạn — sân nhà, thành viên và Spot.',
|
||
loginRequired: 'Cần đăng nhập',
|
||
loginRequiredDesc: 'Bạn cần đăng nhập để tạo Crew.',
|
||
backToCrews: 'Quay lại Crew',
|
||
title: 'Tạo Crew',
|
||
intro: 'Gia đình trượt ván của bạn — những người bạn trượt cùng. Chỉ cần một cái tên là bắt đầu được; mọi thứ khác đều tùy chọn.',
|
||
},
|
||
crew: {
|
||
seoTitleNamed: '{{name}} - Crew SkateSpots',
|
||
seoTitle: 'Crew - SkateSpots',
|
||
seoDescription: 'Một Crew trượt ván trên SkateSpots.',
|
||
postHidden: 'Đã ẩn bài đăng',
|
||
postHiddenDesc: 'Đã xóa khỏi bảng tin Crew cho mọi người.',
|
||
postHideFailed: 'Không thể ẩn bài đăng',
|
||
backToCrews: 'Quay lại Crew',
|
||
disband: 'Giải tán',
|
||
youAreCaptain: 'Bạn là đội trưởng',
|
||
member: 'Thành viên',
|
||
askSasquatch: 'Hỏi Sasquatch',
|
||
agent: 'Trợ lý Crew',
|
||
agentDesc: 'Hướng dẫn viên AI của Crew bạn — Spot, sự kiện, Coach & đồ nghề gần đây, với dữ liệu trực tiếp.',
|
||
eventsTab: 'Sự kiện',
|
||
chatTab: 'Chat',
|
||
newMessages: 'Tin nhắn mới',
|
||
hostJam: 'Tổ chức jam',
|
||
noEvents: 'Chưa có sự kiện Crew. Tổ chức một jam, cuộc thi hay buổi gặp mặt với tư cách Crew — nó kết nối Crew bạn với lịch sự kiện và cho mọi người Zap.',
|
||
support: 'Ủng hộ',
|
||
zapCrew: 'Zap Crew',
|
||
bandTitle: 'Ban nhạc Crew',
|
||
bandTagline: 'Nhạc sống · trượt & âm thanh',
|
||
listenTitle: 'Nghe: {{domain}}',
|
||
listen: 'Nghe nhạc',
|
||
setUpGig: 'Tổ chức buổi diễn',
|
||
bookGigMessage: 'Này {{crew}} — mình muốn đặt {{band}} biểu diễn. Bạn rảnh để bàn ngày không?',
|
||
messageAboutGig: 'Nhắn về buổi diễn',
|
||
gigHintA: 'thêm một sự kiện âm nhạc vào lịch do Crew này tổ chức.',
|
||
messageShort: 'Nhắn tin',
|
||
gigHintB: 'mở DM mã hóa tới Crew để sắp xếp ngày & chi tiết.',
|
||
homeSpots: 'Spot nhà',
|
||
viewSpot: 'Xem Spot',
|
||
seeOnMap: 'Xem trên bản đồ →',
|
||
founderLinks: 'Người sáng lập & Liên kết',
|
||
startedBy: 'Khởi tạo bởi {{name}}',
|
||
opens: 'Mở: {{domain}}',
|
||
},
|
||
crews: {
|
||
seoTitle: 'Crew - SkateSpots',
|
||
seoDescription: 'Tìm đồng đội của bạn. Khám phá các Crew trượt ván, tập thể và cộng đồng địa phương gần bạn.',
|
||
videoPartTooltip: 'Crew này có một video part',
|
||
part: 'Part',
|
||
bandTooltip: 'Ban nhạc Crew: {{name}}',
|
||
band: 'Ban nhạc',
|
||
focusAll: 'Tất cả',
|
||
focusAllShort: 'Tất cả',
|
||
focusDiy: 'DIY',
|
||
focusPhoto: 'Nhiếp ảnh',
|
||
focusCoaching: 'Coaching',
|
||
focusArt: 'Nghệ thuật',
|
||
focusMusic: 'Âm nhạc',
|
||
focusPhysio: 'Vật lý trị liệu',
|
||
focusMixed: 'Hỗn hợp',
|
||
title: 'Crew',
|
||
heroLine: 'Gia đình trượt ván gắn với bản đồ của bạn — những người bạn trượt',
|
||
heroWith: 'cùng',
|
||
heroRest: ', không phải người bạn thuê (đó là The Lab).',
|
||
crewCountOne: '{{count}} Crew',
|
||
crewCountMany: '{{count}} Crew',
|
||
cityCountOne: '{{count}} thành phố',
|
||
cityCountMany: '{{count}} thành phố',
|
||
createCrew: 'Tạo Crew',
|
||
create: 'Tạo',
|
||
searchPlaceholder: 'Tìm Crew theo tên hoặc thành phố…',
|
||
filterTitle: 'Lọc Crew',
|
||
filterDesc: 'Crew quan tâm đến điều gì.',
|
||
nearMe: 'Gần tôi',
|
||
emptySearchTitle: 'Không có Crew nào khớp tìm kiếm của bạn',
|
||
emptySearchHint: 'Không tìm thấy gì cho “{{query}}”. Thử tên hoặc thành phố khác.',
|
||
clearSearch: 'Xóa tìm kiếm',
|
||
emptyFocusTitle: 'Chưa có Crew {{label}} nào',
|
||
emptyFocusHint: 'Chưa ai giương cao ngọn cờ “{{label}}” ở đây. Hiện mọi Crew, hoặc tự bắt đầu cái này.',
|
||
showAll: 'Hiện tất cả Crew',
|
||
claimTitle: 'Khẳng định cộng đồng địa phương của bạn',
|
||
claimHint: 'Chưa có Crew nào được trồng ở đây. Hãy là người đầu tiên — khởi tạo Crew, liên kết Spot nhà, và đưa cộng đồng của bạn lên bản đồ để mọi người tìm thấy.',
|
||
},
|
||
crewCoordinator: {
|
||
privateChat: 'Chat Crew Riêng tư',
|
||
on: 'Bật',
|
||
defaultA: 'Tab',
|
||
chatWord: 'Chat',
|
||
defaultB: 'là',
|
||
e2ee: 'mã hóa đầu cuối',
|
||
defaultC: 'cho người sáng lập và tất cả thành viên được liệt kê — không cần thiết lập gì. Tin nhắn được niêm phong bằng khóa của từng thành viên (NIP-17), nên chỉ Crew của bạn đọc được.',
|
||
advancedA: 'Nâng cao: tự vận hành',
|
||
cordnCoordinator: 'Điều phối viên Cordn',
|
||
routeThrough: 'Định tuyến chat qua nó',
|
||
coordinator: 'Điều phối viên',
|
||
deliveredOver: 'Được chuyển qua',
|
||
sharedRelay: '— relay ContextVM chung.',
|
||
ownRelay: '— relay riêng của Crew bạn.',
|
||
chatLive: 'Chat riêng tư đang hoạt động',
|
||
routesA: 'Tab',
|
||
routesB: 'định tuyến qua điều phối viên này: tin nhắn được mã hóa đầu cuối (NIP-44, niêm phong cho từng thành viên), nên nó chỉ xử lý lưu lượng đã niêm phong.',
|
||
publicWarning: 'Lưu ý: nó được định địa chỉ qua relay ContextVM chung, nên bản mã và metadata (Crew nào, khi nào) hiển thị công khai — chỉ là không đọc được. Hãy trỏ Crew đến một relay wss:// riêng để giữ kín cả điều đó.',
|
||
ownRelaySafe: 'Không có gì riêng của Crew rời khỏi relay riêng của Crew bạn.',
|
||
manage: 'Quản lý điều phối viên',
|
||
open: 'Mở {{domain}}',
|
||
runBy: 'Điều phối viên do',
|
||
},
|
||
dms: {
|
||
securityReminder: 'Nhắc nhở bảo mật',
|
||
phishingStrong: 'SkateSpots sẽ không bao giờ DM bạn',
|
||
phishingRest: 'để yêu cầu xác minh tài khoản, chia sẻ khóa, hay gửi thanh toán. Nếu ai đó tự nhận là hỗ trợ SkateSpots qua DM — đó là lừa đảo.',
|
||
dismissReminder: 'Bỏ qua nhắc nhở bảo mật',
|
||
peopleCount: '{{count}} người',
|
||
youPrefix: 'Bạn: ',
|
||
unreadMessages: 'Tin nhắn chưa đọc',
|
||
seoTitle: 'Tin nhắn - SkateSpots',
|
||
seoDescription: 'Tin nhắn riêng tư đã mã hóa với cộng đồng trượt ván',
|
||
loginTitle: 'Đăng nhập để truy cập tin nhắn',
|
||
loginDesc: 'Nhắn tin riêng tư, mã hóa với skater trong cộng đồng',
|
||
secureLoginTitle: 'Cần đăng nhập bảo mật',
|
||
secureLoginDesc: 'Tin nhắn riêng tư cần ứng dụng ký bảo mật để mã hóa cuộc trò chuyện của bạn.',
|
||
onAndroid: 'Trên Android:',
|
||
useAmber: 'Dùng ứng dụng Amber',
|
||
getAmber: 'Tải Amber →',
|
||
onIOS: 'Trên iOS:',
|
||
iosHint: 'Thử đăng nhập bằng kết nối bunker (nsec.app) từ Cài đặt',
|
||
browserHint: 'Thử đăng nhập bằng tiện ích trình duyệt như Alby hoặc nos2x có hỗ trợ mã hóa.',
|
||
title: 'Tin nhắn',
|
||
subtitleFull: 'Mã hóa đầu cuối bằng NIP-17',
|
||
subtitleShort: 'Đã mã hóa',
|
||
newMessage: 'Tin nhắn mới',
|
||
groups: 'Nhóm',
|
||
loadFailed: 'Không thể tải tin nhắn',
|
||
emptyTitle: 'Chưa có tin nhắn nào',
|
||
emptyDesc: 'Bắt đầu cuộc trò chuyện với ai đó trong cộng đồng',
|
||
startConversation: 'Bắt đầu cuộc trò chuyện',
|
||
undecryptableOne: '{{count}} tin nhắn mã hóa không mở được bằng trình ký của bạn.',
|
||
undecryptableMany: '{{count}} tin nhắn mã hóa không mở được bằng trình ký của bạn.',
|
||
},
|
||
editCrew: {
|
||
seoTitleNamed: 'Chỉnh sửa {{name}} - SkateSpots',
|
||
seoTitle: 'Chỉnh sửa Crew - SkateSpots',
|
||
seoDescription: 'Chỉnh sửa Crew trượt ván của bạn.',
|
||
loginRequired: 'Cần đăng nhập',
|
||
notYours: 'Không phải Crew của bạn',
|
||
notYoursDesc: 'Chỉ người sáng lập Crew mới chỉnh sửa được Crew này.',
|
||
backToCrew: 'Quay lại Crew',
|
||
title: 'Chỉnh sửa Crew',
|
||
},
|
||
form: {
|
||
add: 'Thêm',
|
||
added: 'Đã thêm',
|
||
addNameInBasicsA: 'Thêm lại tên Crew trong',
|
||
addNameInBasicsB: 'để hoàn tất.',
|
||
adminsDescA: 'Biến thành viên tin cậy thành',
|
||
adminsWord: 'quản trị viên',
|
||
adminsDescB: '— họ có thể mời thành viên và kiểm duyệt bảng tin & chat Crew bằng khóa của riêng họ. Bạn (người sáng lập) luôn là chủ sở hữu danh tính của Crew.',
|
||
agentDescA: 'Thêm',
|
||
agentDescB: ', một hướng dẫn viên AI thực sự biết Crew của bạn. Thành viên có thể hỏi về',
|
||
agentDescC: '— cùng Spot, sự kiện, Coach và đồ nghề gần đây từ dữ liệu SkateSpots trực tiếp. Chạy ngay trong trình duyệt; không cần khóa hay thiết lập. Còn sớm (AI bậc miễn phí, nên đôi khi chậm).',
|
||
agentDescStrong: 'jam tiếp theo, ai điều hành Crew, bạn đang tìm gì và phong cách của bạn',
|
||
agentEnabledNote: 'Sasquatch sẽ xuất hiện trên trang Crew của bạn sau khi bạn lưu.',
|
||
bandDesc: 'Có ban nhạc? Cộng đồng trượt ván và nhạc địa phương luôn song hành — ghi tên ban nhạc và liên kết đến nhạc.',
|
||
bandFooterA: 'Để có hồ sơ ban nhạc đầy đủ (thể loại, nhạc cụ, buổi diễn), tạo một',
|
||
musicianWord: 'Nhạc sĩ',
|
||
bandFooterB: 'trong The Lab, rồi liên kết nó trong mục',
|
||
linkedLabWord: 'Hồ sơ Lab đã liên kết',
|
||
bandFooterC: 'ở trên.',
|
||
bandMusicWord: 'Ban nhạc & Âm nhạc',
|
||
bandName: 'Tên ban nhạc',
|
||
bandNamePlaceholder: 'ví dụ: The Bail Outs',
|
||
bandNudgeA: 'Bạn có ban nhạc — nhấn để đặt',
|
||
crewTypeWord: 'Loại Crew',
|
||
bandNudgeB: 'thành',
|
||
bandNudgeC: 'để bạn cũng xuất hiện trong cộng đồng Âm nhạc của The Lab.',
|
||
beta: 'Beta',
|
||
bioLabel: 'Giới thiệu / Tuyên ngôn',
|
||
bioPlaceholder: 'Bạn là ai, bạn trượt gì, câu chuyện của bạn...',
|
||
continue: 'Tiếp tục',
|
||
crewCreated: 'Đã tạo Crew!',
|
||
crewUpdated: 'Đã cập nhật Crew!',
|
||
crewName: 'Tên Crew',
|
||
crewOnlyWord: 'Chỉ Crew',
|
||
crewType: 'Loại Crew',
|
||
crewTypeDescA: 'Crew của bạn tập trung vào một nghề? Chọn một để cũng xuất hiện trong cộng đồng đó tại',
|
||
theLab: 'The Lab',
|
||
crewTypeDescB: '. Các Crew trượt ván thông thường vẫn là',
|
||
mixedWord: 'Hỗn hợp',
|
||
crewTypeDescC: '.',
|
||
customVibeHint: 'Thêm phong cách hoặc trọng tâm của riêng bạn bằng #',
|
||
customVibePlaceholder: 'ví dụ: downhill, night-sessions, no-comply',
|
||
editDesc: 'Danh tính, sân nhà và thành viên của Crew bạn',
|
||
enableAgent: 'Bật Trợ lý Crew',
|
||
enableTreasury: 'Bật Quỹ Crew',
|
||
failed: 'Thất bại',
|
||
founded: 'Thành lập (Năm)',
|
||
geolocationUnsupported: 'Không hỗ trợ định vị',
|
||
gettingLocation: 'Đang lấy...',
|
||
goalHint: 'Đảm bảo hồ sơ Nostr của bạn có địa chỉ Lightning (lud16) để các khoản đóng góp đến được.',
|
||
goalPlaceholder: 'ví dụ: Đổ bê tông Spot DIY',
|
||
goalTarget: 'Mục tiêu (sats)',
|
||
goalWhat: 'Mục tiêu là gì?',
|
||
homeSpots: 'Spot nhà',
|
||
homeSpotsDesc: 'Liên kết các Spot mà Crew bạn hay lui tới — chúng sẽ kết nối với Crew bạn trên bản đồ',
|
||
homeTurf: 'Sân nhà (Thành phố / Khu vực)',
|
||
homeTurfPlaceholder: 'Bristol, UK',
|
||
instagramDetected: 'Đã phát hiện clip Instagram',
|
||
invalidMember: 'Nhập npub, nprofile, hoặc khóa công khai hex hợp lệ.',
|
||
latitude: 'Vĩ độ',
|
||
leaveBlankLocation: 'Để trống để giữ vị trí sân nhà hiện tại.',
|
||
links: 'Liên kết',
|
||
locationError: 'Lỗi vị trí',
|
||
locationFound: 'Đã tìm thấy vị trí',
|
||
logoAlt: 'Crew',
|
||
logoHint: 'Logo giúp Crew của bạn dễ nhận ra ngay trên bản đồ và trong bảng tin. Hình vuông là tốt nhất.',
|
||
logoLabel: 'Logo / Ảnh Crew',
|
||
logoUploaded: 'Đã tải logo lên',
|
||
longitude: 'Kinh độ',
|
||
looksGood: 'Trông ổn',
|
||
makeAdmin: 'Đặt làm quản trị viên',
|
||
mapPin: 'Ghim bản đồ',
|
||
mapPinHint: 'Đặt Crew của bạn lên bản đồ để người địa phương tìm thấy. Nhấn nút — không cần gõ.',
|
||
memberAlreadyAdded: 'Thành viên đó đã được thêm.',
|
||
members: 'Thành viên',
|
||
membersDesc: 'Thêm tài khoản Nostr của Crew. Mỗi thành viên xác nhận bằng khóa của riêng họ — cho đến lúc đó họ hiển thị là “đang chờ”.',
|
||
musicLink: 'Liên kết nhạc',
|
||
nameCrew: 'Đặt tên Crew của bạn',
|
||
nameCrewDesc: 'Crew cần có tên trước khi bạn tiếp tục.',
|
||
nameCrewFirst: 'Đặt tên Crew trước',
|
||
nameHint: 'Điều duy nhất bạn thực sự cần. Bạn có thể đổi sau.',
|
||
namePlaceholder: 'ví dụ: Backyard Bandits',
|
||
nameRequired: 'Cần có tên',
|
||
nameRequiredDesc: 'Đặt tên cho Crew của bạn.',
|
||
nip05DescA: 'Một tên định danh có thể xác minh mà bạn kiểm soát trên bất kỳ tên miền nào, ví dụ',
|
||
nip05DescB: '. Nó được xác minh dựa trên khóa người sáng lập của Crew này, và bạn có thể thêm vài cái — mỗi cái hiện dấu kiểm xanh khi tên miền xác nhận.',
|
||
nip05Label: 'NIP-05 của Crew',
|
||
nip05Placeholder: 'crew@yourdomain.com',
|
||
nip05Add: 'Thêm',
|
||
nip05Invalid: 'Nhập tên định danh như crew@yourdomain.com',
|
||
nip05TooMany: 'Bạn chỉ có thể thêm tối đa {{count}} tên định danh.',
|
||
nip05Unverified: 'Chưa kiểm tra',
|
||
nip05Remove: 'Xóa {{handle}}',
|
||
notAKeyA: 'Đó vẫn chưa giống khóa Nostr — dán một',
|
||
notAKeyB: ',',
|
||
notAKeyC: ', hoặc khóa công khai hex.',
|
||
onlyYouTubeInstagram: 'Chỉ hỗ trợ liên kết YouTube và Instagram.',
|
||
openCall: 'Lời kêu gọi',
|
||
openCallDescA: 'Đang tìm Filmer, Editor hay người mới? Hãy đưa ra lời kêu gọi — nó hiện trên trang Crew để những người phù hợp từ',
|
||
openCallDescB: 'có thể liên hệ.',
|
||
optional: '· tùy chọn',
|
||
optionalParen: '(tùy chọn)',
|
||
otherSocials: 'Mạng xã hội khác',
|
||
otherSocialsDesc: 'Thêm bao nhiêu tùy thích — YouTube, TikTok, Discord, Telegram, v.v.',
|
||
ownVisibility: 'chế độ hiển thị của riêng họ',
|
||
progress: 'Tiến độ',
|
||
publicWord: 'Công khai',
|
||
publishedToScene: 'Đã xuất bản lên cộng đồng.',
|
||
publishFailed: 'Xuất bản thất bại',
|
||
publishing: 'Đang xuất bản...',
|
||
ready: 'Sẵn sàng',
|
||
readyToRollA: 'Sẵn sàng khởi chạy — nhấn',
|
||
readyToRollB: 'bất cứ khi nào bạn muốn.',
|
||
removeAdminRole: 'Xóa vai trò quản trị',
|
||
removeMember: 'Xóa thành viên',
|
||
removeSocial: 'Xóa liên kết mạng xã hội',
|
||
removeVibe: 'Xóa {{vibe}}',
|
||
roles: 'Vai trò:',
|
||
sasquatch: 'Sasquatch',
|
||
saveCrew: 'Lưu Crew',
|
||
skipToEnd: 'Bỏ qua đến cuối',
|
||
socialPlaceholder: '@tên hoặc liên kết',
|
||
sponsorDesc: 'Nếu một cửa hàng địa phương tài trợ Crew của bạn, chọn họ ở đây để hiện banner “Được tài trợ bởi” dẫn tới cửa hàng của họ.',
|
||
stepAria: 'Bước {{step}}: {{title}}',
|
||
stepBasics: 'Điều cơ bản',
|
||
stepBasicsShort: 'Cơ bản',
|
||
stepBasicsHint: 'Chỉ những thứ thiết yếu — bạn có thể tạo Crew chỉ với bước này.',
|
||
stepVibe: 'Danh tính & Phong cách',
|
||
stepVibeShort: 'Phong cách',
|
||
stepVibeHint: 'Cách Crew của bạn xuất hiện quanh ứng dụng. Tất cả đều tùy chọn.',
|
||
stepSquad: 'Đội & Spot',
|
||
stepSquadShort: 'Đội',
|
||
stepSquadHint: 'Thêm người của bạn và sân nhà. Bạn luôn có thể làm sau.',
|
||
stepExtras: 'Bổ sung',
|
||
stepExtrasShort: 'Bổ sung',
|
||
stepExtrasHint: 'Các nâng cấp cho sau này — bỏ qua bất cứ thứ gì bạn chưa chắc.',
|
||
extrasAllOptional: 'Mọi thứ ở bước này đều tùy chọn.',
|
||
groupIdentity: 'Danh tính',
|
||
groupIdentityHint: 'Tên định danh, liên kết',
|
||
groupAi: 'Sasquatch AI',
|
||
groupShowcase: 'Trưng bày',
|
||
groupPayments: 'Thanh toán & quỹ',
|
||
groupIntegrations: 'Tích hợp',
|
||
groupAdvanced: 'Nâng cao',
|
||
groupAdvancedHint: 'thử nghiệm',
|
||
pro: 'Pro',
|
||
agentProNote: 'Vận hành bởi Sasquatch. Pro dùng model tốt nhất; không có Pro thì dùng bản dự phòng miễn phí.',
|
||
stepOf: 'Bước {{step}} trên {{total}}',
|
||
treasuryDescA: 'Gây quỹ sats cho một mục tiêu chung — sửa Spot DIY địa phương, một chuyến đi của Crew, một giải thưởng cuộc thi. Đó là mục tiêu Lightning minh bạch; Zap đi',
|
||
treasuryDescStrong: 'thẳng vào ví của bạn',
|
||
treasuryDescB: '(qua địa chỉ Lightning trong hồ sơ của bạn). SkateSpots không bao giờ giữ tiền.',
|
||
upload: 'Tải lên',
|
||
uploadFailed: 'Tải lên thất bại',
|
||
useCurrentLocation: 'Dùng vị trí hiện tại',
|
||
vibeLabel: 'Phong cách / Trọng tâm',
|
||
videoDescA: 'Full part, montage hay clip mới nhất của Crew bạn. Dán một liên kết',
|
||
videoDescB: '— nó sẽ phát ngay trên trang Crew của bạn.',
|
||
visibilityDescA: 'Mỗi thành viên kiểm soát',
|
||
visibilityDescB: '— khi họ xác nhận bằng khóa của mình, họ có thể chọn',
|
||
visibilityDescC: '— ẩn khỏi người ngoài). Bạn không thể đặt thay họ; đó là quyền của họ.',
|
||
website: 'Website',
|
||
yourRoles: 'Vai trò của bạn (Trưởng nhóm)',
|
||
youtubeDetected: 'Đã phát hiện video YouTube',
|
||
invalidUrl: 'Nhập liên kết hợp lệ (ví dụ: https://example.com).',
|
||
},
|
||
groupConversation: {
|
||
seoTitle: 'Chat nhóm - SkateSpots',
|
||
invalidLink: 'Liên kết chat nhóm này không hợp lệ.',
|
||
loginTitle: 'Đăng nhập để xem nhóm này',
|
||
secureSignerTitle: 'Cần trình ký bảo mật',
|
||
secureSignerDesc: 'Tin nhắn nhóm cần trình ký hỗ trợ NIP-44.',
|
||
encryptedGroup: 'Nhóm mã hóa đầu cuối',
|
||
empty: 'Chưa có tin nhắn — chào nhóm đi.',
|
||
placeholder: 'Nhắn cho nhóm...',
|
||
},
|
||
hero: {
|
||
established: 'Thành lập {{year}}',
|
||
teamLeader: 'Trưởng nhóm: {{name}}',
|
||
ledBy: 'Dẫn dắt bởi',
|
||
},
|
||
inviteCard: {
|
||
acceptedTitle: 'Đã chấp nhận lời mời 🛹',
|
||
acceptedDesc: 'Người sáng lập Crew xác nhận thành viên trên {{crew}}. Bạn sẽ xuất hiện trong danh sách sau khi họ phê duyệt.',
|
||
couldNotAccept: 'Không thể chấp nhận',
|
||
couldNotDecline: 'Không thể từ chối',
|
||
acceptedDone: 'Đã chấp nhận —',
|
||
confirmsMembers: 'xác nhận thành viên',
|
||
declinedDone: 'Đã từ chối lời mời vào {{crew}}',
|
||
invitedYou: 'đã mời bạn tham gia',
|
||
admin: 'Quản trị',
|
||
accept: 'Chấp nhận',
|
||
decline: 'Từ chối',
|
||
},
|
||
inviteDialog: {
|
||
messageIntro: 'Này — tham gia Crew {{crew}} trên SkateSpots 🛹',
|
||
messageBody: 'Đăng nhập bằng khóa Nostr của bạn, rồi yêu cầu tham gia từ trang Crew.',
|
||
copyFailed: 'Sao chép thất bại',
|
||
shareTitle: 'Tham gia {{crew}}',
|
||
sentTitle: 'Đã gửi lời mời! 🛹',
|
||
sentDesc: 'Họ sẽ nhận thông báo để chấp nhận hoặc từ chối.',
|
||
couldNotSend: 'Không thể gửi lời mời',
|
||
trigger: 'Mời',
|
||
title: 'Mời vào {{crew}}',
|
||
description: 'Gửi lời mời tới khóa Nostr của ai đó, hoặc chia sẻ liên kết.',
|
||
sendTab: 'Gửi lời mời',
|
||
shareTab: 'Chia sẻ liên kết',
|
||
npubLabel: 'npub của Skater',
|
||
invalidNpub: 'Đó không giống một npub hợp lệ.',
|
||
noteLabel: 'Ghi chú',
|
||
optional: '(tùy chọn)',
|
||
notePlaceholder: 'Đến trượt với chúng tôi…',
|
||
inviteAsAdmin: 'Mời làm quản trị viên',
|
||
inviteAsAdminDesc: 'Có thể quản lý Crew & mời người khác.',
|
||
sendButton: 'Gửi lời mời',
|
||
sendFooter: 'Họ sẽ nhận thông báo để chấp nhận hoặc từ chối. Tư cách thành viên chỉ được tính khi họ chấp nhận.',
|
||
inviteLink: 'Liên kết mời',
|
||
messageLabel: 'Tin nhắn',
|
||
copyMessage: 'Sao chép tin nhắn',
|
||
founderHint: 'Với tư cách người sáng lập, bạn cũng có thể thêm khóa thành viên trực tiếp, rồi họ xác nhận.',
|
||
addMemberSettings: 'Thêm thành viên trong cài đặt Crew',
|
||
},
|
||
joinRequest: {
|
||
moreCount: '+{{count}} nữa',
|
||
addedTitle: 'Đã thêm {{name}} vào {{crew}} 🛹',
|
||
addedDesc: 'Họ sẽ xác nhận từ phía họ để xuất hiện như thành viên.',
|
||
vouchedTitle: 'Bạn đã bảo chứng cho {{name}} 🤝',
|
||
vouchedDesc: 'Người sáng lập {{crew}} sẽ thấy sự ủng hộ của bạn và có thể thêm họ.',
|
||
couldNotEndorse: 'Không thể ủng hộ',
|
||
endorsedDoneA: 'Bạn đã bảo chứng cho',
|
||
endorsedDoneB: '— người sáng lập sẽ xác nhận',
|
||
vouchedBy: 'Được bảo chứng bởi',
|
||
approveAndAdd: 'Phê duyệt & thêm',
|
||
addToCrew: 'Thêm vào Crew',
|
||
vouchedWaiting: 'Đã bảo chứng — đang chờ người sáng lập',
|
||
vouchForThem: 'Bảo chứng cho họ',
|
||
leadershipOnly: 'Chỉ ban lãnh đạo Crew.',
|
||
adminHelp: 'Quản trị viên không thể thêm thành viên trực tiếp — bảo chứng cho người sáng lập biết bạn ủng hộ rider này.',
|
||
},
|
||
leadership: {
|
||
teamLeader: 'Trưởng nhóm',
|
||
captain: 'Đội trưởng',
|
||
verifiedMember: 'Thành viên đã xác minh',
|
||
messageName: 'Nhắn cho {{name}}',
|
||
title: 'Ban lãnh đạo',
|
||
captainsOne: '{{count}} Đội trưởng',
|
||
captainsMany: '{{count}} Đội trưởng',
|
||
footer: 'Trưởng nhóm điều hành danh sách; các Đội trưởng giúp mời, tổ chức jam và giữ Crew gọn gàng.',
|
||
},
|
||
linkField: {
|
||
title: 'Crew đã liên kết',
|
||
description: 'Bạn cũng điều hành một Crew? Liên kết nó để mọi người có thể nhảy giữa studio và Crew của bạn. Tùy chọn. Liên kết Crew này ngược lại hồ sơ từ trình chỉnh sửa Crew và nó sẽ hiện huy hiệu xanh',
|
||
descriptionRest: 'trên cả hai.',
|
||
none: 'Bạn chưa có Crew nào. Tạo một cái ở trang Crew để liên kết tại đây.',
|
||
linkedCrew: 'Crew đã liên kết ({{id}})',
|
||
},
|
||
lookingFor: {
|
||
title: 'Lời kêu gọi',
|
||
subtitle: 'Crew này đang tìm:',
|
||
},
|
||
memberVisibility: {
|
||
updatedTitle: 'Đã cập nhật chế độ hiển thị',
|
||
updatedCrew: 'Bạn giờ chỉ hiển thị với đồng đội Crew.',
|
||
updatedPublic: 'Bạn giờ hiển thị công khai trong Crew này.',
|
||
couldNotUpdate: 'Không thể cập nhật',
|
||
title: 'Chế độ hiển thị của bạn trong Crew này',
|
||
save: 'Lưu chế độ hiển thị',
|
||
},
|
||
newMessage: {
|
||
inCrew: 'Trong Crew của bạn: {{crews}}',
|
||
crewmate: 'Đồng đội Crew',
|
||
following: 'Đang theo dõi',
|
||
invalidKey: 'Đó không giống npub hoặc khóa công khai hợp lệ.',
|
||
description: 'Tìm người của bạn theo tên, hoặc dán npub để nhắn cho bất kỳ ai. Chọn hai người trở lên để bắt đầu nhóm.',
|
||
searchPlaceholder: 'Tìm tên hoặc dán npub1...',
|
||
messageThisKey: 'Nhắn cho khóa này',
|
||
loadingPeople: 'Đang tải người của bạn...',
|
||
noPeople: 'Chưa có đồng đội Crew hay người theo dõi.',
|
||
noPeopleHint: 'Dán npub của ai đó ở trên để bắt đầu cuộc trò chuyện.',
|
||
yourCrews: 'Crew của bạn',
|
||
selected: 'Đã chọn {{count}}',
|
||
startGroup: 'Bắt đầu nhóm ({{count}})',
|
||
message: 'Nhắn tin',
|
||
},
|
||
nip05: {
|
||
mismatch: 'Tên miền này trỏ tên định danh tới một khóa Nostr khác với người sáng lập Crew. Chưa xác minh.',
|
||
verified: 'Đã xác minh — tên miền xác nhận tên định danh này thuộc khóa người sáng lập Crew.',
|
||
},
|
||
requestCollective: {
|
||
sentTitle: 'Đã gửi yêu cầu 🤝',
|
||
sentDesc: '{{name}} sẽ thấy nó trong thông báo và có thể thêm bạn.',
|
||
couldNotSend: 'Không thể gửi yêu cầu',
|
||
title: 'Tham gia tập thể này',
|
||
waiting: 'Đã gửi yêu cầu — đang chờ {{name}}.',
|
||
askA: 'Nhờ Crew đứng sau',
|
||
askB: 'thêm bạn vào danh sách. Họ sẽ nhận thông báo và có thể thêm bạn chỉ với một lần nhấn.',
|
||
placeholder: 'Tùy chọn: nói lý do bạn phù hợp…',
|
||
sendButton: 'Gửi yêu cầu',
|
||
},
|
||
requestToJoin: {
|
||
sentTitle: 'Đã gửi yêu cầu! 🛹',
|
||
sentDesc: 'Ban lãnh đạo {{crew}} sẽ thấy nó trong thông báo của họ.',
|
||
couldNotSend: 'Không thể gửi yêu cầu',
|
||
trigger: 'Yêu cầu tham gia',
|
||
title: 'Tham gia {{crew}}',
|
||
description: 'Thông báo cho người sáng lập & quản trị viên Crew để họ có thể thêm bạn.',
|
||
placeholder: 'Chào một tiếng — bạn trượt ở đâu, quen ai, vì sao muốn tham gia…',
|
||
sending: 'Đang gửi…',
|
||
sendButton: 'Gửi yêu cầu tham gia',
|
||
},
|
||
sponsorBanner: {
|
||
loading: 'Đang tải nhà tài trợ…',
|
||
sponsoredBy: 'Được tài trợ bởi',
|
||
},
|
||
sponsorPicker: {
|
||
selected: 'Đã chọn nhà tài trợ',
|
||
setLoading: 'Đã đặt nhà tài trợ (đang tải cửa hàng…)',
|
||
set: 'Đã đặt nhà tài trợ',
|
||
clearAria: 'Xóa nhà tài trợ',
|
||
searchPlaceholder: 'Tìm cửa hàng trượt ván theo tên hoặc thành phố…',
|
||
loading: 'Đang tải cửa hàng…',
|
||
noMatch: 'Không có cửa hàng nào khớp — thử tìm kiếm khác.',
|
||
none: 'Chưa tìm thấy cửa hàng nào.',
|
||
},
|
||
treasury: {
|
||
title: 'Quỹ Crew',
|
||
ofGoal: 'trên mục tiêu {{target}}',
|
||
goalReached: 'Đã đạt mục tiêu!',
|
||
funded: 'Đã gây quỹ {{percent}}%',
|
||
contributionOne: '{{count}} khoản đóng góp',
|
||
contributionMany: '{{count}} khoản đóng góp',
|
||
daysLeft: 'Còn {{days}} ngày',
|
||
closed: 'đã đóng',
|
||
nonCustodial: 'Phi tập trung · Zap đi thẳng vào ví Lightning của Crew',
|
||
},
|
||
userStatus: {
|
||
atSpot: '📍 Đang ở một Spot',
|
||
autoClears: '⏱️ Tự xóa sau {{min}} phút',
|
||
},
|
||
video: {
|
||
title: 'The Part',
|
||
fullVideo: 'Video đầy đủ · montage',
|
||
latestClip: 'Clip mới nhất',
|
||
watch: 'Xem',
|
||
iframeTitle: '{{crew}} — video',
|
||
playAria: 'Phát video {{crew}}',
|
||
thumbAlt: 'Ảnh thu nhỏ video {{crew}}',
|
||
instagramTitle: 'Clip Instagram',
|
||
},
|
||
vouch: {
|
||
removedTitle: 'Đã xóa bảo chứng',
|
||
vouchedTitle: 'Đã bảo chứng!',
|
||
removedDesc: 'Bạn không còn bảo chứng cho {{name}}.',
|
||
vouchedDesc: 'Bạn đã bảo chứng cho {{name}}. Cộng đồng tin nhau.',
|
||
couldNotVouch: 'Không thể bảo chứng',
|
||
title: 'Bảo chứng cộng đồng',
|
||
sceneVerified: 'Cộng đồng xác minh',
|
||
vouched: 'Đã bảo chứng',
|
||
newUnvouched: 'Mới · chưa bảo chứng',
|
||
checking: 'Đang kiểm tra cộng đồng…',
|
||
empty: 'Chưa có bảo chứng nào. Bảo chứng từ skater trong vòng kết nối của bạn là tín hiệu tốt nhất cho thấy ai đó là người thật — không phải kẻ lạ vô tình ghé vào.',
|
||
countOne: '{{count}} bảo chứng',
|
||
countMany: '{{count}} bảo chứng',
|
||
trusted: '{{count}} từ skater trong mạng lưới tin cậy của bạn',
|
||
remove: 'Xóa bảo chứng',
|
||
vouchFor: 'Bảo chứng cho {{name}}',
|
||
ownerNote: 'Những skater biết công việc của bạn có thể bảo chứng cho bạn ở đây.',
|
||
},
|
||
},
|
||
};
|
||
|
||
export default viBatch5;
|