Updated DeepL API requests to include the `Authorization` header with the auth key instead of passing it as a form parameter. This aligns with updated API requirements and ensures compatibility. + I18N
1051 lines
34 KiB
Text
1051 lines
34 KiB
Text
#
|
||
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 <CONTACT@FUREUNOIR.COM>\n"
|
||
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
|
||
"Language: zh-hans\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标准的邮件营销活动一键退订接口。该接口支持RFC 8058定义的List-Unsubscribe-Post标头机制,允许邮件客户端用户通过单次点击即可完成退订,无需离开邮件应用程序。令牌可作为查询参数或请求主体内容提供。\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 ""
|
||
"记录收件人打开营销邮件的时间。当邮件中嵌入的追踪像素(1x1透明GIF)被收件人的邮件客户端加载时,该接口将自动调用。\n"
|
||
"\n"
|
||
"**工作原理:** 1. 每封营销邮件均包含带`tid`参数的唯一追踪像素URL 2. 邮件被打开且图片加载时调用此接口 3. 收件人状态更新为\"已打开\"并记录时间戳 4. 营销活动总打开次数同步更新 **隐私注意事项:**\n"
|
||
"- 仅记录首次打开(后续打开将忽略)- 除跟踪ID外不记录任何个人信息- 禁用图片加载的用户不会触发此事件**响应机制:**无论跟踪是否成功,均返回1x1透明GIF图像,以确保行为一致性并防止信息泄露。"
|
||
|
||
#: 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 "每个活动-接收者组合专属的跟踪ID(UUID)。该ID将打开事件与特定接收者和活动关联起来。"
|
||
|
||
#: engine/vibes_auth/docs/drf/emailing.py:241
|
||
msgid ""
|
||
"1x1 transparent GIF image. Always returned regardless of tracking status to "
|
||
"maintain consistent behavior."
|
||
msgstr "1x1透明GIF图像。无论跟踪状态如何,始终返回该图像以保持行为一致性。"
|
||
|
||
#: 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 "当未提供跟踪ID时返回此状态码。注意:无效的跟踪ID仍会返回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 "在特定主题内回复、关闭和 ping。"
|
||
|
||
#: 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 "追踪ID"
|
||
|
||
#: 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 "将新用户推荐给我们的用户的 b64-encoded uuid。"
|
||
|
||
#: 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 "管理员一次性密码"
|
||
|
||
#: engine/vibes_auth/models.py:203
|
||
msgid "admin OTP codes"
|
||
msgstr "管理员一次性密码"
|
||
|
||
#: 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 "属性 \"必须是一个字典"
|
||
|
||
#: 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 复制并粘贴到浏览器中\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"
|
||
" 电子邮件。"
|
||
|
||
#: engine/vibes_auth/templates/user_reset_password_email.html:102
|
||
#, python-format
|
||
msgid "best regards,<br>The %(project_name)s team"
|
||
msgstr "致以最诚挚的问候,<br>%(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 ""
|
||
"激活\n"
|
||
" 账户"
|
||
|
||
#: engine/vibes_auth/templates/user_verification_email.html:102
|
||
#, python-format
|
||
msgid "best regards,<br>the %(project_name)s team"
|
||
msgstr "致以最崇高的敬意,<br>%(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 "
|
||
"令牌(访问和刷新)。它建立在基本令牌视图之上,并确保适当的速率限制,以防止暴力攻击。"
|
||
|
||
#: 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 Web 标记 (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 ""
|
||
"用户视图集实施。\n"
|
||
"该类提供了一组操作,用于管理用户相关数据,如创建、检索、更新、删除以及自定义操作,包括密码重置、上传头像、激活账户和合并最近查看的项目。该类对 mixins 和 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 "您已经激活了账户..."
|