i18n(th): batch 3 — spot detail/forms (spotUi) + DIY hub (diyUi)

This commit is contained in:
SkateSpots 2026-10-06 13:49:19 +07:00
parent b8c306125c
commit 185924649c
2 changed files with 504 additions and 0 deletions

502
src/i18n/th/batch3.ts Normal file
View file

@ -0,0 +1,502 @@
/**
* Thai (ไทย) — batch 3: spot detail/forms (spotUi) + DIY hub (diyUi).
* Skate terms stay English (Spot, Skate Spot, Skate Shop, Gear, Crew, Coach,
* Filmer, Deck, Nose, Tail, Wheelbase, Concave, Kicks, Ledge, Flatbar, Coping,
* Truck, Bearings, DIY, The Lab, Marketplace, Nostr, NIP-05, npub, sats, Zap).
*/
const thBatch3 = {
spotUi: {
claim: {
areYouOwner: 'นี่คือสปอตของคุณหรือไม่?',
privateDesc: 'สปอตนี้ถูกทำเครื่องหมายเป็นส่วนตัว ถ้าคุณเป็นเจ้าของหรือดูแลอยู่ ให้อ้างสิทธิ์ — ผู้ดูแล SkateSpots จะยืนยันความเป็นเจ้าของ แล้วคุณจึงเข้าควบคุมรายการได้',
claimSpot: 'อ้างสิทธิ์สปอตนี้',
nip05Required: 'คุณต้องมี NIP-05 ที่ยืนยันแล้วเพื่ออ้างสิทธิ์สปอตส่วนตัว (หลักฐานว่าคุณควบคุมตัวตนบน Nostr) เพิ่มในโปรไฟล์ก่อน แล้วกลับมาใหม่',
addNip05: 'เพิ่ม NIP-05 ในตั้งค่า',
pendingTitle: 'คำอ้างสิทธิ์รอตรวจสอบ',
pendingDesc: 'ส่งคำอ้างสิทธิ์แล้ว ผู้ดูแล SkateSpots จะตรวจสอบ — คุณจะอ้างสิทธิ์สปอตให้เสร็จได้เมื่อได้รับอนุมัติ',
approvedTitle: 'อนุมัติคำอ้างสิทธิ์แล้ว',
approvedDesc: 'ผู้ดูแลอนุมัติคำอ้างสิทธิ์ของคุณแล้ว ทำขั้นตอนสุดท้ายเพื่อเป็นเจ้าของสปอตนี้',
complete: 'ทำการอ้างสิทธิ์ให้เสร็จ',
submitted: 'ส่งคำอ้างสิทธิ์แล้ว',
submittedDesc: 'ผู้ดูแลจะตรวจสอบคำอ้างสิทธิ์ของคุณ คุณจะได้สปอตเมื่อได้รับอนุมัติ',
submitFailed: 'ส่งคำอ้างสิทธิ์ไม่สำเร็จ',
submit: 'ส่งคำอ้างสิทธิ์',
submitting: 'กำลังส่ง…',
confirmTitle: 'อ้างสิทธิ์ "{{title}}"?',
confirmIntro: 'คุณกำลังขอเป็นเจ้าของสปอตส่วนตัวนี้',
confirmBullet1: 'ผู้ดูแล SkateSpots จะตรวจสอบคำขอ (เรายืนยันกรรมสิทธิ์ทรัพย์สินไม่ได้ ยืนยันได้แค่คีย์ Nostr)',
confirmBullet2: 'ถ้าอนุมัติ คุณทำขั้นตอนสุดท้ายเพื่อเป็นเจ้าของและแก้ไขสปอตได้',
confirmBullet3: 'สปอตต้นฉบับยังอยู่บน Nostr — เครือข่ายนี้กระจายศูนย์',
adminTitle: 'คำอ้างสิทธิ์ความเป็นเจ้าของที่รออยู่',
adminApprove: 'อนุมัติ',
adminApproved: 'อนุมัติแล้ว',
adminApprovedDesc: 'ตอนนี้พวกเขาทำการอ้างสิทธิ์สปอตให้เสร็จได้แล้ว',
adminApproveFailed: 'อนุมัติคำอ้างสิทธิ์ไม่สำเร็จ',
loginRequired: 'เข้าสู่ระบบเพื่ออ้างสิทธิ์สปอตส่วนตัวนี้ หรือขอความเป็นเจ้าของ',
},
abandonedDesc: 'อัปเดตล่าสุด {{time}} ถ้าเจ้าของเดิมไม่แอ็กทีฟแล้ว คุณอ้างสิทธิ์สปอตนี้เพื่อดูแลและปรับปรุงได้',
claimedNotice: 'รายการที่ถูกอ้างสิทธิ์',
claimedNoticeDesc: 'สปอตนี้ถูกเผยแพร่ใหม่โดยเจ้าของคนใหม่หลังการอ้างสิทธิ์ รายการต้นฉบับอาจยังอยู่แยกต่างหาก',
abandonedLoginDesc: 'อัปเดตล่าสุด {{time}} เข้าสู่ระบบเพื่ออ้างสิทธิ์และดูแลสปอตนี้',
accessDeniedDesc: 'คุณแก้ไขได้เฉพาะสปอตที่คุณสร้างเอง',
accessDeniedTitle: 'ไม่มีสิทธิ์เข้าถึง',
addAtLeastOneTag: 'กรุณาเพิ่มอย่างน้อยหนึ่งแท็ก',
additionalDetails: 'รายละเอียดเพิ่มเติม (ไม่บังคับ)',
additionalDetailsPlaceholder: 'ใส่ข้อมูลเพิ่มเติมที่จะช่วยได้...',
addNewTags: 'เพิ่มแท็กใหม่:',
addNip05InSettings: 'เพิ่ม NIP-05 ในตั้งค่า',
addPhoto: 'เพิ่มรูป',
addPhotoDesc: 'ร่วมเพิ่มรูปเพื่อช่วยให้คนอื่นค้นพบสปอตนี้',
addPhotoOrDescription: 'เพิ่มรูปหรือคำอธิบาย',
addPhotoOrDescriptionDesc: 'ให้นักสเก็ตมีอะไรอ้างอิง — รูป หรือคำบรรยายสถานที่',
addPhotos: 'เพิ่มรูป',
addPhotoToSpot: 'เพิ่มรูปให้สปอต',
adminDeleteDialogDesc: 'ในฐานะผู้ดูแล SkateSpots คุณกำลังนำ "{{title}}" ออก จะถูกซ่อนทั่วทั้งแอปสำหรับทุกคน และจะส่งคำขอลบไปยัง relay',
adminDeleteReason: 'ผู้ดูแล SkateSpots ลบสปอต "{{title}}"',
airQuality: 'คุณภาพอากาศ',
altSkateSpot: 'สปอตสเก็ต: {{title}}',
areYouShopOwner: 'คุณเป็นเจ้าของร้านนี้หรือไม่?',
askBeforeSkating: 'ถามก่อนเล่น',
backToSpot: 'กลับไปที่สปอต',
beFirstToListGear: 'เป็นคนแรกที่ลงขาย Gear ที่สปอตนี้!',
beFirstToSay: 'เป็นคนแรกที่พูดอะไรบางอย่าง',
byAuthor: 'โดย {{name}}',
captionPlaceholder: 'ใส่คำบรรยาย (ไม่บังคับ) — อธิบายว่าในรูปมีอะไร ถ่ายเมื่อไร ฯลฯ',
chatPublicNote: 'ใครก็อ่านได้ — ข้อความสาธารณะและชั่วคราว สำหรับแชตส่วนตัวใช้ข้อความโดยตรง',
checkPinBelow: 'ตรวจหมุดด้านล่างก่อนเพิ่มซ้ำ',
claimBullet1: 'คุณกลายเป็นเจ้าของและแก้ไขสปอตได้',
claimBullet2: 'สปอตต้นฉบับยังอยู่ (Nostr กระจายศูนย์)',
claimBullet3: 'เวอร์ชันของคุณอาจปรากฏเคียงข้างต้นฉบับ',
claimFailed: 'อ้างสิทธิ์ไม่สำเร็จ',
claiming: 'กำลังอ้างสิทธิ์...',
claimIntro: 'คุณกำลังจะอ้างสิทธิ์ความเป็นเจ้าของสปอตนี้ จะสร้างสปอตเวอร์ชันของคุณเองที่แก้ไขและดูแลได้',
claimSpot: 'อ้างสิทธิ์สปอต',
claimThisSpot: 'อ้างสิทธิ์สปอตนี้',
claimTitle: 'อ้างสิทธิ์ "{{title}}"?',
claimWhatHappens: 'สิ่งที่จะเกิดขึ้นเมื่อคุณอ้างสิทธิ์:',
coachesAndFilmersAvailable: 'มีโค้ชและช่างถ่ายให้บริการที่สปอตนี้',
coachesCount: 'โค้ช ({{count}})',
coachHere: 'โค้ชที่นี่',
community: 'ชุมชน',
communityVerified: 'ชุมชนยืนยันแล้ว',
communityVerifiedTitle: 'นักสเก็ตคนอื่นมีส่วนร่วมที่นี่ (รูปหรือรายงานสภาพ)',
conditions: 'สภาพ',
contactForPermission: 'ติดต่อเพื่อขออนุญาต',
contactInfo: 'ข้อมูลติดต่อ',
contributePhoto: 'ร่วมส่งรูป',
contributing: 'กำลังส่ง...',
couldNotSendMessage: 'ส่งข้อความไม่สำเร็จ',
couldNotSubmit: 'ส่งไม่สำเร็จ',
couldNotUploadPhoto: 'อัปโหลดรูปไม่สำเร็จ คุณเพิ่มด้านล่างได้',
crewsThatSkateHere: 'Crew ที่เล่นที่นี่',
current: 'ปัจจุบัน:',
currentTags: 'แท็กปัจจุบันของสปอตนี้:',
daysAgo: '{{count}} วันที่แล้ว',
daysAgoPlural: '{{count}} วันที่แล้ว',
deleteDialogDesc: 'การลบ "{{title}}" จะถาวรจากทุก relay และย้อนกลับไม่ได้',
deletedSpotReason: 'ลบสปอตแล้ว',
deleteFailed: 'ลบไม่สำเร็จ',
deleteSpot: 'ลบสปอต',
deleteSpotTitle: 'ลบสปอต?',
differentSpotPublishAnyway: 'เป็นคนละสปอต — เผยแพร่ต่อไป',
dragDropOrClick: 'ลากมาวางหรือคลิก',
dropPhotos: 'วางรูป',
duplicateOne: 'มีสปอตอยู่ในระยะ 60 ม. จากหมุดของคุณ ถ้าเป็นที่เดียวกัน ให้เพิ่มรูปหรือรายงานสภาพที่นั่นแทนการสร้างซ้ำ',
duplicateOther: 'มีสปอตหลายแห่งในระยะ 60 ม. จากหมุดของคุณ ถ้าเป็นที่เดียวกัน ให้เพิ่มรูปหรือรายงานสภาพที่นั่นแทนการสร้างซ้ำ',
editSpotSeoDesc: 'แก้ไขสปอตสเก็ตของคุณ',
failedToContribute: 'ส่งไม่สำเร็จ',
failedToPublish: 'เผยแพร่ไม่สำเร็จ',
failedToPublishDesc: 'มีบางอย่างผิดพลาด ตรวจสอบ console เพื่อดูรายละเอียด',
failedToSubmitReport: 'ส่งรายงานไม่สำเร็จ',
failedToSuggestTags: 'เสนอแท็กไม่สำเร็จ',
failedToUpdate: 'อัปเดตไม่สำเร็จ',
failedToUploadImage: 'อัปโหลดรูปภาพไม่สำเร็จ',
failedToUploadPhoto: 'อัปโหลดรูปไม่สำเร็จ',
feelsLikeTemp: 'รู้สึกเหมือน {{temp}}°C',
filmersCount: 'ช่างถ่าย ({{count}})',
filmHere: 'ถ่ายที่นี่',
gearSwap: 'Gear Swap',
geolocationNotSupported: 'ไม่รองรับตำแหน่ง',
geolocationNotSupportedDesc: 'เบราว์เซอร์ของคุณไม่รองรับการระบุตำแหน่ง',
getDirections: 'ขอเส้นทาง',
hangTight: 'รอสักครู่',
hangTightDesc: 'รูปของคุณยังอัปโหลดอยู่ จะแนบให้ในไม่ช้า',
helpImproveSpot: 'ช่วยปรับปรุงสปอตนี้ด้วยการเพิ่มรูปหรือเสนอแท็ก',
hiddenByModerator: 'ถูกซ่อนโดยผู้ดูแล',
hiddenByModeratorDesc: 'สปอตนี้ไม่แสดงบนแผนที่หรือผลการค้นหา คุณยังเห็นได้เพราะเป็นของคุณ การแก้ไขจะไม่ทำให้กลับมาแสดง — จะซ่อนอยู่จนกว่าผู้ดูแลจะถอนคำตัดสิน',
humidity: 'ความชื้น',
imageUploaded: 'อัปโหลดรูปแล้ว',
imageUploadedDesc: 'อัปโหลดรูปของคุณสำเร็จแล้ว',
imHere: 'ฉันอยู่ที่นี่',
invalidCoordinates: 'พิกัดไม่ถูกต้อง',
invalidCoordinatesDesc: 'กรุณากรอกละติจูด (-90 ถึง 90) และลองจิจูด (-180 ถึง 180) ที่ถูกต้อง',
invalidNpub: 'npub ไม่ถูกต้อง',
invalidNpubDesc: 'กรุณากรอกที่อยู่ npub ที่ถูกต้อง',
lastReported: 'ล่าสุด {{time}}',
listGear: 'ลงขาย Gear',
listYourGearHere: 'ลงขาย Gear ของคุณที่นี่',
loadingChat: 'กำลังโหลดแชต…',
locationError: 'ตำแหน่งผิดพลาด',
locationFound: 'พบตำแหน่ง',
locationFoundDesc: 'ตั้งตำแหน่งปัจจุบันของคุณแล้ว',
locationRequired: 'ต้องระบุตำแหน่ง',
locationRequiredDesc: 'กรุณากรอกพิกัดหรือใช้ตำแหน่งปัจจุบันของคุณ',
loginRequiredTitle: 'ต้องเข้าสู่ระบบ',
logInToChat: 'เข้าสู่ระบบเพื่อร่วมแชตท้องถิ่น',
logInToContributePhotos: 'เข้าสู่ระบบเพื่อร่วมส่งรูป',
loginToEditSpot: 'คุณต้องเข้าสู่ระบบเพื่อแก้ไขสปอตนี้',
logInToReport: 'คุณต้องเข้าสู่ระบบเพื่อรายงานเนื้อหา',
logInToReportStatus: 'เข้าสู่ระบบเพื่อรายงานสภาพของสปอตนี้',
logInToSuggestTags: 'เข้าสู่ระบบเพื่อเสนอแท็ก',
manageNip05ToClaim: 'จัดการ NIP-05 เพื่ออ้างสิทธิ์',
meetAtSpotForPickup: '💡 นัดที่สปอตนี้เพื่อรับของอย่างปลอดภัย',
memberOne: 'สมาชิก {{count}} คน',
memberOther: 'สมาชิก {{count}} คน',
messageFailed: 'ส่งข้อความไม่สำเร็จ',
messageMapper: 'ส่งข้อความถึงผู้แมป',
messagePlaceholder: 'ส่งข้อความถึงสปอตนี้… (ลอง /me หรือ /who)',
messagesHiddenOne: 'มี {{count}} ข้อความถูกซ่อนโดยตัวกรองความน่าเชื่อถือ ลดตัวกรองเพื่อดูเพิ่ม',
messagesHiddenOther: 'มี {{count}} ข้อความถูกซ่อนโดยตัวกรองความน่าเชื่อถือ ลดตัวกรองเพื่อดูเพิ่ม',
messagesHiddenShortOne: 'มี {{count}} ข้อความถูกซ่อนโดยตัวกรองความน่าเชื่อถือ',
messagesHiddenShortOther: 'มี {{count}} ข้อความถูกซ่อนโดยตัวกรองความน่าเชื่อถือ',
metresAway: 'ห่าง {{distance}} ม.',
moderatorVouchedDesc: 'ผู้ดูแลตรวจสอบสปอตนี้และรับรองให้ เยี่ยมมาก',
monthsAgo: '{{count}} เดือนที่แล้ว',
monthsAgoPlural: '{{count}} เดือนที่แล้ว',
newOwnerNpub: 'npub ของเจ้าของใหม่',
newOwnerNpubHint: 'กรอก npub ของผู้ใช้ที่คุณต้องการโอนสปอตนี้ให้',
nip05RequiredToClaim: '⚠️ ต้องยืนยัน NIP-05 เพื่ออ้างสิทธิ์ร้านค้า',
noCommunitySignalTitle: 'ยังไม่มีรูปจากชุมชนหรือรายงานสภาพ — ยังไม่มีใครยืนยันสถานที่นี้',
breakdownPhotos: '{{count}} รูป',
breakdownStatus: '{{count}} รายงานสภาพ',
breakdownComments: '{{count}} คอมเมนต์',
breakdownReactions: '{{count}} รีแอ็กชัน',
breakdownCollections: '{{count}} การบันทึก',
breakdownZaps: '{{count}} zap',
breakdownTags: '{{count}} การเสนอแท็ก',
breakdownCrews: '{{count}} crew',
breakdownLab: '{{count}} ลิงก์ผู้เชี่ยวชาญ',
verifyNudgeTitle: 'เป็นคนแรกที่ยืนยันสปอตนี้',
verifyNudgeBody: 'รูปหรือการบอกว่า “เคยเล่นที่นี่” คือวิธีที่สปอตได้รับการยืนยัน — ช่วยนักสเก็ตคนต่อไปหน่อย',
verifyNudgeStatus: 'เคยเล่นที่นี่',
communityChip: 'ชุมชน',
seenChip: 'เห็นแล้ว',
noGearListedYet: 'ยังไม่มี Gear ที่ลงขาย',
noMessagesYet: 'ยังไม่มีข้อความในช่องท้องถิ่นนี้ ทักทายหน่อย — "คืนนี้มีใครเล่นไหม?"',
noPhoto: 'ไม่มีรูป',
noReportsYet: 'ยังไม่มีรายงาน',
noTags: 'ไม่มีแท็ก',
notASkateSpot: 'ไม่ใช่สปอตสเก็ต',
offerServicesHere: '💡 เสนอบริการของคุณที่สปอตนี้',
photoCaptured: 'ถ่ายรูปแล้ว!',
photoCapturedDesc: 'อัปโหลดรูปของคุณสำเร็จแล้ว',
photoContributed: 'ร่วมส่งรูปแล้ว!',
photoContributedDesc: 'รูปของคุณถูกเพิ่มในสปอตนี้แล้ว',
photosAdded: 'เพิ่มรูปของคุณแล้ว',
photosRecommended: 'แนะนำอย่างยิ่ง — สปอตที่ไม่มีรูปจะยังขึ้นว่า ยังไม่ยืนยัน',
photosUploaded: 'อัปโหลด {{count}} รูปแล้ว',
photoUploaded: 'อัปโหลดรูปแล้ว',
photoUploadedDesc: 'ใส่คำบรรยายแล้วส่งเพื่อร่วมส่ง!',
photoUploadFailed: 'อัปโหลดรูปไม่สำเร็จ',
pleaseTryAgain: 'กรุณาลองอีกครั้ง',
public: 'สาธารณะ',
publicChatTitle: 'ใครก็อ่านข้อความในช่องนี้ได้ — เป็นสาธารณะและไม่เข้ารหัส',
recentReports: 'รายงานล่าสุด',
recipientRequired: 'ต้องระบุผู้รับ',
recipientRequiredDesc: 'กรุณากรอก npub ของเจ้าของใหม่',
removeAdmin: 'นำออก (ผู้ดูแล)',
removeSpot: 'นำสปอตออก',
removeSpotAdminTitle: 'นำสปอตนี้้ออก? (ผู้ดูแล)',
reportOne: 'รายงาน',
reportContent: 'รายงานเนื้อหา',
reportContentDesc: 'ช่วยให้ชุมชนปลอดภัยด้วยการรายงานเนื้อหาที่ไม่เหมาะสม',
reportedBySkaters: ' โดยนักสเก็ต {{count}} คน — อยู่ระหว่างตรวจสอบ ถ้าเป็นสปอตจริง ให้เพิ่มรูปหรือรายงานสภาพเพื่อยืนยัน',
reportedNotASpot: 'ถูกรายงานว่าไม่ใช่สปอตสเก็ต',
reportingType: 'กำลังรายงาน {{type}}',
reports: 'รายงาน',
reportShop: 'รายงานร้าน',
reportSpot: 'รายงานสปอต',
reportStatus: 'รายงานสภาพ',
reportSubmitted: 'ส่งรายงานแล้ว',
reportSubmittedDesc: 'ขอบคุณที่ช่วยรักษา SkateSpots ให้ปลอดภัย',
reportSubmittedLong: 'ขอบคุณที่ช่วยให้ SkateSpots ปลอดภัยและแม่นยำ รายงานของคุณจะถูกตรวจสอบโดยสมาชิกชุมชนที่เชื่อถือได้',
reportSubmittedTitle: 'ส่งรายงานแล้ว',
report: {
notASkateSpot: {
label: 'ไม่ใช่สปอตสเก็ต',
description: 'รายการทดสอบ หรือสถานที่ที่ไม่ได้ใช้เล่นสเก็ตเลย',
},
fakeSpot: {
label: 'สปอตปลอม/ไม่มีอยู่จริง',
description: 'สปอตนี้ไม่มีอยู่จริงหรือตำแหน่งผิด',
},
stolenPhotos: {
label: 'รูปปลอม/ขโมยมา',
description: 'รูปเป็นภาพสต็อกหรือขโมยมาจากที่อื่น',
},
spamAd: {
label: 'สแปมหรือโฆษณา',
description: 'เนื้อหาโปรโมตหรือรายการซ้ำ',
},
dangerousLocation: {
label: 'ตำแหน่งอันตราย',
description: 'ที่ดินส่วนบุคคล ไม่ปลอดภัย หรือเข้าถึงผิดกฎหมาย',
},
inappropriateContent: {
label: 'เนื้อหาไม่เหมาะสม',
description: 'มีเนื้อหาลามกหรือสำหรับผู้ใหญ่',
},
impersonation: {
label: 'แอบอ้างเป็นผู้อื่น',
description: 'มีคนแอบอ้างเป็นคนอื่น',
},
other: {
label: 'อื่น ๆ',
description: 'เรื่องอื่นที่ไม่ได้ระบุข้างต้น',
},
},
targetType: {
spot: 'Spot',
event: 'อีเวนต์',
tour: 'ทัวร์',
shop: 'ร้าน',
user: 'ผู้ใช้',
listing: 'รายการ',
coach: 'โค้ช',
filmer: 'ช่างถ่าย',
},
sameOwner: 'เจ้าของคนเดียวกัน',
sameOwnerDesc: 'โอนให้เจ้าของปัจจุบันไม่ได้',
saveChanges: 'บันทึกการเปลี่ยนแปลง',
saving: 'กำลังบันทึก...',
services: 'บริการ',
shareSpotText: 'ลองดูสปอตสเก็ตนี้: {{title}}',
shelter: 'ที่กำบัง',
shelterHint: 'สปอตนี้โดนฝนไหม? ช่วยให้นักสเก็ตหาที่แห้งตอนฝนตก',
shopClaimDesc: 'ถ้าคุณเป็นเจ้าของหรือดูแลร้านนี้ อ้างสิทธิ์เพื่อยืนยันความเป็นเจ้าของและจัดการรายการได้',
shopClaimNip05Hint: 'การอ้างสิทธิ์ร้านนี้ ต้องเพิ่ม NIP-05 ที่ตรงกับโดเมนเว็บไซต์ของร้าน',
skatersActiveDesc: 'คนที่โพสต์ในช่องนี้ใน 24 ชม. ที่ผ่านมา',
skatersActiveOne: 'มีนักสเก็ต {{count}} คนแอ็กทีฟที่นี่',
skatersActiveOther: 'มีนักสเก็ต {{count}} คนแอ็กทีฟที่นี่',
skatersSellingGear: 'นักสเก็ตที่สปอตนี้กำลังขาย Gear',
skateSpot: 'Skate Spot',
somethingWentWrong: 'มีบางอย่างผิดพลาด',
spot: 'Spot',
spotAdded: 'เพิ่มสปอตแล้ว!',
spotAddedDesc: 'สปอตสเก็ตของคุณถูกเผยแพร่สู่เครือข่ายแล้ว',
spotAddedNoPhoto: 'เผยแพร่แล้ว — และขึ้นว่า ยังไม่ยืนยัน จนกว่าจะมีคนเพิ่มรูป รูปของสปอตช่วยได้มาก',
spotChat: 'Spot Chat',
spotClaimed: 'อ้างสิทธิ์สปอตแล้ว!',
spotClaimedDesc: 'ตอนนี้คุณเป็นเจ้าของสปอตนี้แล้ว แก้ไขได้จากโปรไฟล์ของคุณ',
spotDeleted: 'ลบสปอตแล้ว',
spotDeletedDesc: 'ส่งคำขอลบไปยัง relay แล้ว relay ส่วนใหญ่จะนำเนื้อหานี้ออก',
spotMayAlreadyBeOnMap: 'สปอตนั้นอาจอยู่บนแผนที่แล้ว',
spotMayAlreadyExist: 'สปอตนี้้อาจมีอยู่แล้ว',
spotMayBeAbandoned: 'สปอตอาจถูกทิ้ง',
spotPhotoAlt: 'Spot',
spotRemoved: 'นำสปอตออกแล้ว',
spotRemovedDesc: 'สปอตนี้ถูกนำออกและจะถูกซ่อนทั่วทั้ง SkateSpots',
spotSeoDesc: 'ดูสปอตสเก็ตนี้บน SkateSpots',
spotStatus: 'สภาพสปอต',
spotStatusDesc: '"{{title}}" ยังเล่นได้อยู่ไหม? บอกชุมชนถึงสภาพปัจจุบัน',
spotTypeRequired: 'ต้องเลือกประเภทสปอต',
spotTypeRequiredDesc: 'กรุณาเลือกประเภทสปอตเพื่อให้รู้ว่าจะไปเจออะไร',
spotUpdated: 'อัปเดตสปอตแล้ว!',
spotUpdatedDesc: 'การเปลี่ยนแปลงของคุณถูกเผยแพร่สู่เครือข่ายแล้ว',
staffVerifiedTitle: 'ผู้ดูแล SkateSpots ตรวจสอบและรับรองสปอตนี้',
statusNotePlaceholder: 'ไม่บังคับ: เพิ่มรายละเอียด (เช่น "มีน็อตใหม่บน ledge", "รปภ. ไล่หลัง 6 โมงเย็น")',
statusReported: 'รายงานสภาพแล้ว',
statusReportedDesc: 'ขอบคุณที่ช่วยให้แผนที่สดใหม่ รายงานของคุณเผยแพร่แล้ว',
submitReport: 'ส่งรายงาน',
submitting: 'กำลังส่ง...',
suggestedByUser: 'เสนอโดยผู้ใช้ {{count}} คน',
suggestedByUsers: 'เสนอโดยผู้ใช้ {{count}} คน',
suggestedTagsContent: 'แท็กที่เสนอสำหรับ {{title}}: {{tags}}',
suggestNTags: 'เสนอ {{count}} แท็ก',
suggestOneTag: 'เสนอ 1 แท็ก',
suggestTags: 'เสนอแท็ก',
suggestTagsDesc: 'ช่วยจัดหมวดสปอตนี้ด้วยการเสนอแท็กที่เกี่ยวข้อง',
tags: 'แท็ก',
tagsHint: 'เพิ่มแท็กสำหรับลักษณะ พื้นผิว บรรยากาศ (สูงสุด {{max}})',
tagsSuggested: 'เสนอแท็กแล้ว!',
tagsSuggestedDesc: 'ส่งข้อเสนอแนะแท็กของคุณแล้ว',
takePhoto: 'ถ่ายรูป',
threeDayForecast: 'พยากรณ์ 3 วัน',
tipTheMapper: 'ให้ทิปผู้แมป',
tipTheMapperDesc: 'สปอตนี้มีประโยชน์ไหม? ส่ง zap เพื่อขอบคุณผู้แมป!',
titleRequired: 'ต้องระบุชื่อ',
titleRequiredDesc: 'กรุณากรอกชื่อสำหรับสปอตนี้',
today: 'วันนี้',
tomorrow: 'พรุ่งนี้',
transferDesc: 'โอน "{{title}}" ให้ผู้ใช้คนอื่น การกระทำนี้ย้อนกลับไม่ได้',
transferFailed: 'โอนไม่สำเร็จ',
transferOwnership: 'โอนความเป็นเจ้าของ',
transferRequestContent: 'คำขอโอนความเป็นเจ้าของสปอต "{{title}}"',
transferRequested: 'ขอโอนแล้ว',
transferRequestedDesc: 'เจ้าของใหม่ต้องอ้างสิทธิ์สปอตเพื่อทำการโอนให้เสร็จ',
transferring: 'กำลังโอน...',
transferSpotOwnership: 'โอนความเป็นเจ้าของสปอต',
transferWarningDesc: 'หลังโอน คุณจะแก้ไขหรือลบสปอตนี้ไม่ได้อีก',
typeToSearchTags: 'พิมพ์เพื่อค้นหาหรือเพิ่มแท็ก...',
underReview: ' — อยู่ระหว่างตรวจสอบ ถ้าเป็นสปอตจริง ให้เพิ่มรูปหรือรายงานสภาพเพื่อยืนยัน',
untitledSpot: 'สปอตไม่มีชื่อ',
unverified: 'ยังไม่ยืนยัน',
updateDetailsFor: 'อัปเดตรายละเอียดของ {{title}}',
updateSpotDesc: 'อัปเดตข้อมูลของสปอตนี้ ช่องที่มี * จำเป็นต้องกรอก',
uploadAPhoto: 'อัปโหลดรูป',
uploadAPhotoHint: 'ลากมาวางหรือคลิก · JPG, PNG, WebP',
uploadedAlt: 'อัปโหลดแล้ว',
uploadFailed: 'อัปโหลดไม่สำเร็จ',
uploadingPhoto: 'กำลังอัปโหลดรูป…',
uploadPhotoFirst: 'กรุณาอัปโหลดรูปก่อน',
uvIndex: 'ดัชนี UV',
verifiedBySkateSpots: 'ยืนยันโดย SkateSpots',
viewPhotoFullScreen: 'ดูรูปเต็มจอ',
viewPhotoOf: 'ดูรูปที่ {{n}} จาก {{total}}',
warning: 'คำเตือน',
weatherConditions: 'สภาพอากาศ',
weatherOnly: 'เฉพาะสภาพอากาศ',
weatherOnlyUnconfirmed: 'เฉพาะสภาพอากาศ ยังไม่มีใครยืนยันว่านี่คือสปอตสเก็ต จึงยังไม่มีคะแนนสภาพ — เพิ่มรูปหรือรายงานสภาพเพื่อยืนยัน',
whyReporting: 'คุณรายงานเรื่องนี้เพราะอะไร?',
wind: 'ลม',
yearsAgo: '{{count}} ปีที่แล้ว',
yearsAgoPlural: '{{count}} ปีที่แล้ว',
},
diyUi: {
title: 'DIY — ทำเอง',
tagline: 'คู่มือ เครื่องมือเปิด และแบบแปลนสำหรับทำ Deck แร็มป์ และสปอตคอนกรีตด้วยตัวเอง — แล้วหาคน สถานที่ และตลาดที่ไปด้วยกัน',
doItWithPeople: 'ทำกับผู้คน',
backToDiy: 'กลับไปที่ DIY',
calc: {
title: 'เครื่องคิดต้นทุน Deck',
intro: 'Deck หนึ่งแผ่นมีต้นทุนเท่าไร — ค่าแรง อุปกรณ์ วัสดุ เวลาผลิต บรรจุภัณฑ์ และกำไร — พร้อมราคาขายที่เป็นธรรม บันทึกไว้ในเครื่องนี้',
},
designer: {
title: 'Deck designer',
intro: 'ขึ้นรูปทรงสเก็ตบอร์ดหรือลองบอร์ด แล้วส่งออกเทมเพลตพิมพ์ 1:1, SVG หรือ DXF สำหรับ CNC บันทึกไว้ในเครื่องนี้',
presets: 'พรีเซ็ต',
dimensions: 'ขนาด',
shape: 'รูปทรง',
kicks: 'Kicks',
hardware: 'รู Truck',
width: 'ความกว้างสูงสุด',
wheelbase: 'Wheelbase',
nose: 'ความยาว Nose',
tail: 'ความยาว Tail',
length: 'ความยาวรวม',
waist: 'Waist',
endRound: 'ความมนปลาย',
concave: 'Concave',
thickness: 'ความหนา',
tailKick: 'Tail kick',
noseKick: 'Nose kick',
holeNew: 'New school (2.125″)',
holeOld: 'Old school (2.5″)',
holeSpacing: 'New school คือ 2.125″ × 1.625″ (54 × 41 มม.); old school คือ 2.5″ × 1.625″ รูยึด 3/16″',
topView: 'มุมมองด้านบน',
sideView: 'ด้านข้าง',
concaveSection: 'ภาคตัด Concave',
export: 'ส่งออก',
pdfA4: 'PDF 1:1 · A4',
pdfLetter: 'PDF 1:1 · Letter',
printNote: 'พิมพ์ PDF ที่ 100% (ไม่เลือก "พอดีหน้า") แล้วต่อแผ่นโดยใช้กากบาทที่มุม SVG ก็เป็นขนาดจริงเช่นกัน',
note: 'นี่คือโครงร่าง 2D ที่คุณลอกและตัด สำหรับรูปทรง 3D เต็มรูปแบบและการออกแบบแม่พิมพ์ เครื่องมือ CAD จริงยังเป็นทางเลือกที่ถูกต้อง',
},
source: 'แหล่งที่มา',
comingSoon: 'เร็ว ๆ นี้',
footer: 'คู่มือทีละขั้นกำลังจะมา ระหว่างนี้: หาคนที่สร้างใน The Lab, แมปสปอตของคุณ และซื้อหรือขายใน Marketplace ทำงานอย่างปลอดภัย — สวมสนับมือ ถุงมือ และแว่นตากันลม',
categories: {
boards: 'Boards',
ramps: 'Ramps & อุปกรณ์ไม้',
concrete: 'คอนกรีต & สปอต DIY',
repairs: 'ซ่อม & จูน',
tools: 'เครื่องมือ & แบบแปลน',
},
cards: {
ossBuild: {
title: 'สร้างสเก็ตบอร์ด',
blurb: 'ขั้นตอนการทำ Deck — วีเนียร์ แม่พิมพ์ แท่นอัด และการเก็บงาน',
},
sk8cad: {
title: 'SK8CAD',
blurb: 'CAD โอเพนซอร์สสำหรับรูปทรง Deck, Concave และการออกแบบแม่พิมพ์',
},
deckCost: {
title: 'ต้นทุน & ราคา Deck',
blurb: 'คำนวณวัสดุ ค่าแรง และราคาขายที่เป็นธรรมก่อนลงมือสร้าง',
},
deckDesigner: {
title: 'Deck designer',
blurb: 'ขึ้นโครงร่างและพิมพ์เทมเพลต 1:1 — หรือส่งออก SVG/DXF สำหรับ CNC',
},
ledgeBox: {
title: 'สร้าง Ledge หรือ Box',
blurb: 'อุปกรณ์ไม้ที่มือใหม่ทำได้ในหนึ่งสุดสัปดาห์',
},
quarterpipe: {
title: 'สร้าง Quarterpipe',
blurb: 'แบบแปลน Transition และ Coping สำหรับ Mini หลังบ้าน',
},
flatbar: {
title: 'สร้าง Flatbar',
blurb: 'ถูก พกพาง่าย และเป็นวิธีที่ดีที่สุดในการหัดเล่น Rails',
},
concreteBasics: {
title: 'พื้นฐานคอนกรีต',
blurb: 'การผสม ขึ้นแบบ และเก็บผิว Ledge หรือ Bank ที่ทนทาน',
},
coping: {
title: 'Coping & ขอบ',
blurb: 'วิธีติดตั้ง Coping และเก็บผิว Transition ให้ grind ลื่น',
},
buyParts: {
title: 'ซื้ออะไหล่ & Gear',
blurb: 'หา Deck, Hardware และเครื่องมือจากผู้ขายใน Marketplace',
},
mapSpot: {
title: 'แมปสปอต DIY ของคุณ',
blurb: 'สร้างอะไรไว้? เพิ่มลงแผนที่ให้คนอื่นเจอและไปเล่นได้',
},
regrip: {
title: 'เปลี่ยน Grip',
blurb: 'ลอก Grip เก่าและติด Grip ใหม่ให้เรียบเนียน',
},
tune: {
title: 'จูน Bearings & Truck',
blurb: 'ล้าง Bearings เปลี่ยน Bushing และตั้งเรขาคณิต Truck',
},
printMolds: {
title: 'แม่พิมพ์พิมพ์ 3D',
blurb: 'ไฟล์แม่พิมพ์และฐานจัดตำแหน่งที่พิมพ์ได้จากชุมชน',
},
sk8cadTools: {
title: 'เครื่องมือแม่พิมพ์ & จัดตำแหน่ง',
blurb: 'ออกแบบแม่พิมพ์พร้อมฐานจัดตำแหน่งในตัว',
},
},
actions: {
findBuilder: {
title: 'หาช่างสร้าง',
blurb: 'ช่างสร้าง ramp และ DIY ใน The Lab ที่ออกแบบหรือเทให้คุณได้',
},
findCrew: {
title: 'หา Crew DIY',
blurb: 'Crew ที่เน้นลงมือสร้าง — ร่วมกับคนที่เปลี่ยนสปอตให้เป็นจริง',
},
mapSpot: {
title: 'แมปสปอต DIY',
blurb: 'เพิ่มสปอตที่คุณสร้างไว้ให้อยู่บนแผนที่',
},
sellBuilds: {
title: 'ขายสิ่งที่คุณทำ',
blurb: 'ลงขาย Deck, ramp หรืออะไหล่ที่คุณทำใน Marketplace',
},
findCoach: {
title: 'หาโค้ช',
blurb: 'โค้ชที่สอนโมดูลสเก็ต DIY และการสร้างสปอต',
},
},
},
};
export default thBatch3;

View file

@ -1,5 +1,6 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
/**
* Thai (ไทย) translations — composed from fragments so parallel translation
@ -12,6 +13,7 @@ import batch2 from './batch2';
const th = {
...batch1,
...batch2,
...batch3,
};
export default th;