Fixes: 1) Fixed line wrapping inconsistencies in English and German sections; 2) Ensured consistent spacing and line breaks in feature lists; 3) Corrected minor spacing issues in authentication and i18n sections. Extra: 1) Improved readability by ensuring uniform line breaks; 2) No functional changes, purely cosmetic and structural.
632 lines
22 KiB
Text
632 lines
22 KiB
Text
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: EVIBES 2025.4\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2025-11-18 11:26+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:50 engine/vibes_auth/admin.py:51
|
||
#: engine/vibes_auth/graphene/object_types.py:46
|
||
msgid "balance"
|
||
msgstr "Cân bằng"
|
||
|
||
#: engine/vibes_auth/admin.py:59
|
||
msgid "order"
|
||
msgstr "Đặt hàng"
|
||
|
||
#: engine/vibes_auth/admin.py:60 engine/vibes_auth/graphene/object_types.py:44
|
||
msgid "orders"
|
||
msgstr "Đơn hàng"
|
||
|
||
#: engine/vibes_auth/admin.py:70
|
||
msgid "personal info"
|
||
msgstr "Thông tin cá nhân"
|
||
|
||
#: engine/vibes_auth/admin.py:74 engine/vibes_auth/graphene/object_types.py:43
|
||
msgid "permissions"
|
||
msgstr "Quyền"
|
||
|
||
#: engine/vibes_auth/admin.py:87
|
||
msgid "important dates"
|
||
msgstr "Các ngày quan trọng"
|
||
|
||
#: engine/vibes_auth/admin.py:88
|
||
msgid "additional info"
|
||
msgstr "Thông tin bổ sung"
|
||
|
||
#: engine/vibes_auth/admin.py:125
|
||
msgid "You cannot jump over your head!"
|
||
msgstr "Bạn không thể nhảy qua đầu mình!"
|
||
|
||
#: engine/vibes_auth/admin.py:157
|
||
msgid "Close selected threads"
|
||
msgstr "Đóng các chủ đề đã chọn"
|
||
|
||
#: engine/vibes_auth/admin.py:161
|
||
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:18
|
||
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:28
|
||
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:29
|
||
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:39
|
||
msgid "Per-thread staff channel"
|
||
msgstr "Kênh nhân viên theo từng luồng"
|
||
|
||
#: engine/vibes_auth/docs/drf/messaging.py:40
|
||
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:90
|
||
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:319
|
||
#: engine/vibes_auth/serializers.py:97 engine/vibes_auth/serializers.py:101
|
||
#: engine/vibes_auth/viewsets.py:84
|
||
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:99
|
||
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:107
|
||
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:43
|
||
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:63
|
||
msgid "password too weak"
|
||
msgstr "Mật khẩu quá yếu."
|
||
|
||
#: engine/vibes_auth/graphene/mutations.py:112
|
||
#, python-brace-format
|
||
msgid "{name} does not exist: {uuid}"
|
||
msgstr "{name} không tồn tại: {uuid}!"
|
||
|
||
#: engine/vibes_auth/graphene/mutations.py:122
|
||
msgid "malformed email"
|
||
msgstr "Email không hợp lệ"
|
||
|
||
#: engine/vibes_auth/graphene/mutations.py:129
|
||
#: engine/vibes_auth/serializers.py:107
|
||
#, 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:151
|
||
#, 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:272
|
||
#: engine/vibes_auth/viewsets.py:127 engine/vibes_auth/viewsets.py:146
|
||
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:275
|
||
msgid "account already activated..."
|
||
msgstr "Tài khoản đã được kích hoạt..."
|
||
|
||
#: engine/vibes_auth/graphene/mutations.py:282
|
||
#: engine/vibes_auth/graphene/mutations.py:338
|
||
msgid "something went wrong: {e!s}"
|
||
msgstr "Có sự cố xảy ra: {e!s}"
|
||
|
||
#: engine/vibes_auth/graphene/mutations.py:326 engine/vibes_auth/viewsets.py:95
|
||
msgid "token is invalid!"
|
||
msgstr "Token không hợp lệ!"
|
||
|
||
#: engine/vibes_auth/graphene/object_types.py:40
|
||
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:42
|
||
#: engine/vibes_auth/models.py:176
|
||
msgid "groups"
|
||
msgstr "Nhóm"
|
||
|
||
#: engine/vibes_auth/graphene/object_types.py:45
|
||
msgid "wishlist"
|
||
msgstr "Danh sách mong muốn"
|
||
|
||
#: engine/vibes_auth/graphene/object_types.py:47 engine/vibes_auth/models.py:68
|
||
msgid "avatar"
|
||
msgstr "Avatar"
|
||
|
||
#: engine/vibes_auth/graphene/object_types.py:48
|
||
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:50
|
||
#, 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:52
|
||
msgid "address set"
|
||
msgstr "Địa chỉ"
|
||
|
||
#: engine/vibes_auth/messaging/services.py:49
|
||
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:57
|
||
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:93
|
||
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:136
|
||
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:40
|
||
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:51
|
||
msgid "email"
|
||
msgstr "Email"
|
||
|
||
#: engine/vibes_auth/models.py:51
|
||
msgid "user email address"
|
||
msgstr "Địa chỉ email của người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:53
|
||
msgid "phone_number"
|
||
msgstr "Số điện thoại"
|
||
|
||
#: engine/vibes_auth/models.py:58
|
||
msgid "user phone number"
|
||
msgstr "Số điện thoại của người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:64
|
||
msgid "first_name"
|
||
msgstr "Họ"
|
||
|
||
#: engine/vibes_auth/models.py:65
|
||
msgid "last_name"
|
||
msgstr "Họ"
|
||
|
||
#: engine/vibes_auth/models.py:71
|
||
msgid "user profile image"
|
||
msgstr "Hình ảnh hồ sơ người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:76
|
||
msgid "is verified"
|
||
msgstr "Đã được xác minh"
|
||
|
||
#: engine/vibes_auth/models.py:77
|
||
msgid "user verification status"
|
||
msgstr "Trạng thái xác minh của người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:80
|
||
msgid "is_active"
|
||
msgstr "Đang hoạt động"
|
||
|
||
#: engine/vibes_auth/models.py:82
|
||
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:85
|
||
msgid "is_subscribed"
|
||
msgstr "Đã đăng ký"
|
||
|
||
#: engine/vibes_auth/models.py:85
|
||
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:88
|
||
msgid "activation token"
|
||
msgstr "Mã kích hoạt"
|
||
|
||
#: engine/vibes_auth/models.py:92
|
||
msgid "attributes"
|
||
msgstr "Thuộc tính"
|
||
|
||
#: engine/vibes_auth/models.py:124
|
||
msgid "user"
|
||
msgstr "Người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:125
|
||
msgid "users"
|
||
msgstr "Người dùng"
|
||
|
||
#: engine/vibes_auth/models.py:130
|
||
msgid "For anonymous threads"
|
||
msgstr "Đối với các chủ đề ẩn danh"
|
||
|
||
#: engine/vibes_auth/models.py:144
|
||
msgid "Chat thread"
|
||
msgstr "Dòng trò chuyện"
|
||
|
||
#: engine/vibes_auth/models.py:145
|
||
msgid "Chat threads"
|
||
msgstr "Các chuỗi trò chuyện"
|
||
|
||
#: engine/vibes_auth/models.py:150
|
||
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: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:168
|
||
msgid "Chat message"
|
||
msgstr "Tin nhắn trò chuyện"
|
||
|
||
#: engine/vibes_auth/models.py:169
|
||
msgid "Chat messages"
|
||
msgstr "Tin nhắn trò chuyện"
|
||
|
||
#: engine/vibes_auth/models.py:175
|
||
msgid "group"
|
||
msgstr "Nhóm"
|
||
|
||
#: engine/vibes_auth/models.py:182
|
||
msgid "outstanding token"
|
||
msgstr "Token xuất sắc"
|
||
|
||
#: engine/vibes_auth/models.py:183
|
||
msgid "outstanding tokens"
|
||
msgstr "Token xuất sắc"
|
||
|
||
#: engine/vibes_auth/models.py:189
|
||
msgid "blacklisted token"
|
||
msgstr "Token bị đưa vào danh sách đen"
|
||
|
||
#: engine/vibes_auth/models.py:190
|
||
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:93
|
||
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:113
|
||
#, python-brace-format
|
||
msgid "malformed email: {email}"
|
||
msgstr "Email không hợp lệ: {email}"
|
||
|
||
#: engine/vibes_auth/serializers.py:134 engine/vibes_auth/serializers.py:156
|
||
#: engine/vibes_auth/serializers.py:176 engine/vibes_auth/serializers.py:186
|
||
msgid "no active account"
|
||
msgstr "Không tìm thấy tài khoản hoạt động."
|
||
|
||
#: engine/vibes_auth/serializers.py:166
|
||
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:232
|
||
msgid "token_blacklisted"
|
||
msgstr "Token bị đưa vào danh sách đen"
|
||
|
||
#: engine/vibes_auth/serializers.py:237
|
||
msgid "invalid token"
|
||
msgstr "Token không hợp lệ"
|
||
|
||
#: engine/vibes_auth/serializers.py:243
|
||
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:245
|
||
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:13
|
||
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:30
|
||
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:52
|
||
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:75
|
||
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:92
|
||
msgid "the token is invalid"
|
||
msgstr "Token không hợp lệ"
|
||
|
||
#: engine/vibes_auth/viewsets.py:45
|
||
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:99
|
||
msgid "password reset successfully"
|
||
msgstr "Mật khẩu đã được đặt lại thành công!"
|
||
|
||
#: engine/vibes_auth/viewsets.py:132
|
||
msgid "account already activated!"
|
||
msgstr "Bạn đã kích hoạt tài khoản..."
|