i18n(th): batch 5 — routing/directions + Sasquatch assistant (UI + FAQ)

This commit is contained in:
SkateSpots 2026-10-06 13:54:07 +07:00
parent 59cf47d3e6
commit 1078bf9a8e
2 changed files with 366 additions and 0 deletions

364
src/i18n/th/batch5.ts Normal file
View file

@ -0,0 +1,364 @@
/**
* Thai (ไทย) — batch 5: routing/directions (routeUi) and the Sasquatch AI
* assistant (sasquatchUi + sasquatchChat). LLM prompts stay English; only the
* UI + static FAQ prose are translated. Skate/Nostr terms stay English.
*/
const thBatch5 = {
routeUi: {
destination: 'ปลายทาง',
routeTo: 'นำทางไป {{label}}',
routeToLabel: 'นำทางไป',
search: 'ค้นหา',
description: 'ตัวเลือกเส้นทางและนำทางในแอป',
routeMapAria: 'แผนที่เส้นทาง',
findingLocation: 'กำลังหาตำแหน่งของคุณ…',
plottingRoute: 'กำลังวางเส้นทาง…',
refiningLocation: 'กำลังปรับตำแหน่ง…',
offlineSavedRoute: 'ออฟไลน์ · เส้นทางที่บันทึกไว้ {{age}}',
tapMapStart: 'แตะแผนที่เพื่อกำหนดจุดเริ่มต้น',
fitRouteAria: 'แสดงเส้นทางทั้งหมดบนแผนที่',
wholeRoute: 'ทั้งเส้นทาง',
next: 'ถัดไป',
nextStep: 'ถัดไป · ขั้นที่ {{n}}',
followTheLine: 'ตามเส้นทาง',
toTheTurn: 'ถึงทางเลี้ยว',
toGo: 'เหลืออีก',
tryAgain: 'ลองอีกครั้ง',
mode: {
foot: 'สเก็ต / เดิน',
bike: 'จักรยาน',
moto: 'มอเตอร์ไซค์',
car: 'รถยนต์',
transit: 'ขนส่งสาธารณะ',
},
from: 'จาก',
myLocation: 'ตำแหน่งของฉัน',
tapTheMap: 'แตะแผนที่…',
chooseOnMap: 'เลือกบนแผนที่',
direct: 'ตรง',
transferOne: 'ต่อ 1 ครั้ง',
transfers: 'ต่อ {{count}} ครั้ง',
options: '{{count}} ตัวเลือก',
ride: 'นั่ง',
arrive: 'ถึง',
speedAvg: 'เฉลี่ย {{speed}} กม./ชม.',
stepsCount: '{{count}} ขั้น',
onABoard: 'บนบอร์ด',
usesDrivingRoads: 'ใช้ถนนสำหรับรถยนต์',
drivingEstimate: 'ประมาณการสำหรับรถยนต์',
updating: 'กำลังอัปเดต…',
pickMode: 'เลือกโหมดเพื่อดูเส้นทาง',
waitingLocation: 'รอตำแหน่งของคุณ…',
routeSteps: 'ขั้นตอนเส้นทาง',
walkingRoute: 'เส้นทางเดิน — เร็วขึ้นบนบอร์ด',
planningView: 'มุมมองวางแผน — แตะ เริ่ม เพื่อติดตามด้วยทางเลี้ยวสด เสียง และการมาถึง',
leaveNow: 'ออกตอนนี้',
departAt: 'ออกเวลา',
arriveBy: 'ถึงก่อน',
departureTime: 'เวลาออก',
arrivalTime: 'เวลาถึง',
only: 'เฉพาะ',
clear: 'ล้าง',
itinerary: 'ตารางเดินทาง',
group: {
bus: 'รถบัส',
tram: 'รถราง',
metro: 'รถไฟใต้ดิน',
train: 'รถไฟ',
ferry: 'เรือเฟอร์รี',
},
walk: 'เดิน',
rideVerb: 'นั่ง',
walkLower: 'เดิน',
rideLower: 'นั่ง',
toStop: 'ไป',
track: 'ชานชาลา {{track}}',
stopOne: '1 ป้าย',
stopsCount: '{{count}} ป้าย',
tickets: 'ตั๋ว ↗',
done: 'เสร็จ',
stop: 'หยุด',
start: 'เริ่ม',
arrived: 'คุณมาถึงแล้ว 🛹',
voiceOnNote: 'หน้าจอเปิดอยู่ · เสียงเปิด — มีการพูดทางเลี้ยวและการมาถึง',
voiceOffNote: 'หน้าจอเปิดอยู่ · เสียงปิด',
followNote: 'ทางเลี้ยว เสียง และการมาถึงขณะเล่น หน้าจอเปิดไว้',
voiceOffAria: 'ปิดคำแนะนำด้วยเสียง',
voiceOnAria: 'เปิดคำแนะนำด้วยเสียง',
voiceStart: 'กำลังเริ่มนำทาง',
voiceArrived: 'คุณมาถึงแล้ว',
voiceIn: 'อีก {{metres}} เมตร {{instruction}}',
voiceContinue: 'ไปต่อ',
voiceContinueCaps: 'ไปต่อ',
errPermissionDenied: 'ไม่ได้รับอนุญาตตำแหน่ง',
errWaitingGps: 'กำลังรอสัญญาณ GPS…',
errPermissionDeniedLong: 'ไม่ได้รับอนุญาตตำแหน่ง เปิดตำแหน่งเพื่อนำทางจากที่ที่คุณอยู่',
errNoLocation: 'ระบุตำแหน่งของคุณไม่ได้ ลองอีกครั้ง',
errNoLocationShort: 'ระบุตำแหน่งของคุณไม่ได้',
errTransitNoRouteFiltered: 'ไม่มีเส้นทางสำหรับเวลาหรือโหมดขนส่งนั้น — ลองเวลาอื่น หรือเลือกโหมดเพิ่ม',
errTransitNoRoute: 'ไม่พบเส้นทางขนส่งสาธารณะที่นี่ — พื้นที่นี้อาจไม่เผยแพร่ตารางเวลาสาธารณะ',
errTransitUnreachable: 'เชื่อมต่อบริการขนส่งไม่ได้ ตรวจการเชื่อมต่อแล้วลองใหม่',
errRoutingBusy: 'บริการนำทางไม่ว่างตอนนี้ — ลองอีกครั้งในอีกสักครู่',
errNoRouteMode: 'ไม่มีเส้นทางสำหรับโหมดนี้ — ปลายทางอาจอยู่นอกโครงข่ายถนน ลองโหมดอื่น',
errRoutingUnreachable: 'เชื่อมต่อบริการนำทางไม่ได้ ตรวจการเชื่อมต่อแล้วลองใหม่',
departures: 'เที่ยวออก',
upcomingFrom: 'เที่ยวออกกำลังจะมาถึงจาก {{stop}}',
loadingDepartures: 'กำลังโหลดเที่ยวออก…',
noDepartures: 'ไม่พบเที่ยวออกที่กำลังจะมาถึงที่ป้ายนี้',
live: 'สด',
cancelled: 'ยกเลิก',
refresh: 'รีเฟรช',
tripLoginTitle: 'เข้าสู่ระบบเพื่อบันทึก',
tripLoginDesc: 'เข้าสู่ระบบเพื่อเก็บทริปนี้เป็นคอลเลกชัน',
tripCollectionTitle: 'ทริปสเก็ต {{destination}} 🛹',
tripCollectionDesc: 'แผนทริปโดย The Sasquatch — {{count}} วันใน {{destination}}',
tripCollectionDescOne: 'แผนทริปโดย The Sasquatch — {{count}} วันใน {{destination}}',
tripSavedTitle: 'บันทึกในคอลเลกชันแล้ว 🦧',
tripSavedDesc: 'ทริป {{destination}} ของคุณถูกบุ๊กมาร์กแล้ว',
tripSaveFailed: 'บันทึกไม่สำเร็จ',
tripSaveFailedDesc: 'ลองอีกครั้งในอีกสักครู่',
daysInDestinationOne: '{{count}} วันใน {{destination}}',
daysInDestination: '{{count}} วันใน {{destination}}',
wetForecast: 'พยากรณ์ฝน — หา Crew ท้องถิ่นถามสปอตที่มีหลังคา/ในร่ม',
dayLabel: 'วันที่ {{n}}',
freeSkate: 'เล่นอิสระ — สำรวจ & ถ่ายคลิป 🎥',
tapToBook: 'แตะเพื่อจอง / zap ⚡',
localCrews: 'Crew ท้องถิ่น',
saving: 'กำลังบันทึก…',
savedToCollections: 'บันทึกในคอลเลกชันแล้ว',
saveSpotOne: 'บันทึก {{count}} สปอตลงคอลเลกชัน',
saveSpots: 'บันทึก {{count}} สปอตลงคอลเลกชัน',
flights: 'เที่ยวบิน',
stays: 'ที่พัก',
gettingAround: 'การเดินทาง',
noMiddleman: 'ฉันวางแผนการเล่นสเก็ต — เที่ยวบิน & ที่พักเปิดบนเว็บจริง (ไม่มี KYC ไม่มีคนกลาง)',
ageJustNow: 'เมื่อสักครู่',
ageMinAgo: '{{count}} นาทีที่แล้ว',
ageHourAgo: '{{count}} ชม. ที่แล้ว',
ageDayAgo: '{{count}} วันที่แล้ว',
skateRightHere: 'ตรงนี้เลย',
skateMin: '~{{count}} นาที cruise',
skateHours: '~{{hours}} ชม. cruise',
maneuver: {
headOut: 'ออกเดินทาง',
arrive: 'ถึงสปอต',
continueStraight: 'ไปต่อตรง ๆ',
bearLeft: 'เบี่ยงซ้าย',
bearRight: 'เบี่ยงขวา',
turnLeft: 'เลี้ยวซ้าย',
turnRight: 'เลี้ยวขวา',
sharpLeft: 'เลี้ยวซ้ายหักศอก',
sharpRight: 'เลี้ยวขวาหักศอก',
turn: 'เลี้ยว',
keepLeft: 'ชิดซ้าย',
keepRight: 'ชิดขวา',
takeFork: 'แยกทาง',
merge: 'รวมช่องทาง',
roundabout: 'เข้าไปในวงเวียน',
takeRamp: 'ขึ้นทางลาด',
takeExit: 'ออกทางออก',
},
maneuverOnto: '{{instruction}} เข้าสู่ {{road}}',
},
sasquatchUi: {
live: 'สด',
offline: 'ออฟไลน์',
genericTitle: 'ผู้ช่วย SkateSpots 🦧',
genericGreeting: 'โย่! ฉันคือ The Sasquatch ถามอะไรก็ได้เกี่ยวกับสปอต อีเวนต์ โค้ช Gear หรือวิธีใช้แอป ฉันมีข้อมูลสดจาก relay ของ SkateSpots!',
q1: 'วางแผน 3 วันในลิสบอนให้หน่อย',
q2: 'หาสปอตใกล้ฉัน',
q3: 'มีอีเวนต์กำลังจะมาถึงไหม?',
q4: 'Crews คืออะไร?',
q5: 'zap ทำงานยังไง?',
q6: 'Nostr คืออะไร?',
q7: 'My Stash คืออะไร?',
q8: 'อันนี้ฟรีไหม?',
bubbleTitle: 'กดค้างแล้วลากเพื่อย้าย · แตะเพื่อเปิด',
openGuideAria: 'เปิดไกด์ Sasquatch',
hideAria: 'ซ่อนผู้ช่วย Sasquatch',
hide: 'ซ่อนผู้ช่วย',
showAria: 'แสดงผู้ช่วย Sasquatch',
activeUntil: 'ใช้งานถึง {{date}}',
platformOwner: 'เจ้าของแพลตฟอร์ม',
upgradeTitle: 'อัปเกรดเป็น Sasquatch Pro',
goPro: 'Go Pro',
goProBlurb: 'AI ส่วนตัว · เริ่ม 2k sats',
aiBalanceTitle: 'ยอดเครดิต Sasquatch AI (เฉพาะเจ้าของ) — เติมที่ {{provider}}',
aiChip: '⚡ AI {{balance}}',
minimizeToBubbleAria: 'ย่อเป็นบับเบิล',
minimize: 'ย่อ',
closePanelAria: 'ปิดแผง',
close: 'ปิด',
askLab: 'ถามเรื่อง Coaching & Filming',
askMap: 'ถามเรื่อง Spots, Shops & Gear',
askAnything: 'ถามอะไรก็ได้ 🛹',
quickQuestions: 'คำถามด่วน:',
you: '🧑 คุณ',
thinking: 'กำลังคิด...',
inputPlaceholder: 'ถามเรื่องสปอต อีเวนต์ โค้ช...',
liveDataFrom: 'ข้อมูลสดจาก',
nostrRelays: 'relay Nostr',
clear: 'ล้าง',
gettingLocation: '📍 กำลังหาตำแหน่งของคุณ…',
findingClosest: '🔍 กำลังหาสปอตที่ใกล้ที่สุด…',
checkingLive: '🔍 กำลังตรวจข้อมูลสด…',
planningTrip: '🗺️ กำลังวางแผนทริป {{destination}} ของคุณ...',
searchingRelays: '🔍 กำลังค้น relay สำหรับ {{tool}}...',
perk1: 'ผู้ช่วยส่วนตัว — Sasquatch อ่าน Stash, crew, สปอต & รายการของคุณ',
perk2: 'ร่างการดำเนินการ: ลงขาย Gear, โพสต์สถานะสเก็ต, วางแผนทริป — คุณยืนยันก่อนเผยแพร่',
perk3: 'คำตอบใช้บริบทส่วนตัวของคุณ ไม่ใช่แค่ข้อมูลสาธารณะ',
perk4: '⚡ สนับสนุน SkateSpots โดยตรง & ช่วยให้ฟรีและไม่มีโฆษณา',
welcomeTitle: 'ขอบคุณที่สนับสนุน Sasquatch Pro! 🦧⚡',
welcomeDesc: 'ส่งการชำระเงินแล้ว — บัตรของคุณจะเปิดใช้งานเมื่อผู้ให้บริการยืนยัน (ปกติภายในหนึ่งนาที) ขอบคุณที่ช่วยให้ถนนยังฟรี',
invoiceCopied: 'คัดลอกใบแจ้งหนี้แล้ว',
dialogDesc: 'เพิ่มพลังให้ไกด์สเก็ต AI ของคุณ 100% สนับสนุนแอปชุมชนที่ฟรีและไม่มีโฆษณา',
proSupporter: 'คุณเป็นผู้สนับสนุน Pro ⚡',
extendPrompt: 'อยากต่ออายุไหม? เลือกแพ็กเกจด้านล่างเพื่อเพิ่มเวลา',
scanToPayPre: 'สแกนเพื่อจ่าย',
scanToPayAmount: '{{sats}} sats',
scanToPayPost: 'สำหรับ {{label}} ของ Pro',
invoiceQrAlt: 'QR ใบแจ้งหนี้ Lightning',
copyInvoice: 'คัดลอกใบแจ้งหนี้',
ivePaid: 'จ่ายแล้ว',
ivePaidHint: 'แตะ "จ่ายแล้ว" หลังกระเป๋าเงินของคุณยืนยัน — นี่จะบันทึกบัตรของคุณกับตัวตน Nostr',
freeStaysPre: 'Sasquatch ฟรียังคงฟรี — ค้นหาสปอต/อีเวนต์/โค้ชสาธารณะ วางแผนทริป + อภิธานศัพท์ทริกทั้งหมด Pro เพิ่ม ',
freeStaysEmphasis: 'ส่วนตัว + การดำเนินการ',
freeStaysPost: ' เลเยอร์',
loginFirst: 'เข้าสู่ระบบก่อนเพื่ออัปเกรด',
paysTo: 'จ่ายให้',
overLightning: 'ผ่าน Lightning ผูกกับ npub ของคุณ',
popular: 'ยอดนิยม',
sats: 'sats',
extend: 'ต่ออายุ',
done: 'เสร็จ!',
cancelledNothing: 'ยกเลิก — ไม่มีอะไรถูกเผยแพร่',
draftReview: 'ฉบับร่าง — ตรวจสอบ & ยืนยัน',
statusTextPlaceholder: 'ข้อความสถานะ',
titlePlaceholder: 'ชื่อ',
priceSatsPlaceholder: 'ราคา (sats)',
conditionPlaceholder: 'สภาพ',
cancel: 'ยกเลิก',
aiTitle: 'Sasquatch AI',
owner: 'เจ้าของ',
notConfigured: 'ยังไม่ได้ตั้งค่า',
unavailable: 'ใช้ไม่ได้',
satsValue: '{{balance}} sats',
theNode: 'โหนด',
lowBalance: 'ใกล้หมด — เติมที่ {{provider}} ไม่งั้น AI จะถอยไปใช้ผู้ให้บริการแบบไม่ใช้คีย์',
aiDesc: 'AI จ่ายตามการใช้งาน เติมด้วย sats ผ่าน Routstr เติมอัตโนมัติเมื่อใกล้หมด',
tier7d: '7 วัน',
tier1m: '1 เดือน',
tier3m: '3 เดือน',
tier1y: '1 ปี',
badgeTry: 'ลองเลย',
badgeOff20: 'ลด 20%',
badgeBest: 'คุ้มที่สุด · ลด 40%',
draftPostStatusTitle: 'โพสต์สถานะการเล่นสเก็ต',
draftAutoExpires: 'หมดอายุอัตโนมัติใน {{count}} นาที',
draftPostStatusCta: 'โพสต์สถานะ',
draftCategory: 'หมวดหมู่: {{value}}',
draftSize: 'ขนาด: {{value}}',
draftCondition: 'สภาพ: {{value}}',
draftMaxPrice: 'ราคาสูงสุด: {{price}} {{currency}}',
draftPriceOpen: 'ราคา: เปิดรับ',
draftLookingForTitle: 'กำลังหา "{{title}}"',
draftWantedCta: 'โพสต์ประกาศซื้อ',
draftPrice: 'ราคา: {{price}} {{currency}}',
draftPriceOffer: 'ราคา: ต่อรองได้',
draftListTitle: 'ลงขาย "{{title}}"',
draftPublishCta: 'เผยแพร่รายการ',
statusPosted: 'โพสต์สถานะแล้ว 🛹',
wantedPublished: 'เผยแพร่ประกาศซื้อแล้ว 🔎',
listingPublished: 'เผยแพร่รายการแล้ว 💸',
mustBeLoggedIn: 'คุณต้องเข้าสู่ระบบ',
},
sasquatchChat: {
faq: {
hi: 'เฮ้! ฉันคือ The Sasquatch 🦧 ไกด์สเก็ต AI ของคุณ ถามเรื่องสปอต อีเวนต์ โค้ช Gear — หรืออะไรก็ได้เกี่ยวกับแอป คุณต้องการอะไร?',
hello: 'เป็นไง! 🛹 ฉันคือ The Sasquatch ถามเรื่องสปอตสเก็ต อีเวนต์ โค้ช หรือวิธีใช้แอป มีอะไร?',
hey: 'เฮ้ นักสเก็ต! 🤙 ถามเรื่องสปอตใกล้คุณ อีเวนต์กำลังจะมาถึง โค้ช หรืออะไรก็ได้เกี่ยวกับ SkateSpots',
whoAreYou: 'ฉันคือ The Sasquatch 🦧 — ไกด์ AI ของ SkateSpots ฉันหาสปอตสเก็ตทั่วโลก ดูอีเวนต์ โค้ช ช่างถ่าย และรายการ Gear ได้ทั้งหมดขับเคลื่อนด้วยข้อมูล Nostr สด ถามมาเลย!',
whatCanYouDo: 'ฉันหาสปอตสเก็ตตามเมืองหรือประเทศ ดูอีเวนต์กำลังจะมาถึง หาโค้ชและช่างถ่ายใน The Lab ค้นรายการ Gear และตอบคำถามเกี่ยวกับวิธีใช้แอป ลอง: "สปอตในกรุงเทพ" หรือ "หาโค้ช"! 🛹',
whatIsNostr: 'Nostr คือโปรโตคอลเปิดที่เรียบง่ายสำหรับเครือข่ายสังคมแบบกระจายศูนย์ คิดว่ามันคือ Twitter แต่ไม่มีบริษัทเดียวควบคุม — คุณใช้คีย์เข้ารหัสแทนชื่อผู้ใช้ เลือกได้ว่า relay ไหนเก็บข้อมูล (หรือรันเอง) และบัญชีเดียวใช้ได้กับทุกแอป Nostr! 🔑',
isThisPrivate: 'นี่คือสรุปตรง ๆ 🛡️\n\n• **ตำแหน่ง GPS ของคุณอยู่ในเครื่อง** — "ใกล้ฉัน" แค่จัดแผนที่ให้อยู่ที่ตำแหน่ง ไม่เคยส่งให้เราหรือเผยแพร่\n• **สปอตที่คุณเพิ่มเป็นสาธารณะ** (นั่นคือจุดประสงค์ของแผนที่ที่แชร์กัน) — อย่าปักหมุดที่หน้าบ้านตัวเอง\n• **DM & แชต crew เข้ารหัสแบบปลายทางถึงปลายทาง** — เฉพาะสมาชิกอ่านได้\n• เหมือนเว็บไซต์ทั่วไป เซิร์ฟเวอร์ที่คุณเชื่อมต่อ (ไทล์แผนที่, relay) เห็น **IP** ของคุณ อยากซ่อนด้วย? ใช้ VPN หรือ Tor\n\nรายละเอียดทั้งหมดที่ [หน้าความเป็นส่วนตัว](/privacy) 🛹',
privacy: 'สรุปสั้น ๆ 🛡️: GPS ของคุณไม่เคยออกจากเครื่อง สปอตที่คุณเผยแพร่เป็นสาธารณะโดยออกแบบ และ DM/แชต crew เข้ารหัสปลายทางถึงปลายทาง เซิร์ฟเวอร์ยังเห็น IP ของคุณ (ปกติของทุกเว็บ) — VPN หรือ Tor ซ่อนได้หากต้องการ รายละเอียดที่ [หน้าความเป็นส่วนตัว](/privacy)',
amITracked: 'SkateSpots ไม่ติดตามคุณ — ไม่มีโฆษณา ไม่มีการวิเคราะห์โปรไฟล์ ไม่ขายข้อมูล และไม่มีเซิร์ฟเวอร์ SkateSpots เก็บตำแหน่งของคุณ GPS อยู่ในเครื่อง สิ่งเดียวที่เซิร์ฟเวอร์เห็น (ไทล์แผนที่, relay) คือ **IP** — เหมือนทุกเว็บ ใช้ VPN หรือ Tor ซ่อนได้ เพิ่มเติมที่ [หน้าความเป็นส่วนตัว](/privacy) 🛡️',
doYouTrack: 'ไม่ — ไม่ติดตาม ไม่มีโฆษณา ไม่เก็บข้อมูล GPS อยู่ในเครื่องและไม่มีเซิร์ฟเวอร์กลางบันทึกคุณ เซิร์ฟเวอร์ที่เชื่อมต่อเห็น IP (เหมือนทุกเว็บ); VPN/Tor ซ่อนได้ ดู [หน้าความเป็นส่วนตัว](/privacy) 🛹',
vpn: 'ไม่บังคับเลย แต่ดีถ้าต้องการความเป็นส่วนตัวเพิ่ม 🛡️ VPN ซ่อน **IP** (ตำแหน่งคร่าว ๆ) จากเซิร์ฟเวอร์ที่ SkateSpots คุยด้วย — ไทล์แผนที่ relay ฯลฯ เลือกผู้ให้บริการ no-logs ที่เชื่อถือได้ (เช่น Mullvad); เลี่ยงตัวฟรีที่น่าสงสัย\n\nข้อควรรู้: VPN **ไม่** ซ่อนสปอตที่คุณเผยแพร่ (สาธารณะ) และอย่าเปิด GPS เบราว์เซอร์ถ้าอยากนิรนาม รายละเอียดที่ [หน้าความเป็นส่วนตัว](/privacy)',
tor: 'Tor Browser ให้ความเป็นส่วนตัว IP สูงสุด — เส้นทางผ่าน relay หลายชั้นจนเซิร์ฟเวอร์ไม่เห็น IP จริง 🧅 ข้อแลกเปลี่ยน: ช้ากว่า และแผนที่ + relay บางตัวอาจหน่วงหรือบล็อก Tor เหมาะกับคนระวังเป็นพิเศษ\n\nจำไว้: Tor ซ่อน IP ไม่ใช่สปอตที่คุณเผยแพร่ และอย่าเปิด GPS เบราว์เซอร์ถ้าเป้าหมายคือนิรนาม เพิ่มเติมที่ [หน้าความเป็นส่วนตัว](/privacy)',
hideMyIp: 'สองทางเลือกฟรี 🛡️: **VPN ที่น่าเชื่อถือ** (ง่าย เร็ว — ซ่อน IP หลังเซิร์ฟเวอร์เขา) หรือ **Tor Browser** (เป็นส่วนตัวสูงสุด ช้ากว่า) ทั้งคู่ทำให้เซิร์ฟเวอร์ที่ SkateSpots เชื่อมต่อไม่เห็น IP จริง หมายเหตุ: ไม่ซ่อนสปอตที่คุณเผยแพร่ ดู [หน้าความเป็นส่วนตัว](/privacy)',
isMyLocation: 'ตำแหน่งของคุณปลอดภัย 📍 — "ใกล้ฉัน" อ่าน GPS บนเครื่องเท่านั้น เพื่อจัดแผนที่และเรียงสปอตใกล้ ๆ ไม่เคยเผยแพร่ไป Nostr ไม่เคยส่งให้เรา ไม่เคยแชร์ เฉพาะสปอตที่คุณตั้งใจเพิ่มเท่านั้นที่เป็นสาธารณะ รายละเอียดที่ [หน้าความเป็นส่วนตัว](/privacy)',
whatAreZaps: 'Zap คือทิป Bitcoin Lightning ทันทีที่ส่งผ่าน Nostr! คลิก ⚡ บนเนื้อหาใดก็ได้ ส่ง sats ตรงเข้ากระเป๋าเงินของผู้สร้าง เหมือนกด "ถูกใจ" แต่ด้วยเงินจริง ทันที peer-to-peer ไม่มีคนกลาง ⚡',
howToLogin: 'สองวิธี:\n1. **ส่วนขยายเบราว์เซอร์** (เดสก์ท็อป): ติดตั้ง Alby หรือ nos2x แล้วคลิก "เข้าสู่ระบบ"\n2. **ผู้ใช้ใหม่**: คลิก "สมัคร" เพื่อสร้างคีย์ ดาวน์โหลด nsec (คีย์ลับ) แล้ว**เก็บให้ดี** — นี่คือบัญชีของคุณตลอดไป!',
whatIsCashu: 'กระเป๋าเงิน Bitcoin ในตัว! โทเคน ecash ของ Cashu ที่หนุนด้วย Lightning — ใช้ได้ออฟไลน์ที่สปอตสเก็ต เน้นความเป็นส่วนตัว (mint ติดตามการจ่ายไม่ได้) ไปที่ กระเป๋าเงิน ในตั้งค่าเพื่อใช้ 🥜',
whatIsNwc: 'Nostr Wallet Connect — เหมือน USB-C ของกระเป๋าเงิน Lightning เชื่อม Alby, Minibits, Zeus หรือ Coinos ครั้งเดียว แล้ว zap ด้วยคลิกเดียวตลอดไป เข้ารหัส คุณคุมวงเงินเอง 🔌⚡',
isItFree: 'ฟรี 100% ไม่มีโฆษณา ไม่มีค่าสมาชิก ไม่มีเรื่ององค์กร สร้างโดยนักสเก็ตเพื่อนักสเก็ต ระดมทุนโดยชุมชนผ่าน Angor — ดูหน้าผู้สนับสนุน คุณยังรับ Bitcoin ผ่าน zap ของชุมชนจากการเพิ่มสปอตที่มีคุณภาพได้ 🛹',
whatCanIDo: 'ค้นสปอตทั่วโลกบนแผนที่ จ้างมืออาชีพใน The Lab (โค้ช ช่างถ่าย ช่างภาพ ตัดต่อ ช่างสร้าง ramp) ออกไปกับ crew ร่วมอีเวนต์ ไปทัวร์ ซื้อ/ขาย Gear ติดตาม Stash ส่วนตัว zap ผู้สร้าง เช็กอากาศสปอต และสร้างชุมชนสเก็ตแบบกระจายศูนย์!',
whatIsTheLab: 'The Lab คือที่ที่คุณจ้างมืออาชีพในวงการสเก็ต: โค้ช ช่างถ่าย ช่างภาพ ตัดต่อวิดีโอ และช่างสร้าง ramp/พาร์ค/DIY แต่ละคนเป็นบุคคลเดียวหรือกลุ่ม (crew/สตูดิโอ) — สมาชิทยืนยันด้วยคีย์ของตัวเองจึงน่าเชื่อถือ ทั้งหมดบน Nostr ไม่มีบัญชีปลอม 🎓',
whatIsACrew: 'Crew คือครอบครัวสเก็ตที่ผูกกับแผนที่ของคุณ — คนที่คุณเล่นด้วย ไม่ใช่คนที่คุณจ้าง แต่ละ crew มีบ้านเกิดบนแผนที่ (หมุดสีเขียวน้ำทะเล) สปอตประจำ สมาชิก บรรยากาศ และแถลงการณ์ สมาชิทยืนยันด้วยคีย์ตัวเอง สร้างได้ที่ Crews → "สร้าง Crew" 🤘',
whatAreCrews: 'Crew คือครอบครัวสเก็ตที่ผูกกับแผนที่ของคุณ — คนที่คุณเล่นด้วย ไม่ใช่คนที่คุณจ้าง แต่ละ crew มีบ้านเกิดบนแผนที่ (หมุดสีเขียวน้ำทะเล) สปอตประจำ สมาชิก และแถลงการณ์ สมาชิทยืนยันด้วยคีย์ตัวเอง ไปที่แท็บ Crews เพื่อเริ่มหรือเข้าร่วม! 🤘',
howToStartACrew: 'ไปที่แท็บ Crews → "สร้าง Crew" ตั้งชื่อ ปักหมุดบ้านเกิดบนแผนที่ เพิ่มบรรยากาศ (หรือ #hashtag ของคุณเอง) เชื่อมสปอตประจำ และเพิ่มสมาชิกด้วย npub สมาชิกแต่ละคนยืนยันด้วยคีย์ของตัวเองทำให้รายชื่อน่าเชื่อถือ 🤘',
whatIsMyStash: 'My Stash คือล็อกเกอร์ Gear ส่วนตัวที่เข้ารหัส (เข้ารหัส NIP-44) ติดตาม Deck, Trucks, Wheels, รองเท้าของคุณ — พร้อมที่เก็บ สภาพ ความหายาก และราคา มีแค่คุณที่อ่านได้เว้นแต่ตั้งเป็นสาธารณะ เหมาะกับการทำประกันหรือวางแผนสลับของ 🎒',
whatIsStash: 'My Stash คือคลัง Gear ส่วนตัวที่เข้ารหัส บันทึกทุกอย่างที่คุณมี — สภาพ ที่เก็บ มูลค่า — เข้ารหัสทั้งหมดให้มีแค่คุณเห็น ตั้งเป็นสาธารณะได้ถ้าอยากขายหรือโชว์ 🎒',
whatIsABuilder: 'Builder คือ crew ramp/พาร์ค/DIY ใน The Lab ที่คุณจ้างสร้าง transition, bowl, rail หรือทั้งพาร์คได้ พวกเขาลงสิ่งที่สร้าง วัสดุ ขนาดโปรเจกต์ และอาจมีใบอนุญาต/ประกัน มักเป็นกลุ่ม — และเชื่อมสปอตที่สร้างไว้กับแผนที่ได้ 🏗️',
whatIsANutzap: 'Nutzap (NIP-61) คือทิป ecash ที่ส่งผ่าน Nostr — โทเคน Cashu ส่วนตัวที่ zap ตรงถึงคน ตั้งค่ารับ nutzap ได้ในกระเป๋าเงิน (การส่ง nutzap เต็มรูปแบบกำลังทยอยเปิด — ตอนนี้ใช้ Lightning zap) 🥜⚡',
whatIsClink: 'CLINK คือรหัสจ่ายเงินแบบ Nostr-native (เรียกว่า "noffer") ร้านค้า crew และมืออาชีพใน The Lab เพิ่มได้ เพื่อให้คุณจ่ายได้โดยไม่ต้องมีที่อยู่ Lightning — คุณจะเห็นปุ่ม "จ่ายผ่าน CLINK" พร้อม QR สแกนด้วยกระเป๋าเงิน CLINK อย่าง ShockWallet 🔗⚡ [สเปก](https://clinkme.dev/specs.html) [แอป](https://clinkme.dev/apps.html)',
whatIsNoffer: 'noffer คือรหัสจ่ายเงิน CLINK — วิธีรับเงินแบบ Nostr-native ที่ใช้ซ้ำได้โดยไม่ต้องมีเว็บเซิร์ฟเวอร์หรือที่อยู่ Lightning เพิ่มของคุณในร้าน/crew/โปรไฟล์ Lab แล้วคนจ่ายตรงถึงคุณได้ 🔗',
whatAreTours: 'Tours คือทริปสเก็ตมีไกด์ — เซสชันท้องถิ่น ทริปข้ามเมือง หรือทัวร์ world destruction หาได้บนแผนที่หรือส่วน Tours นัดเจอ แล้วออกไปเล่นภูมิประเทศใหม่กับคนท้องถิ่น 🗺️🛹',
whatIsAShop: 'Skate Shops คือร้านท้องถิ่นที่ลงบนแผนที่ ค้นพบและสนับสนุนร้านสเก็ตของจริง (หรือออนไลน์) ในพื้นที่คุณ — บางร้านรับ Bitcoin ด้วย 🏪',
howToSellGear: 'ไปที่ Gear Swap / Marketplace แล้วสร้างรายการ (NIP-99) เพิ่มรูป ตั้งราคาเป็น sats ระบุสภาพ และปักหมุดกับสปอตก็ได้ให้แสดงบนแผนที่ ผู้ซื้อจะ zap หรือส่งข้อความหาคุณตรง ๆ 🛹💸',
supporters: 'SkateSpots ระดมทุนโดยชุมชนผ่าน Angor (คราวด์ฟันด์ Bitcoin แบบกระจายศูนย์) — ไม่มีโฆษณา ไม่มีนักลงทุน ไม่ขายข้อมูล ดูหน้าผู้สนับสนุนเพื่อสนับสนุนโปรเจกต์และรักษาถนนให้ฟรี ❤️⚡',
trustScore: 'คะแนนความน่าเชื่อถือ (0-100) ขับเคลื่อนโดย Relatr วิเคราะห์เครือข่าย Nostr ของคุณ: ผู้ติดตาม กิจกรรม การมีส่วนร่วม zap ยิ่งสูง = น่าเชื่อถือขึ้น ช่วยกรองบอตและสแปม ดูโปรไฟล์ใดก็ได้เพื่อดูคะแนน 🛡️',
whatRelay: 'SkateSpots ใช้: 🛹 goskatespots.nostr1.com (หลัก อยู่ใน allowlist เพื่อคุณภาพ) + relay.ditto.pub (ทั่วโลก) + purplepag.es (รวมโปรไฟล์) ข้อมูลของคุณถูกทำสำเนาไปยังทั้งหมดเพื่อความทนทาน',
tripPlanner: 'บอกชื่อเมืองมา แล้วฉันจะสร้างทริปสเก็ตรายวัน 🗺️ — สปอต อีเวนต์ โค้ช และ crew ท้องถิ่น โดยคำนึงถึงอากาศ (วันฝนตก = แนะนำ crew สำหรับสปอตมีหลังคา) ลอง "วางแผน 3 วันในลิสบอน" ฉันบันทึกทั้งหมดลงคอลเลกชันได้ และส่งต่อไปยังเที่ยวบิน/ที่พักบนเว็บจริง (ไม่มี KYC ไม่มีคนกลาง) 🛹',
planATrip: 'แค่พูด "วางแผน 3 วันในบาร์เซโลนา" (หรือเมืองใดก็ได้) แล้วฉันจะวางสปอต เซสชัน โค้ช และ crew ท้องถิ่นให้แต่ละวัน บันทึกเป็นคอลเลกชันแล้วไปเล่นได้เลย 🗺️🛹',
sasquatchPro: '**Sasquatch Pro** 🦧⚡ คือบัตรผู้สนับสนุน Lightning ที่ปลดล็อกด้านส่วนตัวของฉัน:\n\n• 🧠 **ผู้ช่วยส่วนตัว** — ฉันอ่าน Stash, crew, สปอต & รายการของคุณ\n• ✨ **ร่างการดำเนินการ** — ลงขาย Gear, โพสต์สถานะสเก็ต, วางแผนทริป (คุณยืนยันก่อนเผยแพร่เสมอ)\n• 💬 **บริบทส่วนตัว** — คำตอบใช้ข้อมูลของคุณ ไม่ใช่แค่ผลสาธารณะ\n• ⚡ **สนับสนุนโปรเจกต์** — คุณรักษา SkateSpots ให้ฟรีและไม่มีโฆษณา\n\nSasquatch ฟรียังคงฟรี: ค้นหาสปอต/อีเวนต์/โค้ช/crew สาธารณะ อภิธานศัพท์ & การวางแผนทริปทำงานได้โดยไม่ต้อง Pro Pro เพิ่มแค่ของส่วนตัว แตะ **⚡ Go Pro** ด้านบน แพ็กเกจ: 7 วัน ~2k sats, 1 เดือน ~5k, 3 เดือน ~12k, 1 ปี ~36k',
proPerks: 'สิทธิ Pro 🦧⚡: ผู้ช่วยส่วนตัว (อ่าน Stash/crew/สปอต/รายการ), ร่างการดำเนินการ (ลงขาย Gear, โพสต์สถานะ, วางแผนทริป — คุณยืนยัน), และคำตอบที่ใช้บริบทส่วนตัวของคุณ อีกทั้งคุณสนับสนุน SkateSpots โดยตรงและรักษาให้ฟรี + ไม่มีโฆษณา ฟรียังฟรี — Pro เพิ่มเลเยอร์ส่วนตัว แตะ **⚡ Go Pro** ด้านบน',
proVersion: 'เวอร์ชัน Pro ของฉัน 🦧⚡ เพิ่ม **ผู้ช่วยส่วนตัว**: อ่าน Stash, crew, สปอต & รายการของคุณ ร่างการดำเนินการให้ (ลงขาย Gear, โพสต์สถานะ, วางแผนทริป — คุณยืนยันก่อนเสมอ) และใช้บริบทส่วนตัวในคำตอบ อีกทั้งสนับสนุนโปรเจกต์โดยตรง Sasquatch ฟรี (ค้นสปอต/อีเวนต์/โค้ช/crew, อภิธานศัพท์, วางแผนทริป) ยังฟรี แตะ **⚡ Go Pro** ด้านบน',
perks: 'สิทธิ Pro 🦧⚡: ผู้ช่วยส่วนตัว (Stash/crew/สปอต/รายการของคุณ), ร่างการดำเนินการที่คุณยืนยัน, และคำตอบที่ใช้บริบทของคุณ — อีกทั้งรักษาแอปให้ฟรี & ไม่มีโฆษณา แตะ **⚡ Go Pro** ด้านบน',
goPro: 'แตะปุ่ม **⚡ Go Pro** ด้านบนเพื่อเปิดหน้าอัปเกรด Pro ปลดล็อกผู้ช่วยส่วนตัว (Stash/crew/สปอต/รายการ) และร่างการดำเนินการ และสนับสนุนโปรเจกต์โดยตรง จ่ายด้วย Lightning — 7 วัน ~2k sats ถึง 1 ปี ~36k sats ฟีเจอร์ฟรียังฟรี 🦧',
proPricing: 'แพ็กเกจ Pro (จ่ายด้วย Lightning ⚡): **7 วัน** ~2,000 sats (~$1.20), **1 เดือน** ~5,000 sats (~$3), **3 เดือน** ~12,000 sats (~$7 ลด 20%), **1 ปี** ~36,000 sats (~$21 คุ้มที่สุด) แตะ **⚡ Go Pro** ด้านบน',
howMuchIsPro: 'แพ็กเกจ Pro: 7 วัน ~2,000 sats, 1 เดือน ~5,000 sats, 3 เดือน ~12,000 sats (ลด 20%), 1 ปี ~36,000 sats (คุ้มที่สุด) จ่ายด้วย Lightning ⚡ แตะ **⚡ Go Pro** ด้านบน',
upgrade: 'อัปเกรดเป็น Sasquatch Pro ได้โดยแตะปุ่ม **⚡ Go Pro** ด้านบน จ่ายด้วย Lightning (7 วัน ~2k sats ถึง 1 ปี ~36k) Pro ปลดล็อกผู้ช่วยส่วนตัวและร่างการดำเนินการ และสนับสนุนโปรเจกต์โดยตรง 🦧⚡',
},
statsTitle: '📊 **SkateSpots ในตัวเลข**',
weatherTemp: '• {{temp}}°C (รู้สึก {{feels}}°C)',
weatherSkateability: '• เล่นได้: **{{label}}** ({{score}}/100)',
weatherError: 'อ่านอากาศตอนนี้ไม่ได้ ลองอีกครั้งในอีกสักครู่ 🌧️',
labelSpots: 'สปอต',
labelEvents: 'อีเวนต์',
labelLabPros: 'มืออาชีพใน Lab',
labelCrews: 'crew',
labelShops: 'สเก็ตช็อป',
labelTours: 'ทัวร์',
labelGear: 'รายการ Gear',
unnamed: 'ไม่มีชื่อ',
emptyWhere: ' ใน **{{place}}**',
emptyResult: 'ตอนนี้ไม่พบ {{label}}{{where}} 🦧\n\nอาจหมายถึงยังไม่มีใครลงไว้ — หรือ relay ตอบช้า ลองอีกครั้งในอีกสักครู่ ตรวจการสะกด หรือ[เพิ่มอันแรกบนแผนที่](https://skate-spots.org/map) 🛹',
foundTitle: '{{emoji}} พบ **{{count}}** {{label}}:\n{{lines}}{{more}}',
moreResults: '\n\n…และอีก **{{count}}** — [ดูทั้งหมดบนแผนที่](https://skate-spots.org/map) 🗺️',
locationDenied: 'ฉันเห็นตำแหน่งคุณไม่ได้ — ไม่มีอะไรออกจากเครื่องเลย ฉันอ่านเฉพาะเมื่อคุณขอ และเบราว์เซอร์เพิ่งปฏิเสธ แตะ 🎯 **ใกล้ฉัน** บนแผนที่ หรือบอกชื่อเมือง: "สปอตในกรุงเทพ" 🛹',
noNearbySpots: 'ยังไม่มีสปอตที่แมปไว้ใกล้คุณ 🦧 — [เป็นคนแรกที่ปักหมุด](https://skate-spots.org/create-spot) 🛹',
closestTitle: 'ใกล้คุณที่สุดตอนนี้:',
closestFooter: '_คำนวณบนเครื่องคุณ — ตำแหน่งของคุณไม่เคยออกไป_',
proNudge: 'นั่นเป็นเรื่องของ **Sasquatch Pro** 🦧⚡ — ด้วย Pro ฉันอ่าน Stash, crew, สปอต และรายการของคุณ ร่างรายการ Gear ประกาศซื้อ และสถานะสเก็ต และวางแผนทริปได้ เป็นบัตรผู้สนับสนุน Lightning ที่รักษา SkateSpots ให้ฟรี & ไม่มีโฆษณา แตะปุ่ม **⚡ Go Pro** ด้านบนเพื่อปลดล็อก 🛹',
draftingProPerk: 'การร่างการดำเนินการ (โพสต์สถานะ ลงขาย Gear) เป็นสิทธิ **Sasquatch Pro** 🦧⚡ — แตะ **⚡ Go Pro** ด้านบนเพื่อปลดล็อก',
draftIntro: 'นี่คือฉบับร่าง — ตรวจสอบแล้วแตะเพื่อเผยแพร่ ไม่มีอะไรเผยแพร่จนคุณยืนยัน 🛹',
draftFailed: 'ฉันสร้างร่างนั้นไม่ค่อยได้ — ลองบอกรายละเอียดอีกครั้ง (เช่น "ลงขายล้อ Spitfire ของฉัน 8000 sats")',
tripAskCity: 'จะไปไหน? บอกชื่อเมือง (เช่น "วางแผน 3 วันในลิสบอน") แล้วฉันจะสร้างทริป 🗺️',
tripEmptyMap: 'ยังไม่มีอะไรบนแผนที่สำหรับ **{{destination}}** 🦧 — เป็นคนแรกที่ปักหมุดสปอตที่ [skate-spots.org](https://skate-spots.org) เมื่อคนท้องถิ่นเพิ่มสปอต crew & อีเวนต์ ฉันจะสร้างทริปเต็มให้',
tripLocked: 'จัดภารกิจ **{{destination}}** ให้คุณแล้ว 🛹 — สปอต เซสชัน และคนท้องถิ่นด้านล่าง ปรับหรือบันทึกได้',
tripFailed: 'เชื่อมข้อมูลสดเพื่อวางแผนตอนนี้ไม่ได้ ลองอีกครั้งในอีกสักครู่! 🛹',
tripEmptyMapLocal: 'ยังไม่มีอะไรบนแผนที่สำหรับ **{{destination}}** 🦧 — เป็นคนแรกที่ [skate-spots.org](https://skate-spots.org)',
tripMissionLocal: 'นี่คือภารกิจ **{{destination}}** 🛹 — สปอต เซสชัน & คนท้องถิ่นด้านล่าง',
relayFailed: 'relay ไม่ตอบทันตอนนี้ 🛰️ — ปกติเป็นเพราะการเชื่อมต่อช้า ไม่ใช่สปอตหาย ลองอีกครั้งในอีกสักครู่ 🛹',
couldNotProcess: 'อืม ประมวลผลอันนั้นไม่ได้ ลองเขียนใหม่!',
freeTierFallback: 'อันนั้นต้องใช้การคิดของ AI — ฟีเจอร์ **Sasquatch Pro** ⚡🦧\n\nฉันยังหา **สปอต อีเวนต์ โค้ช crew ร้าน ทัวร์ และ Gear** จาก relay ได้ตรง ๆ — ถามเช่น "สปอตในบาร์เซโลนา" — และ [อภิธานศัพท์](/glossary) ครอบคลุม 150+ ทริก & คำศัพท์ แตะ **⚡ Go Pro** ด้านบนเพื่อปลดล็อกคำตอบ AI',
aiDownFallback: 'สมอง AI ของฉันกำลังโดดอยู่ตอนนี้ 🦧 — แต่ยังช่วยคุณได้:\n\n• 🗺️ [แผนที่](/) — สปอต ร้าน อีเวนต์ใกล้คุณ\n• 🧪 [The Lab](/lab) — โค้ช ช่างถ่าย ตัดต่อ\n• 📖 [อภิธานศัพท์](/glossary) — 150+ ทริก & คำศัพท์\n• 👥 [Crews](/crews) — หาคนของคุณ\n\nหรือบอก **เมือง** ("สปอตในบาร์เซโลนา") หรือ **ทริก** ("nollie คืออะไร") แล้วฉันจะตอบให้ 🛹',
wentWrong: 'มีอะไรผิดพลาดทางฝั่งฉัน ลองอีกครั้งในอีกสักครู่! 🦧',
publishError: 'เผยแพร่อันนั้นไม่สำเร็จ: {{error}} ลองอีกครั้งในอีกสักครู่',
unknownError: 'ข้อผิดพลาดไม่ทราบสาเหตุ',
},
};
export default thBatch5;

View file

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