国际化
Tanstack Start
在 Tanstack Start 中实现 Fumadocs 国际化路由
配置步骤
步骤 1:定义 i18n 配置
创建配置文件,指定默认语言和支持的语言。使用 fumadocs-core 的 defineI18n 管理语言设置。
步骤 2:添加翻译
使用 defineI18nUI 定义 UI 翻译,为每种语言映射显示名称和本地化字符串。在根布局中将翻译传递给 <RootProvider />,从 URL 参数中提取语言参数。
步骤 3:组织路由
在 routes 下创建 $lang 目录,将所有页面移入此语言参数化的文件夹结构中。
步骤 4:传递 Locale 到组件
在 source loader 中配置 i18n 对象,并通过 props 将 locale 信息传递给布局组件(HomeLayout、DocsLayout)。使用 Route.useParams() 提取语言参数并传递给 baseOptions()。
搜索配置
- 内置 Orama 搜索:请参考无头搜索部分的国际化文档
- Algolia 等云方案:利用其原生多语言支持
导航处理
Fumadocs 自动管理侧边栏导航。对于其他导航元素,使用 useParams hook 从 URL 获取 locale 并构建带有适当语言参数的链接。fumadocs-core 的 DynamicLink 组件支持 MDX 内容中带有 locale 前缀的动态 href 模式。