I18n components (#27)

* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Move into function

* Replace string matching to boolean check

* Add FIXIT in UsersTable

* Use localization for size units

* Missed and restored translation keys

* fixup! New translation keys in tr-TR locale

* Add translation keys in components
This commit is contained in:
vlalx
2025-05-25 17:41:38 +03:00
committed by GitHub
parent af3694da34
commit ea24759bb3
42 changed files with 1419 additions and 329 deletions

View File

@@ -23,6 +23,7 @@ import Link from "next/link";
import { usePathname } from "next/navigation";
import { useUserContext } from "@app/hooks/useUserContext";
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
import { useTranslations } from "next-intl";
interface LayoutProps {
children: React.ReactNode;
@@ -60,6 +61,7 @@ export function Layout({
const isAdminPage = pathname?.startsWith("/admin");
const { user } = useUserContext();
const { isUnlocked } = useLicenseStatusContext();
const t = useTranslations();
return (
<div className="flex flex-col h-screen overflow-hidden">
@@ -84,11 +86,10 @@ export function Layout({
className="w-64 p-0 flex flex-col h-full"
>
<SheetTitle className="sr-only">
Navigation Menu
{t('navbar')}
</SheetTitle>
<SheetDescription className="sr-only">
Main navigation menu for the
application
{t('navbarDescription')}
</SheetDescription>
<div className="flex-1 overflow-y-auto">
<div className="p-4">
@@ -114,7 +115,7 @@ export function Layout({
}
>
<Server className="h-4 w-4" />
Server Admin
{t('serverAdmin')}
</Link>
</div>
)}
@@ -161,7 +162,7 @@ export function Layout({
rel="noopener noreferrer"
className="text-muted-foreground hover:text-foreground transition-colors"
>
Documentation
{t('navbarDocsLink')}
</Link>
</div>
<div>
@@ -193,7 +194,7 @@ export function Layout({
className="flex items-center gap-3 text-muted-foreground hover:text-foreground transition-colors px-3 py-2 rounded-md w-full"
>
<Server className="h-4 w-4" />
Server Admin
{t('serverAdmin')}
</Link>
</div>
)}
@@ -210,8 +211,8 @@ export function Layout({
className="flex items-center justify-center gap-1"
>
{!isUnlocked()
? "Community Edition"
: "Commercial Edition"}
? t('communityEdition')
: t('commercialEdition')}
<ExternalLink size={12} />
</Link>
</div>