SurfSense/surfsense_web/components/providers/I18nProvider.tsx
Differ f58c7e4602 feat(i18n): Add next-intl framework with full bilingual support (EN/ZH)
- Implement next-intl framework for scalable i18n
- Add complete Chinese (Simplified) localization
- Support 400+ translated strings across all pages
- Add language switcher with persistent preference
- Zero breaking changes to existing functionality

Framework additions:
- i18n routing and middleware
- LocaleContext for client-side state
- LanguageSwitcher component
- Translation files (en.json, zh.json)

Translated components:
- Homepage: Hero, features, CTA, navbar
- Auth: Login, register
- Dashboard: Main page, layout
- Connectors: Management, add page (all categories)
- Documents: Upload, manage, filters
- Settings: LLM configs, role assignments
- Onboarding: Add provider, assign roles
- Logs: Task logs viewer

Adding a new language now requires only:
1. Create messages/<locale>.json
2. Add locale to i18n/routing.ts
2025-10-26 17:18:57 +08:00

19 lines
507 B
TypeScript

'use client';
import { NextIntlClientProvider } from 'next-intl';
import { useLocaleContext } from '@/contexts/LocaleContext';
/**
* I18n Provider component
* Wraps NextIntlClientProvider with dynamic locale and messages from LocaleContext
*/
export function I18nProvider({ children }: { children: React.ReactNode }) {
const { locale, messages } = useLocaleContext();
return (
<NextIntlClientProvider messages={messages} locale={locale}>
{children}
</NextIntlClientProvider>
);
}