# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-03-05 16:31+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" "Language: th-th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: engine/vibes_auth/admin.py:64 engine/vibes_auth/admin.py:65 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "สมดุล" #: engine/vibes_auth/admin.py:73 msgid "order" msgstr "คำสั่ง" #: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "คำสั่ง" #: engine/vibes_auth/admin.py:84 msgid "personal info" msgstr "ข้อมูลส่วนตัว" #: engine/vibes_auth/admin.py:88 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "สิทธิ์การใช้งาน" #: engine/vibes_auth/admin.py:101 msgid "important dates" msgstr "วันที่สำคัญ" #: engine/vibes_auth/admin.py:102 msgid "additional info" msgstr "ข้อมูลเพิ่มเติม" #: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "คุณไม่สามารถกระโดดข้ามหัวตัวเองได้!" #: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "ปิดกระทู้ที่เลือก" #: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "เปิดกระทู้ที่เลือก" #: engine/vibes_auth/admin.py:209 msgid "Content" msgstr "เนื้อหา" #: engine/vibes_auth/admin.py:211 msgid "Documentation" msgstr "เอกสาร" #: engine/vibes_auth/admin.py:217 engine/vibes_auth/admin.py:294 msgid "Metadata" msgstr "เมตาดาตา" #: engine/vibes_auth/admin.py:281 msgid "Scheduling" msgstr "การจัดตารางเวลา" #: engine/vibes_auth/admin.py:283 msgid "Statistics" msgstr "สถิติ" #: engine/vibes_auth/admin.py:297 msgid "stats" msgstr "รัฐ" #: engine/vibes_auth/admin.py:303 msgid "Prepare recipients (subscribed users)" msgstr "เตรียมผู้รับ (ผู้ใช้ที่สมัครรับข้อมูล)" #: engine/vibes_auth/admin.py:311 msgid "Campaign '{}' is not in draft status." msgstr "แคมเปญ '{}' ไม่ได้อยู่ในสถานะร่าง" #: engine/vibes_auth/admin.py:318 msgid "Preparing recipients for campaign '{}'." msgstr "เตรียมผู้รับสำหรับแคมเปญ '{}'" #: engine/vibes_auth/admin.py:322 msgid "Send campaign now" msgstr "ส่งแคมเปญตอนนี้" #: engine/vibes_auth/admin.py:330 msgid "Campaign '{}' cannot be sent (status: {})." msgstr "ไม่สามารถส่งแคมเปญ '{}' ได้ (สถานะ: {})." #: engine/vibes_auth/admin.py:340 msgid "Campaign '{}' has no recipients. Prepare recipients first." msgstr "แคมเปญ '{}' ไม่มีผู้รับ โปรดเตรียมผู้รับก่อน" #: engine/vibes_auth/admin.py:351 msgid "Started sending campaign '{}'." msgstr "เริ่มส่งแคมเปญ '{}'" #: engine/vibes_auth/admin.py:355 msgid "Cancel campaign" msgstr "ยกเลิกแคมเปญ" #: engine/vibes_auth/admin.py:364 msgid "{} campaign(s) cancelled." msgstr "{} แคมเปญถูกยกเลิก" #: engine/vibes_auth/admin_site.py:24 msgid "Verification code" msgstr "รหัสยืนยัน" #: engine/vibes_auth/admin_site.py:62 msgid "A verification code has been sent to your email." msgstr "รหัสยืนยันได้ถูกส่งไปยังอีเมลของคุณแล้ว" #: engine/vibes_auth/admin_site.py:118 msgid "Invalid or expired code. Please try again." msgstr "รหัสไม่ถูกต้องหรือหมดอายุ กรุณาลองอีกครั้ง" #: engine/vibes_auth/admin_site.py:124 #: engine/vibes_auth/templates/admin/verify_otp.html:10 msgid "Two-factor authentication" msgstr "การยืนยันตัวตนแบบสองปัจจัย" #: engine/vibes_auth/apps.py:8 msgid "Accounting" msgstr "บัญชี" #: engine/vibes_auth/choices.py:6 msgid "Open" msgstr "เปิด" #: engine/vibes_auth/choices.py:7 msgid "Closed" msgstr "ปิด" #: engine/vibes_auth/choices.py:11 msgid "User" msgstr "ผู้ใช้" #: engine/vibes_auth/choices.py:12 msgid "Staff" msgstr "พนักงาน" #: engine/vibes_auth/choices.py:13 msgid "System" msgstr "ระบบ" #: engine/vibes_auth/docs/drf/emailing.py:18 msgid "" "UUID token for unsubscribing. This token is unique per user and is included " "in the unsubscribe link of every campaign email. The token remains constant " "for each user unless regenerated." msgstr "" "โทเค็น UUID สำหรับการยกเลิกการสมัคร " "โทเค็นนี้มีความเฉพาะเจาะจงต่อผู้ใช้แต่ละรายและรวมอยู่ในลิงก์ยกเลิกการสมัครของอีเมลแคมเปญทุกฉบับ" " โทเค็นนี้จะคงที่สำหรับผู้ใช้แต่ละรายจนกว่าจะมีการสร้างใหม่" #: engine/vibes_auth/docs/drf/emailing.py:37 #: engine/vibes_auth/emailing/views.py:69 msgid "You have been successfully unsubscribed from our emails." msgstr "คุณได้ยกเลิกการสมัครรับอีเมลจากเราเรียบร้อยแล้ว" #: engine/vibes_auth/docs/drf/emailing.py:45 #: engine/vibes_auth/emailing/views.py:61 msgid "You are already unsubscribed." msgstr "คุณได้ยกเลิกการสมัครแล้ว" #: engine/vibes_auth/docs/drf/emailing.py:52 msgid "Unsubscribe from email campaigns" msgstr "ยกเลิกการรับอีเมลจากแคมเปญ" #: engine/vibes_auth/docs/drf/emailing.py:54 msgid "" "Unsubscribe a user from all marketing email campaigns using their unique unsubscribe token.\n" "\n" "This endpoint is designed for email client compatibility where clicking a link triggers a GET request. The user will no longer receive promotional emails after successful unsubscription.\n" "\n" "**Note:** Transactional emails (order confirmations, password resets, etc.) are not affected by this setting." msgstr "" "ยกเลิกการสมัครรับอีเมลการตลาดทั้งหมดของผู้ใช้โดยใช้โทเค็นยกเลิกการสมัครที่ไม่ซ้ำกันของพวกเขา" " " "จุดสิ้นสุดนี้ถูกออกแบบมาเพื่อความเข้ากันได้กับไคลเอนต์อีเมลที่การคลิกที่ลิงก์จะกระตุ้นการร้องขอแบบ" " GET ผู้ใช้จะไม่ได้รับอีเมลส่งเสริมการขายอีกต่อไปหลังจากยกเลิกการสมัครสำเร็จ" " **หมายเหตุ:** อีเมลธุรกรรม (การยืนยันคำสั่งซื้อ การรีเซ็ตรหัสผ่าน ฯลฯ) " "จะไม่ได้รับผลกระทบจากการตั้งค่านี้" #: engine/vibes_auth/docs/drf/emailing.py:66 #: engine/vibes_auth/docs/drf/emailing.py:146 msgid "Successfully unsubscribed from email campaigns." msgstr "ยกเลิกการรับอีเมลจากแคมเปญเรียบร้อยแล้ว" #: engine/vibes_auth/docs/drf/emailing.py:82 #: engine/vibes_auth/docs/drf/emailing.py:162 msgid "Invalid or missing unsubscribe token." msgstr "โทเค็นยกเลิกการสมัครไม่ถูกต้องหรือหายไป" #: engine/vibes_auth/docs/drf/emailing.py:96 #: engine/vibes_auth/docs/drf/emailing.py:176 msgid "User associated with the token was not found." msgstr "ไม่พบผู้ใช้ที่เกี่ยวข้องกับโทเค็น" #: engine/vibes_auth/docs/drf/emailing.py:118 msgid "One-Click Unsubscribe (RFC 8058)" msgstr "ยกเลิกการสมัครด้วยคลิกเดียว (RFC 8058)" #: engine/vibes_auth/docs/drf/emailing.py:120 msgid "" "RFC 8058 compliant one-click unsubscribe endpoint for email campaigns.\n" "\n" "This endpoint supports the List-Unsubscribe-Post header mechanism defined in RFC 8058, which allows email clients to unsubscribe users with a single click without leaving the email application.\n" "\n" "The token can be provided either as a query parameter or in the request body.\n" "\n" "**Standards Compliance:**\n" "- RFC 8058: Signaling One-Click Functionality for List Email Headers\n" "- RFC 2369: The Use of URLs as Meta-Syntax for Core Mail List Commands\n" "\n" "**Note:** Transactional emails are not affected by this setting." msgstr "" "จุดสิ้นสุดการยกเลิกการสมัครแบบคลิกเดียวที่สอดคล้องกับ RFC 8058 สำหรับแคมเปญอีเมล จุดสิ้นสุดนี้รองรับกลไกหัวเรื่อง List-Unsubscribe-Post ที่กำหนดไว้ใน RFC 8058 ซึ่งช่วยให้ไคลเอนต์อีเมลยกเลิกการสมัครผู้ใช้ด้วยการคลิกเพียงครั้งเดียวโดยไม่ต้องออกจากแอปพลิเคชันอีเมล โทเค็นสามารถระบุได้ทั้งเป็นพารามิเตอร์การค้นหาหรือในเนื้อหาคำขอ\n" "\n" "**การปฏิบัติตามมาตรฐาน:** - RFC 8058: การส่งสัญญาณฟังก์ชันคลิกเดียวสำหรับหัวข้ออีเมลในรายการ - RFC 2369: การใช้ URL เป็นเมตา-ไวยากรณ์สำหรับคำสั่งหลักของรายการอีเมล **หมายเหตุ:** อีเมลธุรกรรมไม่ได้รับผลกระทบจากการตั้งค่านี้" #: engine/vibes_auth/docs/drf/emailing.py:137 msgid "" "Unsubscribe token (alternative to query parameter). Can be omitted if token " "is provided in URL." msgstr "" "โทเค็นยกเลิกการสมัคร (ทางเลือกสำหรับพารามิเตอร์การค้นหา) " "สามารถละเว้นได้หากโทเค็นถูกระบุไว้ใน URL" #: engine/vibes_auth/docs/drf/emailing.py:200 msgid "Track email open event" msgstr "ติดตามเหตุการณ์การเปิดอีเมล" #: engine/vibes_auth/docs/drf/emailing.py:202 msgid "" "Records when a campaign email is opened by the recipient.\n" "\n" "This endpoint is called automatically when the tracking pixel (1x1 transparent GIF) embedded in the email is loaded by the recipient's email client.\n" "\n" "**How it works:**\n" "1. Each campaign email contains a unique tracking pixel URL with a `tid` parameter\n" "2. When the email is opened and images are loaded, this endpoint is called\n" "3. The recipient's status is updated to 'opened' and the timestamp is recorded\n" "4. The campaign's aggregate opened count is updated\n" "\n" "**Privacy considerations:**\n" "- Only the first open is recorded (subsequent opens are ignored)\n" "- No personal information beyond the tracking ID is logged\n" "- Users who disable image loading will not trigger this event\n" "\n" "**Response:**\n" "Returns a 1x1 transparent GIF image regardless of whether tracking succeeded, to ensure consistent behavior and prevent information leakage." msgstr "" "บันทึกเมื่ออีเมลแคมเปญถูกเปิดโดยผู้รับ จุดสิ้นสุดนี้จะถูกเรียกใช้โดยอัตโนมัติเมื่อพิกเซลติดตาม (GIF โปร่งใสขนาด 1x1) ที่ฝังอยู่ในอีเมลถูกโหลดโดยโปรแกรมอีเมลของผู้รับ\n" "\n" "**วิธีการทำงาน:** 1. อีเมลแคมเปญแต่ละฉบับจะมี URL พิกเซลติดตามเฉพาะที่มีพารามิเตอร์ `tid` 2. เมื่อเปิดอีเมลและโหลดรูปภาพ จุดสิ้นสุดนี้จะถูกเรียก 3. สถานะของผู้รับจะอัปเดตเป็น 'เปิดแล้ว' และบันทึกเวลา 4. จำนวนการเปิดทั้งหมดของแคมเปญจะอัปเดต **ข้อพิจารณาด้านความเป็นส่วนตัว:**\n" "- บันทึกเฉพาะการเปิดครั้งแรกเท่านั้น (การเปิดครั้งถัดไปจะไม่ถูกบันทึก) - ไม่มีการบันทึกข้อมูลส่วนบุคคลใด ๆ นอกเหนือจากรหัสติดตาม - ผู้ใช้ที่ปิดการแสดงผลรูปภาพจะไม่ทำให้เกิดเหตุการณ์นี้ **การตอบกลับ:** ส่งคืนภาพ GIF โปร่งใสขนาด 1x1 โดยไม่คำนึงว่าติดตามสำเร็จหรือไม่ เพื่อให้มั่นใจในพฤติกรรมที่สม่ำเสมอและป้องกันการรั่วไหลของข้อมูล" #: engine/vibes_auth/docs/drf/emailing.py:223 msgid "" "Tracking ID (UUID) unique to each campaign-recipient combination. This ID " "links the open event to a specific recipient and campaign." msgstr "" "รหัสติดตาม (UUID) ที่ไม่ซ้ำกันสำหรับแต่ละคู่ของแคมเปญและผู้รับ " "รหัสนี้จะเชื่อมโยงเหตุการณ์การเปิดกับผู้รับและแคมเปญเฉพาะ" #: engine/vibes_auth/docs/drf/emailing.py:241 msgid "" "1x1 transparent GIF image. Always returned regardless of tracking status to " "maintain consistent behavior." msgstr "" "ภาพ GIF โปร่งใสขนาด 1x1. " "จะส่งคืนเสมอไม่ว่าสถานะการติดตามจะเป็นอย่างไรเพื่อรักษาพฤติกรรมที่สม่ำเสมอ" #: engine/vibes_auth/docs/drf/emailing.py:247 msgid "" "Returned when no tracking ID is provided. Note: Invalid tracking IDs still " "return 200 with the GIF to prevent enumeration attacks." msgstr "" "คืนค่าเมื่อไม่มีการระบุรหัสติดตาม หมายเหตุ: " "รหัสติดตามที่ไม่ถูกต้องจะยังคงคืนค่า 200 พร้อม GIF " "เพื่อป้องกันการโจมตีแบบการไล่รายการ" #: engine/vibes_auth/docs/drf/messaging.py:17 msgid "User messages entrypoint" msgstr "จุดเริ่มต้นของข้อความผู้ใช้" #: engine/vibes_auth/docs/drf/messaging.py:19 msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." msgstr "" "ผู้ใช้ที่ไม่ระบุตัวตนหรือผู้ใช้ที่ผ่านการยืนยันตัวตนแต่ไม่ใช่บุคลากรสามารถส่งข้อความได้" " นอกจากนี้ยังรองรับ action=ping" #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" msgstr "การควบคุมกล่องขาเข้าของพนักงาน" #: engine/vibes_auth/docs/drf/messaging.py:32 msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" "การดำเนินการสำหรับพนักงานเท่านั้น: list_open, assign, reply, close, ping. " "ข้อมูลเหตุการณ์แบบรวมจะถูกส่งออก" #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" msgstr "ช่องสำหรับพนักงานเฉพาะแต่ละหัวข้อ" #: engine/vibes_auth/docs/drf/messaging.py:44 msgid "Reply, close, and ping within a specific thread." msgstr "ตอบกลับ ปิด และส่งข้อความถึงภายในกระทู้เฉพาะ" #: engine/vibes_auth/docs/drf/views.py:18 msgid "obtain a token pair" msgstr "รับคู่โทเค็น" #: engine/vibes_auth/docs/drf/views.py:19 msgid "obtain a token pair (refresh and access) for authentication." msgstr "รับคู่โทเค็น (รีเฟรชและเข้าถึง) สำหรับการยืนยันตัวตน" #: engine/vibes_auth/docs/drf/views.py:41 msgid "refresh a token pair" msgstr "รีเฟรชคู่โทเค็น" #: engine/vibes_auth/docs/drf/views.py:42 msgid "refresh a token pair (refresh and access)." msgstr "รีเฟรชคู่โทเค็น (รีเฟรชและเข้าถึง)" #: engine/vibes_auth/docs/drf/views.py:64 msgid "verify a token" msgstr "ตรวจสอบโทเค็น" #: engine/vibes_auth/docs/drf/views.py:65 msgid "Verify a token (refresh or access)." msgstr "ตรวจสอบโทเค็น (รีเฟรชหรือเข้าถึง)" #: engine/vibes_auth/docs/drf/views.py:71 engine/vibes_auth/views.py:100 msgid "the token is valid" msgstr "โทเค็นนี้ใช้ได้" #: engine/vibes_auth/docs/drf/viewsets.py:19 msgid "create a new user" msgstr "สร้างผู้ใช้ใหม่" #: engine/vibes_auth/docs/drf/viewsets.py:27 msgid "retrieve a user's details" msgstr "ดึงข้อมูลรายละเอียดของผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:34 msgid "update a user's details" msgstr "อัปเดตข้อมูลผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:42 msgid "partially update a user's details" msgstr "อัปเดตข้อมูลของผู้ใช้บางส่วน" #: engine/vibes_auth/docs/drf/viewsets.py:50 msgid "delete a user" msgstr "ลบผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:57 msgid "reset a user's password by sending a reset password email" msgstr "รีเซ็ตรหัสผ่านของผู้ใช้โดยการส่งอีเมลรีเซ็ตรหัสผ่าน" #: engine/vibes_auth/docs/drf/viewsets.py:65 msgid "handle avatar upload for a user" msgstr "จัดการการอัปโหลดอวาตาร์สำหรับผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:83 msgid "confirm a user's password reset" msgstr "ยืนยันการรีเซ็ตรหัสผ่านของผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:87 #: engine/vibes_auth/graphene/mutations.py:358 #: engine/vibes_auth/serializers.py:103 engine/vibes_auth/serializers.py:107 #: engine/vibes_auth/viewsets.py:97 msgid "passwords do not match" msgstr "รหัสผ่านไม่ตรงกัน" #: engine/vibes_auth/docs/drf/viewsets.py:95 msgid "activate a user's account" msgstr "เปิดใช้งานบัญชีผู้ใช้" #: engine/vibes_auth/docs/drf/viewsets.py:101 msgid "activation link is invalid or account already activated" msgstr "ลิงก์การเปิดใช้งานไม่ถูกต้องหรือบัญชีได้รับการเปิดใช้งานแล้ว" #: engine/vibes_auth/docs/drf/viewsets.py:111 msgid "merge client-stored recently viewed products" msgstr "รวมสินค้าที่ลูกค้าดูล่าสุดซึ่งเก็บไว้ในระบบของลูกค้า" #: engine/vibes_auth/emailing/choices.py:6 msgid "Draft" msgstr "ร่าง" #: engine/vibes_auth/emailing/choices.py:7 msgid "Scheduled" msgstr "กำหนดไว้แล้ว" #: engine/vibes_auth/emailing/choices.py:8 msgid "Sending" msgstr "ส่ง" #: engine/vibes_auth/emailing/choices.py:9 #: engine/vibes_auth/emailing/choices.py:15 msgid "Sent" msgstr "สาย" #: engine/vibes_auth/emailing/choices.py:10 msgid "Cancelled" msgstr "ยกเลิก" #: engine/vibes_auth/emailing/choices.py:14 msgid "Pending" msgstr "รอดำเนินการ" #: engine/vibes_auth/emailing/choices.py:16 msgid "Failed" msgstr "ล้มเหลว" #: engine/vibes_auth/emailing/choices.py:17 msgid "Opened" msgstr "เปิด" #: engine/vibes_auth/emailing/choices.py:18 msgid "Clicked" msgstr "คลิก" #: engine/vibes_auth/emailing/models.py:38 #: engine/vibes_auth/emailing/models.py:88 msgid "name" msgstr "ชื่อ" #: engine/vibes_auth/emailing/models.py:39 msgid "internal name for the template" msgstr "ชื่อภายในสำหรับเทมเพลต" #: engine/vibes_auth/emailing/models.py:43 msgid "slug" msgstr "คนรับใช้" #: engine/vibes_auth/emailing/models.py:44 msgid "unique identifier for the template" msgstr "รหัสประจำตัวที่ไม่ซ้ำกันสำหรับแม่แบบ" #: engine/vibes_auth/emailing/models.py:48 msgid "subject" msgstr "หัวข้อ" #: engine/vibes_auth/emailing/models.py:49 msgid "email subject line - supports {{ variables }}" msgstr "หัวข้ออีเมล - สนับสนุน {{ variables }}" #: engine/vibes_auth/emailing/models.py:52 msgid "content" msgstr "เนื้อหา" #: engine/vibes_auth/emailing/models.py:54 msgid "" "email body in markdown - supports {{ user.first_name }}, {{ user.email }}, " "{{ project_name }}, {{ unsubscribe_url }}" msgstr "" "เนื้อหาในอีเมล - รองรับ {{ user.first_name }}, {{ user.email }}, {{ " "project_name }}, {{ unsubscribe_url }}" #: engine/vibes_auth/emailing/models.py:61 msgid "plain text content" msgstr "เนื้อหาข้อความธรรมดา" #: engine/vibes_auth/emailing/models.py:62 msgid "plain text fallback (auto-generated if empty)" msgstr "ข้อความธรรมดาสำรอง (สร้างอัตโนมัติหากว่างเปล่า)" #: engine/vibes_auth/emailing/models.py:67 msgid "available variables" msgstr "ตัวแปรที่มีอยู่" #: engine/vibes_auth/emailing/models.py:68 msgid "documentation of available template variables" msgstr "เอกสารประกอบตัวแปรแม่แบบที่มีอยู่" #: engine/vibes_auth/emailing/models.py:72 msgid "email template" msgstr "แม่แบบอีเมล" #: engine/vibes_auth/emailing/models.py:73 msgid "email templates" msgstr "เทมเพลตอีเมล" #: engine/vibes_auth/emailing/models.py:89 msgid "internal name for the campaign" msgstr "ชื่อภายในสำหรับแคมเปญ" #: engine/vibes_auth/emailing/models.py:96 msgid "template" msgstr "แม่แบบ" #: engine/vibes_auth/emailing/models.py:97 msgid "email template to use for this campaign" msgstr "เทมเพลตอีเมลสำหรับใช้ในแคมเปญนี้" #: engine/vibes_auth/emailing/models.py:103 #: engine/vibes_auth/emailing/models.py:173 msgid "status" msgstr "สถานะ" #: engine/vibes_auth/emailing/models.py:108 msgid "scheduled at" msgstr "กำหนดไว้ที่" #: engine/vibes_auth/emailing/models.py:109 msgid "when to send the campaign (leave empty for manual send)" msgstr "เมื่อใดที่จะส่งแคมเปญ (เว้นว่างไว้สำหรับการส่งด้วยตนเอง)" #: engine/vibes_auth/emailing/models.py:114 #: engine/vibes_auth/emailing/models.py:178 msgid "sent at" msgstr "สายแล้ว" #: engine/vibes_auth/emailing/models.py:115 msgid "when the campaign was actually sent" msgstr "เมื่อแคมเปญถูกส่งออกไปจริง ๆ" #: engine/vibes_auth/emailing/models.py:120 msgid "total recipients" msgstr "ผู้รับทั้งหมด" #: engine/vibes_auth/emailing/models.py:124 msgid "sent count" msgstr "จำนวนที่ส่ง" #: engine/vibes_auth/emailing/models.py:128 msgid "failed count" msgstr "ล้มเหลวในการนับ" #: engine/vibes_auth/emailing/models.py:132 msgid "opened count" msgstr "เปิดนับ" #: engine/vibes_auth/emailing/models.py:136 msgid "clicked count" msgstr "จำนวนครั้งที่คลิก" #: engine/vibes_auth/emailing/models.py:140 msgid "email campaign" msgstr "แคมเปญอีเมล" #: engine/vibes_auth/emailing/models.py:141 msgid "email campaigns" msgstr "แคมเปญอีเมล" #: engine/vibes_auth/emailing/models.py:161 msgid "campaign" msgstr "แคมเปญ" #: engine/vibes_auth/emailing/models.py:167 engine/vibes_auth/models.py:183 msgid "user" msgstr "ผู้ใช้" #: engine/vibes_auth/emailing/models.py:183 msgid "opened at" msgstr "เปิดที่" #: engine/vibes_auth/emailing/models.py:188 msgid "clicked at" msgstr "คลิกที่" #: engine/vibes_auth/emailing/models.py:194 msgid "tracking ID" msgstr "หมายเลขติดตาม" #: engine/vibes_auth/emailing/models.py:195 msgid "unique ID for tracking opens and clicks" msgstr "รหัสประจำตัวที่ไม่ซ้ำกันสำหรับการติดตามการเปิดและการคลิก" #: engine/vibes_auth/emailing/models.py:200 msgid "error message" msgstr "ข้อความแสดงข้อผิดพลาด" #: engine/vibes_auth/emailing/models.py:201 msgid "error details if sending failed" msgstr "รายละเอียดข้อผิดพลาดหากการส่งล้มเหลว" #: engine/vibes_auth/emailing/models.py:205 msgid "campaign recipient" msgstr "ผู้รับแคมเปญ" #: engine/vibes_auth/emailing/models.py:206 msgid "campaign recipients" msgstr "ผู้รับแคมเปญ" #: engine/vibes_auth/emailing/templates/campaign_base.html:136 msgid "All rights reserved" msgstr "สงวนลิขสิทธิ์" #: engine/vibes_auth/emailing/templates/campaign_base.html:138 msgid "You received this email because you subscribed to our newsletter." msgstr "คุณได้รับอีเมลนี้เพราะคุณได้สมัครรับจดหมายข่าวของเรา" #: engine/vibes_auth/emailing/templates/campaign_base.html:139 msgid "Unsubscribe" msgstr "ยกเลิกการสมัคร" #: engine/vibes_auth/emailing/views.py:39 msgid "Unsubscribe token is required." msgstr "จำเป็นต้องใช้โทเคนยกเลิกการสมัคร" #: engine/vibes_auth/emailing/views.py:47 msgid "Invalid unsubscribe token format." msgstr "รูปแบบโทเค็นยกเลิกการสมัครไม่ถูกต้อง" #: engine/vibes_auth/emailing/views.py:55 msgid "User not found." msgstr "ไม่พบผู้ใช้" #: engine/vibes_auth/graphene/mutations.py:47 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "ผู้ใช้ที่เข้ารหัส uuid ด้วย b64 ซึ่งแนะนำผู้ใช้ใหม่ให้เรามา" #: engine/vibes_auth/graphene/mutations.py:70 msgid "password too weak" msgstr "รหัสผ่านอ่อนแอเกินไป" #: engine/vibes_auth/graphene/mutations.py:130 msgid "malformed email" msgstr "อีเมลไม่ถูกต้อง" #: engine/vibes_auth/graphene/mutations.py:142 #: engine/vibes_auth/serializers.py:117 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "หมายเลขโทรศัพท์ไม่ถูกต้อง: {phone_number}!" #: engine/vibes_auth/graphene/mutations.py:167 #, python-brace-format msgid "Invalid attribute format: {attribute_pair}" msgstr "รูปแบบแอตทริบิวต์ไม่ถูกต้อง: {attribute_pair}!" #: engine/vibes_auth/graphene/mutations.py:184 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} ไม่พบ: {uuid}!" #: engine/vibes_auth/graphene/mutations.py:309 #: engine/vibes_auth/viewsets.py:174 engine/vibes_auth/viewsets.py:198 msgid "activation link is invalid!" msgstr "ลิงก์การเปิดใช้งานไม่ถูกต้อง!" #: engine/vibes_auth/graphene/mutations.py:312 msgid "account already activated..." msgstr "บัญชีได้รับการเปิดใช้งานแล้ว..." #: engine/vibes_auth/graphene/mutations.py:319 #: engine/vibes_auth/graphene/mutations.py:383 msgid "something went wrong: {e!s}" msgstr "เกิดข้อผิดพลาด: {e!s}" #: engine/vibes_auth/graphene/mutations.py:365 #: engine/vibes_auth/viewsets.py:109 msgid "token is invalid!" msgstr "โทเคนไม่ถูกต้อง!" #: engine/vibes_auth/graphene/mutations.py:403 msgid "only image files are allowed (jpg, png, gif, webp)" msgstr "อนุญาตเฉพาะไฟล์รูปภาพเท่านั้น (jpg, png, gif, webp)" #: engine/vibes_auth/graphene/mutations.py:406 msgid "file size must not exceed 5 MB" msgstr "ขนาดไฟล์ต้องไม่เกิน 5 MB" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" "the products this user has viewed most recently (max 48), in " "reverse‐chronological order" msgstr "" "สินค้าที่ผู้ใช้รายนี้ดูล่าสุด (สูงสุด 48 รายการ) เรียงตามลำดับเวลาล่าสุด" #: engine/vibes_auth/graphene/object_types.py:49 #: engine/vibes_auth/models.py:270 msgid "groups" msgstr "กลุ่ม" #: engine/vibes_auth/graphene/object_types.py:52 msgid "wishlist" msgstr "รายการสิ่งที่ต้องการ" #: engine/vibes_auth/graphene/object_types.py:56 #: engine/vibes_auth/models.py:75 msgid "avatar" msgstr "อวตาร" #: engine/vibes_auth/graphene/object_types.py:58 msgid "attributes may be used to store custom data" msgstr "คุณลักษณะอาจใช้เพื่อเก็บข้อมูลที่กำหนดเอง" #: engine/vibes_auth/graphene/object_types.py:62 #, python-brace-format msgid "" "language is one of the {settings.LANGUAGES} with default " "{settings.LANGUAGE_CODE}" msgstr "" "ภาษาเป็นหนึ่งใน {settings.LANGUAGES} ที่มีค่าเริ่มต้น " "{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" msgstr "ที่อยู่" #: engine/vibes_auth/messaging/services.py:52 msgid "Valid email is required for anonymous chats." msgstr "จำเป็นต้องมีอีเมลที่ถูกต้องสำหรับการแชทแบบไม่ระบุตัวตน" #: engine/vibes_auth/messaging/services.py:65 msgid "Message must be 1..1028 characters." msgstr "ข้อความต้องมีความยาว 1..1028 ตัวอักษร" #: engine/vibes_auth/messaging/services.py:105 msgid "We're searching for the operator to answer you already, hold by!" msgstr "เรากำลังค้นหาผู้ดำเนินการเพื่อตอบคุณอยู่ กรุณารอสักครู่!" #: engine/vibes_auth/messaging/services.py:152 msgid "Assignee must be a staff user." msgstr "ผู้รับมอบหมายต้องเป็นผู้ใช้ที่เป็นพนักงานเท่านั้น" #: engine/vibes_auth/models.py:44 msgid "" "Represents a User entity with customized fields and methods for extended " "functionality. This class extends the AbstractUser model and integrates " "additional features like custom email login, validation methods, " "subscription status, verification, and attributes storage. It also provides " "utilities for managing recently viewed items and token-based activation for " "verifying accounts. The User model is designed to handle specific use cases " "for enhanced user management." msgstr "" "แทนที่เอนทิตีผู้ใช้ที่มีฟิลด์และเมธอดที่ปรับแต่งได้สำหรับฟังก์ชันการทำงานที่ขยายออกไป" " คลาสนี้สืบทอดมาจากโมเดล AbstractUser และรวมคุณสมบัติเพิ่มเติม เช่น " "การเข้าสู่ระบบด้วยอีเมลที่กำหนดเอง วิธีการตรวจสอบความถูกต้อง " "สถานะการสมัครสมาชิก การยืนยัน และการจัดเก็บแอตทริบิวต์ " "นอกจากนี้ยังมียูทิลิตี้สำหรับจัดการรายการที่ดูล่าสุดและการเปิดใช้งานแบบใช้โทเค็นเพื่อยืนยันบัญชี" " " "โมเดลผู้ใช้ได้รับการออกแบบมาเพื่อจัดการกรณีการใช้งานเฉพาะสำหรับการจัดการผู้ใช้ที่ดียิ่งขึ้น" #: engine/vibes_auth/models.py:55 msgid "email" msgstr "อีเมล" #: engine/vibes_auth/models.py:55 msgid "user email address" msgstr "ที่อยู่อีเมลของผู้ใช้" #: engine/vibes_auth/models.py:57 msgid "phone_number" msgstr "หมายเลขโทรศัพท์" #: engine/vibes_auth/models.py:61 msgid "user phone number" msgstr "หมายเลขโทรศัพท์ผู้ใช้" #: engine/vibes_auth/models.py:68 msgid "first_name" msgstr "ชื่อ" #: engine/vibes_auth/models.py:71 msgid "last_name" msgstr "นามสกุล" #: engine/vibes_auth/models.py:78 msgid "user profile image" msgstr "รูปภาพโปรไฟล์ผู้ใช้" #: engine/vibes_auth/models.py:83 msgid "is verified" msgstr "ได้รับการยืนยันแล้ว" #: engine/vibes_auth/models.py:84 msgid "user verification status" msgstr "สถานะการยืนยันของผู้ใช้" #: engine/vibes_auth/models.py:87 msgid "is_active" msgstr "กำลังใช้งานอยู่" #: engine/vibes_auth/models.py:89 msgid "unselect this instead of deleting accounts" msgstr "ยกเลิกการเลือกสิ่งนี้แทนการลบบัญชี" #: engine/vibes_auth/models.py:92 msgid "is_subscribed" msgstr "สมัครสมาชิกแล้ว" #: engine/vibes_auth/models.py:93 msgid "user's newsletter subscription status" msgstr "สถานะการสมัครสมาชิกจดหมายข่าวของผู้ใช้" #: engine/vibes_auth/models.py:98 msgid "activation token" msgstr "โทเค็นการเปิดใช้งาน" #: engine/vibes_auth/models.py:103 msgid "activation token created" msgstr "สร้างโทเค็นการเปิดใช้งานแล้ว" #: engine/vibes_auth/models.py:107 msgid "unsubscribe token" msgstr "โทเคนยกเลิกการสมัคร" #: engine/vibes_auth/models.py:108 msgid "token for secure one-click unsubscribe from campaigns" msgstr "" "โทเค็นสำหรับการยกเลิกการสมัครรับข้อมูลจากแคมเปญอย่างปลอดภัยด้วยการคลิกเพียงครั้งเดียว" #: engine/vibes_auth/models.py:118 msgid "attributes" msgstr "คุณลักษณะ" #: engine/vibes_auth/models.py:184 msgid "users" msgstr "ผู้ใช้" #: engine/vibes_auth/models.py:202 msgid "admin OTP code" msgstr "รหัส OTP ของผู้ดูแลระบบ" #: engine/vibes_auth/models.py:203 msgid "admin OTP codes" msgstr "รหัส OTP สำหรับผู้ดูแลระบบ" #: engine/vibes_auth/models.py:210 msgid "For anonymous threads" msgstr "สำหรับกระทู้ที่ไม่ระบุชื่อ" #: engine/vibes_auth/models.py:234 msgid "Chat thread" msgstr "หัวข้อสนทนา" #: engine/vibes_auth/models.py:235 msgid "Chat threads" msgstr "หัวข้อสนทนา" #: engine/vibes_auth/models.py:241 msgid "provide user or email for anonymous thread." msgstr "ให้ผู้ใช้หรืออีเมลสำหรับกระทู้ไม่ระบุตัวตน" #: engine/vibes_auth/models.py:244 msgid "assignee must be a staff user." msgstr "ผู้รับมอบหมายต้องเป็นผู้ใช้ที่เป็นพนักงานเท่านั้น" #: engine/vibes_auth/models.py:262 msgid "Chat message" msgstr "ข้อความแชท" #: engine/vibes_auth/models.py:263 msgid "Chat messages" msgstr "ข้อความแชท" #: engine/vibes_auth/models.py:269 msgid "group" msgstr "กลุ่ม" #: engine/vibes_auth/models.py:276 msgid "outstanding token" msgstr "โทเค็นที่ยังไม่ได้ใช้" #: engine/vibes_auth/models.py:277 msgid "outstanding tokens" msgstr "โทเค็นที่ยังไม่ได้ใช้" #: engine/vibes_auth/models.py:283 msgid "blacklisted token" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" #: engine/vibes_auth/models.py:284 msgid "blacklisted tokens" msgstr "โทเค็นที่ถูกขึ้นบัญชีดำ" #: engine/vibes_auth/serializers.py:91 msgid "attributes must be a dictionary" msgstr "`attributes` ต้องเป็นพจนานุกรม" #: engine/vibes_auth/serializers.py:97 msgid "business identificator is required when registering as a business" msgstr "จำเป็นต้องระบุรหัสประจำตัวธุรกิจเมื่อลงทะเบียนเป็นธุรกิจ" #: engine/vibes_auth/serializers.py:127 #, python-brace-format msgid "malformed email: {email}" msgstr "อีเมลไม่ถูกต้อง: {email}" #: engine/vibes_auth/serializers.py:150 engine/vibes_auth/serializers.py:175 #: engine/vibes_auth/serializers.py:198 engine/vibes_auth/serializers.py:210 msgid "no active account" msgstr "ไม่พบบัญชีที่ใช้งานอยู่" #: engine/vibes_auth/serializers.py:185 msgid "must set token_class attribute on class." msgstr "ต้องตั้งค่าแอตทริบิวต์ token_class บนคลาส!" #: engine/vibes_auth/serializers.py:271 msgid "token_blacklisted" msgstr "โทเค็นถูกขึ้นบัญชีดำ" #: engine/vibes_auth/serializers.py:276 msgid "invalid token" msgstr "โทเค็นไม่ถูกต้อง" #: engine/vibes_auth/serializers.py:286 msgid "no user uuid claim present in token" msgstr "ไม่มีการอ้างสิทธิ์ uuid ของผู้ใช้ในโทเค็น" #: engine/vibes_auth/serializers.py:288 msgid "user does not exist" msgstr "ผู้ใช้ไม่มีอยู่" #: engine/vibes_auth/templates/admin/verify_otp.html:27 msgid "Verify" msgstr "ตรวจสอบ" #: engine/vibes_auth/templates/user_reset_password_email.html:7 msgid "reset your password" msgstr "รีเซ็ตรหัสผ่านของคุณ" #: engine/vibes_auth/templates/user_reset_password_email.html:85 #: engine/vibes_auth/templates/user_verification_email.html:85 msgid "logo" msgstr "โลโก้" #: engine/vibes_auth/templates/user_reset_password_email.html:90 msgid "password reset confirmation" msgstr "การยืนยันการรีเซ็ตรหัสผ่าน" #: engine/vibes_auth/templates/user_reset_password_email.html:91 #: engine/vibes_auth/templates/user_verification_email.html:91 #, python-format msgid "hello %(user_first_name)s," msgstr "สวัสดีครับ/ค่ะ %(user_first_name)s," #: engine/vibes_auth/templates/user_reset_password_email.html:92 msgid "" "we have received a request to reset your password. please reset your password\n" " by clicking the button below:" msgstr "" "เราได้รับคำขอให้คุณรีเซ็ตรหัสผ่านของคุณ " "กรุณาทำการรีเซ็ตรหัสผ่านของคุณโดยคลิกที่ปุ่มด้านล่าง:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" msgstr "รีเซ็ตรหัสผ่าน" #: engine/vibes_auth/templates/user_reset_password_email.html:97 #: engine/vibes_auth/templates/user_verification_email.html:99 msgid "" "if the button above does not work, please copy and paste the following URL\n" " into your web browser:" msgstr "" "หากปุ่มด้านบนไม่ทำงาน โปรดคัดลอกและวาง URL " "ต่อไปนี้ลงในเว็บเบราว์เซอร์ของคุณ:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 msgid "" "if you did not send this request, please ignore this\n" " email." msgstr "หากคุณไม่ได้ส่งคำขอนี้ โปรดละเว้นอีเมลนี้" #: engine/vibes_auth/templates/user_reset_password_email.html:102 #, python-format msgid "best regards,
The %(project_name)s team" msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" #: engine/vibes_auth/templates/user_reset_password_email.html:108 #: engine/vibes_auth/templates/user_verification_email.html:108 msgid "all rights reserved" msgstr "สงวนลิขสิทธิ์" #: engine/vibes_auth/templates/user_verification_email.html:7 #: engine/vibes_auth/templates/user_verification_email.html:90 msgid "activate your account" msgstr "เปิดใช้งานบัญชีของคุณ" #: engine/vibes_auth/templates/user_verification_email.html:92 #, python-format msgid "" "thank you for signing up for %(project_name)s. please activate your account\n" " by clicking the button below:" msgstr "" "ขอบคุณที่ลงทะเบียนสำหรับ %(project_name)s " "กรุณาเปิดใช้งานบัญชีของคุณโดยคลิกที่ปุ่มด้านล่าง:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" "activate\n" " account" msgstr "เปิดใช้งานบัญชี" #: engine/vibes_auth/templates/user_verification_email.html:102 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "ขอแสดงความนับถือ
ทีมงาน %(project_name)s" #: engine/vibes_auth/utils/emailing.py:27 #, python-brace-format msgid "{settings.PROJECT_NAME} | Activate Account" msgstr "{settings.PROJECT_NAME} | เปิดใช้งานบัญชี" #: engine/vibes_auth/utils/emailing.py:66 #, python-brace-format msgid "{settings.PROJECT_NAME} | Reset Password" msgstr "{settings.PROJECT_NAME} | ตั้งค่ารหัสผ่านใหม่" #: engine/vibes_auth/validators.py:15 msgid "" "invalid phone number format. the number must be entered in the format: " "\"+999999999\". up to 15 digits allowed." msgstr "" "รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง. หมายเลขต้องถูกป้อนในรูปแบบ: \"+999999999\"." " อนุญาตให้ใช้ได้ถึง 15 หลัก." #: engine/vibes_auth/views.py:34 msgid "" "Represents a view for getting a pair of access and refresh tokens and user's" " data. This view manages the process of handling token-based authentication " "where clients can get a pair of JWT tokens (access and refresh) using " "provided credentials. It is built on top of a base token view and ensures " "proper rate limiting to protect against brute force attacks." msgstr "" "แสดงมุมมองสำหรับการรับคู่ของโทเค็นการเข้าถึงและโทเค็นการรีเฟรช " "รวมถึงข้อมูลของผู้ใช้ มุมมองนี้จัดการกระบวนการตรวจสอบสิทธิ์ที่ใช้โทเค็น " "โดยลูกค้าสามารถรับคู่ของโทเค็น JWT (โทเค็นการเข้าถึงและโทเค็นการรีเฟรช) " "โดยใช้ข้อมูลประจำตัวที่ให้มา " "มุมมองนี้สร้างขึ้นบนมุมมองโทเค็นพื้นฐานและรับประกันการจำกัดอัตราที่เหมาะสมเพื่อป้องกันการโจมตีแบบ" " brute force" #: engine/vibes_auth/views.py:58 msgid "" "Handles refreshing of tokens for authentication purposes. This class is used" " to provide functionality for token refresh operations as part of an " "authentication system. It ensures that clients can request a refreshed token" " within defined rate limits. The view relies on the associated serializer to" " validate token refresh inputs and produce appropriate outputs." msgstr "" "จัดการการรีเฟรชโทเค็นเพื่อวัตถุประสงค์ในการยืนยันตัวตน " "คลาสนี้ใช้เพื่อให้บริการฟังก์ชันสำหรับการรีเฟรชโทเค็นเป็นส่วนหนึ่งของระบบยืนยันตัวตน" " " "มันทำให้แน่ใจว่าลูกค้าสามารถขอโทเค็นที่รีเฟรชแล้วได้ภายในขีดจำกัดอัตราที่กำหนดไว้" " " "หน้าจอนี้พึ่งพาตัวจัดลำดับที่เกี่ยวข้องเพื่อตรวจสอบความถูกต้องของข้อมูลการรีเฟรชโทเค็นและสร้างผลลัพธ์ที่เหมาะสม" #: engine/vibes_auth/views.py:83 msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" "แสดงมุมมองสำหรับการตรวจสอบโทเค็นเว็บ JSON (JWT) " "โดยใช้การแปลงลำดับและการตรวจสอบความถูกต้องตามตรรกะเฉพาะ" #: engine/vibes_auth/views.py:103 msgid "the token is invalid" msgstr "โทเค็นไม่ถูกต้อง" #: engine/vibes_auth/viewsets.py:47 msgid "" "User view set implementation.\n" "Provides a set of actions that manage user-related data such as creation, retrieval, updates, deletion, and custom actions including password reset, avatar upload, account activation, and recently viewed items merging. This class extends the mixins and GenericViewSet for robust API handling." msgstr "" "การใช้งานชุดมุมมองผู้ใช้ " "ให้ชุดของการดำเนินการที่จัดการข้อมูลที่เกี่ยวข้องกับผู้ใช้ เช่น การสร้าง " "การดึงข้อมูล การอัปเดต การลบ และการดำเนินการที่กำหนดเอง " "รวมถึงการรีเซ็ตรหัสผ่าน การอัปโหลดอวาตาร์ การเปิดใช้งานบัญชี " "และการรวมรายการที่ดูล่าสุด คลาสนี้ขยายส่วนผสมและ GenericViewSet " "เพื่อการจัดการ API ที่มีความแข็งแกร่ง" #: engine/vibes_auth/viewsets.py:116 msgid "password reset successfully" msgstr "รหัสผ่านได้รับการรีเซ็ตเรียบร้อยแล้ว!" #: engine/vibes_auth/viewsets.py:146 msgid "" "Account already registered but not yet activated. A new activation email has" " been sent." msgstr "" "บัญชีได้ลงทะเบียนไว้แล้ว แต่ยังไม่ได้เปิดใช้งาน. " "อีเมลเปิดใช้งานใหม่ได้ถูกส่งไปแล้ว." #: engine/vibes_auth/viewsets.py:179 msgid "account already activated!" msgstr "คุณได้เปิดใช้งานบัญชีเรียบร้อยแล้ว..."