mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #7768: i18n: Wrong root element is passed to figure_language_filename
The root element should be a user specified path; a relative path from current document or absolute path based on source directory. But an absolute path is passed instead.
This commit is contained in:
parent
ff4330abe3
commit
09ca58d0dd
2
CHANGES
2
CHANGES
@ -70,6 +70,8 @@ Bugs fixed
|
|||||||
* #7928: py domain: failed to resolve a type annotation for the attribute
|
* #7928: py domain: failed to resolve a type annotation for the attribute
|
||||||
* #7968: i18n: The content of ``math`` directive is interpreted as reST on
|
* #7968: i18n: The content of ``math`` directive is interpreted as reST on
|
||||||
translation
|
translation
|
||||||
|
* #7768: i18n: The ``root`` element for :confval:`figure_language_filename` is
|
||||||
|
not a path that user specifies in the document
|
||||||
* #7869: :rst:role:`abbr` role without an explanation will show the explanation
|
* #7869: :rst:role:`abbr` role without an explanation will show the explanation
|
||||||
from the previous abbr role
|
from the previous abbr role
|
||||||
* C and C++, removed ``noindex`` directive option as it did
|
* C and C++, removed ``noindex`` directive option as it did
|
||||||
|
@ -58,17 +58,13 @@ class ImageCollector(EnvironmentCollector):
|
|||||||
elif imguri.find('://') != -1:
|
elif imguri.find('://') != -1:
|
||||||
candidates['?'] = imguri
|
candidates['?'] = imguri
|
||||||
continue
|
continue
|
||||||
rel_imgpath, full_imgpath = app.env.relfn2path(imguri, docname)
|
|
||||||
if app.config.language:
|
if imguri.endswith(os.extsep + '*'):
|
||||||
# substitute figures (ex. foo.png -> foo.en.png)
|
# Update `node['uri']` to a relative path from srcdir
|
||||||
i18n_full_imgpath = search_image_for_language(full_imgpath, app.env)
|
# from a relative path from current document.
|
||||||
if i18n_full_imgpath != full_imgpath:
|
rel_imgpath, full_imgpath = app.env.relfn2path(imguri, docname)
|
||||||
full_imgpath = i18n_full_imgpath
|
node['uri'] = rel_imgpath
|
||||||
rel_imgpath = relative_path(path.join(app.srcdir, 'dummy'),
|
|
||||||
i18n_full_imgpath)
|
|
||||||
# set imgpath as default URI
|
|
||||||
node['uri'] = rel_imgpath
|
|
||||||
if rel_imgpath.endswith(os.extsep + '*'):
|
|
||||||
if app.config.language:
|
if app.config.language:
|
||||||
# Search language-specific figures at first
|
# Search language-specific figures at first
|
||||||
i18n_imguri = get_image_filename_for_language(imguri, app.env)
|
i18n_imguri = get_image_filename_for_language(imguri, app.env)
|
||||||
@ -77,7 +73,15 @@ class ImageCollector(EnvironmentCollector):
|
|||||||
|
|
||||||
self.collect_candidates(app.env, full_imgpath, candidates, node)
|
self.collect_candidates(app.env, full_imgpath, candidates, node)
|
||||||
else:
|
else:
|
||||||
candidates['*'] = rel_imgpath
|
if app.config.language:
|
||||||
|
# substitute imguri by figure_language_filename
|
||||||
|
# (ex. foo.png -> foo.en.png)
|
||||||
|
imguri = search_image_for_language(imguri, app.env)
|
||||||
|
|
||||||
|
# Update `node['uri']` to a relative path from srcdir
|
||||||
|
# from a relative path from current document.
|
||||||
|
node['uri'], _ = app.env.relfn2path(imguri, docname)
|
||||||
|
candidates['*'] = node['uri']
|
||||||
|
|
||||||
# map image paths to unique image names (so that they can be put
|
# map image paths to unique image names (so that they can be put
|
||||||
# into a single directory)
|
# into a single directory)
|
||||||
|
@ -320,8 +320,8 @@ def search_image_for_language(filename: str, env: "BuildEnvironment") -> str:
|
|||||||
return filename
|
return filename
|
||||||
|
|
||||||
translated = get_image_filename_for_language(filename, env)
|
translated = get_image_filename_for_language(filename, env)
|
||||||
dirname = path.dirname(env.docname)
|
_, abspath = env.relfn2path(translated)
|
||||||
if path.exists(path.join(env.srcdir, dirname, translated)):
|
if path.exists(abspath):
|
||||||
return translated
|
return translated
|
||||||
else:
|
else:
|
||||||
return filename
|
return filename
|
||||||
|
Loading…
Reference in New Issue
Block a user