如何在Docusaurus中根据选中语言获取对应内部链接?
Docusaurus多语言环境下获取对应内部链接的方法
Docusaurus内置了多语言路由处理能力,不用手动拼接路径,以下是几种实用方案:
1. React组件场景用<Link>组件
直接使用Docusaurus提供的<Link>组件,它会自动根据当前语言环境生成正确路径:
import Link from '@docusaurus/Link'; // 点击后自动跳转到对应语言的/docs路径 <Link to="/docs">前往文档</Link>
默认语言(如en)下会跳转/docs,非默认语言(如fr)下会自动添加语言前缀,跳转/fr/docs。
2. 自定义逻辑场景用useBaseUrl钩子
如果需要在代码里手动获取带语言前缀的路径,可使用useBaseUrl钩子:
import { useBaseUrl } from '@docusaurus/useBaseUrl'; function MyButton() { const docsUrl = useBaseUrl('/docs'); // 当前语言为en时返回"/docs",fr时返回"/fr/docs" return <button onClick={() => window.location.href = docsUrl}>前往文档</button>; }
这个钩子会自动结合当前语言环境,返回拼接后的正确路径。
3. 静态页面/非React场景
如果是静态HTML或非React脚本,可通过全局变量获取当前语言后手动拼接:
const currentLang = window.__docusaurus__.language; const docsPath = currentLang === 'en' ? '/docs' : `/${currentLang}/docs`; // 用docsPath执行跳转逻辑
这种方式优先级低于前两种,仅作为特殊场景的补充方案。
内容的提问来源于stack exchange,提问作者m19v
相关产品推荐
相关产品推荐

