Reputation: 5058
More generally how do you rename Sphinx default elements (e.g. Quick Search
to Search
)? Can you?
Upvotes: 9
Views: 2389
Reputation: 51052
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
to templates
.
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 local sphinx.po
file.
Add your changes to sphinx.po
.
Use msgfmt.py to compile sphinx.po
into sphinx.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.
Upvotes: 8
Reputation: 449
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 ""
.
Upvotes: 1