Remove next-intl localization infrastructure

Strips out the i18n layer (next-intl, message files, language switcher,
provider) to reduce complexity. Nav components now use plain English strings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 14:57:27 +01:00
parent ce4069bf92
commit bd9cd310fc
14 changed files with 25 additions and 1488 deletions

View File

@@ -4,7 +4,6 @@ import { useState, useEffect } from 'react'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { signOut, useSession } from 'next-auth/react'
import { useTranslations } from 'next-intl'
import { cn } from '@/lib/utils'
import { Button } from '@/components/ui/button'
import { UserAvatar } from '@/components/shared/user-avatar'
@@ -22,7 +21,6 @@ import { LogOut, Menu, Moon, Settings, Sun, User, X } from 'lucide-react'
import { useTheme } from 'next-themes'
import { Logo } from '@/components/shared/logo'
import { NotificationBell } from '@/components/shared/notification-bell'
import { LanguageSwitcher } from '@/components/shared/language-switcher'
export type NavItem = {
name: string
@@ -51,8 +49,6 @@ function isNavItemActive(pathname: string, href: string, basePath: string): bool
export function RoleNav({ navigation, roleName, user, basePath, statusBadge }: RoleNavProps) {
const pathname = usePathname()
const tCommon = useTranslations('common')
const tAuth = useTranslations('auth')
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
const { status: sessionStatus } = useSession()
const isAuthenticated = sessionStatus === 'authenticated'
@@ -111,7 +107,6 @@ export function RoleNav({ navigation, roleName, user, basePath, statusBadge }: R
)}
</Button>
)}
<LanguageSwitcher />
<NotificationBell />
<DropdownMenu>
<DropdownMenuTrigger asChild>
@@ -135,7 +130,7 @@ export function RoleNav({ navigation, roleName, user, basePath, statusBadge }: R
<DropdownMenuItem asChild>
<Link href={"/settings/profile" as Route} className="flex cursor-pointer items-center">
<Settings className="mr-2 h-4 w-4" />
{tCommon('settings')}
Settings
</Link>
</DropdownMenuItem>
<DropdownMenuSeparator />
@@ -144,7 +139,7 @@ export function RoleNav({ navigation, roleName, user, basePath, statusBadge }: R
className="text-destructive focus:text-destructive"
>
<LogOut className="mr-2 h-4 w-4" />
{tAuth('signOut')}
Sign Out
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
@@ -196,7 +191,7 @@ export function RoleNav({ navigation, roleName, user, basePath, statusBadge }: R
onClick={() => signOut({ callbackUrl: '/login' })}
>
<LogOut className="mr-2 h-4 w-4" />
{tAuth('signOut')}
Sign Out
</Button>
</div>
</nav>