diff --git a/backend/i18n/source/backend_zh.json b/backend/i18n/source/backend_zh.json
new file mode 100644
index 000000000..2c26e0a9b
--- /dev/null
+++ b/backend/i18n/source/backend_zh.json
@@ -0,0 +1,375 @@
+{
+ "annotations_AbsoluteUrl": "字段 '{name|lower}' 必须是绝对 URL。",
+ "annotations_Compare": "字段 '{name|lower}' 必须与 {other|lower} 相同。",
+ "annotations_EmailAddress": "字段 '{name|lower}' 不是有效的电子邮件地址。",
+ "annotations_Range": "字段 '{name|lower}' 必须介于 {min} 和 {max} 之间。",
+ "annotations_RegularExpression": "字段 '{name|lower}' 无法通过表达式验证。",
+ "annotations_Required": "字段 '{name|lower}' 是必需的。",
+ "annotations_StringLength": "字段 '{name|lower}' 必须是最大长度为 {max} 的字符串。",
+ "annotations_StringLengthMinimum": "字段 '{name|lower}' 必须是最小长度为 {min} 且最大长度为 {max} 的字符串。",
+ "apps.clients.idAlreadyExists": "已存在具有相同 ID 的客户端。",
+ "apps.contributors.cannotChangeYourself": "你不能改变你自己的角色。",
+ "apps.contributors.maxReached": "您已达到计划的最大贡献者数量。",
+ "apps.contributors.onlyOneOwner": "无法删除唯一的所有者。",
+ "apps.languages.fallbackNotFound": "应用没有后备语言 '{fallback}'。",
+ "apps.languages.languageAlreadyAdded": "语言已经添加。",
+ "apps.languages.masterLanguageNoFallbacks": "主语言不能有后备语言。",
+ "apps.languages.masterLanguageNotOptional": "主语言不能是可选的。",
+ "apps.languages.masterLanguageNotRemovable": "无法删除主语言。",
+ "apps.nameAlreadyExists": "同名应用已经存在。",
+ "apps.notImage": "文件不是图像",
+ "apps.plans.notFound": "不存在具有此 ID 的计划。",
+ "apps.plans.notPlanOwner": "计划只能由最初配置计划的用户更改。",
+ "apps.roles.defaultRoleNotRemovable": "无法删除默认角色。",
+ "apps.roles.defaultRoleNotUpdateable": "无法更新默认角色。",
+ "apps.roles.nameAlreadyExists": "已存在同名角色。",
+ "apps.roles.usedRoleByClientsNotRemovable": "分配客户端时无法删除角色。",
+ "apps.roles.usedRoleByContributorsNotRemovable": "当分配了贡献者时无法删除角色。",
+ "assets.folderNotFound": "Asset文件夹不存在。",
+ "assets.folderRecursion": "无法将文件夹添加到自己的子文件夹中。",
+ "assets.maxSizeReached": "您已达到最大Asset大小。",
+ "assets.referenced": "Asset被内容引用,无法删除。",
+ "backups.alreadyRunning": "另一个备份进程已经在运行。",
+ "backups.maxReached": "您不能拥有超过 {max} 个备份。",
+ "backups.restoreRunning": "还原操作已经在运行。",
+ "comments.noPermissions": "您只能访问您的通知。",
+ "comments.notUserComment": "评论是由另一个用户创建的。",
+ "common.action": "动作",
+ "common.aspectHeight": "纵横高度",
+ "common.aspectWidth": "纵横宽",
+ "common.calculatedDefaultValue": "计算的默认值",
+ "common.clientd": "客户端 ID",
+ "common.clientId": "客户端 ID",
+ "common.clientSecret": "客户端密码",
+ "common.contentType": "内容类型",
+ "common.contributorId": "贡献者 ID 或电子邮件",
+ "common.critical": "关键",
+ "common.data": "数据",
+ "common.defaultValue": "默认值",
+ "common.displayName": "显示名称",
+ "common.editor": "编辑器",
+ "common.email": "电子邮件",
+ "common.errorNoPermission": "您没有必要的权限。",
+ "common.field": "字段",
+ "common.fieldIds": "字段 ID",
+ "common.fieldName": "字段名",
+ "common.file": "文件",
+ "common.folderName": "文件夹名称",
+ "common.fullTextNotSupported": "不支持查询搜索子句。",
+ "common.httpContentTypeNotDefined": "文件内容类型未定义。",
+ "common.httpFileNameNotDefined": "文件名未定义。",
+ "common.httpInvalidRequest": "模型无效。",
+ "common.httpInvalidRequestFormat": "请求正文的格式无效。",
+ "common.httpOnlyAsUser": "客户端不允许。",
+ "common.httpValidationError": "验证错误",
+ "common.initialStep": "初始步骤",
+ "common.jsError": "执行脚本失败,Javascript 错误:{message}",
+ "common.jsNotAllowed": "脚本禁止操作。",
+ "common.jsParseError": "无法执行脚本,Javascript 语法错误:{message}",
+ "common.jsRejected": "脚本拒绝了操作。",
+ "common.language": "语言代码",
+ "common.login": "登录",
+ "common.logout": "注销",
+ "common.maxCharacters": "最大字符数",
+ "common.maxHeight": "最大高度",
+ "common.maxItems": "最大项目数",
+ "common.maxLength": "最大长度",
+ "common.maxSize": "最大尺寸",
+ "common.maxValue": "最大值",
+ "common.maxWidth": "最大宽度",
+ "common.maxWords": "最大字数",
+ "common.minCharacters": "最小字符数",
+ "common.minHeight": "最小高度",
+ "common.minItems": "最小项目",
+ "common.minLength": "最小长度",
+ "common.minSize": "最小尺寸",
+ "common.minValue": "最小值",
+ "common.minWidth": "最小宽度",
+ "common.minWords": "最小词",
+ "common.name": "名称",
+ "common.notFoundValue": "- 未找到 -",
+ "common.numDays": "天数",
+ "common.odataFailure": "无法解析查询:{message},查询:{odata}",
+ "common.odataFilterNotValid": "OData $filter 子句无效:{message}",
+ "common.odataNotSupported": "查询不支持 OData 操作:{odata}",
+ "common.odataSearchNotValid": "OData $search 子句无效:{message}",
+ "common.oldPassword": "旧密码",
+ "common.other": "其他",
+ "common.partitioning": "分区",
+ "common.password": "密码",
+ "common.passwordConfirm": "确认",
+ "common.pattern": "模式",
+ "common.permissions": "权限",
+ "common.planId": "计划 ID",
+ "common.previewUrls": "预览网址",
+ "common.product": "Squidex Headless CMS",
+ "common.properties": "属性",
+ "common.property": "属性",
+ "common.readonlyMode": "应用程序目前处于只读模式。",
+ "common.remove": "删除",
+ "common.resultTooLarge": "结果集太大无法检索。使用 $take 参数减少项目数。",
+ "common.role": "角色",
+ "common.save": "保存",
+ "common.schemaId": "Schema ID",
+ "common.signup": "注册",
+ "common.success": "成功",
+ "common.text": "文本",
+ "common.trigger": "触发器",
+ "common.warning": "警告",
+ "common.workflow": "工作流程",
+ "common.workflowStep": "步骤",
+ "common.workflowTransition": "过渡",
+ "contents.bulkInsertQueryNotUnique": "多个内容与查询匹配。",
+ "contents.draftNotCreateForUnpublished": "您只能在内容发布后创建新版本。",
+ "contents.draftToDeleteNotFound": "没有要删除的内容。",
+ "contents.invalidArrayOfObjects": "无效的 json 类型,预期的对象数组。",
+ "contents.invalidArrayOfStrings": "无效的 json 类型,需要字符串数组。",
+ "contents.invalidBoolean": "无效的 json 类型,应为布尔值。",
+ "contents.invalidComponentNoObject": "无效的 json 对象,带有 'schemaId' 字段的预期对象。",
+ "contents.invalidComponentNoType": "无效组件。未找到 'schemaId' 字段。",
+ "contents.invalidComponentUnknownSchema": "无效组件。找不到Schema。",
+ "contents.invalidGeolocation": "无效的 json 类型,预期的纬度/经度对象。",
+ "contents.invalidGeolocationLatitude": "纬度必须在 -90 到 90 之间。",
+ "contents.invalidGeolocationLongitude": "经度必须在 -180 到 180 之间。",
+ "contents.invalidNumber": "无效的 json 类型,需要的数字。",
+ "contents.invalidString": "无效的 json 类型,需要的字符串。",
+ "contents.listReferences": "{count} 个引用",
+ "contents.referenced": "内容被其他内容引用,无法删除或取消发布。",
+ "contents.schemaNotPublished": "Schema未发布。",
+ "contents.singletonNotChangeable": "无法更新单个内容。",
+ "contents.singletonNotCreatable": "无法创建单个内容。",
+ "contents.singletonNotDeletable": "无法删除单个内容。",
+ "contents.statusNotValid": "工作流中未定义状态。",
+ "contents.statusTransitionNotAllowed": "无法将状态从 {oldStatus} 更改为 {newStatus}。",
+ "contents.validation.aspectRatio": "必须有纵横比 {width}:{height}。",
+ "contents.validation.assetNotFound": "未找到 ID {id}。",
+ "contents.validation.between": "必须介于 {min} 和 {max} 之间。",
+ "contents.validation.characterCount": "必须正好有 {count} 个字符。",
+ "contents.validation.charactersBetween": "必须在 {min} 到 {max} 个字符之间。",
+ "contents.validation.duplicates": "不得包含重复值。",
+ "contents.validation.error": "验证失败,内部错误。",
+ "contents.validation.exactValue": "必须正好是 {value}。",
+ "contents.validation.extension": "必须是允许的扩展名。",
+ "contents.validation.image": "不是图片。",
+ "contents.validation.invalid": "无效值。",
+ "contents.validation.itemCount": "必须正好有 {count} 个项目。",
+ "contents.validation.itemCountBetween": "必须介于 {min} 和 {max} 项之间。",
+ "contents.validation.max": "必须小于或等于 {max}。",
+ "contents.validation.maxCharacters": "不得超过 {max} 个文本字符。",
+ "contents.validation.maximumHeight": "高度 {height}px 必须小于 {max}px。",
+ "contents.validation.maximumSize": "{size} 的大小必须小于 {max}。",
+ "contents.validation.maximumWidth": "宽度 {width}px 必须小于 {max}px。",
+ "contents.validation.maxItems": "不得超过 {max} 个项目。",
+ "contents.validation.maxLength": "不得超过 {max} 个字符。",
+ "contents.validation.maxWords": "不得超过 {max} 个单词。",
+ "contents.validation.min": "必须大于或等于 {min}。",
+ "contents.validation.minimumHeight": "高度 {height}px 必须大于 {min}px。",
+ "contents.validation.minimumSize": "{size} 的大小必须大于 {min}。",
+ "contents.validation.minimumWidth": "宽度 {width}px 必须大于 {min}px。",
+ "contents.validation.minItems": "必须至少有 {min} 个项目。",
+ "contents.validation.minLength": "必须至少有 {min} 个字符。",
+ "contents.validation.minNormalCharacters": "必须至少有 {min} 个文本字符。",
+ "contents.validation.minWords": "必须至少有 {min} 个单词。",
+ "contents.validation.mustBeEmpty": "不得定义值。",
+ "contents.validation.normalCharacterCount": "必须正好有 {count} 个文本字符。",
+ "contents.validation.normalCharactersBetween": "必须在 {min} 和 {max} 个文本字符之间。",
+ "contents.validation.notAllowed": "不允许的值。",
+ "contents.validation.pattern": "必须遵循模式。",
+ "contents.validation.referenceNotFound": "未找到引用 '{id}'。",
+ "contents.validation.referenceToInvalidSchema": "参考 '{id}' 的Schema无效。",
+ "contents.validation.regexTooSlow": "正则表达式太慢了。",
+ "contents.validation.required": "必填字段。",
+ "contents.validation.unique": "存在另一个具有相同值的内容。",
+ "contents.validation.unknownField": "不是已知的 {fieldType}。",
+ "contents.validation.wordCount": "必须正好有 {count} 个单词。",
+ "contents.validation.wordsBetween": "必须在 {min} 到 {max} 个单词之间。",
+ "contents.workflowErrorUpdate": "工作流不允许更新状态为 {status}",
+ "dotnet_identity_DefaultEror": "发生未知故障。",
+ "dotnet_identity_DuplicateEmail": "电子邮件已被占用。",
+ "dotnet_identity_DuplicateUserName": "用户名已被占用。",
+ "dotnet_identity_InvalidEmail": "电子邮件无效。",
+ "dotnet_identity_InvalidUserName": "用户名“{0}”无效,只能包含字母或数字。",
+ "dotnet_identity_LoginAlreadyAssociated": "已存在使用此登录名的用户。",
+ "dotnet_identity_PasswordMismatch": "密码不正确。",
+ "dotnet_identity_PasswordRequiresDigit": "密码必须至少有一位 ('0'-'9')。",
+ "dotnet_identity_PasswordRequiresLower": "密码必须至少有一个小写字母 ('a'-'z')。",
+ "dotnet_identity_PasswordRequiresNonAlphanumeric": "密码必须至少有一个非字母数字字符。",
+ "dotnet_identity_PasswordRequiresUniqueChars": "密码必须至少使用 {0} 个不同的字符。",
+ "dotnet_identity_PasswordRequiresUpper": "密码必须至少有一个大写字母 ('A'-'Z')。",
+ "dotnet_identity_PasswordTooShort": "密码太短。",
+ "dotnet_identity_PwnedError": "此密码以前曾出现在数据泄露事件中,永远不应使用。如果您以前曾在任何地方使用过,请更改它!",
+ "dotnet_identity_UserLockedOut": "用户被锁定。",
+ "exception.invalidJsonQuery": "Json 查询无效:{message}",
+ "exception.invalidJsonQueryJson": "Json 查询无效 json: {message}",
+ "exceptions.domainObjectConflict": "实体 ({id}) 已经存在。",
+ "exceptions.domainObjectDeleted": "实体 ({id}) 已被删除。",
+ "exceptions.domainObjectNotFound": "实体 ({id}) 不存在。",
+ "exceptions.domainObjectVersion": "实体 ({id}) 请求版本 {expectedVersion},但找到 {currentVersion}。",
+ "history.apps.clientAdded": "将客户端 {[Id]} 添加到应用程序",
+ "history.apps.clientRevoked": "已撤销客户端 {[Id]}",
+ "history.apps.clientUpdated": "更新的客户端 {[Id]}",
+ "history.apps.contributoreAssigned": "已分配 {user:[Contributor]} 作为 {[Role]}",
+ "history.apps.contributoreRemoved": "从应用中删除了 {user:[Contributor]}",
+ "history.apps.languagedAdded": "添加语言 {[Language]}",
+ "history.apps.languagedRemoved": "已删除语言 {[Language]}",
+ "history.apps.languagedSetToMaster": "将主语言更改为 {[Language]}",
+ "history.apps.languagedUpdated": "更新的语言 {[Language]}",
+ "history.apps.planChanged": "已将计划更改为 {[Plan]}",
+ "history.apps.planReset": "重置计划",
+ "history.apps.roleAdded": "添加角色 {[Name]}",
+ "history.apps.roleDeleted": "已删除角色 {[Name]}",
+ "history.apps.roleUpdated": "更新角色 {[Name]}",
+ "history.apps.settingsUpdated": "更新的 UI 设置",
+ "history.assets.replaced": "替换的Asset。",
+ "history.assets.updated": "更新的Asset。",
+ "history.assets.uploaded": "上传的Asset。",
+ "history.contents.created": "创建了 {[Schema]} 内容。",
+ "history.contents.deleted": "删除了 {[Schema]} 内容。",
+ "history.contents.draftCreated": "创建了新草稿。",
+ "history.contents.draftDeleted": "已删除的草稿。",
+ "history.contents.scheduleCompleted": "已安排将 {[Schema]} 内容的状态更改为 {[Status]}。",
+ "history.contents.scheduleFailed": "无法安排 {[Schema]} 内容的状态更改。",
+ "history.contents.updated": "更新了 {[Schema]} 内容。",
+ "history.schemas.created": "创建的Schema {[Name]}。",
+ "history.schemas.deleted": "已删除Schema {[Name]}。",
+ "history.schemas.fieldAdded": "将字段 {[Field]} 添加到Schema {[Name]}。",
+ "history.schemas.fieldDeleted": "已从Schema {[Name]} 中删除字段 {[Field]}。",
+ "history.schemas.fieldDisabled": "Schema{[Name]} 的禁用字段 {[Field]}。",
+ "history.schemas.fieldHidden": "有Schema {[Name]} 的隐藏字段 {[Field]}。",
+ "history.schemas.fieldLocked": "已锁定Schema {[Name]} 的字段 {[Field]}。",
+ "history.schemas.fieldShown": "已显示Schema {[Name]} 的字段 {[Field]}。",
+ "history.schemas.fieldsReordered": "Schema {[Name]} 的重新排序字段。",
+ "history.schemas.fieldUpdated": "已更新Schema {[Name]} 的字段 {[Field]}。",
+ "history.schemas.published": "已发布的Schema {[Name]}。",
+ "history.schemas.scriptsConfigured": "Schema {[Name]} 的配置脚本。",
+ "history.schemas.unpublished": "未发布的Schema {[Name]}。",
+ "history.schemas.updated": "更新的Schema {[Name]}。",
+ "history.statusChanged": "已将 {[Schema]} 内容的状态更改为 {[Status]}。",
+ "login.githubPrivateEmail": "您的邮箱在 Github 中设置为私有,请设置为公开以使用 Github 登录。",
+ "rules.ruleAlreadyRunning": "另一个规则已经在运行。",
+ "schemas.dateTimeCalculatedDefaultAndDefaultError": "计算出的默认值和默认值不能一起使用。",
+ "schemas.duplicateFieldName": "字段 '{field}' 已添加两次。",
+ "schemas.fieldCannotBeUIField": "字段不能是 UI 字段。",
+ "schema.fieldIsLocked": "Schema字段被锁定。",
+ "schemas.fieldNameAlreadyExists": "已存在同名字段。",
+ "schema.fieldNotInSchema": "字段不是Schema的一部分。",
+ "schemas.fieldsNotCovered": "字段 ID 未涵盖所有字段。",
+ "schemas.nameAlreadyExists": "一个同名的Schema已经存在。",
+ "schema.noPermission": "您没有此Schema的权限。",
+ "schema.notFoundId": "Schema {id} 不存在。",
+ "schemas.number.inlineEditorError": "无线电编辑器不允许内联编辑。",
+ "schemas.onlyArraysHaveNested": "只有数组字段可以有嵌套字段。",
+ "schemas.onylArraysInRoot": "嵌套字段不能是数组字段。",
+ "schemas.references.resolveError": "只有在 MaxItems 为 1 时才能解析引用。",
+ "schemas.string.inlineEditorError": "内联编辑只允许用于下拉菜单、slug 和输入字段。",
+ "schemas.stringEditorsNeedAllowedValuesError": "单选按钮或下拉列表需要允许的值。",
+ "schemas.tags.editorNeedsAllowedValues": "复选框或下拉列表需要允许的值。",
+ "schemas.uiFieldCannotBeDisabled": "UI 字段不能被禁用。",
+ "schemas.uiFieldCannotBeEnabled": "UI 字段无法启用。",
+ "schemas.uiFieldCannotBeHidden": "UI 字段不能隐藏。",
+ "schemas.uiFieldCannotBeShown": "UI 字段无法显示。",
+ "search.contentResult": "{name} 内容",
+ "search.contentsResult": "{name} 内容",
+ "search.schemaResult": "{name} Schema",
+ "security.passwordStolen": "此密码以前曾出现在数据泄露事件中,永远不应使用。如果您以前在任何地方使用过它,请更改它!",
+ "setup.createUser.button": "创建用户",
+ "setup.createUser.confirmPassword": "确认",
+ "setup.createUser.failure": "既没有配置密码认证,也没有配置外部认证提供商,如谷歌。请检查您的设置和日志。",
+ "setup.createUser.headline": "管理员用户",
+ "setup.createUser.headlineCreate": "创建管理员用户",
+ "setup.createUser.loginHint": "您已经配置了至少一个外部身份验证提供程序,例如 Google。只需转到登录页面并登录即可成为管理员。",
+ "setup.createUser.loginLink": "进入登录页面。",
+ "setup.createUser.separator": "OR",
+ "setup.headline": "安装",
+ "setup.hint": "您看到此屏幕是因为尚无用户存在。创建用户后,您将无法再次使用此屏幕。",
+ "setup.madeBy": "自豪地制作",
+ "setup.madeByCopyright": "Sebastian Stehle 和贡献者,2016-2021",
+ "setup.ruleAppCreation.warningAdmins": "通过你的设置,只有管理员可以创建新的应用程序。如果你想改变这个设置 UI__ONLYADMINCANCREATEAPPS=false 作为环境变量。",
+ "setup.ruleAppCreation.warningAll": "通过你的设置,每个用户都可以创建新的应用程序。如果你想改变这个设置 UI__ONLYADMINCANCREATEAPPS=true 作为环境变量。",
+ "setup.ruleFolder.warning": "您正在使用文件夹Asset存储,其中所有Asset都存储在文件系统中。请记住将Asset文件夹包含在您的备份策略中并将其映射到卷, 如果您使用的是 Docker。",
+ "setup.ruleFtp.warning": "您正在使用 FTP Asset存储。由于性能不佳,不建议使用这种存储类型。",
+ "setup.ruleHttps.failure": " 您不是通过 https 访问站点。如果此警告不正确,则 Squidex 无法检测 https Schema,因为您的实例位于反向代理(例如 nginx)之后。确保正确转发 http 标头, 通过 X-Forwarded-* 标头。",
+ "setup.ruleHttps.success": "恭喜您,您正在通过安全连接 (https) 访问 Squidex 安装。",
+ "setup.rules.headline": "系统清单",
+ "setup.ruleUrl.failure": "您应该仅通过一个规范 URL 访问 Squidex,并通过 URLS__BASEURL 环境变量配置此 URL。当前的基本 URL {actual}与基本 url {configured} 不匹配。",
+ "setup.ruleUrl.success": "恭喜 URLS__BASEURL 环境变量配置正确。",
+ "setup.title": "安装",
+ "users.accessDenied.text": "不允许此操作,您的帐户可能被锁定。",
+ "users.accessDenied.title": "拒绝访问",
+ "users.consent.agree": "我同意!",
+ "users.consent.cookiesHeadline": "Cookies & Analytics",
+ "users.consent.cookiesText": "
我理解并同意 Squidex 使用 cookie 来确保您在我们的平台上获得最佳体验并存储您的登录状态。
我理解并同意 Squidex已集成 Google Analytics(具有匿名器功能)。Google Analytics 是一项网络分析服务,用于收集和分析有关用户行为的数据。
我接受 隐私政策.
", + "users.consent.emailHeadline": "自动电子邮件(可选)", + "users.consent.emailText": "我理解并同意 Squidex 发送电子邮件来通知我有关新功能、重大更改和停机时间的信息。", + "users.consent.headline": "我们需要您的同意", + "users.consent.needed": "你必须同意。", + "users.consent.piiHeadline": "个人信息", + "users.consent.piiText": "我理解并同意 Squidex 收集从外部身份验证提供商(例如 Google、Microsoft 或 Github)检索到的以下私人信息。