9efa2d0425
- 创建 i18n 模块 (provider + useT hook + useLang hook) - 中/英翻译文件 (zh.ts / en.ts),覆盖沙盒/学习/会员/对比等核心页面 - LanguageProvider 包装 layout,支持 localStorage 持久化 - Header 添加语言切换按钮 (中<>EN) - AGENTS.md 新增国际化约定 - opencode 源码克隆到 /tmp/opencode-source/ 供参考
25 lines
806 B
TypeScript
25 lines
806 B
TypeScript
'use client'
|
|
|
|
import { I18nProvider } from '@/i18n'
|
|
import { ThemeProvider } from '@/components/providers/theme-provider'
|
|
import { AuthProvider } from '@/lib/auth-context'
|
|
import { Toaster } from '@/components/ui/sonner'
|
|
import { Header } from '@/components/layout/header'
|
|
import { Footer } from '@/components/layout/footer'
|
|
import type { ReactNode } from 'react'
|
|
|
|
export function RootLayoutClient({ children }: { children: ReactNode }) {
|
|
return (
|
|
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
|
|
<AuthProvider>
|
|
<I18nProvider>
|
|
<Header />
|
|
<main className="flex-1">{children}</main>
|
|
<Footer />
|
|
<Toaster richColors closeButton />
|
|
</I18nProvider>
|
|
</AuthProvider>
|
|
</ThemeProvider>
|
|
)
|
|
}
|