feat(i18n): update settings and dashboard layout for dynamic translations

This commit is contained in:
poyrazavsever
2026-07-20 11:08:32 +03:00
parent e5d609426d
commit 542cb66759
11 changed files with 496 additions and 30 deletions
+13 -1
View File
@@ -1,6 +1,10 @@
import { DashboardClient, type DashboardData } from "./dashboard-client";
import { parseDashboardRange, resolveDashboardRange } from "@/server/services/analytics-range";
import { requireFreelancerBackend } from "@/server/web/freelancer";
import { requireFreelancer } from "@/server/auth/session";
import { resolveFreelancerLocale } from "@/server/i18n/resolver";
import { getClientI18nPayload } from "@/server/i18n/translator";
import { I18nProvider } from "@/components/i18n/i18n-provider";
export const metadata = { title: "Dashboard" };
@@ -9,6 +13,10 @@ export default async function DashboardPage({
}: {
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
}) {
const context = await requireFreelancer();
const resolvedLocale = await resolveFreelancerLocale(context);
const payload = getClientI18nPayload(resolvedLocale.locale, ["dashboard"]);
const params = await searchParams;
const range = parseDashboardRange(params.range);
const { actor, service } = await requireFreelancerBackend();
@@ -31,5 +39,9 @@ export default async function DashboardPage({
range,
};
return <DashboardClient data={data} />;
return (
<I18nProvider locale={payload.locale} messages={payload.messages}>
<DashboardClient data={data} />
</I18nProvider>
);
}