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:
@@ -1,10 +1,6 @@
|
||||
import type { Metadata } from 'next';
|
||||
import './globals.css';
|
||||
import { Header } from '@/components/layout/header';
|
||||
import { Footer } from '@/components/layout/footer';
|
||||
import { ThemeProvider } from '@/components/providers/theme-provider';
|
||||
import { AuthProvider } from '@/lib/auth-context';
|
||||
import { Toaster } from '@/components/ui/sonner';
|
||||
import { RootLayoutClient } from './layout-client';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: {
|
||||
@@ -32,14 +28,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
||||
return (
|
||||
<html lang="zh-CN" suppressHydrationWarning>
|
||||
<body className="min-h-screen flex flex-col">
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
|
||||
<AuthProvider>
|
||||
<Header />
|
||||
<main className="flex-1">{children}</main>
|
||||
<Footer />
|
||||
<Toaster richColors closeButton />
|
||||
</AuthProvider>
|
||||
</ThemeProvider>
|
||||
<RootLayoutClient>{children}</RootLayoutClient>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user