From 4354ee7ba1c6ac9a9567944ae6169b1664e0ea8a Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 17 Nov 2024 00:33:28 +0000 Subject: feature: Add i18n support. Fixes #57 (#635) * feature(web): Add basic scaffolding for i18n * refactor: Switch most of the app's strings to use i18n strings * fix: Remove unused i18next-resources-for-ts command * Add user setting * More translations * Drop the german translation for now --- apps/web/app/dashboard/cleanups/page.tsx | 9 ++++++--- apps/web/app/dashboard/lists/page.tsx | 4 +++- apps/web/app/dashboard/tags/page.tsx | 4 +++- apps/web/app/layout.tsx | 13 ++----------- apps/web/app/settings/info/page.tsx | 4 +++- 5 files changed, 17 insertions(+), 17 deletions(-) (limited to 'apps/web/app') diff --git a/apps/web/app/dashboard/cleanups/page.tsx b/apps/web/app/dashboard/cleanups/page.tsx index ca9187ee..1974d2a7 100644 --- a/apps/web/app/dashboard/cleanups/page.tsx +++ b/apps/web/app/dashboard/cleanups/page.tsx @@ -1,18 +1,21 @@ import { TagDuplicationDetection } from "@/components/dashboard/cleanups/TagDuplicationDetention"; import { Separator } from "@/components/ui/separator"; +import { useTranslation } from "@/lib/i18n/server"; import { Paintbrush, Tags } from "lucide-react"; -export default function Cleanups() { +export default async function Cleanups() { + const { t } = await useTranslation(); + return (
- Cleanups + {t("cleanups.cleanups")} - Duplicate Tags + {t("cleanups.duplicate_tags.title")} diff --git a/apps/web/app/dashboard/lists/page.tsx b/apps/web/app/dashboard/lists/page.tsx index 1c22ac32..36eb8b7a 100644 --- a/apps/web/app/dashboard/lists/page.tsx +++ b/apps/web/app/dashboard/lists/page.tsx @@ -1,13 +1,15 @@ import AllListsView from "@/components/dashboard/lists/AllListsView"; import { Separator } from "@/components/ui/separator"; +import { useTranslation } from "@/lib/i18n/server"; import { api } from "@/server/api/client"; export default async function ListsPage() { + const { t } = await useTranslation(); const lists = await api.lists.list(); return (
-

📋 All Lists

+

📋 {t("lists.all_lists")}

diff --git a/apps/web/app/dashboard/tags/page.tsx b/apps/web/app/dashboard/tags/page.tsx index 6caea513..1639e4c5 100644 --- a/apps/web/app/dashboard/tags/page.tsx +++ b/apps/web/app/dashboard/tags/page.tsx @@ -1,13 +1,15 @@ import AllTagsView from "@/components/dashboard/tags/AllTagsView"; import { Separator } from "@/components/ui/separator"; +import { useTranslation } from "@/lib/i18n/server"; import { api } from "@/server/api/client"; export default async function TagsPage() { + const { t } = await useTranslation(); const allTags = (await api.tags.list()).tags; return (
- All Tags + {t("tags.all_tags")}
diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index 6d8b10ed..7d3858eb 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -5,14 +5,9 @@ import "@hoarder/tailwind-config/globals.css"; import type { Viewport } from "next"; import React from "react"; -import { cookies } from "next/headers"; import { Toaster } from "@/components/ui/toaster"; import Providers from "@/lib/providers"; -import { - defaultUserLocalSettings, - parseUserLocalSettings, - USER_LOCAL_SETTINGS_COOKIE_NAME, -} from "@/lib/userLocalSettings/types"; +import { getUserLocalSettings } from "@/lib/userLocalSettings/userLocalSettings"; import { getServerAuthSession } from "@/server/auth"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; @@ -57,11 +52,7 @@ export default async function RootLayout({ {children} diff --git a/apps/web/app/settings/info/page.tsx b/apps/web/app/settings/info/page.tsx index 8027b09f..c7d8f808 100644 --- a/apps/web/app/settings/info/page.tsx +++ b/apps/web/app/settings/info/page.tsx @@ -1,11 +1,13 @@ import { ChangePassword } from "@/components/settings/ChangePassword"; import UserDetails from "@/components/settings/UserDetails"; +import { UserOptions } from "@/components/settings/UserOptions"; export default async function InfoPage() { return ( -
+
+
); } -- cgit v1.2.3-70-g09d2