mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-02 02:00:49 +08:00
feat(i18n): add missing zh-Hans translations (#15032)
## Summary This PR completes the missing Simplified Chinese (`zh-Hans`) i18n resource coverage. The current i18n completeness calculation is based on key coverage between `en.json` and each locale resource file. Before this change, `zh-Hans.json` contained 2331 keys while `en.json` contained 2406 keys, resulting in a displayed completeness of 97%. This change adds the 75 missing `zh-Hans` translation entries and updates the generated completeness value for `zh-Hans` from 97% to 100%. ## Changes - Added 75 missing Simplified Chinese translations to `packages/frontend/i18n/src/resources/zh-Hans.json`. - Updated `packages/frontend/i18n/src/i18n-completenesses.json` so `zh-Hans` now reports 100% completeness. - Kept the scope limited to missing i18n resource keys only. ## Notes This PR does not modify existing `zh-Hans` translations, terminology choices, or hardcoded English UI strings outside the i18n resource files. ## Verification - Confirmed `zh-Hans.json` parses successfully. - Confirmed `zh-Hans.json` now has full key coverage against `en.json`. - Confirmed missing key count is 0. - Confirmed computed `zh-Hans` completeness is 100%. - Ran pre-commit checks: - `yarn lint-staged` - `yarn lint:ox` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Completed Chinese (Simplified) translations with 100% coverage for the application. * Added new translations across multiple areas: appearance and image settings, export functionality, document import from Bear and Obsidian, analytics and viewer information, editor settings including auto-date titles and icon options, workspace sharing controls, calendar integration with CalDAV support, share menu tooltips, and comprehensive error messages. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/15032?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
"sv-SE": 93,
|
||||
"uk": 93,
|
||||
"ur": 100,
|
||||
"zh-Hans": 97,
|
||||
"zh-Hans": 100,
|
||||
"zh-Hant": 93,
|
||||
"tr": 100
|
||||
}
|
||||
|
||||
@@ -228,6 +228,9 @@
|
||||
"com.affine.appearanceSettings.color.title": "配色方案",
|
||||
"com.affine.appearanceSettings.customize-theme.description": "在此编辑所有AFFiNE主题变量",
|
||||
"com.affine.appearanceSettings.customize-theme.title": "自定义主题",
|
||||
"com.affine.appearanceSettings.images.title": "图片",
|
||||
"com.affine.appearanceSettings.images.antialiasing.title": "平滑图片渲染",
|
||||
"com.affine.appearanceSettings.images.antialiasing.description": "禁用后,图片将使用最近邻缩放渲染,以保持像素清晰。",
|
||||
"com.affine.appearanceSettings.customize-theme.reset": "重置所有",
|
||||
"com.affine.appearanceSettings.customize-theme.open": "打开主题编辑器",
|
||||
"com.affine.appearanceSettings.font.description": "选择您的字体样式",
|
||||
@@ -446,6 +449,8 @@
|
||||
"com.affine.copy.asImage.notAvailable.action": "下载客户端",
|
||||
"com.affine.copy.asImage.success": "图片已复制",
|
||||
"com.affine.copy.asImage.failed": "图片复制失败",
|
||||
"com.affine.export.copy-markdown": "复制为 Markdown",
|
||||
"com.affine.export.copied-as-markdown": "已复制为 Markdown",
|
||||
"com.affine.confirmModal.button.cancel": "取消",
|
||||
"com.affine.confirmModal.button.ok": "确认",
|
||||
"com.affine.currentYear": "今年",
|
||||
@@ -609,6 +614,8 @@
|
||||
"com.affine.import-clipper.dialog.errorLoad": "读取内容失败,请重试。",
|
||||
"com.affine.import_file": "支持 Markdown/Notion",
|
||||
"com.affine.import.affine-workspace-data": "AFFiNE 工作区数据",
|
||||
"com.affine.import.bear": "Bear(.bear2bk,实验性)",
|
||||
"com.affine.import.bear.tooltip": "导入你的 Bear 笔记备份。标签将转换为 AFFiNE 标签和文件夹。",
|
||||
"com.affine.import.docx": "Microsoft Word (.docx)",
|
||||
"com.affine.import.docx.tooltip": "导入你的 .docx 文件。",
|
||||
"com.affine.import.html-files": "HTML",
|
||||
@@ -619,6 +626,8 @@
|
||||
"com.affine.import.modal.tip": "如果您希望请求支持其他文件类型,请随时告诉我们",
|
||||
"com.affine.import.notion": "Notion",
|
||||
"com.affine.import.notion.tooltip": "导入您的 Notion 数据。支持导入格式:HTML 带子页面。",
|
||||
"com.affine.import.obsidian": "Obsidian 仓库(实验性)",
|
||||
"com.affine.import.obsidian.tooltip": "导入 Obsidian 仓库。选择一个文件夹以导入所有笔记、图片和资源,并解析 wiki 链接。",
|
||||
"com.affine.import.snapshot": "快照",
|
||||
"com.affine.import.snapshot.tooltip": "导入您的 AFFiNE 工作区和页面快照文件。",
|
||||
"com.affine.import.dotaffinefile": ".affine 文件",
|
||||
@@ -1131,6 +1140,22 @@
|
||||
"com.affine.payment.license-success.hint": "您可以在 设置 > 工作区 > 许可证 > 使用已购买的密钥 中使用此密钥进行升级",
|
||||
"com.affine.payment.license-success.open-affine": "打开 AFFiNE",
|
||||
"com.affine.payment.license-success.copy": "复制密钥到剪贴板",
|
||||
"com.affine.doc.analytics.title": "查看访问分析",
|
||||
"com.affine.doc.analytics.summary.total": "(共 {{count}} 次)",
|
||||
"com.affine.doc.analytics.window.last-days": "最近 {{days}} 天",
|
||||
"com.affine.doc.analytics.metric.total": "总计",
|
||||
"com.affine.doc.analytics.metric.unique": "独立",
|
||||
"com.affine.doc.analytics.metric.guest": "访客",
|
||||
"com.affine.doc.analytics.chart.total-views": "总浏览量",
|
||||
"com.affine.doc.analytics.chart.unique-views": "独立浏览量",
|
||||
"com.affine.doc.analytics.error.load-analytics": "无法加载分析数据。",
|
||||
"com.affine.doc.analytics.error.load-viewers": "无法加载查看者。",
|
||||
"com.affine.doc.analytics.empty.no-page-views": "此时间范围内没有页面浏览。",
|
||||
"com.affine.doc.analytics.empty.no-viewers": "此时间范围内没有查看者。",
|
||||
"com.affine.doc.analytics.viewers.title": "查看者",
|
||||
"com.affine.doc.analytics.viewers.show-all": "显示所有查看者",
|
||||
"com.affine.doc.analytics.paywall.open-pricing": "打开定价方案",
|
||||
"com.affine.doc.analytics.paywall.toast": "超过 7 天的文档分析需要 AFFiNE Team 订阅。",
|
||||
"com.affine.peek-view-controls.close": "关闭",
|
||||
"com.affine.peek-view-controls.open-doc": "打开这篇文档",
|
||||
"com.affine.peek-view-controls.open-doc-in-edgeless": "在无界中打开",
|
||||
@@ -1345,10 +1370,22 @@
|
||||
"com.affine.settings.editorSettings.general.default-code-block.wrap.title": "在代码块中自动换行",
|
||||
"com.affine.settings.editorSettings.general.default-new-doc.description": "创建文档的预设模式",
|
||||
"com.affine.settings.editorSettings.general.default-new-doc.title": "创建文档的预设模式",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.title": "用当前日期自动命名新文档",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.description": "自动用今天的日期命名空白新文档。",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.title": "新文档日期格式",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.description": "选择自动新文档标题使用的日期格式。",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.dd-mm-yyyy": "DD-MM-YYYY",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.mm-dd-yyyy": "MM-DD-YYYY",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.yyyy-mm-dd": "YYYY-MM-DD",
|
||||
"com.affine.settings.editorSettings.general.auto-date-title.format.journal": "日记样式(本地化)",
|
||||
"com.affine.settings.editorSettings.general.add-icon-option.title": "显示添加图标选项",
|
||||
"com.affine.settings.editorSettings.general.add-icon-option.description": "显示或隐藏无图标文档的添加图标选项。",
|
||||
"com.affine.settings.editorSettings.general.font-family.custom.description": "自定义您的文本体验。",
|
||||
"com.affine.settings.editorSettings.general.font-family.custom.title": "自定义字体",
|
||||
"com.affine.settings.editorSettings.general.font-family.description": "选择编辑器使用的字体。",
|
||||
"com.affine.settings.editorSettings.general.font-family.title": "字体",
|
||||
"com.affine.settings.editorSettings.general.font-size.description": "调整基础字号以提升可读性。",
|
||||
"com.affine.settings.editorSettings.general.font-size.title": "字号",
|
||||
"com.affine.settings.editorSettings.general.spell-check.description": "自动检测并纠正拼写错误。",
|
||||
"com.affine.settings.editorSettings.general.spell-check.title": "拼写检查",
|
||||
"com.affine.settings.editorSettings.general.spell-check.restart-hint": "设置已更改;请重新启动应用程序。<1>重新启动</1>",
|
||||
@@ -1672,6 +1709,8 @@
|
||||
"com.affine.settings.workspace.sharing.title": "分享",
|
||||
"com.affine.settings.workspace.sharing.url-preview.description": "允许 Slack 和其他社交应用程序展开 URL,即使文档仅由工作区成员访问。",
|
||||
"com.affine.settings.workspace.sharing.url-preview.title": "始终启用 URL 预览",
|
||||
"com.affine.settings.workspace.sharing.workspace-sharing.description": "控制此工作区中的页面是否可以公开分享。关闭后将阻止新的分享,并禁止外部访问现有分享。",
|
||||
"com.affine.settings.workspace.sharing.workspace-sharing.title": "允许工作区页面分享",
|
||||
"com.affine.settings.workspace.affine-ai.title": "AFFiNE AI",
|
||||
"com.affine.settings.workspace.affine-ai.label": "启用 AFFiNE AI 助手",
|
||||
"com.affine.settings.workspace.affine-ai.description": "允许工作区成员使用 AFFiNE AI 功能。此设置不会影响计费。工作区成员通过个人帐户使用 AFFiNE AI。",
|
||||
@@ -1736,6 +1775,7 @@
|
||||
"com.affine.share-menu.option.link.no-access.description": "只有此工作区的成员可以打开此链接。",
|
||||
"com.affine.share-menu.option.link.readonly": "只读",
|
||||
"com.affine.share-menu.option.link.readonly.description": "任何人可以访问该链接",
|
||||
"com.affine.share-menu.workspace-sharing.disabled.tooltip": "此工作区已关闭分享。请联系管理员启用。",
|
||||
"com.affine.share-menu.option.permission.can-manage": "可管理",
|
||||
"com.affine.share-menu.option.permission.can-edit": "可编辑",
|
||||
"com.affine.share-menu.option.permission.can-read": "可阅读",
|
||||
@@ -2144,14 +2184,44 @@
|
||||
"com.affine.integration.calendar.unsubscribe": "取消订阅",
|
||||
"com.affine.integration.calendar.new-title": "添加日历订阅的链接",
|
||||
"com.affine.integration.calendar.new-url-label": "日历订阅链接",
|
||||
"com.affine.integration.calendar.save-error": "保存日历设置时出错",
|
||||
"com.affine.integration.calendar.all-day": "全天",
|
||||
"com.affine.integration.calendar.account.load-error": "加载日历账户失败",
|
||||
"com.affine.integration.calendar.provider.load-error": "加载日历提供商失败",
|
||||
"com.affine.integration.calendar.auth.start-error": "启动日历授权失败",
|
||||
"com.affine.integration.calendar.account.unlink-error": "取消关联日历账户失败",
|
||||
"com.affine.integration.calendar.account.unlink": "取消关联",
|
||||
"com.affine.integration.calendar.account.link": "关联",
|
||||
"com.affine.integration.calendar.account.linked-empty": "尚未关联日历账户。",
|
||||
"com.affine.integration.calendar.account.status.failed": "授权失败:{{error}}",
|
||||
"com.affine.integration.calendar.account.status.failed-reconnect": "授权失败。请重新关联你的账户。",
|
||||
"com.affine.integration.calendar.account.count": "{{count}} 个日历",
|
||||
"com.affine.integration.calendar.caldav.link.title": "关联 CalDAV 账户",
|
||||
"com.affine.integration.calendar.caldav.link.failed": "关联 CalDAV 账户失败",
|
||||
"com.affine.integration.calendar.caldav.field.provider": "提供商",
|
||||
"com.affine.integration.calendar.caldav.field.provider.placeholder": "选择提供商",
|
||||
"com.affine.integration.calendar.caldav.field.provider.error": "请选择提供商。",
|
||||
"com.affine.integration.calendar.caldav.field.username": "用户名",
|
||||
"com.affine.integration.calendar.caldav.field.username.placeholder": "email@example.com",
|
||||
"com.affine.integration.calendar.caldav.field.username.error": "用户名为必填项。",
|
||||
"com.affine.integration.calendar.caldav.field.password": "密码",
|
||||
"com.affine.integration.calendar.caldav.field.password.placeholder": "密码或应用专用密码",
|
||||
"com.affine.integration.calendar.caldav.field.password.error": "密码为必填项。",
|
||||
"com.affine.integration.calendar.caldav.field.displayName": "显示名称(可选)",
|
||||
"com.affine.integration.calendar.caldav.field.displayName.placeholder": "我的 CalDAV",
|
||||
"com.affine.integration.calendar.caldav.hint.app-password": "需要应用专用密码。",
|
||||
"com.affine.integration.calendar.caldav.hint.learn-more": "了解更多",
|
||||
"com.affine.integration.calendar.caldav.hint.guide": "提供商设置指南",
|
||||
"com.affine.integration.calendar.new-doc": "新建文档",
|
||||
"com.affine.integration.calendar.show-events": "显示日历事件",
|
||||
"com.affine.integration.calendar.show-events-desc": "启用此设置后,您可以将日历事件关联到 AFFiNE 的 Journal 中",
|
||||
"com.affine.integration.calendar.show-all-day-events": "显示全天事件",
|
||||
"com.affine.integration.calendar.unsubscribe-content": "您确定要取消订阅“{{name}}”吗?取消订阅此帐户将从 Journal 中删除其数据。",
|
||||
"com.affine.integration.calendar.no-journal": "未找到 {{date}} 的日记页面。请先创建日记页面。",
|
||||
"com.affine.integration.calendar.no-calendar": "尚未订阅日历。",
|
||||
"com.affine.integration.mcp-server.name": "MCP服务器",
|
||||
"com.affine.integration.mcp-server.desc": "允许其他 MCP 客户端搜索和 AFFiNE 的文档。",
|
||||
"com.affine.integration.mcp-server.copy-json.disabled-hint": "MCP token 仅显示一次。请删除并重新创建,以复制 JSON 配置。",
|
||||
"com.affine.audio.notes": "笔记",
|
||||
"com.affine.audio.transcribing": "转录",
|
||||
"com.affine.audio.transcribe.non-owner.confirm.title": "无法检索他人的 AI 结果",
|
||||
@@ -2193,12 +2263,15 @@
|
||||
"error.INTERNAL_SERVER_ERROR": "发生内部错误。",
|
||||
"error.NETWORK_ERROR": "网络错误。",
|
||||
"error.TOO_MANY_REQUEST": "请求过多。",
|
||||
"error.SSRF_BLOCKED_ERROR": "无效的 URL",
|
||||
"error.RESPONSE_TOO_LARGE_ERROR": "响应过大({{receivedBytes}} 字节),限制为 {{limitBytes}} 字节",
|
||||
"error.NOT_FOUND": "未找到资源。",
|
||||
"error.BAD_REQUEST": "错误请求。",
|
||||
"error.GRAPHQL_BAD_REQUEST": "GraphQL 请求错误,代码:{{code}},{{message}}",
|
||||
"error.HTTP_REQUEST_ERROR": "HTTP请求错误,信息:{{message}}",
|
||||
"error.EMAIL_SERVICE_NOT_CONFIGURED": "邮箱服务还未配置。",
|
||||
"error.QUERY_TOO_LONG": "查询太长,最大长度为{{max}}。",
|
||||
"error.IMAGE_FORMAT_NOT_SUPPORTED": "不支持的图片格式:{{format}}",
|
||||
"error.VALIDATION_ERROR": "验证错误,错误:{{errors}}",
|
||||
"error.USER_NOT_FOUND": "找不到用户。",
|
||||
"error.USER_AVATAR_NOT_FOUND": "用户头像未找到。",
|
||||
@@ -2242,6 +2315,7 @@
|
||||
"error.INVALID_HISTORY_TIMESTAMP": "提供的文档历史时间戳无效。",
|
||||
"error.DOC_HISTORY_NOT_FOUND": "在空间 {{spaceId}} 的 {{timestamp}} 时间的文档 {{docId}} 历史记录。",
|
||||
"error.BLOB_NOT_FOUND": "Blob {{blobId}} 未找到在空间 {{spaceId}}。",
|
||||
"error.BLOB_INVALID": "Blob 无效。",
|
||||
"error.EXPECT_TO_PUBLISH_DOC": "预期发布文档,而不是空间。",
|
||||
"error.EXPECT_TO_REVOKE_PUBLIC_DOC": "预期撤销公共文档,而不是空间。",
|
||||
"error.EXPECT_TO_GRANT_DOC_USER_ROLES": "期望在空间 {{spaceId}} 下的文档 {{docId}} 上授予角色,而不是在空间上。",
|
||||
@@ -2272,6 +2346,7 @@
|
||||
"error.WORKSPACE_ID_REQUIRED_FOR_TEAM_SUBSCRIPTION": "需要一个工作区来办理团队订阅。",
|
||||
"error.WORKSPACE_ID_REQUIRED_TO_UPDATE_TEAM_SUBSCRIPTION": "更新团队订阅需要工作区ID。",
|
||||
"error.MANAGED_BY_APP_STORE_OR_PLAY": "此订阅由 App Store 或 Google Play 管理。请在相应的商店中进行管理。",
|
||||
"error.CALENDAR_PROVIDER_REQUEST_ERROR": "日历提供商请求错误,状态:{{status}},消息:{{message}}",
|
||||
"error.COPILOT_SESSION_NOT_FOUND": "找不到Copilot会话。",
|
||||
"error.COPILOT_SESSION_INVALID_INPUT": "Copilot 会话输入无效。",
|
||||
"error.COPILOT_SESSION_DELETED": "Copilot 会话已被删除。",
|
||||
|
||||
Reference in New Issue
Block a user