From 54eb5544acbbb601d5f9edac0772e36cad48fccc Mon Sep 17 00:00:00 2001 From: sao-coding <58339015+sao-coding@users.noreply.github.com> Date: Mon, 25 Nov 2024 02:35:24 +0000 Subject: [PATCH] feat(i18n): add Traditional Chinese language support --- .../dashboard/settings/appearance-form.tsx | 5 ++- apps/dokploy/next-i18next.config.cjs | 2 +- apps/dokploy/pages/_app.tsx | 2 +- .../public/locales/zh-Hant/common.json | 0 .../public/locales/zh-Hant/settings.json | 40 +++++++++++++++++++ apps/dokploy/utils/hooks/use-locale.ts | 2 +- 6 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 apps/dokploy/public/locales/zh-Hant/common.json create mode 100644 apps/dokploy/public/locales/zh-Hant/settings.json diff --git a/apps/dokploy/components/dashboard/settings/appearance-form.tsx b/apps/dokploy/components/dashboard/settings/appearance-form.tsx index 38f0d48b..b7fe20e8 100644 --- a/apps/dokploy/components/dashboard/settings/appearance-form.tsx +++ b/apps/dokploy/components/dashboard/settings/appearance-form.tsx @@ -37,7 +37,7 @@ const appearanceFormSchema = z.object({ theme: z.enum(["light", "dark", "system"], { required_error: "Please select a theme.", }), - language: z.enum(["en", "pl", "ru", "de", "zh-Hans"], { + language: z.enum(["en", "pl", "ru", "de", "zh-Hant", "zh-Hans"], { required_error: "Please select a language.", }), }); @@ -177,7 +177,8 @@ export function AppearanceForm() { { label: "Polski", value: "pl" }, { label: "Русский", value: "ru" }, { label: "Deutsch", value: "de" }, - { label: "简体中文", value: "zh-Hans" }, + { label: "繁體中文", value: "zh-Hant" }, + { label: "简体中文", value: "zh-Hans" } ].map((preset) => ( {preset.label} diff --git a/apps/dokploy/next-i18next.config.cjs b/apps/dokploy/next-i18next.config.cjs index 6d4a88e8..30f82e64 100644 --- a/apps/dokploy/next-i18next.config.cjs +++ b/apps/dokploy/next-i18next.config.cjs @@ -2,7 +2,7 @@ module.exports = { i18n: { defaultLocale: "en", - locales: ["en", "pl", "ru", "de", "zh-Hans"], + locales: ["en", "pl", "ru", "de", "zh-Hant", "zh-Hans"], localeDetection: false, }, fallbackLng: "en", diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx index 54f9238a..d1d95123 100644 --- a/apps/dokploy/pages/_app.tsx +++ b/apps/dokploy/pages/_app.tsx @@ -71,7 +71,7 @@ export default api.withTRPC( { i18n: { defaultLocale: "en", - locales: ["en", "pl", "ru", "de", "zh-Hans"], + locales: ["en", "pl", "ru", "de", "zh-Hant", "zh-Hans"], localeDetection: false, }, fallbackLng: "en", diff --git a/apps/dokploy/public/locales/zh-Hant/common.json b/apps/dokploy/public/locales/zh-Hant/common.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/dokploy/public/locales/zh-Hant/settings.json b/apps/dokploy/public/locales/zh-Hant/settings.json new file mode 100644 index 00000000..1d5b6432 --- /dev/null +++ b/apps/dokploy/public/locales/zh-Hant/settings.json @@ -0,0 +1,40 @@ +{ + "settings.common.save": "儲存", + "settings.server.domain.title": "伺服器網域", + "settings.server.domain.description": "將一個網域加入到您的伺服器。", + "settings.server.domain.form.domain": "網域", + "settings.server.domain.form.letsEncryptEmail": "Let's Encrypt 郵箱", + "settings.server.domain.form.certificate.label": "憑證", + "settings.server.domain.form.certificate.placeholder": "選擇一個憑證", + "settings.server.domain.form.certificateOptions.none": "無", + "settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt (預設)", + "settings.server.webServer.title": "Web 伺服器", + "settings.server.webServer.description": "管理 Web 伺服器。", + "settings.server.webServer.actions": "操作", + "settings.server.webServer.reload": "重新載入", + "settings.server.webServer.watchLogs": "查看日誌", + "settings.server.webServer.server.label": "伺服器", + "settings.server.webServer.traefik.label": "Traefik", + "settings.server.webServer.traefik.modifyEnv": "修改環境變數", + "settings.server.webServer.storage.label": "磁碟空間", + "settings.server.webServer.storage.cleanUnusedImages": "清理未使用的映像檔", + "settings.server.webServer.storage.cleanUnusedVolumes": "清理未使用的磁碟區", + "settings.server.webServer.storage.cleanStoppedContainers": "清理已停止的容器", + "settings.server.webServer.storage.cleanDockerBuilder": "清理 Docker Builder 和系統快取", + "settings.server.webServer.storage.cleanMonitoring": "清理監控", + "settings.server.webServer.storage.cleanAll": "清理所有", + "settings.profile.title": "帳戶偏好", + "settings.profile.description": "更改您的個人資料詳情。", + "settings.profile.email": "電子郵件", + "settings.profile.password": "密碼", + "settings.profile.avatar": "頭像", + "settings.appearance.title": "外觀", + "settings.appearance.description": "自訂儀表板主題。", + "settings.appearance.theme": "主題", + "settings.appearance.themeDescription": "選擇儀表板主題", + "settings.appearance.themes.light": "亮", + "settings.appearance.themes.dark": "暗", + "settings.appearance.themes.system": "系統", + "settings.appearance.language": "語言", + "settings.appearance.languageDescription": "選擇儀表板語言" +} diff --git a/apps/dokploy/utils/hooks/use-locale.ts b/apps/dokploy/utils/hooks/use-locale.ts index 5aa5bf62..a1897ce0 100644 --- a/apps/dokploy/utils/hooks/use-locale.ts +++ b/apps/dokploy/utils/hooks/use-locale.ts @@ -1,6 +1,6 @@ import Cookies from "js-cookie"; -const SUPPORTED_LOCALES = ["en", "pl", "ru", "de", "zh-Hans"] as const; +const SUPPORTED_LOCALES = ["en", "pl", "ru", "de", "zh-Hant", "zh-Hans"] as const; type Locale = (typeof SUPPORTED_LOCALES)[number];