const driftStrings = { nav: { searchLanguages: 'ค้นหาภาษา...', noLanguages: 'ไม่พบภาษา', }, mapPage: { searchSuggestPlaces: 'สถานที่', }, mapUi: { firstRunTitle: 'เริ่มต้น', firstRunTip: 'แตะหมุดใดก็ได้เพื่อสำรวจ ไม่ต้องตั้งค่าอะไร — spot ใกล้ ๆ อยู่แค่ปลายนิ้ว', 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: 'รีเฟรช', privateRooms: 'ห้องส่วนตัว', crews: 'Crews', crewFounder: 'ผู้ก่อตั้ง', crewMember: 'สมาชิก', crewOpen: 'เปิด', crewSetUp: 'ตั้งค่า', }, form: { cordnGroup: 'กลุ่ม Cordn', cordnGroupHint: 'ไม่บังคับ: วางลิงก์กลุ่มจาก Staircase หรือ Cordn เว็บ crew ของคุณจะได้แชท MLS เข้ารหัสต้นทาง-ปลายทางจริง โฮสต์บน coordinator ของเรา', }, bell: { dmsUnread: 'ข้อความเข้ารหัสใหม่ {{count}} ข้อความ', messagesAndCrews: 'ข้อความและแชตของ crew', }, }, settingsUi: { loginDialog: { welcomeSubtitleBrowse: "สมัครหรือเข้าสู่ระบบ — หรือสำรวจต่อ", extensionCard: "ส่วนขยายเบราว์เซอร์", signerCard: "แอปเซ็นชื่อ", secretKeyLink: "ใช้คีย์ลับแทน", whereBunker: "หา bunker ได้ที่ไหน?", }, settingsPage: { trust: 'ความน่าเชื่อถือ', trustSub: 'แหล่งที่มาและการแสดงผล', }, }, walletUi: { trust: { mute: 'ปิดเสียง', muted: 'ปิดเสียงแล้ว', mutedDesc: 'คุณจะไม่เห็นเนื้อหาของพวกเขา', unmute: 'เปิดเสียง', unmuted: 'เปิดเสียงแล้ว', unmutedDesc: 'เนื้อหาของพวกเขาจะปรากฏอีกครั้ง', unmuteFailed: 'เปิดเสียงไม่สำเร็จ ลองอีกครั้ง', 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: 'ขอเข้าร่วม', requestAgain: "ขออีกครั้ง", requestHandled: "จัดการคำขอแล้ว", copyCordnLink: "คัดลอกลิงก์ Cordn", cordnWebCaveat: "Cordn web อาจค้างหลังเข้าสู่ระบบ การเข้าร่วมในแอปเชื่อถือได้มากกว่า", checkInvite: 'ตรวจสอบคำเชิญ', requested: 'ส่งคำขอแล้ว — แอดมิน crew จะอนุมัติ', noInvite: 'ยังไม่มีคำเชิญที่รออยู่ ขอให้แอดมินอนุมัติคำขอของคุณ', placeholder: 'ส่งข้อความถึง crew…', send: 'ส่ง', refresh: 'รีเฟรช', requests: 'คำขอเข้าร่วม', checkRequests: 'ตรวจสอบคำขอ', approve: 'เพิ่ม', approveTitle: "อนุมัติอุปกรณ์นี้หรือไม่", approveDesc: "เพิ่ม {{name}} เข้าห้องเข้ารหัสนี้หรือไม่ อุปกรณ์นั้นจะอ่านข้อความใหม่ได้", 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: "ขั้นสูง", compareTitle: "แชทกับแชทส่วนตัว", compareChat: "แชทคือ DM กลุ่มมาตรฐานแบบ NIP-17 ใช้ได้กับไคลเอนต์ Nostr อื่นและไม่มีผู้ประสานงาน", comparePrivate: "แชทส่วนตัวใช้ MLS: ควบคุมสมาชิกได้เข้มงวดกว่าและมีความลับไปข้างหน้า ผู้ประสานงานเห็นข้อมูลเมตาของกลุ่มและข้อความที่เข้ารหัส แต่ไม่เห็นเนื้อหาข้อความ", coordinator: "coordinator", lastChecked: "ตรวจสอบล่าสุด", keyPackage: "แพ็กเกจคีย์", keyPackageReady: "พร้อมบนอุปกรณ์นี้", keyPackageMissing: "ยังไม่ได้ตั้งค่าบนอุปกรณ์นี้", members: "สมาชิก", roleFounder: "ผู้ก่อตั้ง", roleAdmin: "แอดมิน", makeAdmin: "ตั้งเป็นแอดมิน", removeAdmin: "ถอดแอดมิน", adminAdded: "เลื่อนสมาชิกเป็นแอดมินแล้ว", adminRemoved: "ถอดบทบาทแอดมินแล้ว", roleUpdateFailed: "อัปเดตบทบาทไม่สำเร็จ ลองอีกครั้ง", addReaction: "เพิ่มรีแอ็กชัน", deleteMessage: "ลบข้อความ", deleteMessageConfirm: "ลบข้อความนี้สำหรับทุกคนหรือไม่", readBy: "อ่านโดย {{count}}", joinRequestTitle: "คำขอแชทส่วนตัว", joinRequestFor: "คำขอใหม่เพื่อเข้าร่วม {{crew}}", joinRequestReview: "ตรวจสอบคำขอ", joinRequestDismiss: "ปิดคำขอ", roleMember: "สมาชิก", qrTitle: "สแกนเพื่อเข้าร่วมแชทส่วนตัว", qrHint: "สมาชิก crew สแกนด้วยกล้องโทรศัพท์ ลิงก์จะเปิดแท็บแชทส่วนตัว", sendFailed: "ส่งไม่สำเร็จ — แตะลองใหม่", queued: "อยู่ในคิวบนอุปกรณ์นี้", 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: "คุณยังไม่ได้อยู่ในห้องชุมชน", waitingApproval: "กำลังรอการอนุมัติจากบอทชุมชนหรือผู้ดูแล…", waitingApprovalManual: "โหมดกำหนดเอง แตะ “ตรวจสอบคำเชิญ” เมื่อได้รับการอนุมัติแล้ว", noInvite: "ยังไม่มีคำเชิญ บอทมักอนุมัติภายในหนึ่งนาที — หลังจากนั้นแตะ “ตรวจสอบคำเชิญ”", pendingRequests: "มีคำขอเข้าร่วม {{count}} รายการรออยู่", pendingRequestsDesc: "บอทมักอนุมัติโดยอัตโนมัติ หากค้างอยู่ ให้เปิดห้องด้านล่างแล้วแตะ ตรวจสอบคำขอ", botMissing: "ขณะนี้บอทของชุมชนไม่ได้อยู่ในห้องนี้ แอดมินจะตรวจสอบคำขอเข้าร่วม", secondDeviceHint: "เป็นสมาชิกบนอุปกรณ์อื่นอยู่แล้วหรือ? ใช้ “เชื่อมโยงอุปกรณ์นี้” เพื่อโอนย้ายโดยตรง หรือขอเข้าร่วมอีกครั้งด้วยอุปกรณ์นี้", 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: 'ไม่มีชื่อ', }, signerPromptUi: { title: "งบการแจ้งยืนยันของ Amber", body: "Amber จะขออนุมัติทุกครั้งที่มีการลงนาม การอ่านและการถอดรหัสเบื้องหลังทำในเครื่องและไม่มีการแจ้ง การส่ง DM กลุ่มจะถามครั้งเดียวต่อผู้รับหนึ่งคน (เข้ารหัส + ลงนาม) และ Cordn อาจถามในแต่ละคำขอของผู้ประสานงาน หากแชตส่วนตัวหรือแชตทีมบ่อย ๆ การใช้ bunker หรือคีย์ในเครื่องจะเงียบกว่า", bunker: "เก็บ Amber ไว้สำหรับการลงนามที่สำคัญ หรือเปลี่ยนไปใช้ bunker เมื่อคาดว่าจะคุยกันยาว", }, globalSearchUi: { open: "ค้นหา", placeholder: "ค้นหาสปอต, ครีว, อีเวนต์, เกียร์…", hint: "⌘K / Ctrl+K", recent: "ล่าสุด", pages: "หน้า", spots: "สปอต", shops: "ร้านค้า", crews: "Crews", events: "อีเวนต์", gear: "เกียร์", skaters: "นักสเก็ต", signers: "ผู้ลงนาม", trust: "ความน่าเชื่อถือ", noResults: "ไม่พบผลลัพธ์สำหรับ “{{query}}”", }, marketplaceExtrasUi: { savedSearches: "การค้นหาที่บันทึกไว้", saveSearch: "บันทึกการค้นหา", searchName: "ตั้งชื่อการค้นหานี้…", deleteSearch: "ลบการค้นหาที่บันทึกไว้", safetyTitle: "ซื้อและขายอย่างปลอดภัย", safetyMeet: "นัดพบในที่สาธารณะและตรวจสอบอุปกรณ์ก่อนชำระเงิน", safetyKeys: "อย่าแชร์วลี seed หรือคีย์ส่วนตัวเด็ดขาด ให้คุยดีลในแชทของแอป", safetyEscrow: "สำหรับการจัดส่ง โปรดอ่านเงื่อนไข escrow ก่อน: escrow ของ Cashu ใช้ได้เฉพาะแอปเนทีฟและยังไม่ผ่านการตรวจสอบ", safetyMore: "อ่านแนวทางของตลาด", offerTemplates: "โน้ตด่วน", offerDiscount: "ลด 10% ได้ไหม?", offerSwap: "สนใจแลกเปลี่ยนไหม?", offerPickup: "ฉันรับเองได้ภายในสัปดาห์นี้", offerShipping: "รวมค่าส่งได้ไหม?", }, placesUi: { eventDetail: { eventPass: "บัตรอีเวนต์" }, }, }; export default driftStrings;