feat: P0a i18n 基础设施 + UI 语言切换

- 创建 i18n 模块 (provider + useT hook + useLang hook)
- 中/英翻译文件 (zh.ts / en.ts),覆盖沙盒/学习/会员/对比等核心页面
- LanguageProvider 包装 layout,支持 localStorage 持久化
- Header 添加语言切换按钮 (中<>EN)
- AGENTS.md 新增国际化约定
- opencode 源码克隆到 /tmp/opencode-source/ 供参考
This commit is contained in:
yuzhiran-dev
2026-05-18 10:12:37 +08:00
parent 11bb86854c
commit 9efa2d0425
10 changed files with 400 additions and 27 deletions
+24
View File
@@ -0,0 +1,24 @@
'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>
)
}