aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/docs/app/lib
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/lib
parent9627912c1f7910f786c555a3a9485f0a8c4211bf (diff)
downloadDropOut-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.ts8
-rw-r--r--packages/docs/app/lib/layout.shared.tsx17
-rw-r--r--packages/docs/app/lib/source.ts5
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
});