You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sphinx多语言自定义着陆页配置问题

问题:Sphinx多语言站点中如何根据语言切换自定义着陆页?

我用Sphinx生成了一个文档站点,conf.py里的配置如下:

root_doc = 'contents'
html_additional_pages = {'index': 'index.html'}

这个配置允许我在_templates文件夹中添加自定义着陆页,英文版本运行正常。现在我想搭建包含英文、德文的多语言文档站点,其他部分均正常,但着陆页始终默认显示英文。

我曾尝试在conf.py中添加如下代码,但并未生效:

if "language = en":
   html_additional_pages = {'index':'index.html'}
elif "language = en":
   html_additional_pages = {'index':'index-de.html'}

请问如何在conf.py中设置html_additional_pages,以根据当前语言展示对应的着陆页?

解决方案

你的代码存在两个关键问题:

  • 条件判断使用了字符串常量"language = en",这会被视为永远为真的布尔值,且两个分支的条件完全重复,根本没对德文语言做判断。
  • 应该直接引用Sphinx配置中的language变量,而非写死字符串。

修改后的conf.py配置代码如下:

root_doc = 'contents'

# 根据当前语言配置对应着陆页
if language == 'en':
    html_additional_pages = {'index': 'index.html'}
elif language == 'de':
    html_additional_pages = {'index': 'index-de.html'}

同时请确保_templates文件夹中已放置对应语言的模板文件:

  • 英文:index.html
  • 德文:index-de.html

如果后续需要支持更多语言,只需扩展elif分支即可,例如添加法语支持:

elif language == 'fr':
    html_additional_pages = {'index': 'index-fr.html'}

内容的提问来源于stack exchange,提问作者N_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:12:42