mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-03 12:52:39 +02:00
- 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
22 lines
650 B
TypeScript
22 lines
650 B
TypeScript
import {getRequestConfig} from 'next-intl/server';
|
|
import {routing} from './routing';
|
|
|
|
/**
|
|
* Configuration for internationalization request handling
|
|
* This function is called for each request to determine the locale and load translations
|
|
*/
|
|
export default getRequestConfig(async ({requestLocale}) => {
|
|
// This typically corresponds to the `[locale]` segment
|
|
let locale = await requestLocale;
|
|
|
|
// Ensure that the incoming `locale` is valid
|
|
if (!locale || !routing.locales.includes(locale as any)) {
|
|
locale = routing.defaultLocale;
|
|
}
|
|
|
|
return {
|
|
locale,
|
|
messages: (await import(`../messages/${locale}.json`)).default
|
|
};
|
|
});
|
|
|