mirror of
https://github.com/labring/FastGPT.git
synced 2026-04-26 02:07:28 +08:00
2fd4b6030b
* feat(docs): enable i18n language selector * docs(i18n): translate introduction page to English * fix(i18n): fix language switching issue by always showing locale prefix * fix(docs): use relative paths for internal links to preserve language * refactor(i18n): add getLocalizedPath helper to simplify URL generation * refactor(i18n): make getLocalizedPath respect hideLocale config * feat(i18n): fallback to default language when translation missing, keep URL unchanged * feat(i18n): fix language loss in navigation and add language selector - Set hideLocale to 'never' to always show language prefix - Add localized-navigation.ts with useLocalizedRouter hook - Update all navigation points to preserve language: 1. Tab navigation (already using getLocalizedPath) 2. Sidebar navigation (handled by Fumadocs) 3. Home/404 redirects (using getLocalizedPath) 4. MDX Redirect component (using useLocalizedRouter) 5. Old page redirects (updated not-found.tsx) 6. Document links (custom LocalizedLink component) - Configure language selector in layout.config.tsx - Add LOCALIZED_NAVIGATION.md documentation * fix(i18n): fix type errors and useEffect dependencies * refactor(i18n): move redirects to middleware for SSR support - Move old path redirects from client-side (not-found.tsx) to server-side (middleware.ts) - Use 301 permanent redirects for better SEO - Preserve language prefix in redirects - Fix SSR issue caused by client-side redirects * refactor(i18n): clean up not-found.tsx, remove duplicate redirect maps - Remove duplicate exactMap and prefixMap (now in middleware) - Keep dynamic meta.json lookup for unknown pages - Simplify to only handle fallback cases - Two-layer approach: middleware (SSR) + not-found (dynamic) * refactor(i18n): simplify not-found to always redirect to introduction - Remove dynamic meta.json lookup - Always redirect to introduction page on 404 - Ensures no 404 pages are shown - Keep language prefix in redirect * fix(i18n): fix middleware type error with ts-expect-error - Add @ts-expect-error for Fumadocs middleware signature mismatch - Fix syntax error in config matcher (remove literal \n) --------- Co-authored-by: archer <archer@archerdeMac-mini.local>
FastGPT 文档
这是FastGPT的官方文档,采用 fumadoc 框架。
运行项目
要运行文档,首先需要进行环境变量配置,在文档的根目录下创建.env.local文件,填写以下环境变量:
FASTGPT_HOME_DOMAIN = #要跳转的FastGPT项目的域名,默认海外版
你可以在FastGPT项目根目录下执行以下命令来运行文档。
npm install # 只能 npm install,不能 pnpm
npm run dev
项目会默认跑在http:localhost:3000端口
书写文档
文档采用mdx格式,大体和md一致,但是现在文档的元数据只支持title description和icon三个字段,参考以下示例代码:
---
title: FastGPT 文档
description: FastGPT 官方文档
icon: menu #icon采用`lucide-react`第三方库。
---
import { Alert } from '@/components/docs/Alert'; #高亮块组件
<Alert icon="🤖" context="success">
快速开始体验
- 海外版:[https://fastgpt.io](https://fastgpt.io)
- 中国大陆:[https://fastgpt.cn](https://fastgpt.cn)
</Alert>
import {Redirect} from '@/components/docs/Redirect' #重定向组件,如果你希望用户点击这个文件跳转到别的文件的话,详情参考 `FAQ`的`Docker 部署问题`文档。
<Redirect to="/docs/introduction/development/docker/#faq" />
<Tabs items={['Javascript', 'Rust']}> #tabs组件用法,渲染效果参考`introduction`下`development`的`faq`文档
<Tab value="Javascript">Javascript is weird</Tab>
<Tab value="Rust">Rust is fast</Tab>
import FastGPTLink from '@/components/docs/linkFastGPT'; #FastGPT跳转链接组件,通过接收一个域名环境变量,来实现跳转到海外或者国内
本文档介绍了如何设置开发环境以构建和测试 <FastGPTLink>FastGPT</FastGPTLink>。
</Tabs>
在书写完文档后,需要在对应的目录下的meta.json文件的pages字段合适位置添加自己的文件名。例如在content/docs(默认这是所有文档的根目录)的introduction目录下书写了一个hello.mdx文件。则需要去introduction目录下的meta.json添加以下内容:
{
"title": "FastGPT Docs",
"root": true,
"pages": ["[Handshake][联系我们](https://fael3z0zfze.feishu.cn/share/base/form/shrcnjJWtKqjOI9NbQTzhNyzljc)","index","guide","development","FAQ","shopping_cart","community","hello"], #"hello"原本没有,此外,这里的顺序就是最后文档的展示顺序,现在"hello"文档将会在`introduction`的最后展示
"order": 1
}
i18n
在content/docs下的所有.mdx文件为默认语言文件(当前默认语言中文),.en.mdx文件为i18n支持的英文文件,例如,你可以将hello.mdx文档翻译后,写一个hello.en.mdx,同时,在对应目录的meta.en.json的"pages"字段写下对应的文件名来支持英文文档。
特殊配置
增加顶层导航栏
- 在
FastGPT/document/app/[lang]/docs/layout.tsx文件中新增导航。
重定向
在FastGPT/document/components/docs/not-found.tsx文件中新增重定向规则。