可以在Sphinx侧边栏中重命名“目录”吗?
一般来说,如何更改Sphinx默认元素的名称(比如把 Quick Search
改成 Search
)?可以做到吗?
2 个回答
根据Sphinx的配置文档,你应该可以修改html模板,或者让Sphinx使用新的模板,这样就能实现你想要的效果,方法就是在模板的html上进行调整。
现在的模板中有搜索标题是在上下文中提供的,不过我不太确定是什么填充了上下文中 _('search') 的值。我在想,你是否可以尝试通过修改位于 /sphinx/sphinx/locale/sphinx.pot 的语言文件来进行自定义:
#: sphinx/themes/agogo/layout.html:49 sphinx/themes/basic/layout.html:137
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:20
msgid "Search"
msgstr ""
然后把 msgstr "My alternative search"
替换掉 msgstr ""
。
下面是如何通过覆盖模板将“快速搜索”改成其他内容的方法:
在Sphinx项目目录下创建一个名为
templates
的文件夹。将
<Sphinx安装目录>/themes/basic/searchbox.html
复制到刚才创建的templates
文件夹里。在conf.py文件中添加
templates_path = ["templates"]
在复制的
searchbox.html
文件中,把“快速搜索”改成你想要的内容。
不过我不建议这样做。
更灵活的方法是创建一个gettext MO文件,并按照 文档中关于 locale_dirs 的说明进行配置。步骤如下:
模板文件
<Sphinx安装目录>/locale/sphinx.pot
包含了所有可以翻译的字符串。把这个文件复制到本地,命名为sphinx.po
。在
sphinx.po
文件中添加你的修改。使用 msgfmt.py 将
sphinx.po
编译成sphinx.mo
。将
sphinx.mo
放到正确的目录中(对于英语来说是<你的语言目录>/en/LC_MESSAGES
)。
更多信息请参见 http://docs.python.org/library/gettext.html#internationalizing-your-programs-and-modules。