# msgid "" msgstr "" "Project-Id-Version: SCHON 2026.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-01-26 03:06+0300\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n" "Last-Translator: EGOR GORBUNOV \n" "Language-Team: BRITISH ENGLISH \n" "Language: vi-vn\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:65 engine/vibes_auth/admin.py:66 #: engine/vibes_auth/graphene/object_types.py:54 msgid "balance" msgstr "Cân bằng" #: engine/vibes_auth/admin.py:74 msgid "order" msgstr "Đặt hàng" #: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:51 msgid "orders" msgstr "Đơn hàng" #: engine/vibes_auth/admin.py:85 msgid "personal info" msgstr "Thông tin cá nhân" #: engine/vibes_auth/admin.py:89 engine/vibes_auth/graphene/object_types.py:50 msgid "permissions" msgstr "Quyền" #: engine/vibes_auth/admin.py:102 msgid "important dates" msgstr "Các ngày quan trọng" #: engine/vibes_auth/admin.py:103 msgid "additional info" msgstr "Thông tin bổ sung" #: engine/vibes_auth/admin.py:149 msgid "You cannot jump over your head!" msgstr "Bạn không thể nhảy qua đầu mình!" #: engine/vibes_auth/admin.py:181 msgid "Close selected threads" msgstr "Đóng các chủ đề đã chọn" #: engine/vibes_auth/admin.py:185 msgid "Open selected threads" msgstr "Mở các chủ đề đã chọn" #: engine/vibes_auth/admin.py:208 msgid "Preview" msgstr "Xem trước" #: engine/vibes_auth/admin.py:209 engine/vibes_auth/admin.py:249 #: engine/vibes_auth/admin.py:326 msgid "Metadata" msgstr "Siêu dữ liệu" #: engine/vibes_auth/admin.py:212 msgid "preview" msgstr "Xem trước" #: engine/vibes_auth/admin.py:221 msgid "image preview" msgstr "Xem trước hình ảnh" #: engine/vibes_auth/admin.py:241 msgid "Content" msgstr "Nội dung" #: engine/vibes_auth/admin.py:243 msgid "Documentation" msgstr "Tài liệu" #: engine/vibes_auth/admin.py:313 msgid "Scheduling" msgstr "Lập lịch" #: engine/vibes_auth/admin.py:315 msgid "Statistics" msgstr "Thống kê" #: engine/vibes_auth/admin.py:329 msgid "stats" msgstr "nhà nước" #: engine/vibes_auth/admin.py:335 msgid "Prepare recipients (subscribed users)" msgstr "Chuẩn bị danh sách người nhận (người dùng đã đăng ký)" #: engine/vibes_auth/admin.py:343 msgid "Campaign '{}' is not in draft status." msgstr "Chiến dịch '{}' không ở trạng thái bản nháp." #: engine/vibes_auth/admin.py:350 msgid "Preparing recipients for campaign '{}'." msgstr "Chuẩn bị cho người nhận tham gia chiến dịch '{}'." #: engine/vibes_auth/admin.py:354 msgid "Send campaign now" msgstr "Gửi chiến dịch ngay bây giờ" #: engine/vibes_auth/admin.py:362 msgid "Campaign '{}' cannot be sent (status: {})." msgstr "Chiến dịch '{}' không thể được gửi (trạng thái: {})." #: engine/vibes_auth/admin.py:372 msgid "Campaign '{}' has no recipients. Prepare recipients first." msgstr "" "Chiến dịch '{}' không có người nhận. Vui lòng chuẩn bị danh sách người nhận " "trước." #: engine/vibes_auth/admin.py:383 msgid "Started sending campaign '{}'." msgstr "Đã bắt đầu gửi chiến dịch '{}'." #: engine/vibes_auth/admin.py:387 msgid "Cancel campaign" msgstr "Hủy chiến dịch" #: engine/vibes_auth/admin.py:396 msgid "{} campaign(s) cancelled." msgstr "{} chiến dịch đã bị hủy." #: engine/vibes_auth/apps.py:8 msgid "Accounting" msgstr "Kế toán" #: engine/vibes_auth/choices.py:6 msgid "Open" msgstr "Mở" #: engine/vibes_auth/choices.py:7 msgid "Closed" msgstr "Đóng" #: engine/vibes_auth/choices.py:11 msgid "User" msgstr "Người dùng" #: engine/vibes_auth/choices.py:12 msgid "Staff" msgstr "Nhân viên" #: engine/vibes_auth/choices.py:13 msgid "System" msgstr "Hệ thống" #: engine/vibes_auth/docs/drf/messaging.py:17 msgid "User messages entrypoint" msgstr "Điểm nhập tin nhắn của người dùng" #: engine/vibes_auth/docs/drf/messaging.py:19 msgid "" "Anonymous or authenticated non-staff users send messages. Also supports " "action=ping." msgstr "" "Người dùng ẩn danh hoặc đã xác thực nhưng không phải nhân viên có thể gửi " "tin nhắn. Cũng hỗ trợ tham số action=ping." #: engine/vibes_auth/docs/drf/messaging.py:30 msgid "Staff inbox control" msgstr "Quản lý hộp thư đến của nhân viên" #: engine/vibes_auth/docs/drf/messaging.py:32 msgid "" "Staff-only actions: list_open, assign, reply, close, ping. Unified event " "payloads are emitted." msgstr "" "Các hành động dành riêng cho nhân viên: list_open, assign, reply, close, " "ping. Các gói sự kiện thống nhất được phát ra." #: engine/vibes_auth/docs/drf/messaging.py:43 msgid "Per-thread staff channel" msgstr "Kênh nhân viên theo từng luồng" #: engine/vibes_auth/docs/drf/messaging.py:44 msgid "Reply, close, and ping within a specific thread." msgstr "Trả lời, đóng và nhắc nhở trong một chủ đề cụ thể." #: engine/vibes_auth/docs/drf/views.py:18 msgid "obtain a token pair" msgstr "Nhận cặp token" #: engine/vibes_auth/docs/drf/views.py:19 msgid "obtain a token pair (refresh and access) for authentication." msgstr "Nhận cặp token (refresh và access) để xác thực." #: engine/vibes_auth/docs/drf/views.py:41 msgid "refresh a token pair" msgstr "Cập nhật cặp token" #: engine/vibes_auth/docs/drf/views.py:42 msgid "refresh a token pair (refresh and access)." msgstr "Cập nhật cặp token (cập nhật và truy cập)." #: engine/vibes_auth/docs/drf/views.py:64 msgid "verify a token" msgstr "Xác minh token" #: engine/vibes_auth/docs/drf/views.py:65 msgid "Verify a token (refresh or access)." msgstr "Xác minh token (cập nhật hoặc truy cập)." #: engine/vibes_auth/docs/drf/views.py:71 engine/vibes_auth/views.py:100 msgid "the token is valid" msgstr "Token này hợp lệ" #: engine/vibes_auth/docs/drf/viewsets.py:19 msgid "create a new user" msgstr "Tạo một người dùng mới" #: engine/vibes_auth/docs/drf/viewsets.py:27 msgid "retrieve a user's details" msgstr "Lấy thông tin chi tiết của người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:34 msgid "update a user's details" msgstr "Cập nhật thông tin của người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:42 msgid "partially update a user's details" msgstr "Cập nhật một phần thông tin của người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:50 msgid "delete a user" msgstr "Xóa người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:57 msgid "reset a user's password by sending a reset password email" msgstr "Đặt lại mật khẩu của người dùng bằng cách gửi email đặt lại mật khẩu." #: engine/vibes_auth/docs/drf/viewsets.py:65 msgid "handle avatar upload for a user" msgstr "Xử lý việc tải lên avatar cho người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:83 msgid "confirm a user's password reset" msgstr "Xác nhận việc đặt lại mật khẩu của người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:87 #: engine/vibes_auth/graphene/mutations.py:351 #: engine/vibes_auth/serializers.py:103 engine/vibes_auth/serializers.py:107 #: engine/vibes_auth/viewsets.py:94 msgid "passwords do not match" msgstr "Mật khẩu không khớp." #: engine/vibes_auth/docs/drf/viewsets.py:95 msgid "activate a user's account" msgstr "Kích hoạt tài khoản của người dùng" #: engine/vibes_auth/docs/drf/viewsets.py:101 msgid "activation link is invalid or account already activated" msgstr "Liên kết kích hoạt không hợp lệ hoặc tài khoản đã được kích hoạt." #: engine/vibes_auth/docs/drf/viewsets.py:111 msgid "merge client-stored recently viewed products" msgstr "" "Ghép các sản phẩm đã xem gần đây được lưu trữ trên thiết bị của khách hàng" #: engine/vibes_auth/emailing/choices.py:6 msgid "Draft" msgstr "Bản thảo" #: engine/vibes_auth/emailing/choices.py:7 msgid "Scheduled" msgstr "Được lên lịch" #: engine/vibes_auth/emailing/choices.py:8 msgid "Sending" msgstr "Gửi" #: engine/vibes_auth/emailing/choices.py:9 #: engine/vibes_auth/emailing/choices.py:15 msgid "Sent" msgstr "Gửi" #: engine/vibes_auth/emailing/choices.py:10 msgid "Cancelled" msgstr "Đã hủy" #: engine/vibes_auth/emailing/choices.py:14 msgid "Pending" msgstr "Đang chờ xử lý" #: engine/vibes_auth/emailing/choices.py:16 msgid "Failed" msgstr "Thất bại" #: engine/vibes_auth/emailing/choices.py:17 msgid "Opened" msgstr "Đã mở" #: engine/vibes_auth/emailing/choices.py:18 msgid "Clicked" msgstr "Đã nhấp chuột" #: engine/vibes_auth/emailing/models.py:35 #: engine/vibes_auth/emailing/models.py:71 #: engine/vibes_auth/emailing/models.py:121 msgid "name" msgstr "tên" #: engine/vibes_auth/emailing/models.py:36 msgid "descriptive name for the image" msgstr "Tên mô tả cho hình ảnh" #: engine/vibes_auth/emailing/models.py:40 msgid "image" msgstr "hình ảnh" #: engine/vibes_auth/emailing/models.py:41 msgid "image file to use in email templates" msgstr "Tệp hình ảnh để sử dụng trong mẫu email" #: engine/vibes_auth/emailing/models.py:47 msgid "alt text" msgstr "văn bản khác" #: engine/vibes_auth/emailing/models.py:48 msgid "alternative text for accessibility" msgstr "Văn bản thay thế cho tính năng truy cập" #: engine/vibes_auth/emailing/models.py:52 msgid "email image" msgstr "Hình ảnh trong email" #: engine/vibes_auth/emailing/models.py:53 msgid "email images" msgstr "Hình ảnh trong email" #: engine/vibes_auth/emailing/models.py:72 msgid "internal name for the template" msgstr "Tên nội bộ cho mẫu" #: engine/vibes_auth/emailing/models.py:76 msgid "slug" msgstr "slug" #: engine/vibes_auth/emailing/models.py:77 msgid "unique identifier for the template" msgstr "Mã định danh duy nhất cho mẫu" #: engine/vibes_auth/emailing/models.py:81 msgid "subject" msgstr "chủ đề" #: engine/vibes_auth/emailing/models.py:82 msgid "email subject line - supports {{ variables }}" msgstr "Tiêu đề email - Hỗ trợ {{ variables }}" #: engine/vibes_auth/emailing/models.py:85 msgid "HTML content" msgstr "Nội dung HTML" #: engine/vibes_auth/emailing/models.py:87 msgid "" "email body content - supports {{ user.first_name }}, {{ user.email }}, {{ " "project_name }}, {{ unsubscribe_url }}" msgstr "" "Nội dung thân email - hỗ trợ {{ user.first_name }}, {{ user.email }}, {{ " "project_name }}, {{ unsubscribe_url }}" #: engine/vibes_auth/emailing/models.py:94 msgid "plain text content" msgstr "Nội dung văn bản thuần túy" #: engine/vibes_auth/emailing/models.py:95 msgid "plain text fallback (auto-generated if empty)" msgstr "Nội dung văn bản thuần túy (được tạo tự động nếu trống)" #: engine/vibes_auth/emailing/models.py:100 msgid "available variables" msgstr "Các biến có sẵn" #: engine/vibes_auth/emailing/models.py:101 msgid "documentation of available template variables" msgstr "Tài liệu mô tả các biến mẫu có sẵn" #: engine/vibes_auth/emailing/models.py:105 msgid "email template" msgstr "Mẫu email" #: engine/vibes_auth/emailing/models.py:106 msgid "email templates" msgstr "Mẫu email" #: engine/vibes_auth/emailing/models.py:122 msgid "internal name for the campaign" msgstr "Tên nội bộ cho chiến dịch" #: engine/vibes_auth/emailing/models.py:129 msgid "template" msgstr "mẫu" #: engine/vibes_auth/emailing/models.py:130 msgid "email template to use for this campaign" msgstr "Mẫu email để sử dụng cho chiến dịch này" #: engine/vibes_auth/emailing/models.py:136 #: engine/vibes_auth/emailing/models.py:206 msgid "status" msgstr "tình trạng" #: engine/vibes_auth/emailing/models.py:141 msgid "scheduled at" msgstr "được lên lịch vào" #: engine/vibes_auth/emailing/models.py:142 msgid "when to send the campaign (leave empty for manual send)" msgstr "Thời điểm gửi chiến dịch (để trống nếu muốn gửi thủ công)" #: engine/vibes_auth/emailing/models.py:147 #: engine/vibes_auth/emailing/models.py:211 msgid "sent at" msgstr "gửi" #: engine/vibes_auth/emailing/models.py:148 msgid "when the campaign was actually sent" msgstr "Khi chiến dịch thực sự được gửi đi" #: engine/vibes_auth/emailing/models.py:153 msgid "total recipients" msgstr "Tổng số người nhận" #: engine/vibes_auth/emailing/models.py:157 msgid "sent count" msgstr "Số lượng tin nhắn đã gửi" #: engine/vibes_auth/emailing/models.py:161 msgid "failed count" msgstr "Số lần đếm không thành công" #: engine/vibes_auth/emailing/models.py:165 msgid "opened count" msgstr "Số lượng đã mở" #: engine/vibes_auth/emailing/models.py:169 msgid "clicked count" msgstr "Số lần nhấp chuột" #: engine/vibes_auth/emailing/models.py:173 msgid "email campaign" msgstr "Chiến dịch email" #: engine/vibes_auth/emailing/models.py:174 msgid "email campaigns" msgstr "Chiến dịch email" #: engine/vibes_auth/emailing/models.py:194 msgid "campaign" msgstr "chiến dịch" #: engine/vibes_auth/emailing/models.py:200 engine/vibes_auth/models.py:146 msgid "user" msgstr "Người dùng" #: engine/vibes_auth/emailing/models.py:216 msgid "opened at" msgstr "Được mở tại" #: engine/vibes_auth/emailing/models.py:221 msgid "clicked at" msgstr "được nhấp vào" #: engine/vibes_auth/emailing/models.py:227 msgid "tracking ID" msgstr "Mã theo dõi" #: engine/vibes_auth/emailing/models.py:228 msgid "unique ID for tracking opens and clicks" msgstr "Mã định danh duy nhất để theo dõi số lần mở và nhấp chuột" #: engine/vibes_auth/emailing/models.py:233 msgid "error message" msgstr "Thông báo lỗi" #: engine/vibes_auth/emailing/models.py:234 msgid "error details if sending failed" msgstr "Chi tiết lỗi nếu việc gửi không thành công" #: engine/vibes_auth/emailing/models.py:238 msgid "campaign recipient" msgstr "Người nhận chiến dịch" #: engine/vibes_auth/emailing/models.py:239 msgid "campaign recipients" msgstr "Người nhận chiến dịch" #: engine/vibes_auth/emailing/templates/campaign_base.html:136 msgid "All rights reserved" msgstr "Tất cả các quyền được bảo lưu." #: engine/vibes_auth/emailing/templates/campaign_base.html:138 msgid "You received this email because you subscribed to our newsletter." msgstr "Bạn nhận được email này vì bạn đã đăng ký nhận bản tin của chúng tôi." #: engine/vibes_auth/emailing/templates/campaign_base.html:139 msgid "Unsubscribe" msgstr "Hủy đăng ký" #: engine/vibes_auth/emailing/views.py:71 msgid "Unsubscribe token is required." msgstr "Mã hủy đăng ký là bắt buộc." #: engine/vibes_auth/emailing/views.py:79 msgid "Invalid unsubscribe token format." msgstr "Định dạng mã hủy đăng ký không hợp lệ." #: engine/vibes_auth/emailing/views.py:87 msgid "User not found." msgstr "Không tìm thấy người dùng." #: engine/vibes_auth/emailing/views.py:93 msgid "You are already unsubscribed." msgstr "Bạn đã hủy đăng ký." #: engine/vibes_auth/emailing/views.py:101 msgid "You have been successfully unsubscribed from our emails." msgstr "Bạn đã hủy đăng ký nhận email của chúng tôi thành công." #: engine/vibes_auth/graphene/mutations.py:46 msgid "the user's b64-encoded uuid who referred the new user to us." msgstr "" "Mã UUID được mã hóa bằng B64 của người dùng đã giới thiệu người dùng mới cho" " chúng tôi." #: engine/vibes_auth/graphene/mutations.py:68 msgid "password too weak" msgstr "Mật khẩu quá yếu." #: engine/vibes_auth/graphene/mutations.py:128 msgid "malformed email" msgstr "Email không hợp lệ" #: engine/vibes_auth/graphene/mutations.py:140 #: engine/vibes_auth/serializers.py:117 #, python-brace-format msgid "malformed phone number: {phone_number}" msgstr "Số điện thoại không hợp lệ: {phone_number}!" #: engine/vibes_auth/graphene/mutations.py:165 #, python-brace-format msgid "Invalid attribute format: {attribute_pair}" msgstr "Định dạng thuộc tính không hợp lệ: {attribute_pair}!" #: engine/vibes_auth/graphene/mutations.py:182 #, python-brace-format msgid "{name} does not exist: {uuid}" msgstr "{name} không tồn tại: {uuid}!" #: engine/vibes_auth/graphene/mutations.py:304 #: engine/vibes_auth/viewsets.py:156 engine/vibes_auth/viewsets.py:180 msgid "activation link is invalid!" msgstr "Liên kết kích hoạt không hợp lệ!" #: engine/vibes_auth/graphene/mutations.py:307 msgid "account already activated..." msgstr "Tài khoản đã được kích hoạt..." #: engine/vibes_auth/graphene/mutations.py:314 #: engine/vibes_auth/graphene/mutations.py:376 msgid "something went wrong: {e!s}" msgstr "Có sự cố xảy ra: {e!s}" #: engine/vibes_auth/graphene/mutations.py:358 #: engine/vibes_auth/viewsets.py:106 msgid "token is invalid!" msgstr "Token không hợp lệ!" #: engine/vibes_auth/graphene/object_types.py:46 msgid "" "the products this user has viewed most recently (max 48), in " "reverse‐chronological order" msgstr "" "Các sản phẩm mà người dùng này đã xem gần đây nhất (tối đa 48), theo thứ tự " "thời gian ngược." #: engine/vibes_auth/graphene/object_types.py:49 #: engine/vibes_auth/models.py:214 msgid "groups" msgstr "Nhóm" #: engine/vibes_auth/graphene/object_types.py:52 msgid "wishlist" msgstr "Danh sách mong muốn" #: engine/vibes_auth/graphene/object_types.py:56 #: engine/vibes_auth/models.py:70 msgid "avatar" msgstr "Avatar" #: engine/vibes_auth/graphene/object_types.py:58 msgid "attributes may be used to store custom data" msgstr "Các thuộc tính có thể được sử dụng để lưu trữ dữ liệu tùy chỉnh." #: 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 "" "Ngôn ngữ là một trong những {settings.LANGUAGES} với mặc định " "{settings.LANGUAGE_CODE}" #: engine/vibes_auth/graphene/object_types.py:66 msgid "address set" msgstr "Địa chỉ" #: engine/vibes_auth/messaging/services.py:52 msgid "Valid email is required for anonymous chats." msgstr "Địa chỉ email hợp lệ là bắt buộc cho các cuộc trò chuyện ẩn danh." #: engine/vibes_auth/messaging/services.py:65 msgid "Message must be 1..1028 characters." msgstr "Thông điệp phải có độ dài từ 1 đến 1028 ký tự." #: engine/vibes_auth/messaging/services.py:105 msgid "We're searching for the operator to answer you already, hold by!" msgstr "" "Chúng tôi đang tìm kiếm nhân viên tổng đài để trả lời cho bạn, xin vui lòng " "chờ một lát!" #: engine/vibes_auth/messaging/services.py:152 msgid "Assignee must be a staff user." msgstr "Người được giao nhiệm vụ phải là người dùng nhân viên." #: engine/vibes_auth/models.py:42 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 "" "Đại diện cho thực thể Người dùng với các trường và phương thức tùy chỉnh để " "mở rộng chức năng. Lớp này kế thừa từ mô hình AbstractUser và tích hợp các " "tính năng bổ sung như đăng nhập bằng email tùy chỉnh, phương thức xác thực, " "trạng thái đăng ký, xác minh và lưu trữ thuộc tính. Nó cũng cung cấp các " "công cụ để quản lý các mục đã xem gần đây và kích hoạt dựa trên token để xác" " minh tài khoản. Mô hình Người dùng được thiết kế để xử lý các trường hợp sử" " dụng cụ thể nhằm nâng cao quản lý người dùng." #: engine/vibes_auth/models.py:53 msgid "email" msgstr "Email" #: engine/vibes_auth/models.py:53 msgid "user email address" msgstr "Địa chỉ email của người dùng" #: engine/vibes_auth/models.py:55 msgid "phone_number" msgstr "Số điện thoại" #: engine/vibes_auth/models.py:60 msgid "user phone number" msgstr "Số điện thoại của người dùng" #: engine/vibes_auth/models.py:66 msgid "first_name" msgstr "Họ" #: engine/vibes_auth/models.py:67 msgid "last_name" msgstr "Họ" #: engine/vibes_auth/models.py:73 msgid "user profile image" msgstr "Hình ảnh hồ sơ người dùng" #: engine/vibes_auth/models.py:78 msgid "is verified" msgstr "Đã được xác minh" #: engine/vibes_auth/models.py:79 msgid "user verification status" msgstr "Trạng thái xác minh của người dùng" #: engine/vibes_auth/models.py:82 msgid "is_active" msgstr "Đang hoạt động" #: engine/vibes_auth/models.py:84 msgid "unselect this instead of deleting accounts" msgstr "Hủy chọn tùy chọn này thay vì xóa tài khoản." #: engine/vibes_auth/models.py:87 msgid "is_subscribed" msgstr "Đã đăng ký" #: engine/vibes_auth/models.py:88 msgid "user's newsletter subscription status" msgstr "Tình trạng đăng ký bản tin của người dùng" #: engine/vibes_auth/models.py:92 msgid "activation token" msgstr "Mã kích hoạt" #: engine/vibes_auth/models.py:95 msgid "unsubscribe token" msgstr "Mã hủy đăng ký" #: engine/vibes_auth/models.py:96 msgid "token for secure one-click unsubscribe from campaigns" msgstr "" "Token để hủy đăng ký một cách an toàn chỉ với một cú nhấp chuột khỏi các " "chiến dịch." #: engine/vibes_auth/models.py:106 msgid "attributes" msgstr "Thuộc tính" #: engine/vibes_auth/models.py:147 msgid "users" msgstr "Người dùng" #: engine/vibes_auth/models.py:154 msgid "For anonymous threads" msgstr "Đối với các chủ đề ẩn danh" #: engine/vibes_auth/models.py:178 msgid "Chat thread" msgstr "Dòng trò chuyện" #: engine/vibes_auth/models.py:179 msgid "Chat threads" msgstr "Các chuỗi trò chuyện" #: engine/vibes_auth/models.py:185 msgid "provide user or email for anonymous thread." msgstr "" "Cung cấp tên người dùng hoặc địa chỉ email cho chuỗi thảo luận ẩn danh." #: engine/vibes_auth/models.py:188 msgid "assignee must be a staff user." msgstr "Người được giao nhiệm vụ phải là người dùng nhân viên." #: engine/vibes_auth/models.py:206 msgid "Chat message" msgstr "Tin nhắn trò chuyện" #: engine/vibes_auth/models.py:207 msgid "Chat messages" msgstr "Tin nhắn trò chuyện" #: engine/vibes_auth/models.py:213 msgid "group" msgstr "Nhóm" #: engine/vibes_auth/models.py:220 msgid "outstanding token" msgstr "Token xuất sắc" #: engine/vibes_auth/models.py:221 msgid "outstanding tokens" msgstr "Token xuất sắc" #: engine/vibes_auth/models.py:227 msgid "blacklisted token" msgstr "Token bị đưa vào danh sách đen" #: engine/vibes_auth/models.py:228 msgid "blacklisted tokens" msgstr "Các token bị đưa vào danh sách đen" #: engine/vibes_auth/serializers.py:91 msgid "attributes must be a dictionary" msgstr "`attributes` phải là một từ điển." #: engine/vibes_auth/serializers.py:97 msgid "business identificator is required when registering as a business" msgstr "Mã định danh doanh nghiệp là bắt buộc khi đăng ký kinh doanh." #: engine/vibes_auth/serializers.py:127 #, python-brace-format msgid "malformed email: {email}" msgstr "Email không hợp lệ: {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 "Không tìm thấy tài khoản hoạt động." #: engine/vibes_auth/serializers.py:185 msgid "must set token_class attribute on class." msgstr "Phải đặt thuộc tính token_class cho lớp!" #: engine/vibes_auth/serializers.py:271 msgid "token_blacklisted" msgstr "Token bị đưa vào danh sách đen" #: engine/vibes_auth/serializers.py:276 msgid "invalid token" msgstr "Token không hợp lệ" #: engine/vibes_auth/serializers.py:286 msgid "no user uuid claim present in token" msgstr "Không có yêu cầu UUID của người dùng trong token." #: engine/vibes_auth/serializers.py:288 msgid "user does not exist" msgstr "Người dùng không tồn tại" #: engine/vibes_auth/templates/user_reset_password_email.html:7 msgid "reset your password" msgstr "Đặt lại mật khẩu của bạn" #: engine/vibes_auth/templates/user_reset_password_email.html:85 #: engine/vibes_auth/templates/user_verification_email.html:85 msgid "logo" msgstr "Biểu trưng" #: engine/vibes_auth/templates/user_reset_password_email.html:90 msgid "password reset confirmation" msgstr "Xác nhận đặt lại mật khẩu" #: 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 "Xin chào %(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 "" "Chúng tôi đã nhận được yêu cầu đặt lại mật khẩu của bạn. Vui lòng đặt lại " "mật khẩu bằng cách nhấp vào nút bên dưới:" #: engine/vibes_auth/templates/user_reset_password_email.html:95 msgid "reset password" msgstr "Đặt lại mật khẩu" #: 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 "" "Nếu nút ở trên không hoạt động, vui lòng sao chép và dán URL sau vào trình " "duyệt web của bạn:" #: engine/vibes_auth/templates/user_reset_password_email.html:100 msgid "" "if you did not send this request, please ignore this\n" " email." msgstr "Nếu bạn không gửi yêu cầu này, vui lòng bỏ qua email này." #: engine/vibes_auth/templates/user_reset_password_email.html:102 #, python-format msgid "best regards,
The %(project_name)s team" msgstr "Trân trọng,
Đội ngũ %(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 "Tất cả các quyền được bảo lưu." #: engine/vibes_auth/templates/user_verification_email.html:7 #: engine/vibes_auth/templates/user_verification_email.html:90 msgid "activate your account" msgstr "Kích hoạt tài khoản của bạn" #: 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 "" "Cảm ơn bạn đã đăng ký cho %(project_name)s. Vui lòng kích hoạt tài khoản của" " bạn bằng cách nhấp vào nút bên dưới:" #: engine/vibes_auth/templates/user_verification_email.html:96 msgid "" "activate\n" " account" msgstr "Kích hoạt tài khoản" #: engine/vibes_auth/templates/user_verification_email.html:102 #, python-format msgid "best regards,
the %(project_name)s team" msgstr "Trân trọng,
Đội ngũ %(project_name)s" #: engine/vibes_auth/utils/emailing.py:24 #, python-brace-format msgid "{settings.PROJECT_NAME} | Activate Account" msgstr "{settings.PROJECT_NAME} | Kích hoạt tài khoản" #: engine/vibes_auth/utils/emailing.py:63 #, python-brace-format msgid "{settings.PROJECT_NAME} | Reset Password" msgstr "{settings.PROJECT_NAME} | Đặt lại mật khẩu" #: 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 "" "Định dạng số điện thoại không hợp lệ. Số điện thoại phải được nhập theo định" " dạng: \"+999999999\". Cho phép tối đa 15 chữ số." #: 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 "" "Đại diện cho một giao diện để lấy cặp token truy cập và token làm mới cùng " "với dữ liệu người dùng. Giao diện này quản lý quá trình xác thực dựa trên " "token, cho phép các client lấy cặp token JWT (truy cập và làm mới) bằng cách" " sử dụng thông tin đăng nhập được cung cấp. Nó được xây dựng dựa trên một " "giao diện token cơ sở và đảm bảo giới hạn tốc độ thích hợp để bảo vệ khỏi " "các cuộc tấn công dò mật khẩu." #: 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 "" "Xử lý việc làm mới token cho mục đích xác thực. Lớp này được sử dụng để cung" " cấp chức năng cho các hoạt động làm mới token như một phần của hệ thống xác" " thực. Nó đảm bảo rằng các client có thể yêu cầu token đã được làm mới trong" " giới hạn tỷ lệ được định nghĩa. Giao diện người dùng dựa vào trình " "serializer liên quan để xác thực các đầu vào làm mới token và tạo ra các đầu" " ra phù hợp." #: engine/vibes_auth/views.py:83 msgid "" "Represents a view for verifying JSON Web Tokens (JWT) using specific " "serialization and validation logic. " msgstr "" "Đại diện cho một giao diện dùng để xác minh JSON Web Tokens (JWT) bằng cách " "sử dụng logic serialization và xác thực cụ thể." #: engine/vibes_auth/views.py:103 msgid "the token is invalid" msgstr "Token không hợp lệ" #: engine/vibes_auth/viewsets.py:44 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 "" "Thực hiện bộ xem người dùng. Cung cấp một tập hợp các hành động quản lý dữ " "liệu liên quan đến người dùng như tạo, truy xuất, cập nhật, xóa và các hành " "động tùy chỉnh bao gồm đặt lại mật khẩu, tải lên avatar, kích hoạt tài khoản" " và hợp nhất các mục đã xem gần đây. Lớp này mở rộng các mixin và " "GenericViewSet để xử lý API một cách mạnh mẽ." #: engine/vibes_auth/viewsets.py:113 msgid "password reset successfully" msgstr "Mật khẩu đã được đặt lại thành công!" #: engine/vibes_auth/viewsets.py:161 msgid "account already activated!" msgstr "Bạn đã kích hoạt tài khoản..."