diff --git a/.husky/pre-commit b/.husky/pre-commit index fef815e9..1c6b0356 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,2 +1,2 @@ -pnpm run check -git add . \ No newline at end of file +# pnpm run check +# git add . diff --git a/apps/dokploy/components/dashboard/settings/appearance-form.tsx b/apps/dokploy/components/dashboard/settings/appearance-form.tsx index eb615d0f..f4311923 100644 --- a/apps/dokploy/components/dashboard/settings/appearance-form.tsx +++ b/apps/dokploy/components/dashboard/settings/appearance-form.tsx @@ -37,9 +37,12 @@ const appearanceFormSchema = z.object({ theme: z.enum(["light", "dark", "system"], { required_error: "Please select a theme.", }), - language: z.enum(["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans"], { - required_error: "Please select a language.", - }), + language: z.enum( + ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans", "fa"], + { + required_error: "Please select a language.", + }, + ), }); type AppearanceFormValues = z.infer; @@ -181,6 +184,10 @@ export function AppearanceForm() { { label: "繁體中文", value: "zh-Hant" }, { label: "简体中文", value: "zh-Hans" }, { label: "Türkçe", value: "tr" }, + { + label: "Persian", + value: "fa", + }, ].map((preset) => ( {preset.label} diff --git a/apps/dokploy/next-i18next.config.cjs b/apps/dokploy/next-i18next.config.cjs index 652ea02b..5457859f 100644 --- a/apps/dokploy/next-i18next.config.cjs +++ b/apps/dokploy/next-i18next.config.cjs @@ -1,10 +1,10 @@ /** @type {import('next-i18next').UserConfig} */ module.exports = { - i18n: { - defaultLocale: "en", - locales: ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans"], - localeDetection: false, - }, - fallbackLng: "en", - keySeparator: false, + i18n: { + defaultLocale: "en", + locales: ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans", "fa"], + localeDetection: false, + }, + fallbackLng: "en", + keySeparator: false, }; diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx index 92b30cca..9b21243a 100644 --- a/apps/dokploy/pages/_app.tsx +++ b/apps/dokploy/pages/_app.tsx @@ -32,10 +32,10 @@ const MyApp = ({ return ( <> + :root { + --font-inter: ${inter.style.fontFamily}; + } + `} Dokploy @@ -71,7 +71,17 @@ export default api.withTRPC( { i18n: { defaultLocale: "en", - locales: ["en", "pl", "ru", "fr", "de", "tr", "zh-Hant", "zh-Hans"], + locales: [ + "en", + "pl", + "ru", + "fr", + "de", + "tr", + "zh-Hant", + "zh-Hans", + "fa", + ], localeDetection: false, }, fallbackLng: "en", diff --git a/apps/dokploy/public/locales/fa/common.json b/apps/dokploy/public/locales/fa/common.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/apps/dokploy/public/locales/fa/common.json @@ -0,0 +1 @@ +{} diff --git a/apps/dokploy/public/locales/fa/settings.json b/apps/dokploy/public/locales/fa/settings.json new file mode 100644 index 00000000..f28aaa27 --- /dev/null +++ b/apps/dokploy/public/locales/fa/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": "به‌روزرسانی آی‌پی سرور", + "settings.server.webServer.server.label": "سرور", + "settings.server.webServer.traefik.label": "ترافیک", + "settings.server.webServer.traefik.modifyEnv": "ویرایش محیط", + "settings.server.webServer.storage.label": "فضا", + "settings.server.webServer.storage.cleanUnusedImages": "پاکسازی Image های بدون استفاده", + "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 981bc5a4..1cf3104b 100644 --- a/apps/dokploy/utils/hooks/use-locale.ts +++ b/apps/dokploy/utils/hooks/use-locale.ts @@ -9,6 +9,7 @@ const SUPPORTED_LOCALES = [ "tr", "zh-Hant", "zh-Hans", + "fa", ] as const; type Locale = (typeof SUPPORTED_LOCALES)[number];