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
相关产品推荐
相关产品推荐

