diff options
| author | 2026-02-03 11:19:09 +0800 | |
|---|---|---|
| committer | 2026-02-03 11:19:09 +0800 | |
| commit | b27777b625fb348f35e435276842668e16456967 (patch) | |
| tree | 8b9b05b075f762a541ffb4e027875051fe9f00e5 /packages/docs/app/lib | |
| parent | 9627912c1f7910f786c555a3a9485f0a8c4211bf (diff) | |
| download | DropOut-b27777b625fb348f35e435276842668e16456967.tar.gz DropOut-b27777b625fb348f35e435276842668e16456967.zip | |
feat(i18n): add multi-language support for docs
Diffstat (limited to 'packages/docs/app/lib')
| -rw-r--r-- | packages/docs/app/lib/i18n.ts | 8 | ||||
| -rw-r--r-- | packages/docs/app/lib/layout.shared.tsx | 17 | ||||
| -rw-r--r-- | packages/docs/app/lib/source.ts | 5 |
3 files changed, 29 insertions, 1 deletions
diff --git a/packages/docs/app/lib/i18n.ts b/packages/docs/app/lib/i18n.ts new file mode 100644 index 0000000..a9f18b1 --- /dev/null +++ b/packages/docs/app/lib/i18n.ts @@ -0,0 +1,8 @@ +import { defineI18n } from 'fumadocs-core/i18n'; + +export const i18n = defineI18n({ + defaultLanguage: 'zh', + languages: ['zh', 'en'], + hideLocale: 'default-locale', + parser: 'dir', // 使用目录结构 (content/zh/*, content/en/*) +}); diff --git a/packages/docs/app/lib/layout.shared.tsx b/packages/docs/app/lib/layout.shared.tsx index 6c7a35d..6e90ba0 100644 --- a/packages/docs/app/lib/layout.shared.tsx +++ b/packages/docs/app/lib/layout.shared.tsx @@ -1,9 +1,24 @@ import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; +import { i18n } from './i18n'; -export function baseOptions(): BaseLayoutProps { +export function baseOptions(locale: string): BaseLayoutProps { + // 默认语言(zh)不显示前缀,其他语言显示前缀 + const isDefaultLocale = locale === i18n.defaultLanguage; + const localePrefix = isDefaultLocale ? '' : `/${locale}`; + return { + i18n, nav: { title: 'DropOut', + url: localePrefix || '/', }, + githubUrl: 'https://github.com/HydroRoll-Team/DropOut', + links: [ + { + type: 'main', + text: locale === 'zh' ? '文档' : 'Documentation', + url: `${localePrefix}/docs`, + }, + ], }; } diff --git a/packages/docs/app/lib/source.ts b/packages/docs/app/lib/source.ts index 97cf767..bce9bf9 100644 --- a/packages/docs/app/lib/source.ts +++ b/packages/docs/app/lib/source.ts @@ -1,7 +1,12 @@ import { loader } from 'fumadocs-core/source'; import { docs } from 'fumadocs-mdx:collections/server'; +import { i18n } from './i18n'; export const source = loader({ source: docs.toFumadocsSource(), baseUrl: '/docs', + i18n, + // hideLocale: 'default-locale' 会自动生成正确的 URL: + // - 默认语言 (zh): /docs/getting-started + // - 其他语言 (en): /en/docs/getting-started }); |