mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #1030: Make page reference names for latex_show_pagerefs translatable
This commit is contained in:
parent
2803b64b5d
commit
121fc4a326
1
CHANGES
1
CHANGES
@ -33,6 +33,7 @@ Features added
|
||||
* #2216: Texinputs makefile improvements.
|
||||
* #2170: Support for Chinese language search index.
|
||||
* #2214: Add sphinx.ext.githubpages to publish the docs on GitHub Pages
|
||||
* #1030: Make page reference names for latex_show_pagerefs translatable
|
||||
|
||||
Bugs fixed
|
||||
----------
|
||||
|
@ -46,6 +46,7 @@ HEADER = r'''%% Generated by Sphinx.
|
||||
%(usepackages)s
|
||||
%(contentsname)s
|
||||
%(numfig_format)s
|
||||
%(pageautorefname)s
|
||||
%(preamble)s
|
||||
|
||||
\title{%(title)s}
|
||||
@ -292,6 +293,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
'transition': '\n\n\\bigskip\\hrule{}\\bigskip\n\n',
|
||||
'figure_align': 'htbp',
|
||||
'tocdepth': '',
|
||||
'pageautorefname': '',
|
||||
}
|
||||
|
||||
# sphinx specific document classes
|
||||
@ -302,6 +304,22 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
self.builder = builder
|
||||
self.body = []
|
||||
|
||||
# flags
|
||||
self.in_title = 0
|
||||
self.in_production_list = 0
|
||||
self.in_footnote = 0
|
||||
self.in_caption = 0
|
||||
self.in_container_literal_block = 0
|
||||
self.in_term = 0
|
||||
self.first_document = 1
|
||||
self.this_is_the_title = 1
|
||||
self.literal_whitespace = 0
|
||||
self.no_contractions = 0
|
||||
self.compact_list = 0
|
||||
self.first_param = 0
|
||||
self.remember_multirow = {}
|
||||
self.remember_multirowcol = {}
|
||||
|
||||
# sort out some elements
|
||||
papersize = builder.config.latex_paper_size + 'paper'
|
||||
if papersize == 'paper': # e.g. command line "-D latex_paper_size="
|
||||
@ -366,6 +384,8 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
if getattr(document.settings, 'contentsname', None):
|
||||
self.elements['contentsname'] = \
|
||||
self.babel_renewcommand('\\contentsname', document.settings.contentsname)
|
||||
self.elements['pageautorefname'] = \
|
||||
self.babel_defmacro('\\pageautorefname', self.encode(_('page')))
|
||||
self.elements['numfig_format'] = self.generate_numfig_format(builder)
|
||||
# allow the user to override them all
|
||||
self.elements.update(builder.config.latex_elements)
|
||||
@ -411,21 +431,6 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
self.next_figure_ids = set()
|
||||
self.next_table_ids = set()
|
||||
self.next_literal_ids = set()
|
||||
# flags
|
||||
self.in_title = 0
|
||||
self.in_production_list = 0
|
||||
self.in_footnote = 0
|
||||
self.in_caption = 0
|
||||
self.in_container_literal_block = 0
|
||||
self.in_term = 0
|
||||
self.first_document = 1
|
||||
self.this_is_the_title = 1
|
||||
self.literal_whitespace = 0
|
||||
self.no_contractions = 0
|
||||
self.compact_list = 0
|
||||
self.first_param = 0
|
||||
self.remember_multirow = {}
|
||||
self.remember_multirowcol = {}
|
||||
|
||||
def pushbody(self, newbody):
|
||||
self.bodystack.append(self.body)
|
||||
@ -494,6 +499,16 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
|
||||
return ('%s\\renewcommand{%s}{%s}%s\n' % (prefix, command, definition, suffix))
|
||||
|
||||
def babel_defmacro(self, name, definition):
|
||||
if self.elements['babel']:
|
||||
prefix = '\\addto\\extras%s{' % self.babel.get_language()
|
||||
suffix = '}'
|
||||
else: # babel is disabled (mainly for Japanese environment)
|
||||
prefix = ''
|
||||
suffix = ''
|
||||
|
||||
return ('%s\\def%s{%s}%s\n' % (prefix, name, definition, suffix))
|
||||
|
||||
def generate_numfig_format(self, builder):
|
||||
ret = []
|
||||
figure = self.builder.config.numfig_format['figure'].split('%s', 1)
|
||||
|
@ -288,6 +288,7 @@ def test_babel_with_no_language_settings(app, status, warning):
|
||||
in result)
|
||||
assert '\\addto\\captionsenglish{\\renewcommand{\\figurename}{Fig. }}\n' in result
|
||||
assert '\\addto\\captionsenglish{\\renewcommand{\\tablename}{Table. }}\n' in result
|
||||
assert '\\addto\\extrasenglish{\\def\\pageautorefname{page}}\n' in result
|
||||
|
||||
|
||||
@with_app(buildername='latex', testroot='latex-babel',
|
||||
@ -306,6 +307,7 @@ def test_babel_with_language_de(app, status, warning):
|
||||
in result)
|
||||
assert '\\addto\\captionsngerman{\\renewcommand{\\figurename}{Fig. }}\n' in result
|
||||
assert '\\addto\\captionsngerman{\\renewcommand{\\tablename}{Table. }}\n' in result
|
||||
assert '\\addto\\extrasngerman{\\def\\pageautorefname{page}}\n' in result
|
||||
|
||||
|
||||
@with_app(buildername='latex', testroot='latex-babel',
|
||||
@ -324,6 +326,7 @@ def test_babel_with_language_ru(app, status, warning):
|
||||
in result)
|
||||
assert '\\addto\\captionsrussian{\\renewcommand{\\figurename}{Fig. }}\n' in result
|
||||
assert '\\addto\\captionsrussian{\\renewcommand{\\tablename}{Table. }}\n' in result
|
||||
assert '\\addto\\extrasrussian{\\def\\pageautorefname{page}}\n' in result
|
||||
|
||||
|
||||
@with_app(buildername='latex', testroot='latex-babel',
|
||||
@ -341,6 +344,7 @@ def test_babel_with_language_ja(app, status, warning):
|
||||
assert '\\renewcommand{\\contentsname}{Table of content}\n' in result
|
||||
assert '\\renewcommand{\\figurename}{Fig. }\n' in result
|
||||
assert '\\renewcommand{\\tablename}{Table. }\n' in result
|
||||
assert '\\def\\pageautorefname{page}\n' in result
|
||||
|
||||
|
||||
@with_app(buildername='latex', testroot='latex-babel',
|
||||
@ -359,6 +363,7 @@ def test_babel_with_unknown_language(app, status, warning):
|
||||
in result)
|
||||
assert '\\addto\\captionsenglish{\\renewcommand{\\figurename}{Fig. }}\n' in result
|
||||
assert '\\addto\\captionsenglish{\\renewcommand{\\tablename}{Table. }}\n' in result
|
||||
assert '\\addto\\extrasenglish{\\def\\pageautorefname{page}}\n' in result
|
||||
|
||||
assert "WARNING: no Babel option known for language 'unknown'" in warning.getvalue()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user