- Add a browser-safe editorial generator with rotating satire and shipped highlights. - Generate a fresh 1200x630 cover from the Drop #006 foundation and upload it to Blossom. - Publish weekly drafts as NIP-78; add the admin Load draft/Preview composer flow and banner. - Add the Monday user timer (draft by default) and a manual newsletter:weekly script. - Remove static/live issue duplicates; translate the new admin strings to all 24 locales.
414 lines
36 KiB
TypeScript
414 lines
36 KiB
TypeScript
const driftStrings = {
|
|
nav: {
|
|
searchLanguages: 'ค้นหาภาษา...',
|
|
noLanguages: 'ไม่พบภาษา',
|
|
},
|
|
mapPage: {
|
|
searchSuggestPlaces: 'สถานที่',
|
|
},
|
|
mapUi: {
|
|
firstRunTitle: 'เริ่มต้น',
|
|
firstRunAddSpot: 'เพิ่ม spot แรกของคุณ',
|
|
firstRunJoinCrew: 'เข้าร่วม crew',
|
|
firstRunStartCrew: 'เริ่ม crew ของคุณ',
|
|
firstRunWallet: 'ตั้งกระเป๋าเงินของคุณ',
|
|
forecastDays: 'พยากรณ์ {{count}} วัน',
|
|
},
|
|
spotUi: {
|
|
forecastDays: 'พยากรณ์ {{count}} วัน',
|
|
},
|
|
marketUi: {
|
|
trades: {
|
|
stateRevoked: 'ถูกเพิกถอน',
|
|
stateVerifying: 'กำลังตรวจสอบ',
|
|
},
|
|
loadFailed: 'เชื่อมต่อ relay ไม่ได้ ตรวจสอบการเชื่อมต่อแล้วลองอีกครั้ง',
|
|
statusPending: 'รอดำเนินการ',
|
|
offers: {
|
|
closeDeal: 'ปิดดีล',
|
|
loadFailed: 'โหลดข้อเสนอไม่สำเร็จ ตรวจสอบการเชื่อมต่อแล้วลองอีกครั้ง',
|
|
},
|
|
pay: {
|
|
nonSats: 'ข้อเสนอนี้ตั้งราคาเป็น {{currency}} การชำระในแอปใช้ sats เท่านั้น กรุณาตกลงกับผู้ขายโดยตรง',
|
|
unsupported: 'รหัสชำระเงินนี้ (คำขอ Cashu) ยังไม่รองรับ ขอใบแจ้งหนี้ Lightning หรือที่อยู่จากผู้ขาย',
|
|
},
|
|
escrowRequest: {
|
|
lockedNotSent: 'เงินถูกล็อกใน escrow และบันทึกไว้ในอุปกรณ์นี้ แต่คำขอไม่ได้ถูกส่ง เปิดประกาศอีกครั้งเพื่อลองใหม่ อย่าจ่ายซ้ำ',
|
|
mintLabel: 'Mint (ที่ล็อกเงินไว้)',
|
|
sellerMintHint: 'ผู้ขายชอบ mint นี้ เงินที่ล็อกไว้ที่นี่เป็นสิ่งที่พวกเขาแลกได้ง่ายที่สุด',
|
|
mintHint: 'Escrow อยู่ที่ mint นี้ ผู้ขายแลกที่นี่ ดังนั้นเลือกอันที่คุณทั้งคู่ไว้ใจ',
|
|
noMints: 'ไม่มี mint ที่ใช้ได้',
|
|
p2pkUnsupported: 'mint นี้ไม่ประกาศรองรับ P2PK (NUT-11) จึงล็อก escrow ที่นี่ไม่ได้ เลือก mint อื่น',
|
|
},
|
|
},
|
|
labUi: {
|
|
offerClothing: 'เสนอเสื้อผ้า',
|
|
tabClothing: 'เสื้อผ้า',
|
|
empty: {
|
|
clothingTitle: 'ยังไม่มีดีไซเนอร์เสื้อผ้า',
|
|
clothingBody: 'เป็นคนแรกที่เสนอเสื้อผ้าคัสตอม ชุดทีม และแอปพาเรลให้ซีน',
|
|
},
|
|
craftFields: {
|
|
sizing: 'ช่วงไซซ์',
|
|
samples: 'ตัวอย่าง / ต้นแบบ',
|
|
customization: 'การปรับแต่ง',
|
|
},
|
|
},
|
|
socialUi: {
|
|
coordinator: {
|
|
ourDefaultTitle: 'Coordinator ของ SkateSpots',
|
|
ourDefaultDesc: 'SkateSpots รัน coordinator ที่ relay.skate-spots.org ใช้เป็นค่าเริ่มต้น หรือรันของคุณเอง — coordinator เห็นเพียงข้อความเข้ารหัสและ metadata ไม่เคยเห็นข้อความของคุณ',
|
|
useOurs: 'ใช้ coordinator ของ SkateSpots',
|
|
},
|
|
crewCoordinator: {
|
|
encryptedChat: 'แชทเข้ารหัส',
|
|
privateChatName: 'แชทส่วนตัว',
|
|
privateChatDesc: 'แชทกลุ่มแบบ forward-secret (MLS) ผ่าน coordinator',
|
|
privateChatDescFull: 'แชทส่วนตัวถูกสร้างครั้งเดียวโดยแอดมิน จากนั้นสมาชิกจึงเข้าร่วม',
|
|
chatRowDesc: 'ทุกคนใน crew — ถูกผนึกด้วยกุญแจของสมาชิกแต่ละคน (NIP-17)',
|
|
openChat: 'เปิด',
|
|
setUpChat: 'ตั้งค่า',
|
|
joinChat: 'เข้าร่วม',
|
|
checking: 'กำลังตรวจสอบ…',
|
|
openInAnotherApp: 'เปิดในแอปอื่น',
|
|
openInCordnWeb: 'Cordn (เว็บ)',
|
|
openCordnGroup: 'เปิดแชท crew',
|
|
copyForStaircase: 'คัดลอกสำหรับ Staircase',
|
|
},
|
|
dms: {
|
|
refresh: 'รีเฟรช',
|
|
crews: 'Crews',
|
|
crewFounder: 'ผู้ก่อตั้ง',
|
|
crewMember: 'สมาชิก',
|
|
crewOpen: 'เปิด',
|
|
crewSetUp: 'ตั้งค่า',
|
|
},
|
|
form: {
|
|
cordnGroup: 'กลุ่ม Cordn',
|
|
cordnGroupHint: 'ไม่บังคับ: วางลิงก์กลุ่มจาก Staircase หรือ Cordn เว็บ crew ของคุณจะได้แชท MLS เข้ารหัสต้นทาง-ปลายทางจริง โฮสต์บน coordinator ของเรา',
|
|
},
|
|
},
|
|
settingsUi: {
|
|
loginDialog: {
|
|
welcomeSubtitleBrowse: "สมัครหรือเข้าสู่ระบบ — หรือสำรวจต่อ",
|
|
extensionCard: "ส่วนขยายเบราว์เซอร์",
|
|
signerCard: "แอปเซ็นชื่อ",
|
|
secretKeyLink: "ใช้คีย์ลับแทน",
|
|
whereBunker: "หา bunker ได้ที่ไหน?",
|
|
},
|
|
settingsPage: {
|
|
trust: 'ความน่าเชื่อถือ',
|
|
trustSub: 'แหล่งที่มาและการแสดงผล',
|
|
},
|
|
},
|
|
walletUi: {
|
|
trust: {
|
|
mute: 'ปิดเสียง',
|
|
muted: 'ปิดเสียงแล้ว',
|
|
mutedDesc: 'คุณจะไม่เห็นเนื้อหาของพวกเขา',
|
|
muteFailed: 'ปิดเสียงไม่สำเร็จ ลองอีกครั้ง',
|
|
loginToMute: 'เข้าสู่ระบบเพื่อปิดเสียง',
|
|
attributedNetwork: 'จากคนในเครือข่ายของคุณ',
|
|
attributedProviderHouse: 'จากผู้ให้บริการความน่าเชื่อถือของชุมชน',
|
|
attributedProviderCustom: 'จากผู้ให้บริการที่คุณเลือก',
|
|
howItWorks: 'ความน่าเชื่อถือทำงานอย่างไร',
|
|
flaggedNoticeTitle: 'ถูกรายงานโดยนักสเก็ตที่เชื่อถือได้',
|
|
flaggedNoticeDesc: 'ระวัง คนที่เชื่อถือได้ในเครือข่ายรายงานบัญชีนี้',
|
|
flaggedReporterFollow: '{{count}} คนที่คุณติดตาม',
|
|
flaggedReporterNetwork: '{{count}} คนในเครือข่ายของคุณ',
|
|
flaggedReporterOther: '{{count}} บัญชีอื่น',
|
|
flaggedReport: 'รายงาน',
|
|
flaggedDismiss: 'ปิด',
|
|
bucketVerified: 'ยืนยันแล้ว',
|
|
bucketUnknown: 'ไม่ทราบ',
|
|
bucketFlagged: 'ถูกตั้งค่าสถานะ',
|
|
bucketVerifiedDesc: 'มีคนในเครือข่ายของคุณรับรองบัญชีนี้',
|
|
bucketUnknownDesc: 'ยังไม่มีใครในเครือข่ายของคุณรับรองบัญชีนี้',
|
|
bucketFlaggedDesc: 'คนที่เชื่อถือได้รายงานบัญชีนี้',
|
|
reportedByTrusted: 'ถูกรายงานโดยคนที่เชื่อถือได้ {{count}} คน',
|
|
},
|
|
},
|
|
trustUi: {
|
|
alertsTitle: 'การแจ้งเตือนเครือข่าย',
|
|
alertsDesc: 'บัญชีที่คุณติดตามซึ่งคนที่เชื่อถือได้รายงานหรือปิดเสียง',
|
|
alertsEmpty: 'ไม่มีการแจ้งเตือน เราตรวจสอบบัญชีที่คุณติดตามเพื่อหารายงานที่เชื่อถือได้',
|
|
alertsReported: 'ถูกรายงานโดยคนที่เชื่อถือได้ {{count}} คน',
|
|
alertsMuted: 'ถูกปิดเสียงโดยคนที่เชื่อถือได้ {{count}} คน',
|
|
alertsIgnore: 'ไม่สนใจ',
|
|
alertsUnfollow: 'เลิกติดตาม',
|
|
alertsLogin: 'เข้าสู่ระบบเพื่อดูการแจ้งเตือนสำหรับบัญชีที่คุณติดตาม',
|
|
providerTitle: 'ผู้ให้บริการ',
|
|
providerDesc: 'คะแนนมาจากผู้ให้บริการที่คุณเลือก ผู้ให้บริการของชุมชนเป็นค่าเริ่มต้น',
|
|
useCommunity: 'ใช้ผู้ให้บริการของชุมชน',
|
|
setProvider: 'ตั้งผู้ให้บริการ',
|
|
customPubkeyPlaceholder: 'npub หรือ hex pubkey ของผู้ให้บริการ',
|
|
customRelayPlaceholder: 'wss://relay.example.com',
|
|
invalidProvider: 'กรอก npub ที่ถูกต้องหรือ hex pubkey 64 ตัวอักษร และ Relay แบบ wss://',
|
|
publishFailed: 'เผยแพร่ผู้ให้บริการไม่สำเร็จ ลองอีกครั้ง',
|
|
providerSaved: 'อัปเดตผู้ให้บริการแล้ว',
|
|
loggedOutProvider: 'เข้าสู่ระบบเพื่อเลือกผู้ให้บริการ',
|
|
showMarks: 'แสดงเครื่องหมายความน่าเชื่อถือ',
|
|
showMarksDesc: 'เครื่องหมายยืนยันและไม่ทราบ รายงานจะแสดงเสมอ',
|
|
sourceLabel: 'แหล่งที่มา',
|
|
sourceHouse: 'ผู้ให้บริการความน่าเชื่อถือของชุมชน',
|
|
sourceCustom: 'ผู้ให้บริการของคุณ',
|
|
loggedOut: 'เข้าสู่ระบบเพื่อเลือกผู้ให้บริการความน่าเชื่อถือของคุณเอง',
|
|
seoTitle: 'ความน่าเชื่อถือทำงานอย่างไร',
|
|
seoDescription: 'SkateSpots แสดงความน่าเชื่อถืออย่างไร: สามสถานะ คะแนนมาจากไหน และทำไมการไม่มีจึงไม่ใช่การไม่ไว้ใจ',
|
|
title: 'ความน่าเชื่อถือทำงานอย่างไร',
|
|
intro: 'ความน่าเชื่อถือที่นี่เป็นสัญญาณ ไม่ใช่คำตัดสิน มันมาจากคนที่คุณรู้จัก หรือจากผู้ให้บริการที่คุณเลือก เราไม่ได้จัดอันดับผู้คนทั่วโลก',
|
|
statesTitle: 'สามสถานะ',
|
|
verifiedTitle: 'ยืนยันแล้ว',
|
|
verifiedDesc: 'มีคนในเครือข่ายของคุณรับรองบัญชีนี้: เพื่อนของเพื่อน หรือผู้ให้บริการที่คุณเลือก',
|
|
unknownTitle: 'ไม่ทราบ',
|
|
unknownDesc: 'ยังไม่มีใครรับรอง ทุกบัญชีใหม่เริ่มต้นที่นี่',
|
|
flaggedTitle: 'ถูกตั้งค่าสถานะ',
|
|
flaggedDesc: 'คนที่เชื่อถือได้รายงานบัญชีนี้ เป็นคำเตือนให้ดูใกล้ขึ้น ไม่ใช่หลักฐานของสิ่งใด',
|
|
absenceTitle: 'ไม่มีตราไม่ได้แปลว่าไม่ไว้ใจ',
|
|
absenceDesc: 'บัญชีส่วนใหญ่ไม่แสดงอะไรเลย นั่นหมายความว่ายังไม่มีใครในเครือข่ายของคุณรับรองพวกเขา ไม่ใช่มีอะไรผิดปกติ อย่าตีความเครื่องหมายที่หายไปเป็นแง่ลบ',
|
|
sourceTitle: 'ใครคำนวณ',
|
|
sourceDesc: 'โดยค่าเริ่มต้นเราใช้เครือข่ายของคุณเอง คุณยังเลือกผู้ให้บริการความน่าเชื่อถือที่เผยแพร่คะแนนแบบลงนามผ่าน Nostr (NIP-85) หรือปิดการแสดงผลได้ ถูกตั้งค่าสถานะจะแสดงเสมอ เพราะเป็นสัญญาณความปลอดภัย',
|
|
endorsementTitle: 'การปรากฏตัวไม่ใช่การรับรอง',
|
|
endorsementDesc: 'เครื่องหมายยืนยันหมายความว่ามีคนรับรอง ไม่ใช่ว่าคนนั้นดี เครื่องหมายหมายความว่าคนที่เชื่อถือได้รายงานพวกเขา ไม่ใช่ว่าพวกเขาผิด ตรวจสอบรายละเอียดก่อนตัดสินใจ',
|
|
povTitle: 'ขึ้นอยู่กับมุมมอง',
|
|
povDesc: 'คะแนนขึ้นอยู่กับว่าใครเป็นคนมอง อันดับจากผู้ให้บริการหนึ่งหรือคนหนึ่งเทียบกับอีกอันไม่ได้ และเราไม่เคยนำเสนอเป็นข้อเท็จจริงที่เป็นกลาง',
|
|
settingsCta: 'จัดการในการตั้งค่า',
|
|
},
|
|
marketTerms: {
|
|
link: 'แนวทางมาร์เก็ตเพลส',
|
|
seoTitle: 'แนวทางมาร์เก็ตเพลส',
|
|
seoDescription: 'ประกาศอุปกรณ์ SkateSpots ทำงานอย่างไร: แบบเพียร์ทูเพียร์ ผู้ซื้อระวังตัว และกฎต่าง ๆ',
|
|
title: 'แนวทางมาร์เก็ตเพลส',
|
|
intro: 'SkateSpots เป็นกระดานอุปกรณ์แบบเพียร์ทูเพียร์ คุณตกลงกับอีกฝ่ายโดยตรง: เราไม่ถือเงิน ไม่ส่งของ และไม่ระงับข้อพิพาท',
|
|
howTitle: 'ทำงานอย่างไร',
|
|
howBody: 'ลงประกาศอุปกรณ์ ติดต่อผู้ขายทางข้อความส่วนตัว และตกลงกันโดยตรง (เงินสด Lightning หรือแลกเปลี่ยน) ไม่มีตะกร้าหรือขั้นตอนชำระเงิน',
|
|
rulesTitle: 'สิ่งที่ไม่ได้รับอนุญาต',
|
|
rulesBody: 'ห้ามเนื้อหาผิดกฎหมาย อันตราย หรือสำหรับผู้ใหญ่ ห้ามยาเสพติด อาวุธ ของปลอมหรือของที่ถูกขโมย เก็บประกาศให้เกี่ยวกับอุปกรณ์สเก็ตและของที่เกี่ยวข้อง',
|
|
respectTitle: 'มีน้ำใจต่อกัน',
|
|
respectBody: 'ห้ามการล่วงละเมิด คุกคาม ข่มขู่ หรือความเกลียดชัง ผู้ดูแลสามารถซ่อนประกาศหรือบัญชีได้',
|
|
trustTitle: 'ความน่าเชื่อถือเป็นแนวทาง ไม่ใช่การรับประกัน',
|
|
trustBody: 'เครื่องหมายยืนยันและชื่อเสียงการค้าเป็นสัญญาณจากเครือข่าย ไม่ใช่คำสัญญา ตรวจสอบด้วยตัวเองก่อนซื้อขาย',
|
|
trustLink: 'ความน่าเชื่อถือทำงานอย่างไร',
|
|
privacyLink: 'อะไรออกจากอุปกรณ์ของคุณ',
|
|
safetyTitle: 'ซื้อขายอย่างปลอดภัย',
|
|
safetyBody: 'นัดเจอกันในที่สาธารณะสำหรับการส่งมอบ ใช้ escrow หรือเงินมัดจำด้วยความจริงใจสำหรับดีลที่ส่งของ และอย่าโอนเงินนอกแอปเด็ดขาด',
|
|
moderationTitle: 'การดูแลนุ่มนวลและย้อนกลับได้',
|
|
moderationBody: 'เนื้อหาที่ถูกซ่อนยังอยู่บน relay และกู้คืนได้ ข้อพิพาทระหว่างผู้คนเป็นเรื่องที่คุณต้องจัดการเอง',
|
|
},
|
|
labOptions: {
|
|
clothing: {
|
|
service: {
|
|
tees: 'เสื้อยืด',
|
|
hoodies: 'ฮู้ดดี้ & เสื้อสเวต',
|
|
pants: 'กางเกงขายาว & กางเกงขาสั้น',
|
|
jackets: 'แจ็คเก็ต & เสื้อคลุม',
|
|
kits: 'ชุดทีม & เจอร์ซีย์',
|
|
caps: 'หมวกแก๊ป & หมวกไหมพรม',
|
|
socks: 'ถุงเท้า',
|
|
accessories: 'กระเป๋า & เครื่องประดับ',
|
|
footwear: 'รองเท้า',
|
|
patches: 'อาร์มปะ & งานปะติด',
|
|
griptape: 'งานศิลป์ Griptape & เสื้อผ้า Deck',
|
|
onepiece: 'ชิ้นเดียว / อัปไซเคิล',
|
|
},
|
|
serviceDesc: {
|
|
tees: 'เสื้อยืดและเสื้อตัวบนคัสตอม',
|
|
hoodies: 'ฮู้ดดี้ เสื้อสเวต และกางเกงสเวต',
|
|
pants: 'กางเกงทำงาน กางเกงคาร์โก้ และกางเกงขาสั้น',
|
|
jackets: 'เสื้อโค้ช เสื้อเชลล์ และแจ็คเก็ตทำงาน',
|
|
kits: 'ชุดทีม เจอร์ซีย์ และเครื่องแบบ',
|
|
caps: 'หมวกแก๊ป หมวกไหมพรม และหมวกคลุมศีรษะ',
|
|
socks: 'ถุงเท้า crew และงานถัก',
|
|
accessories: 'กระเป๋า เข็มขัด และของชิ้นเล็ก',
|
|
footwear: 'รองเท้าคัสตอมและรองเท้าต่าง ๆ',
|
|
patches: 'อาร์มปักและงานปะติด',
|
|
griptape: 'งานศิลป์ Griptape และเสื้อผ้า Deck',
|
|
onepiece: 'ชิ้นเดี่ยวและเสื้อผ้าอัปไซเคิล',
|
|
},
|
|
method: {
|
|
screenprint: 'สกรีน',
|
|
dtg: 'DTG / พิมพ์ลงผ้าโดยตรง',
|
|
embroidery: 'งานปัก',
|
|
cutsew: 'ตัด & เย็บ',
|
|
sublimation: 'พิมพ์ซับลิเมชัน',
|
|
heattransfer: 'ถ่ายโอนความร้อน / ไวนิล',
|
|
garmentdye: 'ย้อมสำเร็จรูป',
|
|
knit: 'งานถัก',
|
|
patchwork: 'งานปะติด',
|
|
allover: 'พิมพ์ทั้งตัว',
|
|
},
|
|
material: {
|
|
cotton: 'คอตตอน',
|
|
heavyweight: 'ผ้าหนัก',
|
|
organic: 'ออร์แกนิก / ยั่งยืน',
|
|
fleece: 'ผ้าฟลีซ',
|
|
denim: 'เดนิม',
|
|
canvas: 'ผ้าแคนวาส',
|
|
nylon: 'ไนลอน / เทคนิคอล',
|
|
wool: 'เมอริโน / ขนสัตว์',
|
|
leather: 'หนัง',
|
|
recycled: 'รีไซเคิล / Deadstock',
|
|
},
|
|
},
|
|
},
|
|
becomeRolesUi: {
|
|
clothing: {
|
|
seoTitle: 'เป็นดีไซเนอร์เสื้อผ้า - SkateSpots',
|
|
seoDescription: 'เสื้อผ้าคัสตอม ชุดทีม & แอปพาเรลสำหรับซีน',
|
|
heading: 'ดีไซเนอร์เสื้อผ้า',
|
|
tagline: 'เสื้อผ้าคัสตอม ชุดทีม & แอปพาเรลสำหรับซีน',
|
|
noun: 'ดีไซเนอร์เสื้อผ้า',
|
|
rateLabel: 'ราคา',
|
|
portfolioLabel: 'ลิงก์ร้านค้า / พอร์ตโฟลิโอ',
|
|
sectionWhatYouMake: 'สิ่งที่คุณทำ',
|
|
sectionHowYouMake: 'คุณทำอย่างไร',
|
|
sectionMaterials: 'วัสดุ',
|
|
minimumPlaceholder: 'เช่น 10 ชิ้น',
|
|
turnaroundPlaceholder: 'เช่น 2-3 สัปดาห์',
|
|
sizingPlaceholder: 'เช่น XS-3XL / ตัดตามสั่ง',
|
|
samplesHelper: 'คุณมีตัวอย่างหรือต้นแบบก่อนผลิตเต็มจำนวนไหม?',
|
|
customizationPlaceholder: 'เช่น ชื่อ หมายเลข กราฟิก',
|
|
},
|
|
},
|
|
weatherUi: {
|
|
updated: 'อัปเดตแล้ว',
|
|
refresh: 'รีเฟรช',
|
|
unavailable: 'สภาพอากาศไม่พร้อมใช้งาน',
|
|
retry: 'ลองอีกครั้ง',
|
|
sunrise: 'พระอาทิตย์ขึ้น',
|
|
sunset: 'พระอาทิตย์ตก',
|
|
legendTitle: 'คะแนนสภาพอากาศ',
|
|
legendWeatherOnly: 'เฉพาะสภาพอากาศ',
|
|
},
|
|
cordnUi: {
|
|
shareInvite: 'เชิญ',
|
|
shareInviteText: 'เข้าร่วม {{crew}} — แชทส่วนตัวของ crew',
|
|
inviteCopied: 'คัดลอกลิงก์เชิญแล้ว',
|
|
title: 'แชทส่วนตัว',
|
|
subtitle: 'เข้ารหัสต้นทาง-ปลายทาง (MLS) ระหว่างสมาชิก crew coordinator เพียงส่งต่อข้อความเข้ารหัสและ metadata — ไม่เคยเห็นเนื้อหาข้อความ',
|
|
notLoggedIn: 'เข้าสู่ระบบเพื่อใช้แชทส่วนตัวของ crew',
|
|
membersOnly: 'เฉพาะสมาชิก crew เท่านั้นที่เปิดแชทส่วนตัวได้',
|
|
connecting: 'กำลังเชื่อมต่อ…',
|
|
noCoordinator: 'ยังไม่ได้ตั้งค่า coordinator สำหรับ crew นี้',
|
|
noGroupAdmin: 'แชทส่วนตัวของ crew นี้ยังไม่ถูกสร้าง',
|
|
noGroupMember: 'คุณยังไม่ได้อยู่ในแชทส่วนตัวของ crew นี้',
|
|
create: 'สร้างแชทส่วนตัว',
|
|
requestJoin: 'ขอเข้าร่วม',
|
|
checkInvite: 'ตรวจสอบคำเชิญ',
|
|
requested: 'ส่งคำขอแล้ว — แอดมิน crew จะอนุมัติ',
|
|
noInvite: 'ยังไม่มีคำเชิญที่รออยู่ ขอให้แอดมินอนุมัติคำขอของคุณ',
|
|
placeholder: 'ส่งข้อความถึง crew…',
|
|
send: 'ส่ง',
|
|
refresh: 'รีเฟรช',
|
|
requests: 'คำขอเข้าร่วม',
|
|
checkRequests: 'ตรวจสอบคำขอ',
|
|
approve: 'เพิ่ม',
|
|
noRequests: 'ไม่มีคำขอเข้าร่วมที่ค้างอยู่',
|
|
inviteHint: 'ในแชทนี้มีแค่คุณเท่านั้น — สมาชิก crew สามารถแตะ “ขอเข้าร่วม” แล้วคุณอนุมัติที่นี่',
|
|
memberCount: '{{count}} คนในกลุ่ม',
|
|
you: 'คุณ',
|
|
groupRef: 'ลิงก์กลุ่ม',
|
|
copyRef: 'คัดลอก',
|
|
copied: 'คัดลอกแล้ว',
|
|
attachImage: 'แนบรูปภาพ',
|
|
uploading: 'กำลังอัปโหลด…',
|
|
uploadFailed: 'อัปโหลดรูปภาพไม่สำเร็จ',
|
|
bannerTitle: 'crew นี้ยังไม่มีแชทส่วนตัว',
|
|
bannerBody: 'ตั้งค่าแชทเข้ารหัสต้นทาง-ปลายทาง (MLS) สำหรับ crew ของคุณ — สมาชิกเข้าร่วมจากแท็บ',
|
|
bannerCta: 'ตั้งค่า',
|
|
ready: 'เชื่อมต่อแล้ว · MLS',
|
|
errorPrefix: 'เชื่อมต่อ coordinator ไม่ได้',
|
|
interactiveHint: 'ตัวลงนามของคุณขออนุมัติทุกครั้งที่ทำรายการ — ใช้รีเฟรชและส่งตามต้องการ',
|
|
setupDevice: "ตั้งค่าอุปกรณ์นี้",
|
|
setupDeviceBody: "การทำเช่นนี้จะให้กุญแจเฉพาะแก่อุปกรณ์นี้สำหรับแชทส่วนตัว ผู้ก่อตั้งจะอนุมัติหนึ่งครั้ง",
|
|
waitingApproval: "กำลังรอผู้ก่อตั้งอนุมัติ…",
|
|
waitingApprovalManual: "กำลังรอผู้ก่อตั้ง แตะ “ตรวจสอบคำเชิญ” หลังจากอนุมัติแล้ว",
|
|
onboardingFounder1: "เริ่มแชทส่วนตัว",
|
|
onboardingFounder2: "อนุมัติสมาชิกที่ขอเข้าร่วม",
|
|
onboardingFounder3: "พูดคุยส่วนตัวกับ crew ของคุณ",
|
|
onboardingMember1: 'ขอเข้าร่วม',
|
|
onboardingMember2: "ผู้ก่อตั้งจะอนุมัติอุปกรณ์ของคุณ",
|
|
onboardingMember3: "คุณเข้าร่วมแล้ว — ข้อความถูกเข้ารหัส",
|
|
encryptedNote: "เฉพาะสมาชิก crew เท่านั้นที่อ่านได้ coordinator เพียงส่งต่อข้อความที่เข้ารหัส",
|
|
advanced: "ขั้นสูง",
|
|
coordinator: "coordinator",
|
|
keyPackage: "แพ็กเกจคีย์",
|
|
keyPackageReady: "พร้อมบนอุปกรณ์นี้",
|
|
keyPackageMissing: "ยังไม่ได้ตั้งค่าบนอุปกรณ์นี้",
|
|
members: "สมาชิก",
|
|
roleFounder: "ผู้ก่อตั้ง",
|
|
roleAdmin: "แอดมิน",
|
|
roleMember: "สมาชิก",
|
|
qrTitle: "สแกนเพื่อเข้าร่วมแชทส่วนตัว",
|
|
qrHint: "สมาชิก crew สแกนด้วยกล้องโทรศัพท์ ลิงก์จะเปิดแท็บแชทส่วนตัว",
|
|
sendFailed: "ส่งไม่สำเร็จ — แตะลองใหม่",
|
|
sending: "กำลังส่ง…",
|
|
sent: "ส่งแล้ว",
|
|
retry: "ลองใหม่",
|
|
errorUnreachable: "เชื่อมต่อแชทส่วนตัวไม่ได้ ตรวจสอบการเชื่อมต่อของคุณ",
|
|
errorDetails: "รายละเอียด",
|
|
unreachable: "เชื่อมต่อไม่ได้",
|
|
dismiss: "ปิด",
|
|
linkDevice: "เชื่อมโยงอุปกรณ์นี้",
|
|
linkDeviceTitle: "เชื่อมโยงอุปกรณ์อื่น",
|
|
linkDeviceHint: "สแกนรหัสนี้บนอุปกรณ์ที่อยู่ในห้องแล้ว",
|
|
linkDeviceNote: "รหัสนี้มีแพ็กเกจคีย์สาธารณะ คีย์ส่วนตัวของคุณจะอยู่บนอุปกรณ์ใหม่เท่านั้น",
|
|
waitingDevice: "กำลังรออุปกรณ์อื่น…",
|
|
addDevice: "เพิ่มอุปกรณ์",
|
|
deviceLinked: "เพิ่มอุปกรณ์แล้ว",
|
|
deviceLinkFailed: "ไม่สามารถเพิ่มอุปกรณ์นั้นได้",
|
|
removeMemberConfirm: "ต้องการนำ {{name}} ออกจากแชทส่วนตัวหรือไม่ อุปกรณ์นั้นจะสูญเสียการเข้าถึง",
|
|
removeMemberFailed: "ไม่สามารถนำสมาชิกนั้นออกได้",
|
|
reply: "ตอบกลับ",
|
|
},
|
|
communityUi: {
|
|
link: "ชุมชน",
|
|
title: "แชทชุมชน",
|
|
subtitle: "ถามคำถาม แบ่งปันความคิดเห็น และพูดคุยกับชุมชน SkateSpots — เข้ารหัสแบบ end-to-end",
|
|
heading: "ชุมชน SkateSpots",
|
|
eyebrow: "คำถามและความคิดเห็น",
|
|
seoTitle: "แชทชุมชน SkateSpots",
|
|
seoDescription: "คำถาม ความคิดเห็น และการพูดคุยในชุมชน — เข้ารหัสแบบ end-to-end",
|
|
notLoggedIn: "เข้าสู่ระบบเพื่อเข้าร่วมแชทชุมชน",
|
|
noGroupAdmin: "ยังไม่ได้สร้างห้องชุมชน",
|
|
noGroupMember: "คุณยังไม่ได้อยู่ในห้องชุมชน",
|
|
create: "สร้างห้องชุมชน",
|
|
setupDeviceBody: "สิ่งนี้มอบกุญแจสำหรับห้องชุมชนให้อุปกรณ์นี้ ผู้ดูแลหรือบอทจะอนุมัติหนึ่งครั้ง",
|
|
onboardingFounder1: "สร้างห้องชุมชน",
|
|
onboardingFounder2: "อนุมัติบอทชุมชนและสมาชิกใหม่",
|
|
onboardingFounder3: "ตอบคำถามและรวบรวมความคิดเห็น",
|
|
onboardingMember1: "ขอเข้าร่วมห้องชุมชน",
|
|
onboardingMember2: "ผู้ดูแลหรือบอทชุมชนจะอนุมัติอุปกรณ์ของคุณ",
|
|
onboardingMember3: "ถามคำถาม แบ่งปันความคิดเห็น หรือแค่ทักทายก็ได้",
|
|
encryptedNote: "เฉพาะสมาชิกในห้องเท่านั้นที่อ่านได้ ผู้ประสานงานเพียงส่งต่อข้อความที่เข้ารหัสแล้ว",
|
|
shareInviteText: "เข้าร่วมแชทชุมชน SkateSpots",
|
|
qrTitle: "สแกนเพื่อเข้าร่วมแชทชุมชน",
|
|
qrHint: "สแกนด้วยกล้องโทรศัพท์เพื่อเปิดแชทชุมชนและขอเข้าร่วม",
|
|
owner: "เจ้าของ",
|
|
botName: "บอทชุมชน",
|
|
howItWorks: "อุปกรณ์ใหม่จะได้รับการอนุมัติหนึ่งครั้งจากผู้ดูแลหรือบอทชุมชน ข้อความที่ส่งก่อนคุณเข้าร่วมจะไม่ปรากฏให้คุณเห็น",
|
|
feedbackNote: "ยินดีรับคำถามและความคิดเห็น โปรดสุภาพ — นี่คือห้องที่ใช้ร่วมกัน",
|
|
},
|
|
translateUi: {
|
|
title: 'การแปลข้อความ',
|
|
translate: 'แปล',
|
|
translating: 'กำลังแปล…',
|
|
showOriginal: 'แสดงต้นฉบับ',
|
|
showTranslation: 'แสดงคำแปล',
|
|
translatedFrom: 'แปลจาก {{language}}',
|
|
failed: 'การแปลล้มเหลว โปรดลองอีกครั้ง',
|
|
unsupported: 'คู่ภาษานี้ยังไม่พร้อมใช้งาน',
|
|
pilotNote: 'นำร่อง: อังกฤษ ↔ สเปนเท่านั้น',
|
|
autoTranslate: 'แปลข้อความอัตโนมัติ',
|
|
autoTranslateDesc: 'แปลข้อความที่เข้ามาเป็นภาษาของคุณ ทำงานบนอุปกรณ์นี้ ไม่มีการส่งข้อมูลใด ๆ',
|
|
privacy: 'การแปลทำงานบนอุปกรณ์ของคุณ ข้อความของคุณจะไม่ออกจากเครื่อง การใช้งานครั้งแรกจะดาวน์โหลดโมเดลภาษา',
|
|
},
|
|
newsletterDraftUi: {
|
|
weeklyDraftReady: 'ฉบับร่างรายสัปดาห์พร้อมแล้ว',
|
|
loadDraft: 'โหลดฉบับร่าง',
|
|
hidePreview: 'ซ่อนตัวอย่าง',
|
|
untitled: 'ไม่มีชื่อ',
|
|
},
|
|
};
|
|
|
|
export default driftStrings;
|