From e2af806a24cff3911586d6f5f1b3a32176d2535b Mon Sep 17 00:00:00 2001 From: Ayfl Date: Sun, 12 Apr 2026 07:33:00 +0800 Subject: [PATCH 1/5] Add Simplified Chinese (zh-CN) admin locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable the zh-CN locale across the admin UI: add "zh-CN" to lingui.config.ts locales, register { code: "zh-CN", label: "简体中文" } in the admin SUPPORTED_LOCALES, and add the initial messages.po with Simplified Chinese translations at packages/admin/src/locales/zh-CN/messages.po. This provides localized strings for the admin interface. --- .changeset/zh-cn-translation.md | 5 + lingui.config.ts | 2 +- lunaria.config.ts | 4 + packages/admin/src/locales/config.ts | 1 + packages/admin/src/locales/zh-CN/messages.po | 176 +++++++++++++++++++ 5 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 .changeset/zh-cn-translation.md create mode 100644 packages/admin/src/locales/zh-CN/messages.po diff --git a/.changeset/zh-cn-translation.md b/.changeset/zh-cn-translation.md new file mode 100644 index 000000000..b9c384e3a --- /dev/null +++ b/.changeset/zh-cn-translation.md @@ -0,0 +1,5 @@ +--- +"@emdash-cms/admin": patch +--- + +Adds Chinese (Simplified) translation for the admin UI, including login page, settings page, and locale switching. diff --git a/lingui.config.ts b/lingui.config.ts index 81164fc6b..f944ddccc 100644 --- a/lingui.config.ts +++ b/lingui.config.ts @@ -2,7 +2,7 @@ import type { LinguiConfig } from "@lingui/conf"; const config: LinguiConfig = { sourceLocale: "en", - locales: ["en", "de"], + locales: ["en", "de", "zh-CN"], catalogs: [ { path: "/packages/admin/src/locales/{locale}/messages", diff --git a/lunaria.config.ts b/lunaria.config.ts index 4565929ef..b2ba980ab 100644 --- a/lunaria.config.ts +++ b/lunaria.config.ts @@ -14,6 +14,10 @@ export default defineConfig({ label: "Deutsch", lang: "de", }, + { + label: "简体中文", + lang: "zh-CN", + }, ], files: [ { diff --git a/packages/admin/src/locales/config.ts b/packages/admin/src/locales/config.ts index 8cb2829b0..8ac9a9185 100644 --- a/packages/admin/src/locales/config.ts +++ b/packages/admin/src/locales/config.ts @@ -25,6 +25,7 @@ export const SUPPORTED_LOCALES: SupportedLocale[] = [ /* First item is the default locale */ { code: "en", label: "English" }, { code: "de", label: "Deutsch" }, + { code: "zh-CN", label: "简体中文" }, ].filter((l) => validateLocaleCode(l.code)); export const SUPPORTED_LOCALE_CODES = new Set(SUPPORTED_LOCALES.map((l) => l.code)); diff --git a/packages/admin/src/locales/zh-CN/messages.po b/packages/admin/src/locales/zh-CN/messages.po new file mode 100644 index 000000000..29b085a6b --- /dev/null +++ b/packages/admin/src/locales/zh-CN/messages.po @@ -0,0 +1,176 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2026-04-04 12:28+0300\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: zh-CN\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#: packages/admin/src/components/LocaleSwitcher.tsx:72 +msgid " (default)" +msgstr "(默认)" + +#: packages/admin/src/components/LocaleSwitcher.tsx:107 +msgid "{label} — no translation" +msgstr "{label} — 无翻译" + +#: packages/admin/src/components/LocaleSwitcher.tsx:107 +msgid "{label} — view translation" +msgstr "{label} — 查看翻译" + +#: packages/admin/src/components/LocaleSwitcher.tsx:68 +msgid "All locales" +msgstr "所有语言" + +#: packages/admin/src/components/Settings.tsx:99 +msgid "Allow users from specific domains to sign up" +msgstr "允许来自特定域的用户注册" + +#: packages/admin/src/components/Settings.tsx:109 +msgid "API Tokens" +msgstr "API 令牌" + +#: packages/admin/src/components/LoginPage.tsx:253 +msgid "Authentication error: {error}" +msgstr "认证错误:{error}" + +#: packages/admin/src/components/LoginPage.tsx:174 +#: packages/admin/src/components/LoginPage.tsx:210 +msgid "Back to login" +msgstr "返回登录" + +#: packages/admin/src/components/LoginPage.tsx:158 +msgid "Check your email" +msgstr "查看您的邮箱" + +#: packages/admin/src/components/Settings.tsx:130 +msgid "Choose your preferred admin language" +msgstr "选择您的首选管理语言" + +#: packages/admin/src/components/LoginPage.tsx:169 +msgid "Click the link in the email to sign in." +msgstr "点击邮件中的链接即可登录。" + +#: packages/admin/src/components/Settings.tsx:110 +msgid "Create personal access tokens for programmatic API access" +msgstr "创建个人访问令牌以通过程序访问 API" + +#: packages/admin/src/components/LoginPage.tsx:358 +msgid "Don't have an account? <0>Sign up" +msgstr "还没有账号?<0>立即注册" + +#: packages/admin/src/components/Settings.tsx:115 +msgid "Email" +msgstr "邮箱" + +#: packages/admin/src/components/LoginPage.tsx:183 +msgid "Email address" +msgstr "邮箱地址" + +#: packages/admin/src/components/LoginPage.tsx:127 +#: packages/admin/src/components/LoginPage.tsx:132 +msgid "Failed to send magic link" +msgstr "发送免密登录链接失败" + +#: packages/admin/src/components/Settings.tsx:69 +msgid "General" +msgstr "常规" + +#: packages/admin/src/components/LoginPage.tsx:160 +msgid "If an account exists for <0>{email}, we've sent a sign-in link." +msgstr "如果存在与 <0>{email} 关联的账号,我们已发送登录链接。" + +#: packages/admin/src/components/Settings.tsx:129 +msgid "Language" +msgstr "语言" + +#: packages/admin/src/components/LocaleSwitcher.tsx:60 +msgid "Locale" +msgstr "语言区域" + +#: packages/admin/src/components/Settings.tsx:93 +msgid "Manage your passkeys and authentication" +msgstr "管理您的通行密钥和认证" + +#: packages/admin/src/components/LoginPage.tsx:313 +msgid "Or continue with" +msgstr "或继续使用" + +#: packages/admin/src/components/Settings.tsx:82 +msgid "Search engine optimization and verification" +msgstr "搜索引擎优化和验证" + +#: packages/admin/src/components/Settings.tsx:92 +msgid "Security" +msgstr "安全" + +#: packages/admin/src/components/Settings.tsx:98 +msgid "Self-Signup Domains" +msgstr "自助注册域" + +#: packages/admin/src/components/LoginPage.tsx:206 +msgid "Send magic link" +msgstr "发送免密登录链接" + +#: packages/admin/src/components/LoginPage.tsx:206 +msgid "Sending..." +msgstr "发送中..." + +#: packages/admin/src/components/Settings.tsx:81 +msgid "SEO" +msgstr "SEO" + +#: packages/admin/src/components/Settings.tsx:62 +msgid "Settings" +msgstr "设置" + +#: packages/admin/src/components/LoginPage.tsx:283 +msgid "Sign in to your site" +msgstr "登录到您的网站" + +#: packages/admin/src/components/LoginPage.tsx:284 +msgid "Sign in with email" +msgstr "使用邮箱登录" + +#: packages/admin/src/components/LoginPage.tsx:340 +msgid "Sign in with email link" +msgstr "使用邮箱链接登录" + +#: packages/admin/src/components/LoginPage.tsx:304 +msgid "Sign in with Passkey" +msgstr "使用通行密钥登录" + +#: packages/admin/src/components/Settings.tsx:70 +msgid "Site identity, logo, favicon, and reading preferences" +msgstr "网站标识、徽标、网站图标和阅读偏好" + +#: packages/admin/src/components/Settings.tsx:75 +msgid "Social Links" +msgstr "社交链接" + +#: packages/admin/src/components/Settings.tsx:76 +msgid "Social media profile links" +msgstr "社交媒体个人资料链接" + +#: packages/admin/src/components/LoginPage.tsx:170 +msgid "The link will expire in 15 minutes." +msgstr "链接将在 15 分钟后过期。" + +#: packages/admin/src/components/LoginPage.tsx:351 +msgid "Use your registered passkey to sign in securely." +msgstr "使用您注册的通行密钥安全登录。" + +#: packages/admin/src/components/Settings.tsx:116 +msgid "View email provider status and send test emails" +msgstr "查看邮件提供商状态并发送测试邮件" + +#: packages/admin/src/components/LoginPage.tsx:352 +msgid "We'll send you a link to sign in without a password." +msgstr "我们将向您发送一个无需密码即可登录的链接。" From 0a3bb3754743a98f8e431a9ca4d3506afc8e3eeb Mon Sep 17 00:00:00 2001 From: Ayfl Date: Mon, 13 Apr 2026 02:05:59 +0800 Subject: [PATCH 2/5] docs(locales): Update the Chinese translation file and add missing translation content. --- packages/admin/src/locales/zh-CN/messages.po | 578 +++++++++++++++++++ 1 file changed, 578 insertions(+) diff --git a/packages/admin/src/locales/zh-CN/messages.po b/packages/admin/src/locales/zh-CN/messages.po index 29b085a6b..ce941d22e 100644 --- a/packages/admin/src/locales/zh-CN/messages.po +++ b/packages/admin/src/locales/zh-CN/messages.po @@ -25,27 +25,101 @@ msgstr "{label} — 无翻译" msgid "{label} — view translation" msgstr "{label} — 查看翻译" +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:44 +msgid "1 year" +msgstr "1 年" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:42 +msgid "30 days" +msgstr "30 天" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:41 +msgid "7 days" +msgstr "7 天" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:43 +msgid "90 days" +msgstr "90 天" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:84 +#: packages/admin/src/components/users/roleDefinitions.ts:42 +msgid "Admin" +msgstr "管理员" + +#: packages/admin/src/components/WelcomeModal.tsx:25 +msgid "Administrator" +msgstr "管理员" + #: packages/admin/src/components/LocaleSwitcher.tsx:68 msgid "All locales" msgstr "所有语言" +#: packages/admin/src/components/users/UserList.tsx:42 +#: packages/admin/src/components/users/UserList.tsx:46 +msgid "All roles" +msgstr "所有角色" + #: packages/admin/src/components/Settings.tsx:99 msgid "Allow users from specific domains to sign up" msgstr "允许来自特定域的用户注册" #: packages/admin/src/components/Settings.tsx:109 +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:176 msgid "API Tokens" msgstr "API 令牌" +#: packages/admin/src/components/WelcomeModal.tsx:53 +msgid "As an administrator, you can invite other users from the Users section." +msgstr "作为管理员,您可以从"用户"部分邀请其他用户。" + #: packages/admin/src/components/LoginPage.tsx:253 msgid "Authentication error: {error}" msgstr "认证错误:{error}" +#: packages/admin/src/components/users/roleDefinitions.ts:30 +#: packages/admin/src/components/WelcomeModal.tsx:27 +msgid "Author" +msgstr "作者" + #: packages/admin/src/components/LoginPage.tsx:174 #: packages/admin/src/components/LoginPage.tsx:210 msgid "Back to login" msgstr "返回登录" +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:171 +msgid "Back to settings" +msgstr "返回设置" + +#: packages/admin/src/components/editor/BlockMenu.tsx:101 +#: packages/admin/src/components/PortableTextEditor.tsx:729 +msgid "Bullet List" +msgstr "无序列表" + +#: packages/admin/src/components/users/roleDefinitions.ts:25 +msgid "Can create content" +msgstr "可以创建内容" + +#: packages/admin/src/components/users/roleDefinitions.ts:37 +msgid "Can manage all content" +msgstr "可以管理所有内容" + +#: packages/admin/src/components/users/roleDefinitions.ts:31 +msgid "Can publish own content" +msgstr "可以发布自己的内容" + +#: packages/admin/src/components/users/roleDefinitions.ts:19 +msgid "Can view content" +msgstr "可以查看内容" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:318 +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:446 +msgid "Cancel" +msgstr "取消" + +#: packages/admin/src/components/AdminCommandPalette.tsx:193 +msgid "Categories" +msgstr "分类" + #: packages/admin/src/components/LoginPage.tsx:158 msgid "Check your email" msgstr "查看您的邮箱" @@ -58,14 +132,134 @@ msgstr "选择您的首选管理语言" msgid "Click the link in the email to sign in." msgstr "点击邮件中的链接即可登录。" +#: packages/admin/src/components/WelcomeModal.tsx:54 +msgid "Close" +msgstr "关闭" + +#: packages/admin/src/components/editor/BlockMenu.tsx:93 +#: packages/admin/src/components/PortableTextEditor.tsx:759 +msgid "Code Block" +msgstr "代码块" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:308 +msgid "Confirm" +msgstr "确认" + +#: packages/admin/src/components/AdminCommandPalette.tsx:365 +#: packages/admin/src/components/PortableTextEditor.tsx:1431 +msgid "Content" +msgstr "内容" + +#: packages/admin/src/components/Widgets.tsx:88 +msgid "Content Block" +msgstr "内容块" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:54 +msgid "Content Read" +msgstr "内容读取" + +#: packages/admin/src/components/AdminCommandPalette.tsx:185 +msgid "Content Types" +msgstr "内容类型" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:59 +msgid "Content Write" +msgstr "内容写入" + +#: packages/admin/src/components/users/roleDefinitions.ts:24 +#: packages/admin/src/components/WelcomeModal.tsx:28 +msgid "Contributor" +msgstr "贡献者" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:218 +msgid "Copied to clipboard" +msgstr "已复制到剪贴板" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:193 +msgid "Copy this token now — it won't be shown again." +msgstr "立即复制此令牌 — 它将不再显示。" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:211 +msgid "Copy token" +msgstr "复制令牌" + +#: packages/admin/src/components/PortableTextEditor.tsx:730 +msgid "Create a bullet list" +msgstr "创建无序列表" + +#: packages/admin/src/components/PortableTextEditor.tsx:740 +msgid "Create a numbered list" +msgstr "创建有序列表" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:389 +msgid "Create New Token" +msgstr "创建新令牌" + #: packages/admin/src/components/Settings.tsx:110 +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:178 msgid "Create personal access tokens for programmatic API access" msgstr "创建个人访问令牌以通过程序访问 API" +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:251 +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:443 +msgid "Create Token" +msgstr "创建令牌" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:60 +msgid "Create, update, delete content" +msgstr "创建、更新、删除内容" + +#. placeholder {0}: new Date(token.createdAt).toLocaleDateString() +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:290 +msgid "Created {0}" +msgstr "创建于 {0}" + +#: packages/admin/src/components/ContentTypeEditor.tsx:121 +msgid "Created At" +msgstr "创建时间" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:443 +msgid "Creating..." +msgstr "创建中..." + +#: packages/admin/src/components/AdminCommandPalette.tsx:131 +msgid "Dashboard" +msgstr "仪表板" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:226 +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:228 +msgid "Dismiss" +msgstr "关闭" + +#: packages/admin/src/components/Widgets.tsx:95 +msgid "Display a navigation menu" +msgstr "显示导航菜单" + +#: packages/admin/src/components/PortableTextEditor.tsx:769 +msgid "Divider" +msgstr "分隔线" + #: packages/admin/src/components/LoginPage.tsx:358 msgid "Don't have an account? <0>Sign up" msgstr "还没有账号?<0>立即注册" +#: packages/admin/src/components/ContentTypeEditor.tsx:117 +msgid "draft, published, or archived" +msgstr "草稿、已发布或已归档" + +#: packages/admin/src/components/ContentTypeEditor.tsx:69 +msgid "Drafts" +msgstr "草稿" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:403 +msgid "e.g., CI/CD Pipeline" +msgstr "例如:CI/CD 流水线" + +#: packages/admin/src/components/users/roleDefinitions.ts:36 +#: packages/admin/src/components/WelcomeModal.tsx:26 +msgid "Editor" +msgstr "编辑" + #: packages/admin/src/components/Settings.tsx:115 msgid "Email" msgstr "邮箱" @@ -74,23 +268,121 @@ msgstr "邮箱" msgid "Email address" msgstr "邮箱地址" +#. placeholder {0}: block.label +#: packages/admin/src/components/PortableTextEditor.tsx:1443 +msgid "Embed a {0}" +msgstr "嵌入 {0}" + +#: packages/admin/src/components/PortableTextEditor.tsx:1446 +msgid "Embeds" +msgstr "嵌入" + +#: packages/admin/src/components/ContentTypeEditor.tsx:85 +msgid "Enable full-text search on this collection" +msgstr "在此集合上启用全文搜索" + +#. placeholder {0}: new Date(token.expiresAt).toLocaleDateString() +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:280 +msgid "Expires {0}" +msgstr "过期于 {0}" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:429 +msgid "Expiry" +msgstr "过期时间" + #: packages/admin/src/components/LoginPage.tsx:127 #: packages/admin/src/components/LoginPage.tsx:132 msgid "Failed to send magic link" msgstr "发送免密登录链接失败" +#: packages/admin/src/components/users/roleDefinitions.ts:43 +msgid "Full access" +msgstr "完全访问权限" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:85 +msgid "Full admin access" +msgstr "完全管理员访问权限" + #: packages/admin/src/components/Settings.tsx:69 msgid "General" msgstr "常规" +#: packages/admin/src/components/WelcomeModal.tsx:143 +msgid "Get Started" +msgstr "开始使用" + +#: packages/admin/src/components/editor/BlockMenu.tsx:61 +#: packages/admin/src/components/PortableTextEditor.tsx:699 +msgid "Heading 1" +msgstr "标题 1" + +#: packages/admin/src/components/editor/BlockMenu.tsx:69 +#: packages/admin/src/components/PortableTextEditor.tsx:709 +msgid "Heading 2" +msgstr "标题 2" + +#: packages/admin/src/components/editor/BlockMenu.tsx:77 +#: packages/admin/src/components/PortableTextEditor.tsx:719 +msgid "Heading 3" +msgstr "标题 3" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:203 +msgid "Hide token" +msgstr "隐藏令牌" + +#: packages/admin/src/components/ContentTypeEditor.tsx:103 +msgid "ID" +msgstr "ID" + #: packages/admin/src/components/LoginPage.tsx:160 msgid "If an account exists for <0>{email}, we've sent a sign-in link." msgstr "如果存在与 <0>{email} 关联的账号,我们已发送登录链接。" +#: packages/admin/src/components/PortableTextEditor.tsx:1413 +msgid "Image" +msgstr "图片" + +#: packages/admin/src/components/AdminCommandPalette.tsx:227 +msgid "Import" +msgstr "导入" + +#: packages/admin/src/components/PortableTextEditor.tsx:750 +msgid "Insert a blockquote" +msgstr "插入引用块" + +#: packages/admin/src/components/PortableTextEditor.tsx:760 +msgid "Insert a code block" +msgstr "插入代码块" + +#: packages/admin/src/components/PortableTextEditor.tsx:770 +msgid "Insert a horizontal rule" +msgstr "插入水平分隔线" + +#: packages/admin/src/components/PortableTextEditor.tsx:1428 +msgid "Insert a reusable section" +msgstr "插入可复用区块" + +#: packages/admin/src/components/PortableTextEditor.tsx:1414 +msgid "Insert an image" +msgstr "插入图片" + #: packages/admin/src/components/Settings.tsx:129 msgid "Language" msgstr "语言" +#: packages/admin/src/components/PortableTextEditor.tsx:700 +msgid "Large section heading" +msgstr "大章节标题" + +#. placeholder {0}: new Date(token.lastUsedAt).toLocaleDateString() +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:285 +msgid "Last used {0}" +msgstr "最后使用于 {0}" + +#: packages/admin/src/components/WelcomeModal.tsx:143 +msgid "Loading..." +msgstr "加载中..." + #: packages/admin/src/components/LocaleSwitcher.tsx:60 msgid "Locale" msgstr "语言区域" @@ -99,18 +391,181 @@ msgstr "语言区域" msgid "Manage your passkeys and authentication" msgstr "管理您的通行密钥和认证" +#: packages/admin/src/components/PortableTextEditor.tsx:1417 +msgid "Media" +msgstr "媒体" + +#: packages/admin/src/components/AdminCommandPalette.tsx:154 +msgid "Media Library" +msgstr "媒体库" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:64 +msgid "Media Read" +msgstr "媒体读取" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:69 +msgid "Media Write" +msgstr "媒体写入" + +#: packages/admin/src/components/PortableTextEditor.tsx:710 +msgid "Medium section heading" +msgstr "中章节标题" + +#: packages/admin/src/components/Widgets.tsx:94 +msgid "Menu" +msgstr "菜单" + +#: packages/admin/src/components/AdminCommandPalette.tsx:161 +msgid "Menus" +msgstr "菜单" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:80 +msgid "Modify collection schemas" +msgstr "修改集合模式" + +#: packages/admin/src/components/AdminCommandPalette.tsx:335 +msgid "Navigation" +msgstr "导航" + +#: packages/admin/src/components/AdminCommandPalette.tsx:466 +msgid "new tab" +msgstr "新标签页" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:263 +msgid "No API tokens yet. Create one to get started." +msgstr "暂无 API 令牌。创建一个以开始使用。" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:40 +msgid "No expiry" +msgstr "永不过期" + +#: packages/admin/src/components/PortableTextEditor.tsx:940 +msgid "No results" +msgstr "无结果" + +#: packages/admin/src/components/AdminCommandPalette.tsx:452 +msgid "No results found" +msgstr "未找到结果" + +#: packages/admin/src/components/editor/BlockMenu.tsx:109 +#: packages/admin/src/components/PortableTextEditor.tsx:739 +msgid "Numbered List" +msgstr "有序列表" + #: packages/admin/src/components/LoginPage.tsx:313 msgid "Or continue with" msgstr "或继续使用" +#: packages/admin/src/components/editor/BlockMenu.tsx:53 +msgid "Paragraph" +msgstr "段落" + +#: packages/admin/src/components/AdminCommandPalette.tsx:219 +msgid "Plugins" +msgstr "插件" + +#: packages/admin/src/components/ContentTypeEditor.tsx:79 +msgid "Preview" +msgstr "预览" + +#: packages/admin/src/components/ContentTypeEditor.tsx:80 +msgid "Preview content before publishing" +msgstr "发布前预览内容" + +#: packages/admin/src/components/ContentTypeEditor.tsx:133 +msgid "Published At" +msgstr "发布时间" + +#: packages/admin/src/components/editor/BlockMenu.tsx:85 +#: packages/admin/src/components/PortableTextEditor.tsx:749 +msgid "Quote" +msgstr "引用" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:75 +msgid "Read collection schemas" +msgstr "读取集合模式" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:55 +msgid "Read content entries" +msgstr "读取内容条目" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:65 +msgid "Read media files" +msgstr "读取媒体文件" + +#: packages/admin/src/components/ContentTypeEditor.tsx:74 +msgid "Revisions" +msgstr "修订版本" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:326 +msgid "Revoke token" +msgstr "撤销令牌" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:301 +msgid "Revoke?" +msgstr "撤销?" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:308 +msgid "Revoking..." +msgstr "撤销中..." + +#: packages/admin/src/components/Widgets.tsx:89 +msgid "Rich text content" +msgstr "富文本内容" + +#: packages/admin/src/components/users/roleDefinitions.ts:61 +msgid "Role {role}" +msgstr "角色 {role}" + +#: packages/admin/src/components/ContentTypeEditor.tsx:70 +msgid "Save content as draft before publishing" +msgstr "发布前将内容保存为草稿" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:74 +msgid "Schema Read" +msgstr "模式读取" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:79 +msgid "Schema Write" +msgstr "模式写入" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:409 +msgid "Scopes" +msgstr "权限范围" + +#. placeholder {0}: token.scopes.join(", ") +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:277 +msgid "Scopes: {0}" +msgstr "权限范围:{0}" + +#: packages/admin/src/components/ContentTypeEditor.tsx:84 +msgid "Search" +msgstr "搜索" + #: packages/admin/src/components/Settings.tsx:82 msgid "Search engine optimization and verification" msgstr "搜索引擎优化和验证" +#: packages/admin/src/components/AdminCommandPalette.tsx:425 +msgid "Search pages and content..." +msgstr "搜索页面和内容..." + +#: packages/admin/src/components/PortableTextEditor.tsx:1427 +msgid "Section" +msgstr "区块" + +#: packages/admin/src/components/AdminCommandPalette.tsx:177 +msgid "Sections" +msgstr "区块" + #: packages/admin/src/components/Settings.tsx:92 msgid "Security" msgstr "安全" +#: packages/admin/src/components/AdminCommandPalette.tsx:243 +msgid "Security Settings" +msgstr "安全设置" + #: packages/admin/src/components/Settings.tsx:98 msgid "Self-Signup Domains" msgstr "自助注册域" @@ -127,10 +582,15 @@ msgstr "发送中..." msgid "SEO" msgstr "SEO" +#: packages/admin/src/components/AdminCommandPalette.tsx:235 #: packages/admin/src/components/Settings.tsx:62 msgid "Settings" msgstr "设置" +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:203 +msgid "Show token" +msgstr "显示令牌" + #: packages/admin/src/components/LoginPage.tsx:283 msgid "Sign in to your site" msgstr "登录到您的网站" @@ -151,6 +611,14 @@ msgstr "使用通行密钥登录" msgid "Site identity, logo, favicon, and reading preferences" msgstr "网站标识、徽标、网站图标和阅读偏好" +#: packages/admin/src/components/ContentTypeEditor.tsx:109 +msgid "Slug" +msgstr "Slug" + +#: packages/admin/src/components/PortableTextEditor.tsx:720 +msgid "Small section heading" +msgstr "小章节标题" + #: packages/admin/src/components/Settings.tsx:75 msgid "Social Links" msgstr "社交链接" @@ -159,14 +627,76 @@ msgstr "社交链接" msgid "Social media profile links" msgstr "社交媒体个人资料链接" +#: packages/admin/src/components/ContentTypeEditor.tsx:115 +msgid "Status" +msgstr "状态" + +#: packages/admin/src/components/users/roleDefinitions.ts:18 +#: packages/admin/src/components/WelcomeModal.tsx:29 +msgid "Subscriber" +msgstr "订阅者" + +#: packages/admin/src/components/AdminCommandPalette.tsx:202 +msgid "Tags" +msgstr "标签" + #: packages/admin/src/components/LoginPage.tsx:170 msgid "The link will expire in 15 minutes." msgstr "链接将在 15 分钟后过期。" +#: packages/admin/src/components/AdminCommandPalette.tsx:470 +msgid "to close" +msgstr "关闭" + +#: packages/admin/src/components/AdminCommandPalette.tsx:460 +msgid "to select" +msgstr "选择" + +#. placeholder {0}: newToken.info.name +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:190 +msgid "Token created: {0}" +msgstr "令牌已创建:{0}" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:400 +msgid "Token Name" +msgstr "令牌名称" + +#: packages/admin/src/components/ContentTypeEditor.tsx:75 +msgid "Track content history" +msgstr "跟踪内容历史" + +#: packages/admin/src/components/ContentTypeEditor.tsx:105 +msgid "Unique identifier (ULID)" +msgstr "唯一标识符 (ULID)" + +#: packages/admin/src/components/users/useRolesConfig.ts:7 +msgid "Unknown" +msgstr "未知" + +#: packages/admin/src/components/users/roleDefinitions.ts:62 +msgid "Unknown role" +msgstr "未知角色" + +#: packages/admin/src/components/ContentTypeEditor.tsx:127 +msgid "Updated At" +msgstr "更新时间" + +#: packages/admin/src/components/settings/ApiTokenSettings.tsx:70 +msgid "Upload and delete media" +msgstr "上传和删除媒体" + +#: packages/admin/src/components/ContentTypeEditor.tsx:111 +msgid "URL-friendly identifier" +msgstr "URL 友好的标识符" + #: packages/admin/src/components/LoginPage.tsx:351 msgid "Use your registered passkey to sign in securely." msgstr "使用您注册的通行密钥安全登录。" +#: packages/admin/src/components/AdminCommandPalette.tsx:211 +msgid "Users" +msgstr "用户" + #: packages/admin/src/components/Settings.tsx:116 msgid "View email provider status and send test emails" msgstr "查看邮件提供商状态并发送测试邮件" @@ -174,3 +704,51 @@ msgstr "查看邮件提供商状态并发送测试邮件" #: packages/admin/src/components/LoginPage.tsx:352 msgid "We'll send you a link to sign in without a password." msgstr "我们将向您发送一个无需密码即可登录的链接。" + +#: packages/admin/src/components/WelcomeModal.tsx:96 +msgid "Welcome to EmDash, {firstName}!" +msgstr "欢迎使用 EmDash,{firstName}!" + +#: packages/admin/src/components/WelcomeModal.tsx:96 +msgid "Welcome to EmDash!" +msgstr "欢迎使用 EmDash!" + +#: packages/admin/src/components/ContentTypeEditor.tsx:123 +msgid "When the entry was created" +msgstr "条目创建时间" + +#: packages/admin/src/components/ContentTypeEditor.tsx:129 +msgid "When the entry was last modified" +msgstr "条目最后修改时间" + +#: packages/admin/src/components/ContentTypeEditor.tsx:135 +msgid "When the entry was published" +msgstr "条目发布时间" + +#: packages/admin/src/components/AdminCommandPalette.tsx:169 +msgid "Widgets" +msgstr "小部件" + +#: packages/admin/src/components/WelcomeModal.tsx:43 +msgid "You can create and edit your own content." +msgstr "您可以创建和编辑自己的内容。" + +#: packages/admin/src/components/WelcomeModal.tsx:42 +msgid "You can manage content, media, menus, and taxonomies." +msgstr "您可以管理内容、媒体、菜单和分类法。" + +#: packages/admin/src/components/WelcomeModal.tsx:44 +msgid "You can view and contribute to the site." +msgstr "您可以查看和贡献网站内容。" + +#: packages/admin/src/components/WelcomeModal.tsx:41 +msgid "You have full access to manage this site, including users, settings, and all content." +msgstr "您拥有完全访问权限来管理此网站,包括用户、设置和所有内容。" + +#: packages/admin/src/components/WelcomeModal.tsx:39 +msgid "Your account has been created successfully." +msgstr "您的账号已成功创建。" + +#: packages/admin/src/components/WelcomeModal.tsx:40 +msgid "Your Role" +msgstr "您的角色" From 5b090f7936510fb8d0e6210f5bfe902360a40585 Mon Sep 17 00:00:00 2001 From: "emdashbot[bot]" Date: Mon, 13 Apr 2026 10:12:53 +0000 Subject: [PATCH 3/5] style: format --- lunaria.config.ts | 6 +++--- packages/admin/src/locales/config.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lunaria.config.ts b/lunaria.config.ts index 545e72697..06142e1d3 100644 --- a/lunaria.config.ts +++ b/lunaria.config.ts @@ -18,10 +18,10 @@ export default defineConfig({ label: "Français", lang: "fr", }, - { - label: "简体中文", + { + label: "简体中文", lang: "zh-CN", - }, + }, ], files: [ { diff --git a/packages/admin/src/locales/config.ts b/packages/admin/src/locales/config.ts index 87667f9a7..707b1e825 100644 --- a/packages/admin/src/locales/config.ts +++ b/packages/admin/src/locales/config.ts @@ -26,7 +26,7 @@ export const SUPPORTED_LOCALES: SupportedLocale[] = [ { code: "en", label: "English" }, { code: "de", label: "Deutsch" }, { code: "pt-BR", label: "Português (Brasil)" }, - { code: "zh-CN", label: "简体中文" }, + { code: "zh-CN", label: "简体中文" }, ].filter((l) => validateLocaleCode(l.code)); export const SUPPORTED_LOCALE_CODES = new Set(SUPPORTED_LOCALES.map((l) => l.code)); From f8034b48ab83df2153de0a140125dca3fb5a0770 Mon Sep 17 00:00:00 2001 From: "emdashbot[bot]" Date: Mon, 13 Apr 2026 10:34:04 +0000 Subject: [PATCH 4/5] style: format --- lunaria.config.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lunaria.config.ts b/lunaria.config.ts index d0c2cbede..7b34b974b 100644 --- a/lunaria.config.ts +++ b/lunaria.config.ts @@ -18,18 +18,18 @@ export default defineConfig({ label: "Français", lang: "fr", }, - { - lang: "pt-BR", - label: "Português (Brasil)" + { + lang: "pt-BR", + label: "Português (Brasil)", }, - { + { label: "العربية", lang: "ar", }, { label: "简体中文", lang: "zh-CN", - }, + }, ], files: [ { From 4844b77933f1e3343e1cc4e82e17ed4d79a56e9f Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Mon, 13 Apr 2026 11:34:53 +0100 Subject: [PATCH 5/5] Add Arabic locale support to configuration --- packages/admin/src/locales/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/admin/src/locales/config.ts b/packages/admin/src/locales/config.ts index 707b1e825..59e6f8fa1 100644 --- a/packages/admin/src/locales/config.ts +++ b/packages/admin/src/locales/config.ts @@ -26,6 +26,7 @@ export const SUPPORTED_LOCALES: SupportedLocale[] = [ { code: "en", label: "English" }, { code: "de", label: "Deutsch" }, { code: "pt-BR", label: "Português (Brasil)" }, + { code: "ar", label: "العربية" }, { code: "zh-CN", label: "简体中文" }, ].filter((l) => validateLocaleCode(l.code));