# 
msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2026.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\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:51 engine/vibes_auth/admin.py:52
#: engine/vibes_auth/graphene/object_types.py:54
msgid "balance"
msgstr "Cân bằng"

#: engine/vibes_auth/admin.py:60
msgid "order"
msgstr "Đặt hàng"

#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51
msgid "orders"
msgstr "Đơn hàng"

#: engine/vibes_auth/admin.py:71
msgid "personal info"
msgstr "Thông tin cá nhân"

#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50
msgid "permissions"
msgstr "Quyền"

#: engine/vibes_auth/admin.py:88
msgid "important dates"
msgstr "Các ngày quan trọng"

#: engine/vibes_auth/admin.py:89
msgid "additional info"
msgstr "Thông tin bổ sung"

#: engine/vibes_auth/admin.py:135
msgid "You cannot jump over your head!"
msgstr "Bạn không thể nhảy qua đầu mình!"

#: engine/vibes_auth/admin.py:167
msgid "Close selected threads"
msgstr "Đóng các chủ đề đã chọn"

#: engine/vibes_auth/admin.py:171
msgid "Open selected threads"
msgstr "Mở các chủ đề đã chọn"

#: engine/vibes_auth/apps.py:8
msgid "authentication"
msgstr "Xác thực"

#: 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/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:209
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:101
msgid "attributes"
msgstr "Thuộc tính"

#: engine/vibes_auth/models.py:141
msgid "user"
msgstr "Người dùng"

#: engine/vibes_auth/models.py:142
msgid "users"
msgstr "Người dùng"

#: engine/vibes_auth/models.py:149
msgid "For anonymous threads"
msgstr "Đối với các chủ đề ẩn danh"

#: engine/vibes_auth/models.py:173
msgid "Chat thread"
msgstr "Dòng trò chuyện"

#: engine/vibes_auth/models.py:174
msgid "Chat threads"
msgstr "Các chuỗi trò chuyện"

#: engine/vibes_auth/models.py:180
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:183
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:201
msgid "Chat message"
msgstr "Tin nhắn trò chuyện"

#: engine/vibes_auth/models.py:202
msgid "Chat messages"
msgstr "Tin nhắn trò chuyện"

#: engine/vibes_auth/models.py:208
msgid "group"
msgstr "Nhóm"

#: engine/vibes_auth/models.py:215
msgid "outstanding token"
msgstr "Token xuất sắc"

#: engine/vibes_auth/models.py:216
msgid "outstanding tokens"
msgstr "Token xuất sắc"

#: engine/vibes_auth/models.py:222
msgid "blacklisted token"
msgstr "Token bị đưa vào danh sách đen"

#: engine/vibes_auth/models.py:223
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,<br>The %(project_name)s team"
msgstr "Trân trọng,<br>Độ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,<br>the %(project_name)s team"
msgstr "Trân trọng,<br>Độ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..."
