你能否在Sphinx侧边栏中重命名“目录”?

9
更一般地说,您如何重命名Sphinx默认元素(例如将Quick Search重命名为Search)?您可以吗?
2个回答

8

以下是如何通过覆盖模板将“快速搜索”更改为其他内容的方法:

  1. Create a folder called templates in the Sphinx project directory.

  2. Copy <Sphinx install dir>/themes/basic/searchbox.html to templates.

  3. In conf.py, add

    templates_path = ["templates"]
    
  4. Rename 'Quick search' to whatever you want in the copy of searchbox.html.

但我不会这么做。
更灵活的方法是创建一个gettext MO文件,并按照 locale_dirs 中的文档进行配置。像这样:
  1. 模板文件 <Sphinx安装目录>/locale/sphinx.pot 包含所有可翻译的字符串。将该文件复制到本地的sphinx.po文件中。

  2. 在sphinx.po中添加所需更改。

  3. 使用msgfmt.py将sphinx.po编译成sphinx.mo。

  4. 将sphinx.mo放入正确的目录中(英语为<your_locale_dir>/en/LC_MESSAGES)。

另请参见http://docs.python.org/library/gettext.html#internationalizing-your-programs-and-modules

2
“正确”的指令不再是那么精确了。没有必要从默认的.po文件中复制翻译。只要设置gettext_auto_build,就不需要使用msgfmt.py进行编译。 - Timotheus.Kampik

1
根据Sphinx配置文档, 您应该能够修改HTML模板或者指向新的模板来实现您想要通过编辑模板的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 ""


pot文件是一个gettext目录模板 - http://en.wikipedia.org/wiki/GNU_gettext - plaes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接