From bcf1ba242e039a645ee05ade093f8eaf35c3304b Mon Sep 17 00:00:00 2001 From: Jongho Hong Date: Sun, 1 Dec 2024 16:48:16 +0900 Subject: [PATCH] feat(i18n): add korean language support --- .../dashboard/settings/appearance-form.tsx | 8 ++-- apps/dokploy/next-i18next.config.cjs | 13 +++++- apps/dokploy/pages/_app.tsx | 1 + apps/dokploy/public/locales/ko/common.json | 1 + apps/dokploy/public/locales/ko/settings.json | 44 +++++++++++++++++++ apps/dokploy/utils/hooks/use-locale.ts | 1 + 6 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 apps/dokploy/public/locales/ko/common.json create mode 100644 apps/dokploy/public/locales/ko/settings.json diff --git a/apps/dokploy/components/dashboard/settings/appearance-form.tsx b/apps/dokploy/components/dashboard/settings/appearance-form.tsx index f4311923..2a3f5132 100644 --- a/apps/dokploy/components/dashboard/settings/appearance-form.tsx +++ b/apps/dokploy/components/dashboard/settings/appearance-form.tsx @@ -38,7 +38,7 @@ const appearanceFormSchema = z.object({ required_error: "Please select a theme.", }), language: z.enum( - ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans", "fa"], + ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans", "fa", "ko"], { required_error: "Please select a language.", }, @@ -184,10 +184,8 @@ export function AppearanceForm() { { label: "繁體中文", value: "zh-Hant" }, { label: "简体中文", value: "zh-Hans" }, { label: "Türkçe", value: "tr" }, - { - label: "Persian", - value: "fa", - }, + { label: "Persian", value: "fa" }, + { label: "한국어", value: "ko" }, ].map((preset) => ( {preset.label} diff --git a/apps/dokploy/next-i18next.config.cjs b/apps/dokploy/next-i18next.config.cjs index 5457859f..adf741e9 100644 --- a/apps/dokploy/next-i18next.config.cjs +++ b/apps/dokploy/next-i18next.config.cjs @@ -2,7 +2,18 @@ module.exports = { i18n: { defaultLocale: "en", - locales: ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans", "fa"], + locales: [ + "en", + "pl", + "ru", + "fr", + "de", + "tr", + "zh-Hant", + "zh-Hans", + "fa", + "ko", + ], localeDetection: false, }, fallbackLng: "en", diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx index 9b21243a..17b986c5 100644 --- a/apps/dokploy/pages/_app.tsx +++ b/apps/dokploy/pages/_app.tsx @@ -81,6 +81,7 @@ export default api.withTRPC( "zh-Hant", "zh-Hans", "fa", + "ko", ], localeDetection: false, }, diff --git a/apps/dokploy/public/locales/ko/common.json b/apps/dokploy/public/locales/ko/common.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/apps/dokploy/public/locales/ko/common.json @@ -0,0 +1 @@ +{} diff --git a/apps/dokploy/public/locales/ko/settings.json b/apps/dokploy/public/locales/ko/settings.json new file mode 100644 index 00000000..f0a99e4e --- /dev/null +++ b/apps/dokploy/public/locales/ko/settings.json @@ -0,0 +1,44 @@ +{ + "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": "웹 서버", + "settings.server.webServer.description": "웹 서버를 재시작하거나 정리합니다.", + "settings.server.webServer.actions": "작업", + "settings.server.webServer.reload": "재시작", + "settings.server.webServer.watchLogs": "로그 보기", + "settings.server.webServer.updateServerIp": "서버 IP 갱신", + "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": "도커 빌더 & 시스템 정리", + "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 1cf3104b..eaeb1612 100644 --- a/apps/dokploy/utils/hooks/use-locale.ts +++ b/apps/dokploy/utils/hooks/use-locale.ts @@ -10,6 +10,7 @@ const SUPPORTED_LOCALES = [ "zh-Hant", "zh-Hans", "fa", + "ko", ] as const; type Locale = (typeof SUPPORTED_LOCALES)[number];