diff --git a/apps/dokploy/components/dashboard/organization/handle-organization.tsx b/apps/dokploy/components/dashboard/organization/handle-organization.tsx
index 014c37df..2d30bc82 100644
--- a/apps/dokploy/components/dashboard/organization/handle-organization.tsx
+++ b/apps/dokploy/components/dashboard/organization/handle-organization.tsx
@@ -21,6 +21,7 @@ import { Input } from "@/components/ui/input";
import { api } from "@/utils/api";
import { zodResolver } from "@hookform/resolvers/zod";
import { PenBoxIcon, Plus } from "lucide-react";
+import { useTranslation } from "next-i18next";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
@@ -41,6 +42,7 @@ interface Props {
}
export function AddOrganization({ organizationId }: Props) {
+ const { t } = useTranslation();
const [open, setOpen] = useState(false);
const utils = api.useUtils();
const { data: organization } = api.organization.one.useQuery(
@@ -81,7 +83,9 @@ export function AddOrganization({ organizationId }: Props) {
.then(() => {
form.reset();
toast.success(
- `Organization ${organizationId ? "updated" : "created"} successfully`,
+ organizationId
+ ? t("common.side.organizations.updateSuccess")
+ : t("common.side.organizations.createSuccess"),
);
utils.organization.all.invalidate();
setOpen(false);
@@ -89,7 +93,9 @@ export function AddOrganization({ organizationId }: Props) {
.catch((error) => {
console.error(error);
toast.error(
- `Failed to ${organizationId ? "update" : "create"} organization`,
+ organizationId
+ ? t("common.side.organizations.updateFailed")
+ : t("common.side.organizations.createFailed"),
);
});
};
@@ -113,7 +119,7 @@ export function AddOrganization({ organizationId }: Props) {
- Add organization
+ {t("common.side.organizations.createOrganization")}
)}
@@ -121,12 +127,14 @@ export function AddOrganization({ organizationId }: Props) {
- {organizationId ? "Update organization" : "Add organization"}
+ {organizationId
+ ? t("common.side.organizations.updateOrganization")
+ : t("common.side.organizations.createOrganization")}
{organizationId
- ? "Update the organization name and logo"
- : "Create a new organization to manage your projects."}
+ ? t("common.side.organizations.updateOrganizationDescription")
+ : t("common.side.organizations.createOrganizationDescription")}
diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx
index f5566143..61c73dc7 100644
--- a/apps/dokploy/components/dashboard/projects/show.tsx
+++ b/apps/dokploy/components/dashboard/projects/show.tsx
@@ -47,9 +47,11 @@ import { useMemo, useState } from "react";
import { toast } from "sonner";
import { HandleProject } from "./handle-project";
import { ProjectEnvironment } from "./project-environment";
+import { useTranslation } from "next-i18next";
export const ShowProjects = () => {
const utils = api.useUtils();
+ const { t } = useTranslation();
const { data, isLoading } = api.project.all.useQuery();
const { data: auth } = api.user.get.useQuery();
const { mutateAsync } = api.project.remove.useMutation();
@@ -76,10 +78,10 @@ export const ShowProjects = () => {
- Projects
+ {t("home.projects.title")}
- Create and manage your projects
+ {t("home.projects.description")}
@@ -186,7 +188,9 @@ export const ShowProjects = () => {
target="_blank"
href={`${domain.https ? "https" : "http"}://${domain.host}${domain.path}`}
>
- {domain.host}
+
+ {domain.host}
+
@@ -222,7 +226,9 @@ export const ShowProjects = () => {
target="_blank"
href={`${domain.https ? "https" : "http"}://${domain.host}${domain.path}`}
>
- {domain.host}
+
+ {domain.host}
+
diff --git a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
index 131d7ddf..a26f885c 100644
--- a/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
+++ b/apps/dokploy/components/dashboard/settings/api/add-api-key.tsx
@@ -33,6 +33,7 @@ import {
import { Switch } from "@/components/ui/switch";
import copy from "copy-to-clipboard";
import { CodeEditor } from "@/components/shared/code-editor";
+import { useTranslation } from "next-i18next";
const formSchema = z.object({
name: z.string().min(1, "Name is required"),
@@ -79,6 +80,7 @@ const REFILL_INTERVAL_OPTIONS = [
];
export const AddApiKey = () => {
+ const { t } = useTranslation();
const [open, setOpen] = useState(false);
const [showSuccessModal, setShowSuccessModal] = useState(false);
const [newApiKey, setNewApiKey] = useState("");
@@ -95,7 +97,7 @@ export const AddApiKey = () => {
void refetch();
},
onError: () => {
- toast.error("Failed to generate API key");
+ toast.error(t("settings.api.errorGeneratingApiKey"));
},
});
@@ -140,14 +142,13 @@ export const AddApiKey = () => {
<>