aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/docs/app/root.tsx
diff options
context:
space:
mode:
authorNtskwK <natsukawa247@outlook.com>2026-02-03 11:19:09 +0800
committerNtskwK <natsukawa247@outlook.com>2026-02-03 11:19:09 +0800
commitb27777b625fb348f35e435276842668e16456967 (patch)
tree8b9b05b075f762a541ffb4e027875051fe9f00e5 /packages/docs/app/root.tsx
parent9627912c1f7910f786c555a3a9485f0a8c4211bf (diff)
downloadDropOut-b27777b625fb348f35e435276842668e16456967.tar.gz
DropOut-b27777b625fb348f35e435276842668e16456967.zip
feat(i18n): add multi-language support for docs
Diffstat (limited to 'packages/docs/app/root.tsx')
-rw-r--r--packages/docs/app/root.tsx20
1 files changed, 18 insertions, 2 deletions
diff --git a/packages/docs/app/root.tsx b/packages/docs/app/root.tsx
index a6c807e..9032c80 100644
--- a/packages/docs/app/root.tsx
+++ b/packages/docs/app/root.tsx
@@ -6,11 +6,25 @@ import {
Outlet,
Scripts,
ScrollRestoration,
+ useParams,
} from 'react-router';
import { RootProvider } from 'fumadocs-ui/provider/react-router';
import type { Route } from './+types/root';
import './app.css';
+import { defineI18nUI } from 'fumadocs-ui/i18n';
+import { i18n } from './lib/i18n';
+const { provider } = defineI18nUI(i18n, {
+ translations: {
+ en: {
+ displayName: 'English',
+ },
+ zh: {
+ displayName: '中文',
+ search: '查找文档',
+ },
+ },
+});
export const links: Route.LinksFunction = () => [
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
{
@@ -25,8 +39,10 @@ export const links: Route.LinksFunction = () => [
];
export function Layout({ children }: { children: React.ReactNode }) {
+ const { lang = i18n.defaultLanguage } = useParams();
+
return (
- <html lang="en" suppressHydrationWarning>
+ <html lang={lang} suppressHydrationWarning>
<head>
<meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@@ -34,7 +50,7 @@ export function Layout({ children }: { children: React.ReactNode }) {
<Links />
</head>
<body className="flex flex-col min-h-screen">
- <RootProvider>{children}</RootProvider>
+ <RootProvider i18n={provider(lang)}>{children}</RootProvider>
<ScrollRestoration />
<Scripts />
</body>