diff --git a/packages/ui/public/locales/cn.json b/packages/ui/public/locales/cn.json
new file mode 100644
index 000000000..6fa303ec8
--- /dev/null
+++ b/packages/ui/public/locales/cn.json
@@ -0,0 +1,371 @@
+{
+ "2fa": "两步验证",
+ "2fa-description": "为您的 Umbrel 登录和应用增加一层安全保障",
+ "2fa.disable.success": "两步验证已禁用",
+ "2fa.disable.title": "禁用两步验证",
+ "2fa.enable.or-paste": "或者将以下代码粘贴到您的认证应用中",
+ "2fa.enable.scan-this": "使用 Google Authenticator(谷歌验证器) 或 Authy 等认证应用扫描此二维码",
+ "2fa.enable.success": "两步验证已启用",
+ "2fa.enable.title": "启用两步验证",
+ "2fa.enter-code": "输入您的认证应用中显示的代码",
+ "account": "账户",
+ "account-description": "您的姓名和密码",
+ "advanced-settings": "高级设置",
+ "advanced-settings-description": "打开终端或注册到 umbrelOS 测试版计划",
+ "app-not-found": "应用未找到:{{app}}",
+ "app-only-over-tor": "{{app}} 只能在 Tor 上使用。请在远程访问 URL 的 Tor 浏览器中访问您的 Umbrel(设置 > 远程 Tor 访问)以打开此应用。",
+ "app-page.section.about": "关于",
+ "app-page.section.credentials.title": "默认凭据",
+ "app-page.section.info.compatibility": "兼容性",
+ "app-page.section.info.compatibility-compatible": "兼容",
+ "app-page.section.info.developer": "开发者",
+ "app-page.section.info.source-code": "源代码",
+ "app-page.section.info.source-code.public": "公开",
+ "app-page.section.info.submitted-by": "提交者",
+ "app-page.section.info.title": "信息",
+ "app-page.section.info.version": "版本",
+ "app-page.section.recommendations.title": "您可能还喜欢",
+ "app-page.section.release-notes.title": "最新功能",
+ "app-page.section.release-notes.version": "版本 {{version}}",
+ "app-page.section.requires": "需要",
+ "app-page.section.requires.support": "获取支持",
+ "app-picker.search": "搜索...",
+ "app-picker.select-app": "选择应用...",
+ "app-store.browse-category-apps": "浏览 {{category}} 应用",
+ "app-store.category.ai": "人工智能",
+ "app-store.category.all": "所有应用",
+ "app-store.category.automation": "家庭与自动化",
+ "app-store.category.bitcoin": "比特币",
+ "app-store.category.developer": "开发者工具",
+ "app-store.category.discover": "发现",
+ "app-store.category.files": "文件与生产力",
+ "app-store.category.finance": "财务",
+ "app-store.category.media": "媒体",
+ "app-store.category.networking": "网络",
+ "app-store.category.social": "社交",
+ "app-store.description": "您的应用更新设置",
+ "app-store.menu.community-app-stores": "社区应用商店",
+ "app-store.search-apps": "搜索应用",
+ "app-store.search.no-results": "无结果",
+ "app-store.search.results-for": "搜索结果为",
+ "app-store.title": "应用商店",
+ "app-updates.less": "收起",
+ "app-updates.more": "更多",
+ "app-updates.no-updates": "所有应用都是最新的!",
+ "app-updates.update": "更新",
+ "app-updates.update-all": "全部更新",
+ "app-updates.updates-available-count_one": "{{count}} 个更新可用",
+ "app-updates.updates-available-count_other": "{{count}} 个更新可用",
+ "app-updates.updating": "正在更新...",
+ "app.install": "安装",
+ "app.installing": "正在安装",
+ "app.offline": "未运行",
+ "app.open": "打开",
+ "app.optimized-for-umbrel-home": "为 Umbrel 家庭版优化",
+ "app.restarting": "正在重启",
+ "app.starting": "正在启动",
+ "app.stopped": "已停止",
+ "app.stopping": "正在停止",
+ "app.uninstall.confirm.description": "与 {{app}} 相关的所有数据将被永久删除。此操作无法撤销。",
+ "app.uninstall.confirm.submit": "卸载",
+ "app.uninstall.confirm.title": "卸载 {{app}}?",
+ "app.uninstall.deps.used-by.description_one": "首先卸载 {{firstAppToUninstall}} 以卸载 {{app}}。",
+ "app.uninstall.deps.used-by.description_other": "首先卸载这些应用以卸载 {{app}}。",
+ "app.uninstall.deps.used-by.title": "{{app}} 被以下应用使用",
+ "app.uninstalling": "正在卸载",
+ "app.updating": "正在更新",
+ "app.view": "查看",
+ "app_one": "应用",
+ "app_other": "应用",
+ "apps.uninstall.failed-to-get-required-apps": "获取所需应用失败",
+ "apps.uninstalled-all.success": "所有应用已卸载",
+ "auth.checking-backend-for-user": "正在加载...",
+ "auth.failed-checking-if-user-logged-in": "错误:认证登录检查失败",
+ "auth.failed-to-check-if-user-exists": "错误:认证存在检查失败",
+ "beta-program": "umbrelOS 测试版计划",
+ "beta-program-description": "选择接收 umbrelOS 测试版更新,提前获得新功能,并帮助我们通过提供反馈来完善它们。测试版更新可能不稳定,故障排除可能需要熟悉终端。",
+ "cancel": "取消",
+ "change": "更改",
+ "change-name": "更改姓名",
+ "change-name.failed.name-required": "需要姓名",
+ "change-name.input-placeholder": "您的姓名",
+ "change-password": "更改密码",
+ "change-password.callout": "如果您丢失了密码,将无法登录您的 Umbrel。请确保安全地保管它。",
+ "change-password.current-password": "当前密码",
+ "change-password.failed.current-required": "需要当前密码",
+ "change-password.failed.min-length": "密码至少需要 {{characters}} 个字符",
+ "change-password.failed.must-be-unique": "新密码必须与当前密码不同",
+ "change-password.failed.new-required": "需要新密码",
+ "change-password.failed.no-match": "密码不匹配",
+ "change-password.failed.repeat-required": "需要重复密码",
+ "change-password.new-password": "新密码",
+ "change-password.repeat-password": "重复密码",
+ "check-for-latest-version": "检查最新的 umbrelOS 更新",
+ "clipboard.copied": "已复制",
+ "close": "关闭",
+ "cmdk.change-wallpaper": "更改壁纸",
+ "cmdk.frequent-apps": "常用",
+ "cmdk.input-placeholder": "搜索应用、设置或操作",
+ "cmdk.install-from-app-store": "从应用商店安装",
+ "cmdk.live-usage": "实时使用情况",
+ "cmdk.restart-umbrel": "重启 Umbrel",
+ "cmdk.shutdown-umbrel": "关闭 Umbrel",
+ "cmdk.update-all-apps": "更新所有应用",
+ "cmdk.widgets": "小部件",
+ "community-app-store": "社区应用商店",
+ "community-app-store.back-to-umbrel-app-store": "返回 Umbrel 应用商店",
+ "community-app-store.open-button": "打开",
+ "community-app-store.remove-button": "移除",
+ "community-app-stores.add-button": "添加",
+ "community-app-stores.description": "社区应用商店允许您在 Umbrel 上安装官方 Umbrel 应用商店可能没有的应用。它们还使您能够轻松测试开发者在官方 Umbrel 应用商店发布之前发布的 Umbrel 应用的测试版本。",
+ "community-app-stores.learn-more": "了解更多",
+ "community-app-stores.warning": "社区应用商店可以由任何人创建。其中发布的应用未经官方 Umbrel 应用商店团队验证或审查,可能存在不安全或恶意的风险。请谨慎使用,只添加您信任的开发者的应用商店。",
+ "confirm": "确认",
+ "connecting": "正在连接...",
+ "continue": "继续",
+ "continue-to-log-in": "继续登录",
+ "cpu": "CPU",
+ "cpu-core-count": "{{cores}} 线程",
+ "create-user": "创建用户",
+ "default-credentials.close": "知道了",
+ "default-credentials.description": "以下是您登录应用所需的凭据。",
+ "default-credentials.dont-show-again": "不再显示",
+ "default-credentials.open": "打开 {{app}}",
+ "default-credentials.password": "默认密码",
+ "default-credentials.title": "{{app}} 的凭据",
+ "default-credentials.username": "默认用户名",
+ "desktop.app.context.go-to-store-page": "在应用商店中查看",
+ "desktop.app.context.show-default-credentials": "显示默认凭据",
+ "desktop.app.context.uninstall": "卸载",
+ "desktop.context-menu.change-wallpaper": "更改壁纸",
+ "desktop.context-menu.edit-widgets": "编辑小部件",
+ "desktop.context-menu.logout": "注销",
+ "desktop.greeting.afternoon": "下午好,{{name}}",
+ "desktop.greeting.evening": "晚上好,{{name}}",
+ "desktop.greeting.morning": "早上好,{{name}}",
+ "desktop.install-first.for-the-bitcoiner": "对于比特币用户",
+ "desktop.install-first.for-the-self-hoster": "对于自托管用户",
+ "desktop.install-first.for-the-streamer": "对于流媒体用户",
+ "desktop.install-first.link-to-app-store": "在应用商店中探索更多",
+ "desktop.not-enough-room": "使用更大的屏幕来查看您的应用。",
+ "device": "设备",
+ "device-info": "设备信息",
+ "device-info-description": "关于您的设备的信息",
+ "device-info.device": "设备",
+ "device-info.model-number": "型号",
+ "device-info.serial-number": "序列号",
+ "device-info.view-info": "查看信息",
+ "disable": "禁用",
+ "download-logs": "下载日志",
+ "factory-reset": "出厂重置",
+ "factory-reset.confirm.body": "确认 Umbrel 密码以重置",
+ "factory-reset.confirm.password-label": "输入密码",
+ "factory-reset.confirm.submit": "擦除所有内容并重置",
+ "factory-reset.confirm.submit-callout": "此操作无法撤销。",
+ "factory-reset.desc": "删除您的 umbrelOS 数据和应用",
+ "factory-reset.failed.message": "重置过程中出现错误",
+ "factory-reset.failed.retry": "重试出厂重置",
+ "factory-reset.failed.title": "重置失败",
+ "factory-reset.reset": "重置",
+ "factory-reset.resetting.connecting": "正在连接",
+ "factory-reset.resetting.dont-turn-off-device": "重置完成前请不要关闭设备",
+ "factory-reset.review.account-info": "账户信息和密码",
+ "factory-reset.review.apps": "应用",
+ "factory-reset.review.following-will-be-removed": "以下内容将从您的设备中移除",
+ "factory-reset.review.installed-apps_one": "已安装的应用 {{count}} 个",
+ "factory-reset.review.installed-apps_other": "已安装的应用 {{count}} 个",
+ "factory-reset.review.submit": "继续",
+ "factory-reset.review.total-data": "总数据",
+ "factory-reset.success.description": "您的所有应用、应用数据和账户数据已从您的设备中删除。您现在可以重启您的设备。",
+ "factory-reset.success.restart-device": "重启设备",
+ "factory-reset.success.title": "重置成功",
+ "hello": "你好",
+ "install-first.description_one": "安装此应用以安装 {{app}}。",
+ "install-first.description_other": "首先安装这些应用以安装 {{app}}。",
+ "install-first.title": "{{app}} 需要访问",
+ "install-your-first-app": "安装您的第一个应用",
+ "language": "语言",
+ "language-description": "您首选的 umbrelOS 语言",
+ "language.select-description": "选择首选的 umbrelOS 语言",
+ "linux": "Linux",
+ "live-usage": "实时使用情况",
+ "loading": "正在加载",
+ "local-ip": "本地 IP",
+ "login-2fa.subtitle": "输入您的认证应用中显示的 2FA 代码",
+ "login-2fa.title": "认证",
+ "login-with-umbrel.description": "输入您的 Umbrel 密码以打开 {{app}}",
+ "login-with-umbrel.title": "使用 Umbrel 登录",
+ "login.password-label": "密码",
+ "login.password.submit": "登录",
+ "login.subtitle": "输入您的 Umbrel 密码以登录",
+ "login.title": "欢迎回来",
+ "logout": "注销",
+ "logout-error-generic": "错误:注销失败",
+ "logout.confirm.submit": "注销",
+ "logout.confirm.title": "您确定要注销吗?",
+ "memory": "内存",
+ "memory.low": "内存不足",
+ "migrate": "迁移",
+ "migrate.callout": "迁移完成前请不要关闭您的 Umbrel",
+ "migrate.failed.retry": "重试",
+ "migrate.failed.title": "迁移失败",
+ "migrate.success.description": "您的所有应用、应用数据和账户详情已迁移到您的 Umbrel Home。",
+ "migrate.success.title": "迁移成功",
+ "migration-assistant": "迁移助手",
+ "migration-assistant-description": "将您的所有应用和数据从 Raspberry Pi 迁移到 Umbrel Home",
+ "migration-assistant-unsupported-device-description": "迁移助手目前支持将所有数据和应用从运行 umbrelOS 的 Raspberry Pi 迁移到 Umbrel Home。在您的 Umbrel Home 上打开迁移助手以开始。",
+ "migration-assistant.continue-migration.ready.submit": "开始迁移",
+ "migration-assistant.failed": "有些不对劲...",
+ "migration-assistant.failed.retrying-message": "正在重试...",
+ "migration-assistant.mobile.start-button": "开始迁移",
+ "migration-assistant.prep.body": "准备迁移",
+ "migration-assistant.prep.button-continue": "继续",
+ "migration-assistant.prep.callout": "如果您的 Umbrel Home 上有任何数据,将被永久删除。",
+ "migration-assistant.prep.connect-disk-to-home": "将其外接驱动器连接到您 Umbrel Home 的任何 USB 端口。",
+ "migration-assistant.prep.prep-done-continue-message": "完成后,点击下面的 '{{button}}'。",
+ "migration-assistant.prep.shut-down-rpi": "关闭您的 Raspberry Pi Umbrel。",
+ "migration-assistant.ready.description": "您的所有数据和应用已准备好迁移到您的 Umbrel Home",
+ "migration-assistant.ready.hint-header": "注意事项",
+ "migration-assistant.ready.hint-keep-pi-off.description": "这有助于避免诸如 Lightning Node 之类的应用出现问题",
+ "migration-assistant.ready.hint-keep-pi-off.title": "更新后请保持 Raspberry Pi 关闭",
+ "migration-assistant.ready.hint-use-same-password.description": "记得使用您的 Raspberry Pi Umbrel 密码登录您的 Umbrel Home",
+ "migration-assistant.ready.hint-use-same-password.title": "使用相同的密码",
+ "migration-assistant.ready.title": "您已准备好迁移!",
+ "name": "姓名",
+ "no-forgot-password-message": "如果您丢失了密码,将无法登录您的 Umbrel。请确保安全地保管它。",
+ "no-results-found": "未找到结果",
+ "not-found-404": "错误代码:404",
+ "not-found-404.back": "返回",
+ "not-found-404.home": "转到首页",
+ "notifications.cpu.too-hot": "CPU 温度过高",
+ "notifications.memory.low": "您的设备内存不足",
+ "notifications.new-version-available": "{{update}} 现在可以安装",
+ "notifications.storage.full": "您的设备存储已满",
+ "notifications.view": "查看",
+ "ok": "确定",
+ "onboarding.account-created.by-clicking-button-you-agree": "点击“下一步”,即表示您同意 umbrelOS 服务条款",
+ "onboarding.account-created.next": "下一步",
+ "onboarding.account-created.subtitle": "您的 Umbrel 现已准备就绪。",
+ "onboarding.account-created.youre-all-set-name": "一切都准备好了,{{name}}。",
+ "onboarding.contact-support": "支持",
+ "onboarding.create-account": "创建账户",
+ "onboarding.create-account.confirm-password.input-label": "确认密码",
+ "onboarding.create-account.failed.name-required": "需要姓名",
+ "onboarding.create-account.failed.passwords-dont-match": "密码不匹配",
+ "onboarding.create-account.name.input-placeholder": "您的姓名",
+ "onboarding.create-account.password.input-label": "密码",
+ "onboarding.create-account.submit": "创建",
+ "onboarding.create-account.submitting": "正在创建",
+ "onboarding.create-account.subtitle": "您的账户信息仅存储在您个人的 Umbrel 上。请确保安全备份您的密码,因为无法重置。",
+ "onboarding.start.continue": "开始",
+ "onboarding.start.subtitle": "您的家庭云服务器已准备好设置。",
+ "onboarding.start.title": "欢迎来到 umbrelOS",
+ "open": "打开",
+ "open-live-usage": "打开实时使用情况",
+ "password": "密码",
+ "preferences": "偏好设置",
+ "raspberry-pi": "Raspberry Pi",
+ "read-less": "收起",
+ "read-more": "更多",
+ "redirect.to-home": "加载中...",
+ "redirect.to-login": "加载中...",
+ "redirect.to-onboarding": "加载中...",
+ "remote-tor-access": "远程 Tor 访问",
+ "restart": "重启",
+ "restart.confirm.submit": "重启",
+ "restart.confirm.title": "您确定要重启您的 Umbrel 吗?",
+ "restart.restarting": "正在重启",
+ "restart.restarting-message": "请不要刷新此页面或在 Umbrel 重启时关闭它。",
+ "retry": "重试",
+ "search": "搜索",
+ "settings": "设置",
+ "settings.app-store-preferences.title": "应用商店偏好设置",
+ "settings.contact-support": "需要帮助?联系支持。",
+ "shut-down": "关闭",
+ "shut-down.complete": "关闭完成",
+ "shut-down.complete-text": "您现在可以拔掉设备的电源。",
+ "shut-down.confirm.submit": "关闭",
+ "shut-down.confirm.title": "您确定要关闭您的 Umbrel 吗?",
+ "shut-down.shutting-down": "正在关闭",
+ "shut-down.shutting-down-message": "请不要刷新此页面或在 Umbrel 关闭时关闭它。",
+ "software-update.callout": "请不要刷新此页面或在 Umbrel 更新时关闭它。",
+ "software-update.check": "检查更新",
+ "software-update.checking": "正在检查更新...",
+ "software-update.current-running": "您正在运行",
+ "software-update.failed": "更新失败",
+ "software-update.failed-to-check": "检查更新失败",
+ "software-update.failed.retry": "重试",
+ "software-update.install-now": "立即安装",
+ "software-update.new-version": "新版本 {{name}} 现在可以安装",
+ "software-update.on-latest": "您正在使用最新的 umbrelOS",
+ "software-update.title": "软件更新",
+ "software-update.updating-to": "正在更新到 {{name}}",
+ "software-update.view": "查看",
+ "something-left": "{{left}} 剩余",
+ "something-went-wrong": "⚠ 出现问题",
+ "start": "开始",
+ "stop": "停止",
+ "storage": "存储",
+ "storage.full": "存储已满",
+ "storage.low": "存储空间不足",
+ "temp.dangerously-hot": "非常热",
+ "temp.nice": "舒适",
+ "temp.normal": "正常",
+ "temp.warm": "温暖",
+ "temperature": "温度",
+ "temperature.too-hot-suggestion": "考虑改变您的设备环境。",
+ "terminal": "终端",
+ "terminal-description": "在 umbrelOS 或应用中运行自定义命令",
+ "terminal.app": "应用",
+ "terminal.app-description": "在特定应用中运行自定义命令",
+ "terminal.umbrelos-description": "在 umbrelOS 中运行自定义命令",
+ "tor-description": "使用 Tor 浏览器从任何地方访问您的 Umbrel",
+ "tor.disable.description": "这可能需要几分钟",
+ "tor.disable.progress": "正在禁用远程 Tor 访问",
+ "tor.disable.success": "远程 Tor 访问已禁用",
+ "tor.enable.description": "这可能需要几分钟",
+ "tor.enable.mobile.switch-label": "启用远程 Tor 访问",
+ "tor.enable.submit": "启用",
+ "tor.enable.success": "远程 Tor 访问已启用",
+ "tor.enable.title": "启用远程 Tor 访问",
+ "tor.hidden-service": "Tor 隐藏服务 URL",
+ "troubleshoot": "故障排除",
+ "troubleshoot-description": "排除 umbrelOS 或应用的故障",
+ "troubleshoot-no-logs-yet": "尚无日志",
+ "troubleshoot-pick-title": "故障排除",
+ "troubleshoot.app": "应用",
+ "troubleshoot.app-description": "查看安装在您的 Umbrel 上的应用的日志",
+ "troubleshoot.app-download": "下载 {{app}} 日志",
+ "troubleshoot.share-with-umbrel-support": "与 Umbrel 支持分享",
+ "troubleshoot.system-download": "下载 {{label}}",
+ "troubleshoot.umbrelos-description": "查看 umbrelOS 日志",
+ "troubleshoot.umbrelos-logs": "umbrelOS 日志",
+ "trpc.backend-unavailable": "错误:无法连接到系统 API",
+ "trpc.checking-backend": "正在加载...",
+ "try-again": "重试",
+ "umbrel": "Umbrel",
+ "umbrel-home": "Umbrel 家庭版",
+ "umbrelos": "umbrelOS",
+ "unknown": "未知",
+ "unknown-app": "未知应用",
+ "unknown-error": "未知错误",
+ "uptime": "正常运行时间",
+ "wallpaper": "壁纸",
+ "wallpaper-description": "您的 Umbrel 壁纸和主题",
+ "widget.progress.in-progress": "进行中",
+ "widgets.edit.select-up-to-3-widgets": "选择最多 3 个小部件",
+ "widgets.install-an-app-before-using-widgets": "安装应用后,开始使用小部件自定义您的主屏幕。",
+ "wifi": "Wi-Fi",
+ "wifi-connect-insecure-message": "开放网络可能不安全",
+ "wifi-connection-failed": "无法连接",
+ "wifi-dangerous-change-confirmation-description": "更改 Wi-Fi 网络可能会断开您与 Umbrel 的连接。要重新连接,请确保您的 Umbrel 和您正在访问它的设备都在同一个网络上。",
+ "wifi-dangerous-change-confirmation-title": "您确定要更改 Wi-Fi 网络吗?",
+ "wifi-dangerous-disable-confirmation-description": "禁用 Wi-Fi 可能会断开您与 Umbrel 的连接。要重新连接,请将 有线网络 插入您的 Umbrel设备,并确保您的 Umbrel设备 和您正在访问它的设备都在同一个网络上。",
+ "wifi-dangerous-disable-confirmation-title": "您确定要禁用 Wi-Fi 吗?",
+ "wifi-description": "将您的设备连接到 Wi-Fi 网络",
+ "wifi-description-long": "您的设备将保持连接到您选择的 Wi-Fi,即使 有线网络 断开,并且在启动时自动重新连接到 Wi-Fi。",
+ "wifi-no-networks-message": "未找到 Wi-Fi 网络",
+ "wifi-searching": "正在搜索 Wi-Fi 网络...",
+ "wifi-unsupported-device-description": "此设备不支持 Wi-Fi。这可能是因为缺少或不兼容的无线适配器。",
+ "wifi-view-networks": "查看网络"
+}
diff --git a/packages/ui/update-translations.js b/packages/ui/update-translations.js
index 0a3cddddb..dd5fed5c7 100644
--- a/packages/ui/update-translations.js
+++ b/packages/ui/update-translations.js
@@ -35,6 +35,7 @@ const languageMapping = {
tr: 'Turkish',
uk: 'Ukrainian',
hu: 'Hungarian',
+ zh_cn: 'Chinese_Simple',
}
// Generates translations