More generally how do you rename Sphinx开发者_运维问答 default elements (e.g. Quick Search
to Search
)? Can you?
Here is how you could change "Quick search" to something else by overriding a template:
Create a folder called
templates
in the Sphinx project directory.Copy
<Sphinx install dir>/themes/basic/searchbox.html
totemplates
.In conf.py, add
templates_path = ["templates"]
Rename 'Quick search' to whatever you want in the copy of
searchbox.html
.
But I would not do it this way.
A more flexible approach is to create a gettext MO file and set up the configuration as described in the documentation for locale_dirs. Like this:
The template file
<Sphinx install dir>/locale/sphinx.pot
contains all the strings that can be translated. Copy that file to a localsphinx.po
file.Add your changes to
sphinx.po
.Use msgfmt.py to compile
sphinx.po
intosphinx.mo
.Put
sphinx.mo
in the proper directory (<your_locale_dir>/en/LC_MESSAGES
for English).
See also http://docs.python.org/library/gettext.html#internationalizing-your-programs-and-modules.
According to Sphinx config documentation, you should be able to amend the html templates or perhaps point Sphinx to new templates to achieve what you trying to do by working on the templates' html.
Current templates have search title provided in the context, I am not sure though what populates context value for _('search'). I wander if you could try customizing it by amending the locale file in /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 ""
and say msgstr "My alternative search"
instead of msgstr ""
.
精彩评论