SkateSpots/src/i18n/vi/drift.ts

497 lines
28 KiB
TypeScript

const driftStrings = {
nav: {
searchLanguages: 'Tìm ngôn ngữ...',
noLanguages: 'Không tìm thấy ngôn ngữ nào',
},
mapPage: {
searchSuggestPlaces: 'Địa điểm',
},
mapUi: {
firstRunTitle: 'Bắt đầu',
firstRunTip: 'Chạm vào bất kỳ ghim nào để khám phá. Không cần thiết lập — spot gần đây chỉ cách một lần chạm.',
firstRunAddSpot: 'Thêm spot đầu tiên của bạn',
firstRunJoinCrew: 'Tham gia một crew',
firstRunStartCrew: 'Bắt đầu crew của bạn',
firstRunWallet: 'Thiết lập ví của bạn',
forecastDays: 'Dự báo {{count}} ngày',
},
spotUi: {
forecastDays: 'Dự báo {{count}} ngày',
},
marketUi: {
trades: {
stateRevoked: 'đã thu hồi',
stateVerifying: 'đang xác minh',
},
loadFailed: 'Không thể kết nối tới các relay. Kiểm tra kết nối của bạn và thử lại.',
statusPending: 'đang chờ',
offers: {
closeDeal: 'Chốt giao dịch',
loadFailed: 'Không thể tải các chào bán. Kiểm tra kết nối của bạn và thử lại.',
},
pay: {
nonSats: 'Chào bán này được định giá bằng {{currency}}. Thanh toán trong ứng dụng chỉ dùng sats. Hãy thanh toán trực tiếp với người bán.',
unsupported: 'Mã thanh toán này (yêu cầu Cashu) chưa được hỗ trợ. Hãy hỏi người bán hóa đơn Lightning hoặc địa chỉ.',
},
escrowRequest: {
lockedNotSent: 'Tiền đã được khóa trong escrow và lưu trên thiết bị này, nhưng yêu cầu chưa được gửi. Mở lại tin đăng để thử lại. Đừng thanh toán lần nữa.',
mintLabel: 'Mint (nơi tiền được khóa)',
sellerMintHint: 'Người bán thích mint này; tiền khóa ở đây là dễ đổi nhất cho họ.',
mintHint: 'Escrow nằm ở mint này. Người bán đổi ở đây, nên hãy chọn mint mà cả hai đều tin tưởng.',
noMints: 'Không có mint nào khả dụng',
p2pkUnsupported: 'Mint này không công bố hỗ trợ P2PK (NUT-11), nên không thể khóa escrow ở đây. Chọn mint khác.',
},
},
labUi: {
offerClothing: 'Cung cấp quần áo',
tabClothing: 'Quần áo',
empty: {
clothingTitle: 'Chưa có nhà thiết kế quần áo',
clothingBody: 'Hãy là người đầu tiên cung cấp quần áo tùy chỉnh, đồng phục đội và trang phục cho cộng đồng.',
},
craftFields: {
sizing: 'Khoảng kích cỡ',
samples: 'Mẫu thử / Nguyên mẫu',
customization: 'Tùy chỉnh',
},
},
socialUi: {
coordinator: {
ourDefaultTitle: 'Điều phối viên SkateSpots',
ourDefaultDesc: 'SkateSpots vận hành một điều phối viên tại relay.skate-spots.org. Dùng nó theo mặc định, hoặc tự vận hành của bạn — điều phối viên chỉ thấy bản mã và metadata, không bao giờ thấy tin nhắn của bạn.',
useOurs: 'Dùng điều phối viên SkateSpots',
},
crewCoordinator: {
encryptedChat: 'Chat mã hóa',
privateChatName: 'Chat riêng tư',
privateChatDesc: 'Chat nhóm bí mật chuyển tiếp (MLS) qua một điều phối viên.',
privateChatDescFull: 'Chat riêng tư được tạo một lần bởi quản trị viên, sau đó các thành viên tham gia.',
chatRowDesc: 'Mọi người trong crew — được niêm phong bằng khóa của từng thành viên (NIP-17).',
openChat: 'Mở',
setUpChat: 'Thiết lập',
joinChat: 'Tham gia',
checking: 'Đang kiểm tra…',
openInAnotherApp: 'Mở trong ứng dụng khác',
openInCordnWeb: 'Cordn (web)',
openCordnGroup: 'Mở chat crew',
copyForStaircase: 'Sao chép cho Staircase',
},
dms: {
refresh: 'Làm mới',
privateRooms: 'Phòng riêng',
crews: 'Crews',
crewFounder: 'Người sáng lập',
crewMember: 'Thành viên',
crewOpen: 'Mở',
crewSetUp: 'Thiết lập',
},
form: {
cordnGroup: 'Nhóm Cordn',
cordnGroupHint: 'Tùy chọn: dán liên kết nhóm từ Staircase hoặc Cordn web. Crew của bạn sau đó có chat MLS đầu-cuối thực sự, được lưu trữ trên điều phối viên của chúng tôi.',
},
bell: {
dmsUnread: '{{count}} tin nhắn mã hóa mới',
messagesAndCrews: 'Tin nhắn & trò chuyện crew',
},
},
settingsUi: {
loginDialog: {
welcomeSubtitleBrowse: "Đăng ký hoặc đăng nhập — hoặc tiếp tục khám phá.",
extensionCard: "Tiện ích trình duyệt",
signerCard: "Ứng dụng ký",
secretKeyLink: "Dùng khóa bí mật thay thế",
whereBunker: "Tìm bunker ở đâu?",
},
settingsPage: {
trust: 'Tin cậy',
trustSub: 'Nguồn và hiển thị',
},
},
walletUi: {
trust: {
mute: 'Ẩn',
muted: 'Đã ẩn',
mutedDesc: 'Bạn sẽ không thấy nội dung của họ.',
unmute: 'Bỏ ẩn',
unmuted: 'Đã bỏ ẩn',
unmutedDesc: 'Nội dung của họ sẽ hiện lại.',
unmuteFailed: 'Không thể bỏ ẩn. Thử lại.',
muteFailed: 'Không thể ẩn. Thử lại.',
loginToMute: 'Đăng nhập để ẩn.',
attributedNetwork: 'Từ những người trong mạng lưới của bạn',
attributedProviderHouse: 'Từ nhà cung cấp tin cậy cộng đồng',
attributedProviderCustom: 'Từ nhà cung cấp bạn đã chọn',
howItWorks: 'Cách tin cậy hoạt động',
flaggedNoticeTitle: 'Được báo cáo bởi những skater đáng tin',
flaggedNoticeDesc: 'Hãy cẩn thận. Những người đáng tin trong mạng lưới đã báo cáo tài khoản này.',
flaggedReporterFollow: '{{count}} người bạn theo dõi',
flaggedReporterNetwork: '{{count}} trong mạng lưới của bạn',
flaggedReporterOther: '{{count}} tài khoản khác',
flaggedReport: 'Báo cáo',
flaggedDismiss: 'Bỏ qua',
bucketVerified: 'Đã xác minh',
bucketUnknown: 'Không rõ',
bucketFlagged: 'Bị gắn cờ',
bucketVerifiedDesc: 'Ai đó trong mạng lưới của bạn bảo chứng cho tài khoản này.',
bucketUnknownDesc: 'Chưa ai trong mạng lưới của bạn bảo chứng cho tài khoản này.',
bucketFlaggedDesc: 'Những người đáng tin đã báo cáo tài khoản này.',
reportedByTrusted: 'Được báo cáo bởi {{count}} người đáng tin',
},
},
trustUi: {
alertsTitle: 'Cảnh báo mạng lưới',
alertsDesc: 'Những tài khoản bạn theo dõi mà người đáng tin đã báo cáo hoặc ẩn.',
alertsEmpty: 'Không có cảnh báo. Chúng tôi kiểm tra những tài khoản bạn theo dõi để tìm báo cáo đáng tin.',
alertsReported: 'Được báo cáo bởi {{count}} người đáng tin',
alertsMuted: 'Bị ẩn bởi {{count}} người đáng tin',
alertsIgnore: 'Bỏ qua',
alertsUnfollow: 'Bỏ theo dõi',
alertsLogin: 'Đăng nhập để xem cảnh báo cho những tài khoản bạn theo dõi.',
providerTitle: 'Nhà cung cấp',
providerDesc: 'Điểm số đến từ nhà cung cấp bạn chọn. Nhà cung cấp cộng đồng là mặc định.',
useCommunity: 'Dùng nhà cung cấp cộng đồng',
setProvider: 'Đặt nhà cung cấp',
customPubkeyPlaceholder: 'npub hoặc pubkey hex của nhà cung cấp',
customRelayPlaceholder: 'wss://relay.example.com',
invalidProvider: 'Nhập npub hợp lệ hoặc pubkey hex 64 ký tự, và một relay wss://.',
publishFailed: 'Không thể công bố nhà cung cấp. Thử lại.',
providerSaved: 'Đã cập nhật nhà cung cấp.',
loggedOutProvider: 'Đăng nhập để chọn nhà cung cấp.',
showMarks: 'Hiện dấu tin cậy',
showMarksDesc: 'Dấu đã xác minh và không rõ. Báo cáo luôn hiển thị.',
sourceLabel: 'Nguồn',
sourceHouse: 'Nhà cung cấp tin cậy cộng đồng',
sourceCustom: 'Nhà cung cấp của bạn',
loggedOut: 'Đăng nhập để chọn nhà cung cấp tin cậy của riêng bạn.',
seoTitle: 'Cách tin cậy hoạt động',
seoDescription: 'Cách SkateSpots hiển thị tin cậy: ba trạng thái, điểm số đến từ đâu, và tại sao thiếu vắng không phải là ngờ vực.',
title: 'Cách tin cậy hoạt động',
intro: 'Tin cậy ở đây là một tín hiệu, không phải phán quyết. Nó đến từ người bạn biết, hoặc từ nhà cung cấp bạn chọn. Chúng tôi không xếp hạng mọi người trên toàn cầu.',
statesTitle: 'Ba trạng thái',
verifiedTitle: 'Đã xác minh',
verifiedDesc: 'Ai đó trong mạng lưới của bạn bảo chứng cho tài khoản này: bạn của bạn bè, hoặc nhà cung cấp bạn chọn.',
unknownTitle: 'Không rõ',
unknownDesc: 'Chưa ai bảo chứng. Đây là nơi mọi tài khoản mới bắt đầu.',
flaggedTitle: 'Bị gắn cờ',
flaggedDesc: 'Những người đáng tin đã báo cáo tài khoản này. Đó là cảnh báo để nhìn kỹ hơn, không phải bằng chứng về điều gì.',
absenceTitle: 'Không có huy hiệu không phải là ngờ vực',
absenceDesc: 'Hầu hết tài khoản không hiển thị gì cả. Điều đó nghĩa là chưa ai trong mạng lưới của bạn bảo chứng cho họ, không phải có gì đó sai. Đừng bao giờ coi dấu thiếu vắng là tiêu cực.',
sourceTitle: 'Ai tính toán nó',
sourceDesc: 'Theo mặc định, chúng tôi dùng mạng lưới của chính bạn. Bạn cũng có thể chọn một nhà cung cấp tin cậy công bố điểm số đã ký qua Nostr (NIP-85), hoặc tắt hiển thị. Bị gắn cờ luôn hiển thị, vì đó là tín hiệu an toàn.',
endorsementTitle: 'Hiện diện không phải là bảo chứng',
endorsementDesc: 'Dấu đã xác minh nghĩa là ai đó đã bảo chứng, không phải người đó tốt. Cờ nghĩa là người đáng tin đã báo cáo họ, không phải họ có tội. Kiểm tra chi tiết trước khi bạn quyết định.',
povTitle: 'Tùy thuộc vào điểm nhìn',
povDesc: 'Điểm số là tương đối với người đang nhìn. Xếp hạng từ một nhà cung cấp hay một người không thể so sánh với người khác, và chúng tôi không bao giờ trình bày nó như một sự thật khách quan.',
settingsCta: 'Quản lý trong Cài đặt',
},
marketTerms: {
link: 'Hướng dẫn chợ',
seoTitle: 'Hướng dẫn chợ',
seoDescription: 'Cách tin đăng đồ trượt ván của SkateSpots hoạt động: ngang hàng, người mua cẩn trọng, và các quy tắc.',
title: 'Hướng dẫn chợ',
intro: 'SkateSpots là bảng đồ trượt ván ngang hàng. Bạn giao dịch trực tiếp với người kia: chúng tôi không giữ tiền, vận chuyển hàng, hay giải quyết tranh chấp.',
howTitle: 'Cách hoạt động',
howBody: 'Đăng đồ, liên hệ người bán qua tin nhắn riêng, và thanh toán trực tiếp (tiền mặt, Lightning, hoặc trao đổi). Không có giỏ hàng hay thanh toán.',
rulesTitle: 'Những gì không được phép',
rulesBody: 'Không nội dung bất hợp pháp, nguy hiểm, hoặc người lớn; không ma túy, vũ khí, hàng giả hoặc hàng ăn cắp. Giữ tin đăng liên quan đến đồ trượt ván và các món liên quan.',
respectTitle: 'Hãy tôn trọng',
respectBody: 'Không lạm dụng, quấy rối, đe dọa, hoặc thù hận. Kiểm duyệt viên có thể ẩn tin đăng hoặc tài khoản.',
trustTitle: 'Tin cậy là chỉ dẫn, không phải bảo đảm',
trustBody: 'Dấu xác minh và uy tín giao dịch là tín hiệu từ mạng lưới, không phải lời hứa. Hãy tự kiểm tra trước khi giao dịch.',
trustLink: 'Cách tin cậy hoạt động',
privacyLink: 'Điều gì rời khỏi thiết bị của bạn',
safetyTitle: 'Giao dịch an toàn',
safetyBody: 'Gặp ở nơi công cộng để trao hàng, dùng escrow hoặc tiền đặt cọc thiện chí cho giao dịch gửi hàng, và đừng bao giờ gửi tiền ngoài ứng dụng.',
moderationTitle: 'Kiểm duyệt nhẹ nhàng và có thể hoàn tác',
moderationBody: 'Nội dung bị ẩn vẫn nằm trên các relay và có thể khôi phục; tranh chấp giữa mọi người là do bạn giải quyết.',
},
labOptions: {
clothing: {
service: {
tees: 'Áo thun',
hoodies: 'Áo hoodie & Áo nỉ',
pants: 'Quần dài & Quần short',
jackets: 'Áo khoác & Áo ngoài',
kits: 'Đồng phục đội & Áo đấu',
caps: 'Mũ lưỡi trai & Mũ len',
socks: 'Tất',
accessories: 'Túi & Phụ kiện',
footwear: 'Giày dép',
patches: 'Miếng vá & Đắp nổi',
griptape: 'Nghệ thuật griptape & Trang phục deck',
onepiece: 'Độc bản / Tái chế',
},
serviceDesc: {
tees: 'Áo thun và áo tùy chỉnh',
hoodies: 'Áo hoodie, áo nỉ và quần nỉ',
pants: 'Quần lao động, quần cargo và quần short',
jackets: 'Áo coach, áo khoác ngoài và áo lao động',
kits: 'Đồng phục đội, áo đấu và đồng phục',
caps: 'Mũ lưỡi trai, mũ len và đồ đội đầu',
socks: 'Tất crew và đồ dệt kim',
accessories: 'Túi, thắt lưng và đồ nhỏ',
footwear: 'Giày tùy chỉnh và giày dép',
patches: 'Miếng vá thêu và đắp nổi',
griptape: 'Nghệ thuật griptape và trang phục deck',
onepiece: 'Mảnh đơn và trang phục tái chế',
},
method: {
screenprint: 'In lụa',
dtg: 'DTG / In trực tiếp lên vải',
embroidery: 'Thêu',
cutsew: 'Cắt & May',
sublimation: 'In thăng hoa',
heattransfer: 'Chuyển nhiệt / Vinyl',
garmentdye: 'Nhuộm áo',
knit: 'Đồ dệt kim',
patchwork: 'Ghép vải',
allover: 'In toàn bộ',
},
material: {
cotton: 'Cotton',
heavyweight: 'Vải nặng',
organic: 'Hữu cơ / Bền vững',
fleece: 'Vải lông cừu',
denim: 'Denim',
canvas: 'Vải canvas',
nylon: 'Nylon / Kỹ thuật',
wool: 'Merino / Len',
leather: 'Da',
recycled: 'Tái chế / Tồn kho',
},
},
},
becomeRolesUi: {
clothing: {
seoTitle: 'Trở thành Nhà thiết kế Quần áo - SkateSpots',
seoDescription: 'Quần áo tùy chỉnh, đồng phục đội & trang phục cho cộng đồng.',
heading: 'Nhà thiết kế Quần áo',
tagline: 'Quần áo tùy chỉnh, đồng phục đội & trang phục cho cộng đồng',
noun: 'nhà thiết kế quần áo',
rateLabel: 'Mức giá',
portfolioLabel: 'Liên kết cửa hàng / hồ sơ',
sectionWhatYouMake: 'Bạn tạo ra gì',
sectionHowYouMake: 'Bạn làm thế nào',
sectionMaterials: 'Chất liệu',
minimumPlaceholder: 'ví dụ: 10 món',
turnaroundPlaceholder: 'ví dụ: 2-3 tuần',
sizingPlaceholder: 'ví dụ: XS-3XL / may đo',
samplesHelper: 'Bạn có cung cấp mẫu thử hoặc nguyên mẫu trước khi sản xuất hàng loạt không?',
customizationPlaceholder: 'ví dụ: tên, số, hình',
},
},
weatherUi: {
updated: 'Đã cập nhật',
refresh: 'Làm mới',
unavailable: 'Thời tiết không khả dụng.',
retry: 'Thử lại',
sunrise: 'Bình minh',
sunset: 'Hoàng hôn',
legendTitle: 'Điểm thời tiết',
legendWeatherOnly: 'Chỉ thời tiết',
},
cordnUi: {
shareInvite: 'Mời',
shareInviteText: 'Tham gia {{crew}} — trò chuyện riêng của crew',
inviteCopied: 'Đã sao chép liên kết mời',
title: 'Chat riêng tư',
subtitle: 'Mã hóa đầu-cuối (MLS) giữa các thành viên crew. Điều phối viên chỉ định tuyến bản mã và metadata — không bao giờ thấy nội dung tin nhắn.',
notLoggedIn: 'Đăng nhập để dùng chat riêng tư của crew.',
membersOnly: 'Chỉ thành viên crew mới mở được chat riêng tư.',
connecting: 'Đang kết nối…',
noCoordinator: 'Chưa có điều phối viên nào được cấu hình cho crew này.',
noGroupAdmin: 'Chat riêng tư của crew này chưa được tạo.',
noGroupMember: 'Bạn chưa ở trong chat riêng tư của crew này.',
create: 'Tạo chat riêng tư',
requestJoin: 'Xin tham gia',
requestAgain: "Yêu cầu lại",
requestHandled: "Đã xử lý yêu cầu",
copyCordnLink: "Sao chép liên kết Cordn",
cordnWebCaveat: "Cordn web có thể bị treo sau khi đăng nhập; tham gia trong ứng dụng đáng tin cậy hơn.",
checkInvite: 'Kiểm tra lời mời',
requested: 'Đã gửi yêu cầu — quản trị viên crew sẽ duyệt.',
noInvite: 'Chưa có lời mời nào. Hãy nhờ quản trị viên duyệt yêu cầu của bạn.',
placeholder: 'Nhắn cho crew…',
send: 'Gửi',
refresh: 'Làm mới',
requests: 'Yêu cầu tham gia',
checkRequests: 'Kiểm tra yêu cầu',
approve: 'Thêm',
approveTitle: "Phê duyệt thiết bị này?",
approveDesc: "Thêm {{name}} vào phòng được mã hóa này? Thiết bị đó sẽ có thể đọc các tin nhắn mới.",
noRequests: 'Không có yêu cầu tham gia đang chờ.',
inviteHint: 'Mới chỉ có bạn trong chat này — thành viên crew có thể nhấn “Xin tham gia”, rồi bạn duyệt họ ở đây.',
memberCount: '{{count}} trong nhóm',
you: 'Bạn',
groupRef: 'Liên kết nhóm',
copyRef: 'Sao chép',
copied: 'Đã sao chép',
attachImage: 'Đính kèm ảnh',
uploading: 'Đang tải lên…',
uploadFailed: 'Không thể tải ảnh lên.',
bannerTitle: 'Crew này chưa có chat riêng tư',
bannerBody: 'Thiết lập chat mã hóa đầu-cuối (MLS) cho crew của bạn — thành viên tham gia từ tab.',
bannerCta: 'Thiết lập',
ready: 'Đã kết nối · MLS',
errorPrefix: 'Không thể kết nối tới điều phối viên',
interactiveHint: 'Trình ký của bạn yêu cầu phê duyệt mỗi hành động — dùng Làm mới và Gửi khi cần.',
setupDevice: "Thiết lập thiết bị này",
setupDeviceBody: "Thao tác này cấp cho thiết bị một khóa riêng cho chat riêng tư. Người sáng lập phê duyệt một lần.",
waitingApproval: "Đang chờ người sáng lập phê duyệt…",
waitingApprovalManual: "Đang chờ người sáng lập. Nhấn “Kiểm tra lời mời” sau khi họ phê duyệt.",
onboardingFounder1: "Bắt đầu chat riêng tư.",
onboardingFounder2: "Phê duyệt thành viên xin tham gia.",
onboardingFounder3: "Trò chuyện riêng với crew của bạn.",
onboardingMember1: 'Xin tham gia',
onboardingMember2: "Người sáng lập phê duyệt thiết bị của bạn.",
onboardingMember3: "Bạn đã vào — tin nhắn được mã hóa.",
encryptedNote: "Chỉ thành viên crew mới đọc được; điều phối viên chỉ chuyển tiếp tin nhắn đã mã hóa.",
advanced: "Nâng cao",
compareTitle: "Trò chuyện và trò chuyện riêng tư",
compareChat: "Trò chuyện là một DM nhóm NIP-17 tiêu chuẩn. Nó hoạt động với các ứng dụng Nostr khác và không có người điều phối.",
comparePrivate: "Trò chuyện riêng tư dùng MLS: kiểm soát thành viên chặt chẽ hơn và bảo mật chuyển tiếp. Người điều phối thấy siêu dữ liệu nhóm và bản mã, không bao giờ thấy nội dung tin nhắn.",
coordinator: "Điều phối viên",
lastChecked: "Kiểm tra lần cuối",
keyPackage: "Gói khóa",
keyPackageReady: "Sẵn sàng trên thiết bị này",
keyPackageMissing: "Chưa thiết lập trên thiết bị này",
members: "Thành viên",
roleFounder: "Người sáng lập",
roleAdmin: "Quản trị viên",
makeAdmin: "Đặt làm quản trị viên",
removeAdmin: "Bỏ quyền quản trị",
adminAdded: "Thành viên đã được thăng làm quản trị viên.",
adminRemoved: "Đã gỡ vai trò quản trị viên.",
roleUpdateFailed: "Không thể cập nhật vai trò. Hãy thử lại.",
addReaction: "Thêm cảm xúc",
deleteMessage: "Xóa tin nhắn",
deleteMessageConfirm: "Xóa tin nhắn này cho mọi người?",
readBy: "Đã xem bởi {{count}}",
joinRequestTitle: "Yêu cầu trò chuyện riêng tư",
joinRequestFor: "Yêu cầu mới tham gia {{crew}}",
joinRequestReview: "Xem xét yêu cầu",
joinRequestDismiss: "Bỏ qua yêu cầu",
roleMember: "Thành viên",
qrTitle: "Quét để tham gia chat riêng tư",
qrHint: "Thành viên crew quét mã bằng camera điện thoại. Liên kết mở tab Chat riêng tư.",
sendFailed: "Không gửi được — nhấn Thử lại.",
queued: "Đang xếp hàng trên thiết bị này",
sending: "Đang gửi…",
sent: "Đã gửi",
retry: "Thử lại",
errorUnreachable: "Không thể kết nối tới chat riêng tư. Kiểm tra kết nối của bạn.",
errorDetails: "Chi tiết",
unreachable: "Không thể kết nối",
dismiss: "Đóng",
linkDevice: "Liên kết thiết bị này",
linkDeviceTitle: "Liên kết thiết bị khác",
linkDeviceHint: "Quét mã này trên thiết bị đã có trong phòng.",
linkDeviceNote: "Mã chứa gói khóa công khai. Khóa riêng tư của bạn vẫn ở trên thiết bị mới.",
waitingDevice: "Đang chờ thiết bị kia…",
addDevice: "Thêm thiết bị",
deviceLinked: "Đã thêm thiết bị.",
deviceLinkFailed: "Không thể thêm thiết bị đó.",
removeMemberConfirm: "Xóa {{name}} khỏi chat riêng tư? Thiết bị đó sẽ mất quyền truy cập.",
removeMemberFailed: "Không thể xóa thành viên đó.",
reply: "Trả lời",
},
communityUi: {
link: "Cộng đồng",
title: "Trò chuyện cộng đồng",
subtitle: "Đặt câu hỏi, chia sẻ phản hồi và trò chuyện với cộng đồng SkateSpots — mã hóa đầu cuối.",
heading: "Cộng đồng SkateSpots",
eyebrow: "Câu hỏi và phản hồi",
seoTitle: "Trò chuyện cộng đồng SkateSpots",
seoDescription: "Câu hỏi, phản hồi và trò chuyện cộng đồng — mã hóa đầu cuối.",
notLoggedIn: "Đăng nhập để tham gia trò chuyện cộng đồng.",
noGroupAdmin: "Phòng cộng đồng chưa được tạo.",
noGroupMember: "Bạn chưa ở trong phòng cộng đồng.",
waitingApproval: "Đang chờ bot cộng đồng hoặc quản trị viên phê duyệt…",
waitingApprovalManual: "Chế độ thủ công. Nhấn “Kiểm tra lời mời” sau khi được phê duyệt.",
noInvite: "Chưa có lời mời. Bot thường phê duyệt trong vòng một phút — sau đó nhấn “Kiểm tra lời mời”.",
pendingRequests: "{{count}} yêu cầu tham gia đang chờ",
pendingRequestsDesc: "Bot thường phê duyệt tự động. Nếu bị kẹt, mở phòng bên dưới và nhấn Kiểm tra yêu cầu.",
botMissing: "Bot cộng đồng hiện không có trong phòng này, nên quản trị viên sẽ xem xét các yêu cầu tham gia.",
secondDeviceHint: "Đã là thành viên trên thiết bị khác? Dùng “Liên kết thiết bị này” để chuyển giao trực tiếp, hoặc yêu cầu tham gia lại bằng thiết bị này.",
create: "Tạo phòng cộng đồng",
setupDeviceBody: "Việc này cấp cho thiết bị này một khóa cho phòng cộng đồng. Quản trị viên hoặc bot phê duyệt một lần.",
onboardingFounder1: "Tạo phòng cộng đồng.",
onboardingFounder2: "Phê duyệt bot cộng đồng và thành viên mới.",
onboardingFounder3: "Trả lời câu hỏi và thu thập phản hồi.",
onboardingMember1: "Yêu cầu tham gia phòng cộng đồng.",
onboardingMember2: "Quản trị viên hoặc bot cộng đồng phê duyệt thiết bị của bạn.",
onboardingMember3: "Đặt câu hỏi, chia sẻ phản hồi hoặc chỉ cần chào hỏi.",
encryptedNote: "Chỉ thành viên phòng mới đọc được nội dung này; điều phối viên chỉ chuyển tiếp tin nhắn đã mã hóa.",
shareInviteText: "Tham gia trò chuyện cộng đồng SkateSpots",
qrTitle: "Quét để tham gia trò chuyện cộng đồng",
qrHint: "Quét bằng camera điện thoại để mở trò chuyện cộng đồng và yêu cầu tham gia.",
owner: "Chủ sở hữu",
botName: "Bot cộng đồng",
howItWorks: "Thiết bị mới được quản trị viên hoặc bot cộng đồng phê duyệt một lần. Tin nhắn gửi trước khi bạn tham gia sẽ không hiển thị với bạn.",
feedbackNote: "Câu hỏi và phản hồi luôn được hoan nghênh. Hãy tử tế — đây là phòng chung.",
},
translateUi: {
title: 'Dịch tin nhắn',
translate: 'Dịch',
translating: 'Đang dịch…',
showOriginal: 'Xem bản gốc',
showTranslation: 'Xem bản dịch',
translatedFrom: 'Dịch từ {{language}}',
failed: 'Dịch thất bại. Hãy thử lại.',
unsupported: 'Cặp ngôn ngữ này chưa khả dụng.',
pilotNote: 'Thử nghiệm: chỉ tiếng Anh ↔ tiếng Tây Ban Nha.',
autoTranslate: 'Tự động dịch tin nhắn',
autoTranslateDesc: 'Dịch tin nhắn đến sang ngôn ngữ của bạn. Chạy trên thiết bị này; không gửi dữ liệu đi đâu.',
privacy: 'Tính năng dịch chạy trên thiết bị của bạn. Tin nhắn của bạn không bao giờ rời khỏi đó. Lần sử dụng đầu tiên sẽ tải xuống một mô hình ngôn ngữ.',
},
newsletterDraftUi: {
weeklyDraftReady: 'Bản nháp hàng tuần đã sẵn sàng',
loadDraft: 'Tải bản nháp',
hidePreview: 'Ẩn bản xem trước',
untitled: 'Không có tiêu đề',
},
signerPromptUi: {
title: "Ngân sách nhắc của Amber",
body: "Amber yêu cầu phê duyệt cho mỗi hành động được ký. Việc đọc và giải mã nền diễn ra cục bộ và không hiện nhắc. Gửi DM nhóm sẽ hỏi một lần cho mỗi người nhận (mã hóa + ký), và Cordn có thể hỏi với mỗi yêu cầu của điều phối viên. Với chat riêng hoặc chat đội thường xuyên, bunker hoặc khóa cục bộ sẽ yên tĩnh hơn.",
bunker: "Giữ Amber cho việc ký quan trọng, hoặc chuyển sang bunker khi bạn dự đoán một cuộc trò chuyện dài.",
},
globalSearchUi: {
open: "Tìm kiếm",
placeholder: "Tìm spot, crew, sự kiện, đồ nghề…",
hint: "⌘K / Ctrl+K",
recent: "Gần đây",
pages: "Trang",
spots: "Spot",
shops: "Cửa hàng",
crews: "Crews",
events: "Sự kiện",
gear: "Đồ nghề",
skaters: "Người trượt ván",
signers: "Signer",
trust: "Tin cậy",
noResults: "Không có kết quả cho “{{query}}”.",
},
marketplaceExtrasUi: {
savedSearches: "Tìm kiếm đã lưu",
saveSearch: "Lưu tìm kiếm",
searchName: "Đặt tên cho tìm kiếm này…",
deleteSearch: "Xóa tìm kiếm đã lưu",
safetyTitle: "Mua bán an toàn",
safetyMeet: "Gặp nhau ở nơi công cộng và kiểm tra đồ trước khi trả tiền.",
safetyKeys: "Không bao giờ chia sẻ cụm seed hay khóa riêng tư. Giữ giao dịch trong chat của ứng dụng.",
safetyEscrow: "Với đơn gửi hàng, hãy đọc điều kiện escrow trước: escrow Cashu chỉ dùng cho ứng dụng gốc và chưa được xác minh.",
safetyMore: "Đọc hướng dẫn chợ",
offerTemplates: "Ghi chú nhanh",
offerDiscount: "Bạn giảm 10% được không?",
offerSwap: "Bạn có cân nhắc đổi đồ không?",
offerPickup: "Tôi có thể tự lấy trong tuần này.",
offerShipping: "Bạn gộp phí ship được không?",
},
placesUi: {
eventDetail: {
eventPass: "Thẻ sự kiện"
},
},
};
export default driftStrings;